步驟1:準(zhǔn)備Arduino


由于我們將Arduino Uno用作ISP程序員,因此我們首先必須上傳一個(gè)草圖,該草圖將負(fù)責(zé)通過(guò)串行端口(USART)接收數(shù)據(jù),并且通過(guò)它們的SPI端口將其正確輸出到目標(biāo)微控制器。
因此,打開Arduino IDE,轉(zhuǎn)到File》 Examples》 ArduinoISP。
打開草圖后,在在文件頂部,對(duì)引腳名稱和連接進(jìn)行了一些注釋。下一步將解決這些問(wèn)題,但請(qǐng)確保它們與本教程匹配。
連接您的arduino并單擊“上傳”按鈕。
第2步:將ArduinoISP編程器連接到AVR

對(duì)于第一步,您將需要以下材料:
》色的跳線(是的,很重要);
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ù)圖片將所有組件連接在一起。
請(qǐng)注意,對(duì)于每個(gè)接收到晶體引線之一的路徑,都有一個(gè)陶瓷電容器將該路徑連接到地面路徑。
LED的陽(yáng)極由他們的線索略有彎曲。注意白色LED,該白色LED將被加載的代碼閃爍。由于軟件的限制,不允許組件翻轉(zhuǎn),導(dǎo)致LED交叉。
電解電容器是極化的,因此請(qǐng)確保將較長(zhǎng)的引線連接到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)行固件加載過(guò)程。長(zhǎng)話短說(shuō),AVRDUDE讀取由編譯和轉(zhuǎn)換過(guò)程生成的.hex文件,并將其排隊(duì),以便通過(guò)串行端口正確輸出。從那里,您的Uno板上的USB串行轉(zhuǎn)換器(USB端口旁邊的黑色正方形)從USB線讀取它,將其發(fā)送到Arduino Uno板上的ATMEGA,最后通過(guò)SPI將其輸出到目標(biāo)微控制器。/p》
Atmel Studio最酷的功能之一就是對(duì)外部工具(如AVRDUDE本身)的支持?;旧?,Atmel Studio對(duì)此開放了足夠的定制空間,只需按一下按鈕,您就可以執(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端口。為了檢查,請(qǐng)去設(shè)備管理器》 COM&LPT端口,并且您應(yīng)該看到列出的Arduino。
找到avrdude.conf的文件路徑。一個(gè)簡(jiǎn)單的Windows搜索應(yīng)該可以幫助您解決這個(gè)問(wèn)題。
保險(xiǎn)絲的位值,取決于您計(jì)劃項(xiàng)目配置的方式。只需更改-U lfuse:w:0xe6:m中間的十六進(jìn)制值和要配置的保險(xiǎn)絲名稱即可。
請(qǐng)注意帶有.hex的行部分在中間。這是AVRDUDE將在其中查找文件的參數(shù)中的引用。 $(ProjectDir)和$(ItemFileName)是bash腳本變量,一旦調(diào)用&Deploy動(dòng)作,就會(huì)根據(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ù)的完整列表,請(qǐng)?jiān)L問(wèn):https://asensar.com/blog/2013/programming-arduino-using-avrdude/
步驟4:編譯并部署它!



所有配置一次完成,就該進(jìn)行測(cè)試了!
將一個(gè)簡(jiǎn)單的LED閃爍固件寫入目標(biāo)微控制器,如
完成后,轉(zhuǎn)到“工具”》“部署”。
您應(yīng)該在輸出窗口的圖片上看到類似屏幕的內(nèi)容。這是AVRDUDE的詳細(xì)輸出,告訴您它執(zhí)行了什么。
首先顯示一些部署信息,然后顯示一些內(nèi)存統(tǒng)計(jì)信息,這些信息對(duì)于大型項(xiàng)目確實(shí)非常有用,最后輸出寫操作摘要。在這里,您可以觀察到前面提到的4個(gè)寫入中的3個(gè)。這兩個(gè)保險(xiǎn)絲加上閃光燈。
完成后,您已經(jīng)可以通過(guò)閃爍的LED看到代碼在工作!恭喜!
此配置對(duì)于您隨后的所有項(xiàng)目都是永久的,因此不必介意再次進(jìn)行所有操作。您可能會(huì)在項(xiàng)目之間更改的一件事是必須在上一步的arguments字段上重新配置保險(xiǎn)絲配置。
有關(guān)最佳保險(xiǎn)絲計(jì)算器,請(qǐng)?jiān)L問(wèn):http://www。 engbedded.com/fusecalc/
故障排除:
您可能會(huì)遇到AVRDUDE找不到或打開COM端口的情況。如果發(fā)生這種情況,請(qǐng)確保您沒(méi)有打開Arduino IDE。這將導(dǎo)致AVRDUDE在連接到Arduino IDE時(shí)嘗試聲明COM端口。為解決此問(wèn)題,請(qǐng)關(guān)閉Arduino IDE,將開發(fā)板與計(jì)算機(jī)斷開連接,關(guān)閉Atmel Studio,重新連接開發(fā)板,然后重新啟動(dòng)Atmel Studio 6。
責(zé)任編輯:wv
-
Arduino
+關(guān)注
關(guān)注
191文章
6529瀏覽量
197568 -
AVR微控制器
+關(guān)注
關(guān)注
0文章
21瀏覽量
6967
發(fā)布評(píng)論請(qǐng)先 登錄
怎樣執(zhí)行Atmel Studio中的編碼與將代碼部署到AVR微控制器之間的全面平滑集成
評(píng)論