[心得] Arduino與乙級檢定(V-USB)之整合應用1

看板Electronics作者 (魔法の妖精)時間9年前 (2015/05/30 14:30), 編輯推噓1(105)
留言6則, 1人參與, 最新討論串1/1
電腦硬體裝修乙級檢定第一站電路採用V-USB的方式,利用 ATMega8/8A 將USB訊號解析出來提供一個8位元輸出與2位元控制訊號,因為採用HID 人機介面的規格,所以免除了PC上的驅動程式,但還是提供一個 DLL檔 (USBIO.dll)供PC上程式設計使用與燒入ATMega8/8A的韌體(main.hex), 燒入時保險絲值建議為High為0xCC,Low為0xFF,Lock Byte為0x0F。 電腦硬體裝修乙級檢定第一站所需韌體與PC端測試程式之下載處如下: 勞動部勞動力發展署技能檢定中心-術科測試場地機具設備評鑑與補助 http://www.labor.gov.tw/home.jsp?pageno=201110210028 12000 - 電腦硬體裝修(乙級) http://www.labor.gov.tw/uploaddowndoc?file=/publabor/jobclass/201501101251070.rar&flag=doc 而Arduino發展系統則是在AVR晶片下,提供大量的應用程式碼與整合式 發展介面的環境,同時因為是開放式系統,所以一些相容的硬體與模組 也就應運而生!Arduino連接PC的方式是利用RS-232(COM)的方式,將編 譯好的程式碼利用事先燒入AVR晶片中的Bootloader,採用ISP方式燒入 快閃記憶體然後執行,因此只要將COM埠中的TXD,RXD,DTR (或RTS),GND 四隻腳,將其訊號轉成標準的TTL再連接AVR晶片的RXD,TXD,RESET,GND, 即可在Arduino整合發展系統(IDE)環境下,編譯與下載使用者的程式。 本文就是要將兩套系統合而為一,同時提供Arduino發展系統所需的硬體 電路與電腦硬體裝修乙級檢定第一站的相容電路,讓人可以使用Arduino 發展系統的程式開發與下載功能,執行Arduino所有的應用程式,也可以 將電腦硬體裝修乙級檢定第一站的韌體(main.hex)下載到ATMega8/8A中, 提供在PC上練習乙級檢定之10個題組的程式設計使用。 原始Arduino UNO的晶片是使用ATMega8/8A,操作頻率是16Mhz,但是電腦 硬體裝修乙級檢定第一站的V-USB電路卻是使用12Mhz,如果直接燒入供ISP 下載使用的Bootloader碼 (使用optiboot_atmega8.hex),在12Mhz晶振下 的Baud Rate會從117647 bps(誤差2.12%)降到88235 bps(誤差23.4%),將 無法正確與PC溝通,故必須修改原始的Bootloader碼,將Baud Rate調整到 115384 bps(誤差0.16%),同時因為ATMega8逐漸停產,改以ATMega8A取代, 不過因為不同批號生產的ATMega8A在燒入Bootloader碼後,開機時的暫存器 UBRRH不一定會清為零,如此將造成Baud Rate的設定錯誤,因此建議修改原 始Bootloader碼(optiboot_atmega8.hex)如下:   位址    資料  原始的程式碼 000F0B(1E16)  82E0  LDI R24,0x02 000F0C(1E18)  8BB9  OUT UCSRA,R24 000F11(1E22)  80E1  LDI R24,0x10   位址    資料  修改後程式碼 000F0B(1E16)  10BC  OUT UBRRH,R1 000F0C(1E18)  599A  SBI UCSRA,U2X 000F11(1E22)  8CE0  LDI R24,0x0C 先使用ATMEL的USB ISP燒錄器,將VCC、GND、SCK、MISO、MOSI、RESET共6 支腳,連接ATMega8/8A所對應的接腳,同時將12Mhz晶振與20pF電容連接在 ATMega8/8A所對應的接腳,執行燒錄程式(例如Progisp20),先讀入原始的 Bootloader碼 (optiboot_atmega8.hex),然後再參考上面所提到需要修改 的資料,設定保險絲值為High為0xCC,Low為0xFF,Lock Byte為0x0F,接者 就可以將修改後的Bootloader碼燒入ATMega8/8A中0x0F00~0FFF(0x1E00~ 1FFF)的位置。 -- DSP研究室 www.dsplab.idv.tw -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.229.86.87 ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1432967428.A.388.html

06/02 10:57, , 1F
看起來很像組合語言啊,不需用到ARDUINO晶片,8051就夠
06/02 10:57, 1F

06/02 10:59, , 2F
用了,8051一顆現在售價為50元,不過需要燒錄的軟硬體
06/02 10:59, 2F

06/02 11:01, , 3F
現在是改用KEIL C,比組合語言更方便簡潔,編譯完成後一]
06/02 11:01, 3F

06/02 11:02, , 4F
樣會產生副檔名為.HEX的檔案,然後需要用到燒錄的程式
06/02 11:02, 4F

06/02 11:06, , 5F
和燒錄版及與電腦的接線.0x0F00~0FFF這是記憶體位址
06/02 11:06, 5F

06/02 11:06, , 6F
吧?!相當的相似啊!
06/02 11:06, 6F
文章代碼(AID): #1LQLa4E8 (Electronics)