在RX5808分集接收機制作的文章中,我參考開源的資料制作了RX5808分集接收機電路板,另外使用USP-ISP編程器通過ArduinoIDE給電路板了寫程序,詳見使用USB-ISP編程器向Mega328p寫程序,在實際使用中發現這種寫程序的方式存在一些不足,這種方式在擦除Atmega328P的FLASH和EEPROM時感覺不徹底,同時不能修改熔絲位,會導致代碼實際運行效率變低,在RX5808分集接收機上反應為菜單的響應時間過長,操作不靈敏。因此催生了今天這篇文章。
使用USBtinyISP編程器通過ArduinoIDE寫程序
USBtinyISP編程器接口定義
在使用USP-ISP編程器向Mega328p寫程序文中,我用USBtinyISP編程器直接通過ArduinoIDE寫程序,這樣的好處是便捷,同時可以隨時通過IDE對程序進行調整操作比較直觀,但奇怪的是程序寫入328P后,RX5808分集接收機的菜單響應時間很長,操作起來非常不便,開始以為是源代碼延遲時間設置的問題,多次調整收效甚微,于是開始嘗試其它的寫程序的方式。
AVRUSB編程器向ATmega328P寫程序
使用AVRUSB編程器向ATmega328P寫程序步驟如下:
AVRUSB編程器向ATmega328P寫程序
progisp程序有一個特點,當AVRUSB編程器未連接或連接不成功時,它的“PRGISP”圖標是灰色的,連接成功后它是彩色的,如上圖黑色向右箭頭所指方向。AVRUSB編程器寫程序的步驟,首先在PROGISP程序打開后,在上圖1所示位置選擇目標芯片,然后點擊上圖2所示的“RD”按鈕測試芯片讀取是否成功,狀態欄會顯示芯片連接狀態;然后在上圖3所示位置點擊進入熔絲位編輯窗口:
Atmega328P熔絲位
根據芯片型號編輯熔絲位;接著在上一張圖的4的位置導入HEX文件;最后點擊“自動”按鈕將程序寫入芯片。注意圖中的勾選項“芯片擦除”、“編程FLASH”、“編程熔絲”等選項要勾選,否則代碼運行效率和“使用USBtinyISP編程器直接通過ArduinoIDE寫程序”效率一樣。
使用USBtinyISP編程器通過AVRDUDESS寫程序
Avrdudess是一款類似于Avrdude-GUI的AVR系列單片機下載與燒錄工具
USBtinyISP編程器通過AVRDUDESS寫程序
本著不斷折騰的原則,本次在嘗試使用USBtinyISP編程器通過AVRDUDESS向ATmega328P寫程序。AVRDUDESS可通過網絡下載綠色版的即可。連接USBtinyISP編程器,打開AVRDUDESS軟件,如上圖選擇“USBtinysimpleUSBprogrammer,…。?!?,MCU選擇“ATmega328P”,然后點擊“自動偵測”,在上圖黑色狀態框會顯示“偵測到1e950f=ATmega328P”表示編程器與芯片連接成功。然后和AVRUSB編程器一樣我們也需要設置熔絲位和一些選項。熔絲位設置點擊右側“手動熔絲選擇器”彈出窗口如下,可手動設置熔絲位:
ATmega328P熔絲位設置
確定后回到主界面,按下圖再次確認設置項
AVRDUDESS為ATmega328P寫bootloader
通過“Flash”地址欄后“…”按鈕選擇需要寫入的HEX文件,點擊“開始編程”,狀態欄會對應給出寫入狀態指示,待完成后寫入完成。測試過程中發現,如果不選擇“擦除flash和EEPROM”,代碼運行效率與直接通過ArduinoIDE通過編程器寫的方式一致,慢就一個字!
三種編程方式的比較
細心地朋友會發現后兩種方式寫入的文件是HEX文件,它可以通過ArduinoIDE的菜單“項目”–“導出已編譯的二進制文件”的方式得到。曾經懷疑代碼的運行效率是否與寫入文件格式有關,仔細分析后我認為不管哪種方式寫程序寫入芯片的都只會是二進制文件,只是通過ArduinoIDE編程器寫入的方式文件轉換的過程不可見而已。
因此,正如前面反復提到的,在三種給328P寫程序的方式中,直接通過ArduinoIDE寫程序,無法判斷寫程序過程中是否對芯片的Flash和EEPROM進行了完全的擦除。后面通過PROGISP和AVRDUDESS寫程序的兩種方式差異不大,僅是程序設置界面的差異,兩種方式如不選擇“擦除flash和EEPROM”,代碼的運行效率與第一種通過ArduinoIDE寫程序的效率一致。據此判斷它是導致代碼寫入后運行效率不高的主要原因。
-
電路板
+關注
關注
140文章
5138瀏覽量
102747 -
bootloader
+關注
關注
2文章
239瀏覽量
46722 -
Atmega328P
+關注
關注
4文章
56瀏覽量
17516
發布評論請先 登錄
基于ATMEGA328P的PLC
帶有ATMEGA328P設備的Arduino Uno門鈴項目

如何通過ATMEGA328P AU(SMD)制作廣告面板

評論