資料介紹
PCB圖如下:
描述
具有集成 LoRa 和 CAN 總線的 ATMEGA328P 模塊
具有集成 LoRa 和 CAN-BUS 的 ATMEGA328P 模塊
介紹
為了完善我的 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 模塊處理。正如我們在之前的原型中看到的那樣,該設備需要使用邏輯電平轉換器,因為它只接受 3.3v 邏輯電平。雖然如果我從 3.3v 為 ATMEGA328P 供電,我可以擺脫這些問題,但它會產(chǎn)生兩個問題,其中一個仍然會強制使用電平轉換器......
我選擇以 16Mhz 運行 ATMEGA328P,這基本上迫使我使用 5v 為芯片供電。除非您非常徹底地閱讀了一些數(shù)據(jù)表,否則第二個原因并不那么明顯......
CAN 總線組件由 MCP2515 獨立 SPI 轉 CAN 控制器以及 TJA1050 CAN 總線收發(fā)器處理。
這就是事情變得有趣的地方...... MCP2515 可以在 3.3v 上運行,但 TJA1050 是僅 5v 的設備。因此,理論上我可以只在 MCP2515 和 TJA1050 之間使用邏輯電平轉換器,同時在 3.3v 上運行電路的其余部分......
鑒于我寧愿在 16Mhz 上運行 ATMEGA328P,而且我的 LoRa 無線電模塊電路及其邏輯電平轉換器電路工作得非常好,我決定不改變這一點,并保持 CAN 總線在 5v 下運行一路走來,因為我仍然必須為此目的在 PCB 上使用 5v 穩(wěn)壓器。
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,以允許與邏輯分析儀連接,或將其他 SPI 設備添加到總線......
這給我們帶來了一個非常有趣的觀點……這兩個 SPI 設備真的可以一起玩嗎?我所說的“一起玩得很好”是什么意思?
為了回答這個問題,我們不得不先看一些理論,以及了解 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...
問題的答案
在這個非常冗長的解釋之后,這仍然是非常基本的,是時候回到我們最初的問題了:
Sx127x ( RA-02 ) 模塊和 MCP2515 控制器能否在同一總線上運行良好?答案并不簡單,因為它歸結為您使用哪些庫......
請記住,庫必須拉低它要與之通信的設備的 CE/CS 引腳。一些庫錯誤地認為它們是唯一在使用的庫,并忽略了一個簡單的事實,即它們應該在每次事務后釋放 CE/CS 引腳,以釋放總線以供其他設備使用它......
然而,經(jīng)過廣泛的測試,我可以說Sandeep Mistry 的 LoRa 庫以及mcp_can庫確實可以很好地結合使用。這兩個庫不會將單獨的 CE/CS 引腳拉低,并允許共享 spi 總線。
上面討論的 ST7789 模塊并非如此,硬件實際上一直在拉動引腳……
仔細看看PCB
讓我們仔細看看PCB。Ra-02 模塊 ( LoRa ) 占據(jù)了 PCB 左側的大部分區(qū)域,ATMEGA328P 在其右側。RA-02 被電平轉換器包圍,使用 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 一起構成 PCB 上的 CAN 組件。去耦由 C6、C7、C8 以及 C9 和 C12 提供(包括 ATMEGA328P 的去耦)
在 U1 (ATMEGA328P) 上方提供了一個 ICSP 編程頭,用于與 USPASP、AVRASP 或 Arduino 作為 ISP 和類似設備一起使用。
板上沒有提供 USB 到串行轉換器,可以通過 Arduino 引導加載程序為 Arduino NANO 加載串行上傳(以利用所有模擬輸入)。RxD、TxD 和 DTR 引腳在 PCB 的兩側分出,以及接入 3.3v、5v 和 GND 引腳。
提供一個直流電源插座。它可以接受高達 12v 的直流電壓,盡管我建議不要超過 7.2 伏,以免對 PCB(LDO1 和 LDO2)背面的 LDO 穩(wěn)壓器施加太大壓力。
在上圖中,我已將 USB 轉串口轉換器以及 CAN-BUS 連接到設備。
原理圖,示意圖
詳細示意圖如下:
表 1(上圖)負責 ATMEGA328p 及其支持電路,以及通過 LDO 穩(wěn)壓器提供的電源。
表 2(下)負責邏輯電平轉換器、RA-02 (Sx1278) LoRa 模塊以及 CAN-BUS 控制器和收發(fā)器電路。
軟件和固件
為了測試這個模塊,我使用了Cory J Fowler 的 mcp_can 庫,用于 CAN-Bus 部分,
以及Sandeep Mistry 的 Arduino-LoRa
同時使用 LoRa 和 CAN 的組合示例將與項目的下一部分一起發(fā)布,即 CAN 繼電器模塊
代碼
https://github.com/sandeepmistry/arduino-LoRa
- 基于ATmega328P微控制器的Ardu鍵盤
- 基于ATmega328P的DIY macropad
- 簡單的獨立ATMega328p微控制器
- 如何通過ATMEGA328P AU(SMD)制作廣告面板
- 帶ATMEGA328P的定制LoRa基礎模塊
- Atmega328P脈寬調(diào)制控制器
- 基于ATmega328P的電感計 6次下載
- 帶有ATMEGA328P設備的Arduino Uno門鈴項目
- 使用ATmega328p的迷你示波器
- 用于無線電發(fā)射器HC12的帶有ATmega328p的PCB
- 基于Atmega328P的PWM控制器卡
- 最低系統(tǒng)ATmega328p開源
- Atmega328P不帶Arduino PCB設計
- 1469416411ATmega328P中文翻譯資料 414次下載
- Arduino Atmega328P開發(fā)板軟件下載與安裝 130次下載
- can總線隔離模塊的作用 764次閱讀
- CAN總線的特點和FPGA實現(xiàn) 733次閱讀
- 如何利用ATmega328P構建一個可靠的LoRa設備 5274次閱讀
- 如何為ATmega328P刷bootloader? 6919次閱讀
- LoRa通信模塊的特點及缺點 2w次閱讀
- 基于CAN總線接口和模塊控制器實現(xiàn)組合機床電控通信系統(tǒng)的設計 1007次閱讀
- 工業(yè)控制中的CAN總線接口模塊硬件設計原理解析 8673次閱讀
- CAN總線轉CANopen方案推薦 8078次閱讀
- 如何使用CAN總線中繼模塊進行CAN總線節(jié)點擴容的實現(xiàn)案例概述 6664次閱讀
- CAN總線協(xié)議是什么?CAN總線協(xié)議有哪些?CAN總線協(xié)議知識分析 7.4w次閱讀
- 基于FPGA的VME總線和CAN總線之間的傳輸轉換方案設計 3596次閱讀
- 為什么要用光纖CAN轉換器_基于光纖轉CAN模塊的CAN總線通信改造 7724次閱讀
- CAN總線概述及應用_CAN總線的應用案例(汽車CAN總線應用) 3.4w次閱讀
- CAN總線定義與CAN協(xié)議的基本概念 3.1w次閱讀
- can總線結構和原理 3.1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多