日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

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

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

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

上海晶珩電子科技有限公司 ? 2025-03-25 09:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

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

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

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

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

獲取can2040庫

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

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

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

項(xiàng)目文件夾

我創(chuàng)建了一個(gè)包含CMake文件和src文件夾的目錄,src文件夾包含了一個(gè)非常簡單的測試文件(從這里獲取的,但我在項(xiàng)目中引用了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ù)測性、時(shí)間關(guān)鍵型協(xié)處理器

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

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

測試

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

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

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

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

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

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

    關(guān)注

    59

    文章

    3097

    瀏覽量

    473613
  • Pico
    +關(guān)注

    關(guān)注

    0

    文章

    189

    瀏覽量

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

    關(guān)注

    122

    文章

    2082

    瀏覽量

    110822
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎ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)公眾號(hào),直達(dá)精彩內(nèi)容1月22日,樹莓基金會(huì)最新發(fā)布一款低成本、高性能的微控制器開發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹莓
    發(fā)表于 11-03 08:44

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

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

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

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

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

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

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

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

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

    關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容1月22日,樹莓基金會(huì)最新發(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ù)樹莓基金會(huì)2021年1月21日公開的兩部最新官方英文技術(shù)文獻(xiàn)[1]、[2]以及博主最近使用樹莓Pico開發(fā)板的一些思考與應(yīng)用實(shí)
    發(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日,樹莓基金會(huì)最新發(fā)布一款低成本、高性能的微控制器開發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹莓體積更小,售價(jià)僅4
    發(fā)表于 12-04 13:06 ?14次下載
    <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í)筆記(一)

    距離檢測報(bào)警使用樹莓Pico

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

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

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

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

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

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

    樹莓Pico2040的“超能力”升級(jí)如果你手頭有一個(gè)樹莓Pico2040,但總覺得它的性能還
    的頭像 發(fā)表于 03-25 09:25 ?1397次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b> <b class='flag-5'>Pico</b> 2040 的“速度狂飆”:時(shí)鐘速度幾乎翻倍!
    西畴县| 广宁县| 盐源县| 咸阳市| 山西省| 贡觉县| 桂平市| 长宁县| 高尔夫| 翁源县| 济阳县| 漳平市| 陇西县| 富宁县| 武清区| 霍邱县| 南昌县| 彭山县| 宁波市| 璧山县| 太仆寺旗| 开阳县| 紫金县| 金坛市| 佛山市| 大连市| 定远县| 石景山区| 泗水县| 鸡西市| 泗洪县| 广东省| 星座| 东明县| 达拉特旗| 宜昌市| 咸阳市| 甘泉县| 阜平县| 手游| 静海县|