前期制作USBASP過程中,學習了AVR單片機芯片的BootLoader原理,查找了很多關于USB-HID和BootLoader的資料制作了可以自刷程序的atmega8(16)簡易板,現將所學的分享給大家。
一、關于BootLoader
BootLoader是芯片上電后,程序不從flash地址的0x00執行,而是跳轉到boot區執行bootloader程序。
atmega8的boot區的大小及起始位置是由其熔絲位來設置(BOOTSZ0、BOOTSZ1)的。
其是否執行bootloader程序也是由熔絲位(BOOTRST)設置的。
二、關于USB-HID
HID是人體學輸入設備的英文簡稱,由于Windows內置了此類驅動,如常用的鼠標、鍵盤等不用外部驅動就可以直接使用。
AVR的Flash-BootLoader-HID固件就是利用了BootLoader和USB-HID的特點,將AVR芯片的Flash刷寫程序和USB-HID的程序結合,制作為BootLoader程序,實現了自刷芯片程序的功能。
三、制作過程:
1、根據原理圖制作電路
avrusbboot_example.png (4.2 KB, 下載次數: 167)
下載附件
2020-4-6 19:30 上傳
自己的電路中加入了復位按鍵,需要刷程序時只按下復位鍵就進入Boot了。
復位.jpg (5.18 KB, 下載次數: 159)
下載附件
2020-4-6 19:52 上傳
2、編譯BootLoader的HEX固件
后期可以根據自己的硬件情況對bootloaderconfig.h內的配置進行更改。
makefile文件的簡單配置
usbconfig1.png (36.82 KB, 下載次數: 162)
下載附件
2020-4-6 19:32 上傳
以上是USB數據端口的配置,原版使用了PD2->D+,PD0->D-,這個可以根據個人需要更改。
需要注意的是不論更改到哪個端口,D+始終需要與PD2連接,因為其使用了INT0中斷。
usbconfig3.png (14.78 KB, 下載次數: 179)
下載附件
2020-4-6 19:32 上傳
在config文件最后定義了引導判斷端口的設置,這個是根據個人情況更改。
3、atmega8的熔絲位更改
使用其他燒寫器對熔絲位更改
熔絲位設置.jpg (49.78 KB, 下載次數: 144)
下載附件
2020-4-6 19:32 上傳
BOOT.jpg (69.13 KB, 下載次數: 164)
下載附件
2020-4-6 19:32 上傳
需要對以下幾個熔絲位更改:
1)熔絲低位的CKSEL 0~3設置為1,即使用外部晶振。
2)BOOTSZ1.0,BOOTRST置0,即設置BOOT區大小為1024字節,芯片復位后從BOOT區執行程序。
4、刷BootLoader
使用USBASP或者其他燒寫器刷HEX固件。
若使用progisp軟件調入固件文件,在“編輯”選項能看到,固件數據是從0x1800開始的,這是
因為atmega8的boot區設置為1024大小時的boot起始位置(0xC00*2具體原理查閱atmega8芯片說明)。
18002.png (92 KB, 下載次數: 157)
下載附件
2020-4-6 20:09 上傳
1800.png (79.13 KB, 下載次數: 170)
下載附件
2020-4-6 20:09 上傳
因此制作bootloader時要注意芯片熔絲位的設置和makefile的flashboot地址,兩者要一致。
四、進入BootLoader,可以刷自己的程序了!
1、將PC2接地,插入USB口,windows的設備管理器即可識別出一個HID-compliant device的設備,并安裝好驅動。
若無法識別成功,查檢1~4步。
計算機管理.png (110.04 KB, 下載次數: 157)
下載附件
2020-4-6 19:32 上傳
2、將bootloaderHID.exe復制到自己的程序固件xxx.hex目錄下
3、在cmd命令下輸入bootloadhid -r xxxx.hex
如果成功,即會出現以下界面。
bootloader.exe.png (4.9 KB, 下載次數: 168)
下載附件
2020-4-6 19:32 上傳
以上可以通過簡單配置文件更改,就可心應用到其他AVR芯片。
以atmega16芯片為例:
只要將makefile文件 DEVICE = atmega16
BOOTLOADER_ADDRESS = 3800
其它設置相同,即可實現自刷。
五、上一下自己制作的電路
IMG_20200406_202048.jpg (320.14 KB, 下載次數: 158)
下載附件
2020-4-6 20:27 上傳
BAN21.jpg (112.07 KB, 下載次數: 156)
下載附件
2020-4-6 20:26 上傳
BAN2.jpg (84.76 KB, 下載次數: 169)
下載附件
2020-4-6 20:26 上傳
六、相關軟件
1、WinAVR(GCC-for-AVR)
2、Flash-BootLoadHID固件及上位機源碼51黑提供下載:
FLash_BootloadHID源碼.rar
(151.09 KB, 下載次數: 113)
2020-4-6 20:33 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|