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

評論