步驟1:刻錄引導(dǎo)加載程序之前準(zhǔn)備編程器
首先通過(guò)從github下載Adafruit ISP程序員來(lái)準(zhǔn)備程序員Arduino,在Arduino IDE中打開(kāi)文件“ ArduinoISP.ino”,并將其上傳到主機(jī)Arduino。
在Arduino中打開(kāi)“ ArduinoISP.ino” IDE(下載到Sketchbook文件夾中或復(fù)制/粘貼)
從“ Board”菜單中選擇您的Arduino電路板類型(在本示例中為 UNO )
從串行端口菜單,從Programmer菜單中選擇相應(yīng)的串行端口(例如/dev/ttyACM0 或 COM3 )
,確保您使用的是默認(rèn)的“ AvrISP mkII “選項(xiàng)
單擊上載。
將微控制器放在試驗(yàn)板上(我喜歡從1或11或21 。..開(kāi)始,以便簡(jiǎn)化計(jì)數(shù))。可以從點(diǎn)狀標(biāo)記識(shí)別微控制器的引腳1。將電源和地分別連接到引腳7和8以及引腳20和22。如圖所示,將微控制器和編程器連接起來(lái)
Arduino Digital 9和uC引腳9
帶有uC引腳1的Arduino Digital 10
帶有uC引腳17的Arduino Digital 11
帶有uC引腳18的Arduino Digital 12
帶有uC引腳的Arduino Digital 13 19
如果需要外部晶體,則Arduino數(shù)字引腳9會(huì)產(chǎn)生頻率來(lái)驅(qū)動(dòng)uC。
由于面包板上uC上的舊運(yùn)行軟件可能會(huì)設(shè)置一個(gè)ISP將其設(shè)置為高電平時(shí)(例如引腳13)將引腳向下?lián)軇?dòng),您可能希望在每條ICSP線上(引腳11、12、13)連接一個(gè)小電阻器
如果您使用的是 Leonardo 而不是UNO,需要在上載之前在ArduinoISP.ino中編輯以下行。
// #define RESET SS
#define RESET 10
,并且需要使用專用的ICSP引腳,如
步驟2:刻錄Bootloader(自定義Optiboot5為8MHz)
正在刻錄引導(dǎo)加載程序嗎?
下載我的自定義Arduino硬件定義(自定義板和optiboot5的自定義版本,運(yùn)行在8MHz且buad-rate為38400)將存檔提取到您的Sketchbook文件夾中(您應(yīng)該有一個(gè)文件夾,用于看起來(lái)像“ 速寫本/硬件/我的主板”)。
重新啟動(dòng)Arduino IDE時(shí),您應(yīng)該會(huì)看到一個(gè)名為“ [Optiboot5] Arduino Uno 8MHz ”的新板,并將編程器更改為“ Arduino As ISP ”,然后從“ 工具”菜單中單擊刻錄引導(dǎo)程序。您應(yīng)該看到編程器中的TX/RX閃爍約一分鐘,直到通過(guò)觀察TX/RX LED或查看Arduino IDE底部的狀態(tài)欄完成刻錄為止。
現(xiàn)在,我們的新產(chǎn)品裸露的Arduino(面包板上的一個(gè))已經(jīng)準(zhǔn)備就緒。
自定義板中包含什么并進(jìn)行構(gòu)建?
關(guān)于板的定義,它與標(biāo)準(zhǔn)UNO相同,除了:
它使用不同的時(shí)鐘速度(8MHz而不是16MHz)
它設(shè)置了不同的保險(xiǎn)絲(3字節(jié)內(nèi)存)來(lái)激活內(nèi)部8MHz時(shí)鐘(稱為時(shí)鐘源)。
它使用38400關(guān)于bootloader,buad-rate(具有0.2%的誤差幅度)而不是默認(rèn)的115200(具有7.8%的誤差幅度)
,我只是從optboot5中抓取了它,并僅使用非默認(rèn)配置(未更改任何代碼行)以支持上述要求
步驟3:使用USB/TTL上傳草圖
要確保您的引導(dǎo)程序正常運(yùn)行,只需重置b提示您,應(yīng)該看到插針13上的LED閃爍約3次。如果沒(méi)有發(fā)生,請(qǐng)返回前面的步驟并進(jìn)行修復(fù)。
您可以以不到5美元的價(jià)格購(gòu)買便宜的USB/TTL模塊,這些模塊支持自動(dòng)重置(這意味著它應(yīng)該暴露DTR或RTS引腳)。只需確保不要將Arduino REST或RTS與RST混淆(后者是沒(méi)有用的)。
只需通過(guò)從USB/TTL連接VCC和GND來(lái)為開(kāi)發(fā)板供電即可。并通過(guò)一個(gè)100納米法拉電容將DTR或RTS引腳從USB/TTL模塊連接到微控制器中的上拉RESET引腳(引腳1)(與DTR/RTS相連,另一個(gè)在引腳1上)。并將微控制器上的TX/RX與模塊中的相應(yīng)模塊連接。
打開(kāi)任何草圖(例如Blink),選擇右板(我們的自定義Optiboot5 Uno,頻率為8MHz),右串行端口(例如/dev/ttyUSB0或COM4)和正確的編程器(原始默認(rèn)設(shè)置為“ AVRISP mkII”,而不是“ Arduino as ISP”),然后單擊上載。
如果找不到正確的串行端口您可能要等待操作系統(tǒng)識(shí)別它或?yàn)閁SB/TTL模塊安裝驅(qū)動(dòng)程序。有時(shí)您可能需要重新啟動(dòng)Arduino IDE才能顯示新內(nèi)容。
步驟4:將UNO用作USB到TTL串行
您可以從Arduino UNO上移除微控制器(將其貼上標(biāo)簽并放在一旁,因?yàn)樗哂幸龑?dǎo)加載程序并且需要外部振蕩器),然后使用數(shù)字0和1通過(guò)TX和RX提供與計(jì)算機(jī)的串行通信。在這種情況下,UNO中的USB-TTL芯片就可以完成任務(wù),在UNO的先前版本中為FTDI,但在最新版本中,它是具有開(kāi)放源代碼固件的USB支持的小型AVR微控制器Atmega16U2。
第5步:為電路板供電
調(diào)節(jié)電壓
您可以使用1.8-5.5v之間的電壓為Atmega328p-pu供電(根據(jù)數(shù)據(jù)表),因此您可以使用兩節(jié)AA大小的電池(即3.0v)為其供電,除非您有其他需要不同電壓的板卡/傳感器,否則這沒(méi)問(wèn)題。
許多應(yīng)用需要5v您可以從UNO或USB/TTL模塊獲得該引腳,因?yàn)樗鼈兙哂锌商峁?v穩(wěn)壓的引腳。
不使用UNO或USB/TTL模塊時(shí),您可以從任何USB充電器獲得穩(wěn)定的5V穩(wěn)壓電壓,如果您沒(méi)有USB模塊/插座,則可以通過(guò)回收?qǐng)D中所示的任何適配器來(lái)制造自己的產(chǎn)品。
獲得3v3穩(wěn)壓電壓
某些應(yīng)用取決于兩個(gè)電壓(為5v電源供電)主要uC和某些小型傳感器或模塊的電壓為3v3)。與上一步一樣,您可以在Arduino開(kāi)發(fā)板上使用3v3引腳,或者確保選擇同時(shí)提供5v和3v3的USB/TTL模塊。
使用自己的基于齊納穩(wěn)壓器的穩(wěn)壓器
您可能會(huì)考慮使用3個(gè)AA電池(4.5v)和一個(gè)分壓電阻器可提供3.3v電壓,我們不能因?yàn)?a href="http://www.www27dydycom.cn/tags/電流/" target="_blank">電流(以mA為單位)不是恒定的,因?yàn)檫\(yùn)行在3.3v上的模塊或傳感器很可能具有有源組件和不同狀態(tài)。
齊納二極管可以用作最簡(jiǎn)單,最便宜的穩(wěn)壓器,尤其是當(dāng)我們必須處理小電流量時(shí)。處于負(fù)偏置狀態(tài)的齊納·多德斯(Zener Doides)將在低于額定電壓(3.3v通常寫為3v3)時(shí)不允許電流流過(guò),而在超出該限制的情況下則允許所有電流流過(guò),這是穩(wěn)壓器允許的范圍。您只需要一個(gè)非常小的電阻(如果您的電阻值較小,則并聯(lián)一些電阻)即可消耗過(guò)多的電壓。
因此,如果我們有3節(jié)AA電池(4.5v),而我們想提供3.3某個(gè)模塊的電壓為4.5v,面包板的電壓為4.5v,我們可以使用單個(gè)3v3齊納二極管,并在兩端之間采用穩(wěn)壓的3.3v。如果我們使用10歐姆電阻器,則可以提供最高120 mA的功率(因?yàn)榱鹘?jīng)串聯(lián)的電流會(huì)導(dǎo)致電阻器邊緣之間的V/R和V超出穩(wěn)壓器的比例,即4.5-3.3 = 1.2,因此1.2/10 = 0.120A = 120mA)
因此,如果我們有4節(jié)AA電池(6v),并且可以使用兩個(gè)齊納二極管提供5.0v和3.3v的購(gòu)買,一個(gè)顯然是3v3,另一個(gè)是2v7(這是5v-3.3v = 2.7v),并用一個(gè)小電阻(例如10 ohm)串聯(lián)連接,在這種情況下,我們可以提供高達(dá)100 mA的電流。 (過(guò)電壓是6.0-5.0 = 1.0,所以I = V/R = 1.0/10 = 0.1A = 100mA)
-
Arduino
+關(guān)注
關(guān)注
190文章
6498瀏覽量
192121 -
面包板
+關(guān)注
關(guān)注
4文章
299瀏覽量
18151
發(fā)布評(píng)論請(qǐng)先 登錄
PCB 裸板烘干除潮要求及形變(平面度)如何控制?
《ESP32S3 Arduino開(kāi)發(fā)指南》第二章 Arduino基礎(chǔ)知識(shí)
對(duì)于電源模塊裸板的解讀
Jumperless V5:無(wú)需跳線的面包板

晶體管電路設(shè)計(jì)與制作
自己設(shè)計(jì)的Arduino UNO R3主控板原理圖+PCB源文件(可直接打樣)
基于Arduino的串口通信項(xiàng)目
面包板常見(jiàn)問(wèn)題的解決方法

評(píng)論