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