資料介紹
PCB圖如下:
描述
具有集成 LoRa 和 CAN 總線的 ATMEGA328P 模塊
具有集成 LoRa 和 CAN-BUS 的 ATMEGA328P 模塊
介紹
為了完善我的 LoRa 遙測系統(tǒng),我已經(jīng)完成了很多原型。這篇文章將重點(diǎn)介紹下一個(gè)節(jié)點(diǎn)設(shè)計(jì)。由于我將部署系統(tǒng)的區(qū)域非常大,但邊界圍欄線大致呈方形,我決定嘗試減少覆蓋整個(gè)區(qū)域所需的 LoRa Radio 節(jié)點(diǎn)的數(shù)量。這為利用 CAN-BUS 將僅傳感器節(jié)點(diǎn)連接到無線電節(jié)點(diǎn)并讓它們報(bào)告異常狀態(tài)以及來自無線電節(jié)點(diǎn)的請求提供了機(jī)會(huì)。
因此,該設(shè)備將用作 LoRa 到 CAN-BUS 網(wǎng)關(guān),具有一些本地自動(dòng)化來控制向主站傳輸數(shù)據(jù)。這個(gè)概念也可以適用于其他領(lǐng)域,例如家庭自動(dòng)化或工業(yè)環(huán)境。
在該設(shè)備的核心,我堅(jiān)持使用多功能 ATMEGA328P,排除當(dāng)前的芯片短缺和當(dāng)前的高價(jià),它是一款非常便宜的芯片,具有許多經(jīng)過良好測試的庫,并且學(xué)習(xí)曲線相對較低,主要是由于它在 Arduino 生態(tài)系統(tǒng)中的廣泛使用。
LoRa 組件由 AI-Tinker(非贊助)的 RA-02 甚至 RA-01H 模塊處理。正如我們在之前的原型中看到的那樣,該設(shè)備需要使用邏輯電平轉(zhuǎn)換器,因?yàn)樗唤邮?3.3v 邏輯電平。雖然如果我從 3.3v 為 ATMEGA328P 供電,我可以擺脫這些問題,但它會(huì)產(chǎn)生兩個(gè)問題,其中一個(gè)仍然會(huì)強(qiáng)制使用電平轉(zhuǎn)換器......
我選擇以 16Mhz 運(yùn)行 ATMEGA328P,這基本上迫使我使用 5v 為芯片供電。除非您非常徹底地閱讀了一些數(shù)據(jù)表,否則第二個(gè)原因并不那么明顯......
CAN 總線組件由 MCP2515 獨(dú)立 SPI 轉(zhuǎn) CAN 控制器以及 TJA1050 CAN 總線收發(fā)器處理。
這就是事情變得有趣的地方...... MCP2515 可以在 3.3v 上運(yùn)行,但 TJA1050 是僅 5v 的設(shè)備。因此,理論上我可以只在 MCP2515 和 TJA1050 之間使用邏輯電平轉(zhuǎn)換器,同時(shí)在 3.3v 上運(yùn)行電路的其余部分......
鑒于我寧愿在 16Mhz 上運(yùn)行 ATMEGA328P,而且我的 LoRa 無線電模塊電路及其邏輯電平轉(zhuǎn)換器電路工作得非常好,我決定不改變這一點(diǎn),并保持 CAN 總線在 5v 下運(yùn)行一路走來,因?yàn)槲胰匀槐仨殲榇四康脑?PCB 上使用 5v 穩(wěn)壓器。
LoRa 和 CAN BUS 模塊的 IO 連接
兩個(gè)集成組件(Lora 和 CAN)都是 SPI 設(shè)備。這意味著它們共享公共 SCK、MISO 和 MOSI 線(在 ATMEGA328P 上分別由引腳 D13、D12 和 D11 提供。然后通過使用 CE 引腳進(jìn)一步選擇單獨(dú)的 SPI 設(shè)備進(jìn)行操作,每個(gè)設(shè)備一個(gè)唯一的引腳, MCU將其拉低以向設(shè)備指示它應(yīng)該注意在SPI總線上傳輸?shù)臄?shù)據(jù)......
LoRa 和 CAN 都使用其他引腳,LoRa 需要一個(gè)連接到 D9 的復(fù)位引腳,一個(gè)連接到 D10 的 CS/CE 引腳以及一個(gè)連接到 D2 的硬件中斷引腳。(請注意,這是與 Sandeep Mistry 的 LoRa 庫一起使用的。Radiolib 庫需要一個(gè)額外的引腳,通常連接到 LoRa 模塊上的 DIO1。該設(shè)備在其當(dāng)前布局中不提供對這些引腳的訪問,因此您只能使用它與 Sandeep Mistry 圖書館,至少現(xiàn)在......)
CAN 模塊在 D4 使用 CE/CS 引腳,在 D6 使用 IRQ 引腳,雖然不是硬件中斷引腳,但確實(shí)具有 PCINT 功能。
引腳 D10、D9 和 D2 未斷開以供用戶訪問。雖然我決定允許訪問 D4 和 D6 以及 SPI 總線 D11、D12、D13,以允許與邏輯分析儀連接,或?qū)⑵渌?SPI 設(shè)備添加到總線......
這給我們帶來了一個(gè)非常有趣的觀點(diǎn)……這兩個(gè) SPI 設(shè)備真的可以一起玩嗎?我所說的“一起玩得很好”是什么意思?
為了回答這個(gè)問題,我們不得不先看一些理論,以及了解 SPI 和 I2C 之間的根本區(qū)別......
SPI和I2C的區(qū)別
我們大多數(shù)人都會(huì)非常熟悉 I2C,因?yàn)樗且环N非常常見的協(xié)議,用于將傳感器連接到微控制器。它僅由兩條 IO 線組成,SDA 用于數(shù)據(jù),SCL 用于時(shí)鐘。總線上的每個(gè)設(shè)備都有自己的內(nèi)置地址,就像 PCF8574 IO 擴(kuò)展器一樣,該地址可以在 0x20h 和 0x27h 之間選擇。所有設(shè)備共享這些公共數(shù)據(jù)線,并且只有在主控制器專門尋址時(shí)才會(huì)響應(yīng)......除非您不小心將具有相同地址的兩個(gè)設(shè)備放在同一總線上,(如果這甚至可以工作),沒有錯(cuò)誤的設(shè)備會(huì)響應(yīng)任何數(shù)據(jù)請求的方式......
另一方面,SPI 以完全不同的原理運(yùn)行,使其比 I2c 快很多倍,有源設(shè)備同時(shí)發(fā)送和接收數(shù)據(jù)...... SPI 也稱為四線協(xié)議。每個(gè)設(shè)備至少有 4 條數(shù)據(jù)線,分別是 SCK(時(shí)鐘)、MOSI(用于從主設(shè)備傳輸?shù)綇脑O(shè)備的數(shù)據(jù))、MISO(用于從從設(shè)備傳輸?shù)街髟O(shè)備的數(shù)據(jù))和一個(gè) CE 或 CS(芯片選擇 ) 引腳。
SCK、MISO 和 MOSI 對所有設(shè)備都是通用的,這意味著它在所有設(shè)備之間共享。CE/CS 是每個(gè)設(shè)備的唯一引腳,這意味著如果總線上有四個(gè) SPI 設(shè)備,則必須有四個(gè)單獨(dú)的 CE/CS 引腳!
如果主機(jī)將其各自的 CE/CS 引腳拉低,則設(shè)備將或者更確切地說應(yīng)該只響應(yīng) SPI-BUS 上的數(shù)據(jù)。現(xiàn)在你應(yīng)該很快就會(huì)明白,這會(huì)很快變成一個(gè)非常非常復(fù)雜的混亂。
讓我們舉一個(gè)很好的例子。ST7789 SPI顯示模塊,有便宜的版本,在速賣通和其他網(wǎng)上商店都有賣。我假設(shè)這個(gè)特定模塊是為了使其更易于使用,默認(rèn)情況下,CE/CS 引腳在內(nèi)部被拉低到地……那你可能會(huì)問呢?這有什么問題,因?yàn)樗鼮槟?jié)省了一個(gè) IO 引腳?
事實(shí)上這是非常錯(cuò)誤的,如果您曾經(jīng)嘗試在 SPI 總線上使用其中一個(gè)顯示器與其他 SPI 設(shè)備一起使用,您將很快發(fā)現(xiàn)這一事實(shí)......什么都不起作用,或者只有顯示器可以工作(如果你是幸運(yùn)的)
但為什么?
將 CE/CS 拉低,向芯片發(fā)出信號,表明它應(yīng)該響應(yīng)公共 SCK、MISO 和 MOSI 線上的指令。將引腳內(nèi)部拉低,從而迫使該芯片始終響應(yīng),即使它不應(yīng)該響應(yīng)。因此用垃圾污染了整個(gè) SPI-BUS...
問題的答案
在這個(gè)非常冗長的解釋之后,這仍然是非常基本的,是時(shí)候回到我們最初的問題了:
Sx127x ( RA-02 ) 模塊和 MCP2515 控制器能否在同一總線上運(yùn)行良好?答案并不簡單,因?yàn)樗鼩w結(jié)為您使用哪些庫......
請記住,庫必須拉低它要與之通信的設(shè)備的 CE/CS 引腳。一些庫錯(cuò)誤地認(rèn)為它們是唯一在使用的庫,并忽略了一個(gè)簡單的事實(shí),即它們應(yīng)該在每次事務(wù)后釋放 CE/CS 引腳,以釋放總線以供其他設(shè)備使用它......
然而,經(jīng)過廣泛的測試,我可以說Sandeep Mistry 的 LoRa 庫以及mcp_can庫確實(shí)可以很好地結(jié)合使用。這兩個(gè)庫不會(huì)將單獨(dú)的 CE/CS 引腳拉低,并允許共享 spi 總線。
上面討論的 ST7789 模塊并非如此,硬件實(shí)際上一直在拉動(dòng)引腳……
仔細(xì)看看PCB
讓我們仔細(xì)看看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 模塊的旁路電容
在左下角,我們有一個(gè)硬件重置按鈕,用于重置 ATMEGA328P,旁邊有一個(gè)黃色跳線(H1)。該跳線控制 CAN 總線的 120 歐姆鎮(zhèn)流電阻 (R17)。移除跳線將移除鎮(zhèn)流器。正下方是 CAN 連接器,標(biāo)記為 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) 上方提供了一個(gè) ICSP 編程頭,用于與 USPASP、AVRASP 或 Arduino 作為 ISP 和類似設(shè)備一起使用。
板上沒有提供 USB 到串行轉(zhuǎn)換器,可以通過 Arduino 引導(dǎo)加載程序?yàn)?Arduino NANO 加載串行上傳(以利用所有模擬輸入)。RxD、TxD 和 DTR 引腳在 PCB 的兩側(cè)分出,以及接入 3.3v、5v 和 GND 引腳。
提供一個(gè)直流電源插座。它可以接受高達(dá) 12v 的直流電壓,盡管我建議不要超過 7.2 伏,以免對 PCB(LDO1 和 LDO2)背面的 LDO 穩(wěn)壓器施加太大壓力。
在上圖中,我已將 USB 轉(zhuǎn)串口轉(zhuǎn)換器以及 CAN-BUS 連接到設(shè)備。
原理圖,示意圖
詳細(xì)示意圖如下:
表 1(上圖)負(fù)責(zé) ATMEGA328p 及其支持電路,以及通過 LDO 穩(wěn)壓器提供的電源。
表 2(下)負(fù)責(zé)邏輯電平轉(zhuǎn)換器、RA-02 (Sx1278) LoRa 模塊以及 CAN-BUS 控制器和收發(fā)器電路。
軟件和固件
為了測試這個(gè)模塊,我使用了Cory J Fowler 的 mcp_can 庫,用于 CAN-Bus 部分,
以及Sandeep Mistry 的 Arduino-LoRa
同時(shí)使用 LoRa 和 CAN 的組合示例將與項(xiàng)目的下一部分一起發(fā)布,即 CAN 繼電器模塊
代碼
https://github.com/sandeepmistry/arduino-LoRa
- 基于ATmega328P微控制器的Ardu鍵盤
- 基于ATmega328P的DIY macropad
- 簡單的獨(dú)立ATMega328p微控制器
- 如何通過ATMEGA328P AU(SMD)制作廣告面板
- 帶ATMEGA328P的定制LoRa基礎(chǔ)模塊
- Atmega328P脈寬調(diào)制控制器
- 基于ATmega328P的電感計(jì) 6次下載
- 帶有ATMEGA328P設(shè)備的Arduino Uno門鈴項(xiàng)目
- 使用ATmega328p的迷你示波器
- 用于無線電發(fā)射器HC12的帶有ATmega328p的PCB
- 基于Atmega328P的PWM控制器卡
- 最低系統(tǒng)ATmega328p開源
- Atmega328P不帶Arduino PCB設(shè)計(jì)
- 1469416411ATmega328P中文翻譯資料 414次下載
- Arduino Atmega328P開發(fā)板軟件下載與安裝 130次下載
- can總線隔離模塊的作用 764次閱讀
- CAN總線的特點(diǎn)和FPGA實(shí)現(xiàn) 733次閱讀
- 如何利用ATmega328P構(gòu)建一個(gè)可靠的LoRa設(shè)備 5274次閱讀
- 如何為ATmega328P刷bootloader? 6919次閱讀
- LoRa通信模塊的特點(diǎn)及缺點(diǎn) 2w次閱讀
- 基于CAN總線接口和模塊控制器實(shí)現(xiàn)組合機(jī)床電控通信系統(tǒng)的設(shè)計(jì) 1007次閱讀
- 工業(yè)控制中的CAN總線接口模塊硬件設(shè)計(jì)原理解析 8673次閱讀
- CAN總線轉(zhuǎn)CANopen方案推薦 8078次閱讀
- 如何使用CAN總線中繼模塊進(jìn)行CAN總線節(jié)點(diǎn)擴(kuò)容的實(shí)現(xiàn)案例概述 6664次閱讀
- CAN總線協(xié)議是什么?CAN總線協(xié)議有哪些?CAN總線協(xié)議知識分析 7.4w次閱讀
- 基于FPGA的VME總線和CAN總線之間的傳輸轉(zhuǎn)換方案設(shè)計(jì) 3596次閱讀
- 為什么要用光纖CAN轉(zhuǎn)換器_基于光纖轉(zhuǎn)CAN模塊的CAN總線通信改造 7724次閱讀
- CAN總線概述及應(yīng)用_CAN總線的應(yīng)用案例(汽車CAN總線應(yīng)用) 3.4w次閱讀
- CAN總線定義與CAN協(xié)議的基本概念 3.1w次閱讀
- can總線結(jié)構(gòu)和原理 3.1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論
查看更多