電子發(fā)燒友App

硬聲App

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>具有集成LoRa和CAN總線的ATMEGA328P模塊

具有集成LoRa和CAN總線的ATMEGA328P模塊

2022-08-04 | zip | 0.01 MB | 次下載 | 2積分

資料介紹

PCB圖如下:
poYBAGK0CQSALiqeAAC22QjfuyA805.jpg
pYYBAGK0CQqAWiK4AACw05e0pXw566.jpg

描述

具有集成 LoRaCAN 總線的 ATMEGA328P 模塊

具有集成 LoRa 和 CAN-BUS 的 ATMEGA328P 模塊

poYBAGK0CR2ARpuDAACw3Bnz8fM351.jpg

介紹

為了完善我的 LoRa 遙測系統(tǒng),我已經(jīng)完成了很多原型。這篇文章將重點介紹下一個節(jié)點設計。由于我將部署系統(tǒng)的區(qū)域非常大,但邊界圍欄線大致呈方形,我決定嘗試減少覆蓋整個區(qū)域所需的 LoRa Radio 節(jié)點的數(shù)量。這為利用 CAN-BUS 將僅傳感器節(jié)點連接到無線電節(jié)點并讓它們報告異常狀態(tài)以及來自無線電節(jié)點的請求提供了機會。

因此,該設備將用作 LoRa 到 CAN-BUS 網(wǎng)關,具有一些本地自動化來控制向主站傳輸數(shù)據(jù)。這個概念也可以適用于其他領域,例如家庭自動化或工業(yè)環(huán)境。

在該設備的核心,我堅持使用多功能 ATMEGA328P,排除當前的芯片短缺和當前的高價,它是一款非常便宜的芯片,具有許多經(jīng)過良好測試的庫,并且學習曲線相對較低,主要是由于它在 Arduino 生態(tài)系統(tǒng)中的廣泛使用。

LoRa 組件由 AI-Tinker(非贊助)的 RA-02 甚至 RA-01H 模塊處理。正如我們在之前的原型中看到的那樣,該設備需要使用邏輯電平轉(zhuǎn)換器,因為它只接受 3.3v 邏輯電平。雖然如果我從 3.3v 為 ATMEGA328P 供電,我可以擺脫這些問題,但它會產(chǎn)生兩個問題,其中一個仍然會強制使用電平轉(zhuǎn)換器......

我選擇以 16Mhz 運行 ATMEGA328P,這基本上迫使我使用 5v 為芯片供電。除非您非常徹底地閱讀了一些數(shù)據(jù)表,否則第二個原因并不那么明顯......

CAN 總線組件由 MCP2515 獨立 SPI 轉(zhuǎn) CAN 控制器以及 TJA1050 CAN 總線收發(fā)器處理。

這就是事情變得有趣的地方...... MCP2515 可以在 3.3v 上運行,但 TJA1050 是僅 5v 的設備。因此,理論上我可以只在 MCP2515 和 TJA1050 之間使用邏輯電平轉(zhuǎn)換器,同時在 3.3v 上運行電路的其余部分......

鑒于我寧愿在 16Mhz 上運行 ATMEGA328P,而且我的 LoRa 無線電模塊電路及其邏輯電平轉(zhuǎn)換器電路工作得非常好,我決定不改變這一點,并保持 CAN 總線在 5v 下運行一路走來,因為我仍然必須為此目的在 PCB 上使用 5v 穩(wěn)壓器。

poYBAGK0CR-AdHJmAABfu4A99q0741.jpg

LoRa 和 CAN BUS 模塊的 IO 連接

兩個集成組件(Lora 和 CAN)都是 SPI 設備。這意味著它們共享公共 SCK、MISO 和 MOSI 線(在 ATMEGA328P 上分別由引腳 D13、D12 和 D11 提供。然后通過使用 CE 引腳進一步選擇單獨的 SPI 設備進行操作,每個設備一個唯一的引腳, MCU將其拉低以向設備指示它應該注意在SPI總線上傳輸?shù)臄?shù)據(jù)......

LoRa 和 CAN 都使用其他引腳,LoRa 需要一個連接到 D9 的復位引腳,一個連接到 D10 的 CS/CE 引腳以及一個連接到 D2 的硬件中斷引腳。(請注意,這是與 Sandeep Mistry 的 LoRa 庫一起使用的。Radiolib 庫需要一個額外的引腳,通常連接到 LoRa 模塊上的 DIO1。該設備在其當前布局中不提供對這些引腳的訪問,因此您只能使用它與 Sandeep Mistry 圖書館,至少現(xiàn)在......)

CAN 模塊在 D4 使用 CE/CS 引腳,在 D6 使用 IRQ 引腳,雖然不是硬件中斷引腳,但確實具有 PCINT 功能。

引腳 D10、D9 和 D2 未斷開以供用戶訪問。雖然我決定允許訪問 D4 和 D6 以及 SPI 總線 D11、D12、D13,以允許與邏輯分析儀連接,或?qū)⑵渌?SPI 設備添加到總線......

這給我們帶來了一個非常有趣的觀點……這兩個 SPI 設備真的可以一起玩嗎?我所說的“一起玩得很好”是什么意思?

pYYBAGK0CSKANxlUAADG8iwpF58988.jpg

為了回答這個問題,我們不得不先看一些理論,以及了解 SPI 和 I2C 之間的根本區(qū)別......

SPI和I2C的區(qū)別

我們大多數(shù)人都會非常熟悉 I2C,因為它是一種非常常見的協(xié)議,用于將傳感器連接到微控制器。它僅由兩條 IO 線組成,SDA 用于數(shù)據(jù),SCL 用于時鐘??偩€上的每個設備都有自己的內(nèi)置地址,就像 PCF8574 IO 擴展器一樣,該地址可以在 0x20h 和 0x27h 之間選擇。所有設備共享這些公共數(shù)據(jù)線,并且只有在主控制器專門尋址時才會響應......除非您不小心將具有相同地址的兩個設備放在同一總線上,(如果這甚至可以工作),沒有錯誤的設備會響應任何數(shù)據(jù)請求的方式......

另一方面,SPI 以完全不同的原理運行,使其比 I2c 快很多倍,有源設備同時發(fā)送和接收數(shù)據(jù)...... SPI 也稱為四線協(xié)議。每個設備至少有 4 條數(shù)據(jù)線,分別是 SCK(時鐘)、MOSI(用于從主設備傳輸?shù)綇脑O備的數(shù)據(jù))、MISO(用于從從設備傳輸?shù)街髟O備的數(shù)據(jù))和一個 CE 或 CS(芯片選擇 ) 引腳。

SCK、MISO 和 MOSI 對所有設備都是通用的,這意味著它在所有設備之間共享。CE/CS 是每個設備的唯一引腳,這意味著如果總線上有四個 SPI 設備,則必須有四個單獨的 CE/CS 引腳!

如果主機將其各自的 CE/CS 引腳拉低,則設備將或者更確切地說應該只響應 SPI-BUS 上的數(shù)據(jù)。現(xiàn)在你應該很快就會明白,這會很快變成一個非常非常復雜的混亂。

讓我們舉一個很好的例子。ST7789 SPI顯示模塊,有便宜的版本,在速賣通和其他網(wǎng)上商店都有賣。我假設這個特定模塊是為了使其更易于使用,默認情況下,CE/CS 引腳在內(nèi)部被拉低到地……那你可能會問呢?這有什么問題,因為它為您節(jié)省了一個 IO 引腳?

事實上這是非常錯誤的,如果您曾經(jīng)嘗試在 SPI 總線上使用其中一個顯示器與其他 SPI 設備一起使用,您將很快發(fā)現(xiàn)這一事實......什么都不起作用,或者只有顯示器可以工作(如果你是幸運的)

但為什么?

將 CE/CS 拉低,向芯片發(fā)出信號,表明它應該響應公共 SCK、MISO 和 MOSI 線上的指令。將引腳內(nèi)部拉低,從而迫使該芯片始終響應,即使它不應該響應。因此用垃圾污染了整個 SPI-BUS...

問題的答案

在這個非常冗長的解釋之后,這仍然是非?;镜模菚r候回到我們最初的問題了:

Sx127x ( RA-02 ) 模塊和 MCP2515 控制器能否在同一總線上運行良好?答案并不簡單,因為它歸結(jié)為您使用哪些庫......

請記住,庫必須拉低它要與之通信的設備的 CE/CS 引腳。一些庫錯誤地認為它們是唯一在使用的庫,并忽略了一個簡單的事實,即它們應該在每次事務后釋放 CE/CS 引腳,以釋放總線以供其他設備使用它......

然而,經(jīng)過廣泛的測試,我可以說Sandeep Mistry 的 LoRa 庫以及mcp_can庫確實可以很好地結(jié)合使用。這兩個庫不會將單獨的 CE/CS 引腳拉低,并允許共享 spi 總線。

上面討論的 ST7789 模塊并非如此,硬件實際上一直在拉動引腳……

pYYBAGK0CSSAd6CkAADiW2kjVN4146.jpg

仔細看看PCB

讓我們仔細看看PCB。Ra-02 模塊 ( LoRa ) 占據(jù)了 PCB 左側(cè)的大部分區(qū)域,ATMEGA328P 在其右側(cè)。RA-02 被電平轉(zhuǎn)換器包圍,使用 BSS138 N 溝道 Mosfet 和 10k 電阻器(Q1 至 Q6、R1、R2、R3、R4、R5、R6、R8、R9、R10、R11、R12、R13 )

C1 和 C2 是 Ra-02 模塊的旁路電容

在左下角,我們有一個硬件重置按鈕,用于重置 ATMEGA328P,旁邊有一個黃色跳線(H1)。該跳線控制 CAN 總線的 120 歐姆鎮(zhèn)流電阻 (R17)。移除跳線將移除鎮(zhèn)流器。正下方是 CAN 連接器,標記為 U5,CH 為 CAN-H,CL 為 CAN-L 端口

U3 和 U4 與 R18、R19、X2、C16、C17 一起構(gòu)成 PCB 上的 CAN 組件。去耦由 C6、C7、C8 以及 C9 和 C12 提供(包括 ATMEGA328P 的去耦)

在 U1 (ATMEGA328P) 上方提供了一個 ICSP 編程頭,用于與 USPASP、AVRASP 或 Arduino 作為 ISP 和類似設備一起使用。

板上沒有提供 USB 到串行轉(zhuǎn)換器,可以通過 Arduino 引導加載程序為 Arduino NANO 加載串行上傳(以利用所有模擬輸入)。RxD、TxD 和 DTR 引腳在 PCB 的兩側(cè)分出,以及接入 3.3v、5v 和 GND 引腳。

提供一個直流電源插座。它可以接受高達 12v 的直流電壓,盡管我建議不要超過 7.2 伏,以免對 PCB(LDO1 和 LDO2)背面的 LDO 穩(wěn)壓器施加太大壓力。

poYBAGK0CSeAEbEKAAC24z2pUNs745.jpg

在上圖中,我已將 USB 轉(zhuǎn)串口轉(zhuǎn)換器以及 CAN-BUS 連接到設備。

原理圖,示意圖

詳細示意圖如下:

pYYBAGK0CSqAMxadAAB57UwwkhA164.png

表 1(上圖)負責 ATMEGA328p 及其支持電路,以及通過 LDO 穩(wěn)壓器提供的電源。

表 2(下)負責邏輯電平轉(zhuǎn)換器、RA-02 (Sx1278) LoRa 模塊以及 CAN-BUS 控制器和收發(fā)器電路。

pYYBAGK0CS2AMMAuAAB3xx4D-W4323.png

軟件和固件

為了測試這個模塊,我使用了Cory J Fowler 的 mcp_can 庫,用于 CAN-Bus 部分,

以及Sandeep Mistry 的 Arduino-LoRa

同時使用 LoRa 和 CAN 的組合示例將與項目的下一部分一起發(fā)布,即 CAN 繼電器模塊

代碼

https://github.com/sandeepmistry/arduino-LoRa

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費