色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

樹莓派Pico不帶CAN接口怎么辦?難道要換方案?

上海晶珩電子科技有限公司 ? 2025-03-25 09:32 ? 次閱讀

Pico PIO狀態(tài)機(jī)實現(xiàn)外設(shè):CAN - 示例1

Pico擁有一組PIO協(xié)處理器。它們是實時控制器,能夠以確定的時序執(zhí)行邏輯。非常適合運行嚴(yán)格定時的序列和狀態(tài)機(jī),以及實現(xiàn)額外的外設(shè)(如這里的CAN)。序列和狀態(tài)機(jī),以及實現(xiàn)額外的外設(shè)(如這里的CAN)。

PIO引擎不易編程,也不易學(xué)習(xí)。但有一些很好的示例可供參考。我正在復(fù)習(xí)Kevin O'Connor精彩的can2040庫。

在這篇文章中:我將創(chuàng)建一個測試平臺,并證明我可以接收CAN通信

0d52a186-0919-11f0-9434-92fbcf53809c.jpg

這篇博客的目的不是編寫PIO(可編程輸入輸出)開發(fā)者教程。我試圖回溯開發(fā)者如何使用PIO指令實現(xiàn)一個標(biāo)準(zhǔn)協(xié)議。我使用的工具包括C語言、CMake、VSCode和Pico C SDK。預(yù)期的技能水平是:你能夠構(gòu)建和運行官方的pico-examples。

在通常情況下(這里跳過OSI模型),CAN(控制器局域網(wǎng))有兩層:

邏輯層:TTL、5V、3.3V等數(shù)字信號,由一些智能元件實現(xiàn),如外設(shè)、控制器位操作,本例中為PIO狀態(tài)機(jī)。

總線層:物理層,通常通過驅(qū)動器/收發(fā)器IC實現(xiàn)。我將在這里使用一個物理驅(qū)動器IC,這是我自己設(shè)計的一個小東西,我經(jīng)常使用。你也可以僅使用普通電阻和二極管制作一個簡易的CAN驅(qū)動器。

作為通信對等體,我使用另外兩個具備CAN能力的設(shè)備:一個帶有CAN外設(shè)的衍生設(shè)備和一個Microchip CAN總線分析儀。一個帶有CAN屏蔽板的Arduino(MKR)同樣適用。

這篇文章不深入代碼。它只是一個測試平臺,讓我看看是否能建立一個CAN通信。

獲取can2040庫

從Kevin的Kevin's github克隆或下載源代碼。

設(shè)置一個環(huán)境變量指向這個位置。這將確保我們可以創(chuàng)建一個不依賴于你存放第三方代碼位置的make腳本。我使用的是VSCode,并將在那里定義環(huán)境變量。你也可以在你的操作系統(tǒng)設(shè)置、shell腳本等中設(shè)置。

0da96b56-0919-11f0-9434-92fbcf53809c.jpg

項目文件夾

我創(chuàng)建了一個包含CMake文件和src文件夾的目錄,src文件夾包含了一個非常簡單的測試文件(從這里獲取的,但我在項目中引用了can2040源代碼而不是導(dǎo)入它們)。

src/main.c

// source: https://gitea.predevolution-technologies.de/anme/CAN2040_Test
#include #include #include "pico/stdlib.h"#include "pico/binary_info.h"#include "hardware/irq.h"#include "can2040.h"#include "RP2040.h"
static struct can2040 cbus;
static void can2040_cb(struct can2040 *cd, uint32_t notify, struct can2040_msg *msg){ // Add message processing code here...}
static void PIOx_IRQHandler(void){ can2040_pio_irq_handler(&cbus);}
void canbus_setup(void){ uint32_t pio_num = 0; uint32_t sys_clock = 125000000, bitrate = 125000; uint32_t gpio_rx = 14, gpio_tx = 15;
// Setup canbus can2040_setup(&cbus, pio_num); can2040_callback_config(&cbus, can2040_cb);
// Enable irqs irq_set_exclusive_handler(PIO0_IRQ_0_IRQn, PIOx_IRQHandler); NVIC_SetPriority(PIO0_IRQ_0_IRQn, 1); NVIC_EnableIRQ(PIO0_IRQ_0_IRQn);
// Start canbus can2040_start(&cbus, sys_clock, bitrate, gpio_rx, gpio_tx);}
int main(void){
const uint LED_PIN = PICO_DEFAULT_LED_PIN; gpio_init(LED_PIN); gpio_set_dir(LED_PIN, GPIO_OUT); int32_t ledState = 0; stdio_init_all(); canbus_setup();
while(1){ printf("bla\n"); gpio_put(LED_PIN, ledState); if (ledState == 0){ ledState = 1; } else{ ledState = 0; } sleep_ms(1000); }}

./CMakeList.txt

cmake_minimum_required(VERSION 3.13)
# Pull in SDK (must be before project)include(pico_sdk_import.cmake)
project(can2040_project0 C CXX ASM)set(CMAKE_C_STANDARD 11)set(CMAKE_CXX_STANDARD 17)
#I've set this to allow breakpoints on any source lineset(PICO_DEOPTIMIZED_DEBUG=1)
pico_sdk_init()

add_executable(can2040_project0 source/main.c $ENV{CAN2040_LIB_PATH}/src/can2040.c )
target_include_directories(can2040_project0 PRIVATE ${CMAKE_CURRENT_LIST_DIR}/source $ENV{CAN2040_LIB_PATH}/src )

target_link_libraries(can2040_project0 pico_stdlib cmsis_core)
pico_add_extra_outputs(can2040_project0)

側(cè)邊欄:Pico PIO和其他預(yù)測性、時間關(guān)鍵型協(xié)處理器

Pico PIO狀態(tài)機(jī)是小型協(xié)控制器,它們以可預(yù)測的速度執(zhí)行每條指令。這類控制器從不會被中斷,不會監(jiān)聽中斷(但可以觸發(fā)中斷)。它們只是可靠地時鐘同步并執(zhí)行它們的小程序。通常,它們可以快速訪問一些GIO引腳。

還有其他一些控制器和處理器具有類似的功能:TI(德州儀器)的Hercules微控制器具有高端定時器。它與Pico PIO引擎非常相似,但Hercules指令額外支持角度、相位等(這些是用于多相電源電機(jī)驅(qū)動的功能)。(同樣來自TI的)BeagleBone具有PRU(可編程實時單元),這也與Pico PIO引擎的功能非常接近。PRU可以直接訪問內(nèi)存和DMA引擎。這三者共同的特點是,它們不僅能夠產(chǎn)生精確定時的信號,還能夠采樣輸入信號。并且它們是超靈活的定時器,可以處理計數(shù)、相位移動、正交編碼等功能。

測試

我啟動了一個調(diào)試會話,在can2040_cb()回調(diào)函數(shù)處設(shè)置了斷點。然后,從我的另一臺設(shè)備發(fā)送了一條CAN消息:

0dd84714-0919-11f0-9434-92fbcf53809c.jpg

RP2040在斷點處停止,我可以看到消息ID、DLC(長度)和有效載荷:

0e01ce7c-0919-11f0-9434-92fbcf53809c.jpg

我附上了我的VSCode項目的ZIP文件。別忘了下載can2040源代碼并設(shè)置環(huán)境變量。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2806

    瀏覽量

    465539
  • Pico
    +關(guān)注

    關(guān)注

    0

    文章

    179

    瀏覽量

    17325
  • 樹莓派
    +關(guān)注

    關(guān)注

    118

    文章

    1871

    瀏覽量

    106235
收藏 0人收藏

    評論

    相關(guān)推薦

    樹莓pico入門學(xué)習(xí)筆記(一)相關(guān)資料推薦

    樹莓pico入門學(xué)習(xí)筆記選擇自己熟悉的編程語言樹莓pico提供C/C++和micropyth
    發(fā)表于 07-01 09:28

    樹莓pico如何入門?

    樹莓pico如何入門?
    發(fā)表于 10-13 08:11

    樹莓Pico的相關(guān)資料分享

    關(guān)注、星標(biāo)公眾號,直達(dá)精彩內(nèi)容1月22日,樹莓基金會最新發(fā)布一款低成本、高性能的微控制器開發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹莓
    發(fā)表于 11-03 08:44

    使用樹莓Pico開發(fā)板的一些思考與應(yīng)用實踐資料分享

    本博文根據(jù)樹莓基金會2021年1月21日公開的兩部最新官方英文技術(shù)文獻(xiàn)[1]、[2]以及博主最近使用樹莓Pico開發(fā)板的一些思考與應(yīng)用實
    發(fā)表于 11-12 06:07

    樹莓Pico的相關(guān)資料推薦

    1月22日,樹莓基金會最新發(fā)布一款低成本、高性能的微控制器開發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹莓體積更小,售價僅4
    發(fā)表于 02-07 07:37

    樹莓燒錄后死機(jī)怎么辦

    樹莓燒錄后死機(jī)怎么辦
    發(fā)表于 10-24 08:06

    遠(yuǎn)程控制樹莓3b上的pi pico

    樹莓pi pico樹莓4相比差別很大,但是pi pico有一些特點是
    的頭像 發(fā)表于 03-05 17:23 ?4109次閱讀

    樹莓也出MCU了?樹莓Pico來了!

    關(guān)注、星標(biāo)公眾號,直達(dá)精彩內(nèi)容1月22日,樹莓基金會最新發(fā)布一款低成本、高性能的微控制器開發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹莓
    發(fā)表于 10-28 10:36 ?11次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>也出MCU了?<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>來了!

    樹莓Pico開發(fā)板硬件擴(kuò)展接口及電源模塊解析

    本博文根據(jù)樹莓基金會2021年1月21日公開的兩部最新官方英文技術(shù)文獻(xiàn)[1]、[2]以及博主最近使用樹莓Pico開發(fā)板的一些思考與應(yīng)用實
    發(fā)表于 11-07 09:06 ?15次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>開發(fā)板硬件擴(kuò)展<b class='flag-5'>接口</b>及電源模塊解析

    樹莓Pico:僅4美元的MCU

    1月22日,樹莓基金會最新發(fā)布一款低成本、高性能的微控制器開發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹莓體積更小,售價僅4
    發(fā)表于 12-04 13:06 ?13次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>:僅4美元的MCU

    樹莓pico入門學(xué)習(xí)筆記(一)

    樹莓pico入門學(xué)習(xí)筆記選擇自己熟悉的編程語言樹莓pico提供C/C++和micropyth
    發(fā)表于 12-17 18:42 ?21次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>pico</b>入門學(xué)習(xí)筆記(一)

    距離檢測報警使用樹莓Pico

    電子發(fā)燒友網(wǎng)站提供《距離檢測報警使用樹莓Pico.zip》資料免費下載
    發(fā)表于 11-09 11:49 ?0次下載
    距離檢測報警使用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>

    基于樹莓pico的可編程游戲手柄設(shè)計

    方案介紹組件12x12x7.3mm 瞬時觸覺按鈕按鈕樹莓Pico通用 D1286464 OLED 顯示屏操縱桿模塊 PS210 歐姆電阻?組裝將
    發(fā)表于 12-26 15:10 ?0次下載

    如何在樹莓Pico上使用紅外線接收模塊?

    樹莓 Pico 上使用紅外線接收模塊(HX1838 型),我們采用開源的 pico_ir 庫。
    的頭像 發(fā)表于 11-30 09:08 ?2552次閱讀
    如何在<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>上使用紅外線接收模塊?

    樹莓 Pico 2040 的“速度狂飆”:時鐘速度幾乎翻倍!

    樹莓Pico2040的“超能力”升級如果你手頭有一個樹莓Pico2040,但總覺得它的性能還
    的頭像 發(fā)表于 03-25 09:25 ?81次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b> <b class='flag-5'>Pico</b> 2040 的“速度狂飆”:時鐘速度幾乎翻倍!
    主站蜘蛛池模板: 99视频精品国产在线视频 | 久久亚洲免费视频 | 国产69精品久久久熟女 | 一本道久在线综合色姐 | 俄罗斯美女性生活 | 国产亚洲精品福利视频 | 久久视频精品3线视频在线观看 | 久久视频精品38线视频在线观看 | 国产精品成人观看视频免费 | 一个人看的www视频动漫版 | 2018久久视频在线视频观看 | 毛茸茸womansex | 扒开她的黑森林让我添动态图 | 20岁αsrian男同志免费 | 欧美16一17sex性hd | 日产久久视频 | 成人麻豆日韩在无码视频 | 成人免费视频在线 | 姐姐不~不可以动漫在线观看 | 乡村教师电影完整版在线观看 | 最近中文字幕在线中文高清版 | 亚洲国产成人私人影院 | 国产亚洲视频精彩在线播放 | 亚洲欧美精品无码一区二在线 | 2021自产拍在线观看视频 | 我年轻漂亮的继坶2中字在线播放 | 啊灬啊灬啊灬快灬深高潮啦 | 永久免费的污视频网站 | 天天躁夜夜踩很很踩2022 | 成人国产在线不卡视频 | 超碰免费视频在线观看 | 久久不射视频 | 亚洲中字慕日产2020 | 亚洲国产女人aaa毛片在线 | 伊人久久电影网 | 午夜伦理yy44008影院 | 暖暖视频 免费 高清 日本8 | 99国产精品综合AV无码 | 午夜国产高清精品一区免费 | 久久青草免费91线频观看站街 | 2017最新伦理伦理片67 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品