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


微控制器的結構和應用
伺服控制器編碼器反饋數值為負數怎么回事
微控制器的定義和工作原理
如何將CYKIT-028 TFT模塊與Raspberry Pi和ESP32微控制器結合使用?
中微半導體推出CMS32M67電機控制系列微控制器
8位Atmel 微控制器ATMEGA325V-8AU技術手冊
嵌入式微控制器的自動代碼生成

深入探討微控制器的內部結構和工作機制

針對 C2000? 微控制器的集成微控制器 (MCU) 電源解決方案數據表

評論