步驟1:準(zhǔn)備Arduino
由于我們將Arduino Uno用作ISP程序員,因此我們首先必須上傳一個(gè)草圖,該草圖將負(fù)責(zé)通過串行端口(USART)接收數(shù)據(jù),并且通過它們的SPI端口將其正確輸出到目標(biāo)微控制器。
因此,打開Arduino IDE,轉(zhuǎn)到File》 Examples》 ArduinoISP。
打開草圖后,在在文件頂部,對引腳名稱和連接進(jìn)行了一些注釋。下一步將解決這些問題,但請確保它們與本教程匹配。
連接您的arduino并單擊“上傳”按鈕。
第2步:將ArduinoISP編程器連接到AVR
對于第一步,您將需要以下材料:
》色的跳線(是的,很重要);
01紅色LED
01黃色LED
02個(gè)不同顏色的LED,您可以選擇(我們使用藍(lán)色和白色)
01 10uF電解電容器
04 200 ohm 1/8W電阻
這些其他材料取決于項(xiàng)目。在我們的情況下,我們將尋求一個(gè)使用8 MHz晶振和具有相同值的內(nèi)部時(shí)鐘的解決方案。因此:
01 8 MHz晶體
02 20 pF陶瓷電容器
根據(jù)圖片將所有組件連接在一起。
請注意,對于每個(gè)接收到晶體引線之一的路徑,都有一個(gè)陶瓷電容器將該路徑連接到地面路徑。
LED的陽極由他們的線索略有彎曲。注意白色LED,該白色LED將被加載的代碼閃爍。由于軟件的限制,不允許組件翻轉(zhuǎn),導(dǎo)致LED交叉。
電解電容器是極化的,因此請確保將較長的引線連接到RESET,而將較小的引線連接到RESET。連接到GND。
一個(gè)很好的建議是使跳線的顏色代碼與圖片中所示的顏色相同。這有助于進(jìn)一步的硬件調(diào)試。
步驟3:集成Atmel Studio
將ArduinoISP草圖加載到Arduino板上的Arduino IDE,這意味著您已經(jīng)在計(jì)算機(jī)中安裝了AVRDUDE。
AVRDUDE是一個(gè)命令行應(yīng)用程序,可在計(jì)算機(jī)端進(jìn)行固件加載過程。長話短說,AVRDUDE讀取由編譯和轉(zhuǎn)換過程生成的.hex文件,并將其排隊(duì),以便通過串行端口正確輸出。從那里,您的Uno板上的USB串行轉(zhuǎn)換器(USB端口旁邊的黑色正方形)從USB線讀取它,將其發(fā)送到Arduino Uno板上的ATMEGA,最后通過SPI將其輸出到目標(biāo)微控制器。/p》
Atmel Studio最酷的功能之一就是對外部工具(如AVRDUDE本身)的支持。基本上,Atmel Studio對此開放了足夠的定制空間,只需按一下按鈕,您就可以執(zhí)行完整的命令行程序調(diào)用,并將固件部署到目標(biāo)微控制器。
足夠了,
打開Atmel Studio 6。
轉(zhuǎn)到“工具”》“外部工具”
在字段中填充,如圖所示。在我的情況下,“命令”字段將使用您機(jī)器中的位置avrdude填充:C:\ Program Files(x86)\ Arduino \ hardware \ tools \ avr \ bin \ avrdude.exe
在“參數(shù)”字段中,填充以下行:
-U lfuse:w:0xe6:m -U hfuse:w:0xd9:m -e -v -patmega328p -carduino -PCOM2 -b19200 -D -Uflash:w:“ $(ProjectDir)Debug \ $(ItemFileName).hex”:i -C“ C:\ Program Files(x86)\ Arduino \ hardware \ tools \ avr \ etc \ avrdude.conf”
這些是AVRDUDE解釋并轉(zhuǎn)換為寫操作的固件部署參數(shù)或信息。
在這一行中,有三點(diǎn)需要更改:
您正在使用Arduino Uno的COM端口。為了檢查,請去設(shè)備管理器》 COM&LPT端口,并且您應(yīng)該看到列出的Arduino。
找到avrdude.conf的文件路徑。一個(gè)簡單的Windows搜索應(yīng)該可以幫助您解決這個(gè)問題。
保險(xiǎn)絲的位值,取決于您計(jì)劃項(xiàng)目配置的方式。只需更改-U lfuse:w:0xe6:m中間的十六進(jìn)制值和要配置的保險(xiǎn)絲名稱即可。
請注意帶有.hex的行部分在中間。這是AVRDUDE將在其中查找文件的參數(shù)中的引用。 $(ProjectDir)和$(ItemFileName)是bash腳本變量,一旦調(diào)用&Deploy動作,就會根據(jù)您的項(xiàng)目名稱和位置適當(dāng)替換。
其他參數(shù)只是AVRDUDE關(guān)于目標(biāo)的準(zhǔn)則微控制器以及在何處可以找到固件文件和AVRDUDE配置文件。
基本上,這一行參數(shù)使AVRDUDE執(zhí)行4個(gè)寫操作:
第一個(gè)寫低熔絲AVR
第二,高保險(xiǎn)絲
第三項(xiàng)操作是完全擦除閃存,以避免寫錯(cuò)誤
,第四項(xiàng)是使用固件寫入完整的閃存
有關(guān)參數(shù)的完整列表,請?jiān)L問:https://asensar.com/blog/2013/programming-arduino-using-avrdude/
步驟4:編譯并部署它!
所有配置一次完成,就該進(jìn)行測試了!
將一個(gè)簡單的LED閃爍固件寫入目標(biāo)微控制器,如
完成后,轉(zhuǎn)到“工具”》“部署”。
您應(yīng)該在輸出窗口的圖片上看到類似屏幕的內(nèi)容。這是AVRDUDE的詳細(xì)輸出,告訴您它執(zhí)行了什么。
首先顯示一些部署信息,然后顯示一些內(nèi)存統(tǒng)計(jì)信息,這些信息對于大型項(xiàng)目確實(shí)非常有用,最后輸出寫操作摘要。在這里,您可以觀察到前面提到的4個(gè)寫入中的3個(gè)。這兩個(gè)保險(xiǎn)絲加上閃光燈。
完成后,您已經(jīng)可以通過閃爍的LED看到代碼在工作!恭喜!
此配置對于您隨后的所有項(xiàng)目都是永久的,因此不必介意再次進(jìn)行所有操作。您可能會在項(xiàng)目之間更改的一件事是必須在上一步的arguments字段上重新配置保險(xiǎn)絲配置。
有關(guān)最佳保險(xiǎn)絲計(jì)算器,請?jiān)L問:http://www。 engbedded.com/fusecalc/
故障排除:
您可能會遇到AVRDUDE找不到或打開COM端口的情況。如果發(fā)生這種情況,請確保您沒有打開Arduino IDE。這將導(dǎo)致AVRDUDE在連接到Arduino IDE時(shí)嘗試聲明COM端口。為解決此問題,請關(guān)閉Arduino IDE,將開發(fā)板與計(jì)算機(jī)斷開連接,關(guān)閉Atmel Studio,重新連接開發(fā)板,然后重新啟動Atmel Studio 6。
責(zé)任編輯:wv
-
Arduino
+關(guān)注
關(guān)注
189文章
6494瀏覽量
190343 -
AVR微控制器
+關(guān)注
關(guān)注
0文章
11瀏覽量
6893
發(fā)布評論請先 登錄
微控制器讀取閃存中的軟件信息時(shí),軟件信息部署在哪里? 是 SRAM 嗎?
知名廠商微控制器(MCU)芯片手冊分享

將LPC1277控制器與SLRC610 RFID芯片之間的SPI通信連接起來?
新唐科技微控制器在觸控應(yīng)用方面的優(yōu)勢
dbForge Studio For SQL Server:用于有效開發(fā)的最佳SQL Server集成開發(fā)環(huán)境
SEGGER工具全面支持STM32N6微控制器開發(fā)
嵌入式系統(tǒng)中微控制器與微處理器的區(qū)別

ESP32 微控制器系列指南

將SimpleLink Wi-Fi主機(jī)驅(qū)動程序移植到意法半導(dǎo)體微控制器


評論