步驟1:準(zhǔn)備Arduino
由于我們將Arduino Uno用作ISP程序員,因此我們首先必須上傳一個(gè)草圖,該草圖將負(fù)責(zé)通過(guò)串行端口(USART)接收數(shù)據(jù),并且通過(guò)它們的SPI端口將其正確輸出到目標(biāo)微控制器。
因此,打開(kāi)Arduino IDE,轉(zhuǎn)到File》 Examples》 ArduinoISP。
打開(kāi)草圖后,在在文件頂部,對(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ì)此開(kāi)放了足夠的定制空間,只需按一下按鈕,您就可以執(zhí)行完整的命令行程序調(diào)用,并將固件部署到目標(biāo)微控制器。
足夠了,
打開(kāi)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)換為寫(xiě)操作的固件部署參數(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è)寫(xiě)操作:
第一個(gè)寫(xiě)低熔絲AVR
第二,高保險(xiǎn)絲
第三項(xiàng)操作是完全擦除閃存,以避免寫(xiě)錯(cuò)誤
,第四項(xiàng)是使用固件寫(xiě)入完整的閃存
有關(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閃爍固件寫(xiě)入目標(biāo)微控制器,如
完成后,轉(zhuǎn)到“工具”》“部署”。
您應(yīng)該在輸出窗口的圖片上看到類似屏幕的內(nèi)容。這是AVRDUDE的詳細(xì)輸出,告訴您它執(zhí)行了什么。
首先顯示一些部署信息,然后顯示一些內(nèi)存統(tǒng)計(jì)信息,這些信息對(duì)于大型項(xiàng)目確實(shí)非常有用,最后輸出寫(xiě)操作摘要。在這里,您可以觀察到前面提到的4個(gè)寫(xiě)入中的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找不到或打開(kāi)COM端口的情況。如果發(fā)生這種情況,請(qǐng)確保您沒(méi)有打開(kāi)Arduino IDE。這將導(dǎo)致AVRDUDE在連接到Arduino IDE時(shí)嘗試聲明COM端口。為解決此問(wèn)題,請(qǐng)關(guān)閉Arduino IDE,將開(kāi)發(fā)板與計(jì)算機(jī)斷開(kāi)連接,關(guān)閉Atmel Studio,重新連接開(kāi)發(fā)板,然后重新啟動(dòng)Atmel Studio 6。
責(zé)任編輯:wv
-
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
187980 -
AVR微控制器
+關(guān)注
關(guān)注
0文章
11瀏覽量
6830
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
SEGGER工具全面支持STM32N6微控制器開(kāi)發(fā)
嵌入式系統(tǒng)中微控制器與微處理器的區(qū)別
![嵌入式系統(tǒng)<b class='flag-5'>中</b><b class='flag-5'>微控制器</b>與微處理<b class='flag-5'>器</b>的區(qū)別](https://file1.elecfans.com/web2/M00/F6/98/wKgZomaCbKKATk8bAAAtr-PyoJc849.png)
ESP32 微控制器系列指南
![ESP32 <b class='flag-5'>微控制器</b>系列指南](https://file1.elecfans.com/web2/M00/06/DA/wKgaombgHMmAP1HxAACTwfLTVZg785.jpg)
![](https://file1.elecfans.com/web2/M00/06/BF/wKgZombqeeaAUZJ9AAhxjsrDDIo198.png)
微控制器內(nèi)部的存儲(chǔ)器有哪些
微控制器的結(jié)構(gòu)和應(yīng)用
運(yùn)動(dòng)控制器的代碼運(yùn)行順序是什么
伺服控制器編碼器反饋數(shù)值為負(fù)數(shù)怎么回事
微控制器的定義和工作原理
如何將CYKIT-028 TFT模塊與Raspberry Pi和ESP32微控制器結(jié)合使用?
中微半導(dǎo)體推出CMS32M67電機(jī)控制系列微控制器
8位Atmel 微控制器ATMEGA325V-8AU技術(shù)手冊(cè)
嵌入式微控制器的自動(dòng)代碼生成
![嵌入式<b class='flag-5'>微控制器</b>的自動(dòng)<b class='flag-5'>代碼</b>生成](https://file1.elecfans.com/web2/M00/D0/DF/wKgaomYiOiSAVlb4AADcUp1rTz8050.png)
深入探討微控制器的內(nèi)部結(jié)構(gòu)和工作機(jī)制
![深入探討<b class='flag-5'>微控制器</b>的內(nèi)部結(jié)構(gòu)和工作機(jī)制](https://file1.elecfans.com/web2/M00/C8/A7/wKgaomYWNP-AGmVXAABIB43FDmw036.png)
針對(duì) C2000? 微控制器的集成微控制器 (MCU) 電源解決方案數(shù)據(jù)表
![針對(duì) C2000? <b class='flag-5'>微控制器</b>的<b class='flag-5'>集成</b><b class='flag-5'>微控制器</b> (MCU) 電源解決方案數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論