IT技術互動交流平台

爱彩票网官网

作(zuo)者(zhe)︰Stuxnet  來源︰IT165收集  發布日(ri)期︰2020-02-24 13:11:27

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

因為Arduino的(de)IDE並不(bu)支持zhong)zhe)種免(mian)驅的(de)USBasp線,會(hui)提示錯(cuo)誤(wu)。

事(shi)情的(de)全程是這(zhe)樣(yang)的(de)︰

1.癥(zheng)狀

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

2.準備解決

之前(qian)的(de)標準USBasp下載線送給(gei)了表弟(di),只好再買一根。買了個“國產免(mian)驅動”的(de)下載線,倒是省了安裝驅動了。插到(dao)電腦上之後並不(bu)生成串口號(hao),只是識別為了一個USB-HID設(she)備,如圖。

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

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

3.撥(bo)雲見日(ri)

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

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

下載軟件選好了,但軟件里一huan)dui)的(de)參數應當如何設(she)置?在Arduino的(de)文件夾里已(yi)經有了說(shuo)明。以我的(de)為例,“E:\arduino-1.0.5-r2\hardware\arduino”文件夾中的(de)boards.txt里面包含(han)了各種型號(hao)Arduino的(de)參數,我的(de)是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

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

這(zhe)里並不(bu)用完全記住(zhu),設(she)定(ding)幾個關鍵值即可︰

1.用杜邦線對應連接arduino與(yu)USBasp下載線的(de)以下引(yin)腳︰MOSI,VCC,RST,SCK,MISO,GND。

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

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

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

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

爱彩票网官网

    Tag標簽(qian)︰參數  標準  
    • 爱彩票网官网

    About IT165 - 廣(guang)告服務 - 隱私聲(sheng)明 - 版權(quan)申明 - 免(mian)責條款 - 網站地圖 - 網友投稿 - 聯系方式
    本站內(na)容來自于互聯網,僅供用于網絡(luo)技術學(xue)習,學(xue)習中請(qing)遵(zun)循(xun)相關法律法規
    爱彩票网官网 | 下一页