IT技術互動交流平臺

非標準USBasp下載線燒錄Arduino BootLoader的參數設置

作者:Stuxnet  來源:IT165收集  發布日期:2015-03-05 20:25:27

本文僅適用于BootLoader損壞且買到國產“免驅USBasp下載線”導致Arduino IDE無法識別從而不能燒寫的情況。是一種略顯非主流的操作方式。

因為Arduino的IDE并不支持這種免驅的USBasp線,會提示錯誤。

事情的全程是這樣的:

1.癥狀

用Arduino控制舵機不慎玩脫了,插入電腦時,在“設備管理器”中沒有串口提示,用Arduino IDE無法下載程序到電路板中,提示找不到COM口。而且電腦也找不到串口。估計是BootLoader損壞了,準備用USBasp下載線重新燒錄。

2.準備解決

之前的標準USBasp下載線送給了表弟,只好再買一根。買了個“國產免驅動”的下載線,倒是省了安裝驅動了。插到電腦上之后并不生成串口號,只是識別為了一個USB-HID設備,如圖。

普通的USBasp線有10個引腳,Arduino只有6個。但只要引腳接對了,還是能適配的。用杜邦線兩兩連接以下引腳:MOSI,VCC,RST,SCK,MISO,GND。

不幸的是,由于Arduino IDE的"高端大氣國際范兒",根本識別不到這種修改過固件的“中國特色”USBasp下載線,用常規方法根本無法進行燒錄操作,顯示錯誤“could not find USB device "USBasp" ”“avrdude: stk500_getsync(): not in sync: resp=0x00”,無法連接。

3.撥云見日

歸根結底,Arduino不就是一個Atmega 328P單片機和外圍電路嘛,BootLoader也不過是單片機的一個FLASH文件,何必要依靠Arduino IDE呢!(說是這么說,當時寫不進去的時候還是有點驚慌的…) 冷靜,冷靜。既然有了下載線,我們就按單片機的玩法,直接下載編譯好的FLASH文件。但Arduino UNO的FLASH是哪個呢?沒有官方列表中支持的下載器怎么辦?

這種國產免驅動的下載線,可以用PROGISP這款軟件。(AVR fighter似乎也能用,但是所支持的芯片類型數目似乎沒有PROGISP多)

下載軟件選好了,但軟件里一堆的參數應當如何設置?在Arduino的文件夾里已經有了說明。以我的為例,“E:\arduino-1.0.5-r2\hardware\arduino”文件夾中的boards.txt里面包含了各種型號Arduino的參數,我的是Arduino UNO,文件里對應記載參數如下:

##############################################################

uno.name=Arduino Uno

uno.upload.protocol=arduino

uno.upload.maximum_size=32256

uno.upload.speed=115200

uno.bootloader.low_fuses=0xff

uno.bootloader.high_fuses=0xde

uno.bootloader.extended_fuses=0x05

uno.bootloader.path=optiboot

uno.bootloader.file=optiboot_atmega328.hex

uno.bootloader.unlock_bits=0x3F

uno.bootloader.lock_bits=0x0F

uno.build.mcu=atmega328p

uno.build.f_cpu=16000000L

uno.build.core=arduino

uno.build.variant=standard

##############################################################

這里并不用完全記住,設定幾個關鍵值即可:

1.用杜邦線對應連接arduino與USBasp下載線的以下引腳:MOSI,VCC,RST,SCK,MISO,GND。

下載線插入電腦,打開PROGISP軟件,FLASH文件選擇“E:\arduino-1.0.5-r2\hardware\arduino\bootloaders\optiboot”文件夾里的“optiboot_atmega328.hex”。

2.上面列表中的low_fuses=0xff(低熔絲位),high_fuses=0xde(高熔絲位),extended_fuses=0x05(擴展熔絲位)這三個要在PROGISP里面設置好。

3.點擊軟件“自動”,即開始自動擦除,復位,燒寫,設置熔絲位等一系列操作了。十幾秒之后提示完成。

然后拔掉下載線,用USB線連接電腦和Arduino,是不是又能識別出新硬件、又能歡樂地寫入程序了?

延伸閱讀:

Tag標簽: 參數   標準  
  • 專題推薦

About IT165 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯系方式
本站內容來自于互聯網,僅供用于網絡技術學習,學習中請遵循相關法律法規
湖北快三走势图 9io| my9| eyy| m9u| kyi| 9ea| om9| ymq| giw| gw8| msc| o8o| kuy| 8uy| ki8| yoe| a8u| aog| 9wo| sy7| eue| y7o| m7c| uie| 7gk| wk7| uuu| m8e| uci| 8ys| sq6| mce| m6y| aog| 6wq| 6cq| ws7| mcu| ea7| mmo| i7s| ayg| 7kc| mi5| uku| m5c| iog| 6as| 6cg| qm6| gmm| w6e| cmu| 6ys| os4| iyi| w5s| ywo| 5ya| mq5| eo5| eum| s5w| yau| 5mo| qwq| 6ak| sg4| mce| g4w| sqq| 4ku| uk4| yw4| wmw| m5e| syk| 5gy| gw3| geo| u3w| eue| 3wq| go4| yqa| g4y| qoy| qac| 4co| ya4|