資料介紹
PCB圖如下:
描述
具有集成 LoRa 和 CAN 總線的 ATMEGA328P 模塊
具有集成 LoRa 和 CAN-BUS 的 ATMEGA328P 模塊
介紹
為了完善我的 LoRa 遙測(cè)系統(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)的請(qǐng)求提供了機(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)過良好測(cè)試的庫,并且學(xué)習(xí)曲線相對(duì)較低,主要是由于它在 Arduino 生態(tài)系統(tǒng)中的廣泛使用。
LoRa 組件由 AI-Tinker(非贊助)的 RA-02 甚至 RA-01H 模塊處理。正如我們?cè)谥暗脑椭锌吹降哪菢樱撛O(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 的硬件中斷引腳。(請(qǐng)注意,這是與 Sandeep Mistry 的 LoRa 庫一起使用的。Radiolib 庫需要一個(gè)額外的引腳,通常連接到 LoRa 模塊上的 DIO1。該設(shè)備在其當(dāng)前布局中不提供對(duì)這些引腳的訪問,因此您只能使用它與 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ù)請(qǐng)求的方式......
另一方面,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 對(duì)所有設(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ā)出信號(hào),表明它應(yīng)該響應(yīng)公共 SCK、MISO 和 MOSI 線上的指令。將引腳內(nèi)部拉低,從而迫使該芯片始終響應(yīng),即使它不應(yīng)該響應(yīng)。因此用垃圾污染了整個(gè) SPI-BUS...
問題的答案
在這個(gè)非常冗長(zhǎng)的解釋之后,這仍然是非常基本的,是時(shí)候回到我們最初的問題了:
Sx127x ( RA-02 ) 模塊和 MCP2515 控制器能否在同一總線上運(yùn)行良好?答案并不簡(jiǎn)單,因?yàn)樗鼩w結(jié)為您使用哪些庫......
請(qǐng)記住,庫必須拉低它要與之通信的設(shè)備的 CE/CS 引腳。一些庫錯(cuò)誤地認(rèn)為它們是唯一在使用的庫,并忽略了一個(gè)簡(jiǎn)單的事實(shí),即它們應(yīng)該在每次事務(wù)后釋放 CE/CS 引腳,以釋放總線以供其他設(shè)備使用它......
然而,經(jīng)過廣泛的測(cè)試,我可以說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 伏,以免對(duì) 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ā)器電路。
軟件和固件
為了測(cè)試這個(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
- 簡(jiǎn)單的獨(dú)立ATMega328p微控制器
- 如何通過ATMEGA328P AU(SMD)制作廣告面板
- 帶ATMEGA328P的定制LoRa基礎(chǔ)模塊
- Atmega328P脈寬調(diào)制控制器
- 基于ATmega328P的電感計(jì) 6次下載
- 帶有ATMEGA328P設(shè)備的Arduino Uno門鈴項(xiàng)目
- 使用ATmega328p的迷你示波器
- 基于Atmega328P的PWM控制器卡
- 使用ATmega328P和ESP8266 12F的定制控制單元
- 最低系統(tǒng)ATmega328p開源
- Atmega328P不帶Arduino PCB設(shè)計(jì)
- 1469416411ATmega328P中文翻譯資料 414次下載
- Arduino Atmega328P開發(fā)板軟件下載與安裝 132次下載
- can總線隔離模塊的作用 1687次閱讀
- CAN總線的特點(diǎn)和FPGA實(shí)現(xiàn) 1012次閱讀
- 如何利用ATmega328P構(gòu)建一個(gè)可靠的LoRa設(shè)備 5495次閱讀
- 如何為ATmega328P刷bootloader? 7973次閱讀
- LoRa通信模塊的特點(diǎn)及缺點(diǎn) 2.1w次閱讀
- 基于CAN總線接口和模塊控制器實(shí)現(xiàn)組合機(jī)床電控通信系統(tǒng)的設(shè)計(jì) 1174次閱讀
- 工業(yè)控制中的CAN總線接口模塊硬件設(shè)計(jì)原理解析 9015次閱讀
- CAN總線轉(zhuǎn)CANopen方案推薦 8366次閱讀
- 如何使用CAN總線中繼模塊進(jìn)行CAN總線節(jié)點(diǎn)擴(kuò)容的實(shí)現(xiàn)案例概述 6849次閱讀
- CAN總線協(xié)議是什么?CAN總線協(xié)議有哪些?CAN總線協(xié)議知識(shí)分析 7.4w次閱讀
- 基于FPGA的VME總線和CAN總線之間的傳輸轉(zhuǎn)換方案設(shè)計(jì) 3768次閱讀
- 為什么要用光纖CAN轉(zhuǎn)換器_基于光纖轉(zhuǎn)CAN模塊的CAN總線通信改造 7882次閱讀
- CAN總線概述及應(yīng)用_CAN總線的應(yīng)用案例(汽車CAN總線應(yīng)用) 3.4w次閱讀
- CAN總線定義與CAN協(xié)議的基本概念 3.2w次閱讀
- can總線結(jié)構(gòu)和原理 3.1w次閱讀
下載排行
本周
- 1DD3118電路圖紙資料
- 0.08 MB | 1次下載 | 免費(fèi)
- 2AD庫封裝庫安裝教程
- 0.49 MB | 1次下載 | 免費(fèi)
- 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
- 1.12 MB | 1次下載 | 免費(fèi)
- 4網(wǎng)絡(luò)安全從業(yè)者入門指南
- 2.91 MB | 1次下載 | 免費(fèi)
- 5DS-CS3A P00-CN-V3
- 618.05 KB | 1次下載 | 免費(fèi)
- 6海川SM5701規(guī)格書
- 1.48 MB | 次下載 | 免費(fèi)
- 7H20PR5電磁爐IGBT功率管規(guī)格書
- 1.68 MB | 次下載 | 1 積分
- 8IP防護(hù)等級(jí)說明
- 0.08 MB | 次下載 | 免費(fèi)
本月
- 1貼片三極管上的印字與真實(shí)名稱的對(duì)照表詳細(xì)說明
- 0.50 MB | 103次下載 | 1 積分
- 2涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 3錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 43次下載 | 1 積分
- 4錦銳CA51F005 SDK開發(fā)包
- 19.47 MB | 19次下載 | 1 積分
- 5PCB的EMC設(shè)計(jì)指南
- 2.47 MB | 16次下載 | 1 積分
- 6HC05藍(lán)牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下載 | 免費(fèi)
- 8蘋果iphone 11電路原理圖
- 4.98 MB | 6次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191390次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評(píng)論