作者Noises (Noise)
看板ASM
標題[請益] 新手買arduino不知道怎麼燒錄@@
時間Thu Jun 14 20:59:14 2018
各位大大好,
小弟最近買了Arduino pro micro來玩。
可是照著網路上的教學做,都沒辦法燒錄bootloader
使用linux&windows
linux:
$ sudo dfu-programmer atmega32u4 erase
-> no device present
$ sudo dfu-programmer atmega32u4:1,32 erase
-> no device present
avrdude -c dragon_isp -P /dev/ttyAMC0 -p atmega32u4 -U flash:w:myHEX.hex:i
-> stk500_getsync() not in sync resp=0x30
-> avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x3f
windows:
在裝置管理員裡:
看見 Arduino Leonardo(COM7)
按下reset看見
Arduino Leonardo bootloader(COM8)
從Arduino官方網站下載arduino/genuino程式
使用ArduinoISP,無論選COM7 or COM8 都沒辦法執行「燒錄Bootloader」
-> avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x3f
從AMTEL下載FLIP
選好atmega32u4之後,選usb port connection
-> Could not open USB device
買了一塊板子,弄了半天找不到怎麼燒錄東西 QQ
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.101.143
※ 文章網址: https://webptt.com/m.aspx?n=bbs/ASM/M.1528981156.A.EC0.html
1F:→ dsplab: 板子上的晶片已經燒入Bootloader,為什麼要重複燒入 06/15 08:19
2F:→ dsplab: 使用SPI連線方式,利用progisp168可以燒入Bootloader 06/15 08:21
3F:→ Noises: 因為我想讓這塊arduino模擬鍵盤,所以需要燒錄已經 06/15 17:20
4F:→ Noises: compile好的hex file 06/15 17:20
5F:→ Noises: 還是說我有弄錯什麼觀念嗎?這個不叫做燒錄bootloader 06/15 17:22
6F:推 god145145: 按上傳就可以了 06/15 20:53
7F:→ Noises: 好,我試試看,謝謝! 06/16 00:29
8F:→ Noises: 不過,我使用avrdude上傳hex file總是失敗 06/16 12:29
10F:→ Noises: 然後跑出上面的avrdude錯誤訊息 06/16 12:30
11F:推 johnpage: Leonardo 與 uno 是不一樣的,要用Leonardo的燒錄方式 06/16 22:47
12F:推 johnpage: 参考這篇 06/16 22:51
14F:→ johnpage: html?m=1 06/16 22:51
雖然說過了很久(試了好一陣子才成功,也擱置好一陣子)
不過真的像是johnpage大說的,直接用就好了呢!
謝謝各位大大。
順便黏一下johnpage大的連結:
http://yehnan.blogspot.com/2013/09/arduino-leonardo.html?m=1
不過,要燒錄hex file的話,flip還是不能用。網路上的說的lib32沒有,要重新裝driver。
跟這裡又不一樣了。這裡是電腦已經可以抓到driver。裝置管理員看得到arduino leonardo,
表示已經有driver,我自己是猜flip不吃arduino自己的driver,所以才會有問題。
flip裡面內建的driver是X86系統用,所以X64系統不能用。
之後找了avrdude來燒錄hex file,不過,必須使用指令來燒錄。
簡單講一下我碰到的問題:一些avrdude的option不知道怎麼設定。
在windows下的指令像是這樣:
avrdude -v -c avr109 -P COM8 -b57600 -p atmega32u4 -U flash:w:myHEX.hex
-C "C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf"
-v : 列出詳細資訊。debug時可用。 -v, -vv, -vvvv 代表列出的資訊多寡。
-P : port。 你必須從裝置管理員中找到你的port name。
像我在一般模式的話,就會是COM7,在bootloader模式,就會是COM8
-c : 使用哪種軟體幫你燒錄這個hex檔。每個不同的arduino都有對應的軟體。
你必須找到arduino官方軟體裡面的檔案的資料。
檔案一般在C:\Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt
會寫在這條
"leonardo.upload.protocol=avr109"
-b : 同-c。
"leonardo.upload.speed=57600"
-p : "leonardo.build.mcu=atmega32u4"
-U : 指定你要燒錄的hex 檔案
在arduino自己的軟體裡面,你也是需要指定port number,硬體名稱。以及要使用的燒錄軟體(avr109)
不然他還是會寫avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x3f
※ 編輯: Noises (140.112.101.143), 06/25/2018 03:47:50