基于LUFA開源框架庫對AVR芯片進行USB終端設備開發(fā)
同時,處理器還有豐富的外部接口,如14個PWM通道,12路10位ADC,SPI,USART等。片內(nèi)集成了32KB的Flash程序儲存器(其中4KB可被引導程序使用),2.5KB片內(nèi)SRAM,1KB的片內(nèi)EEPROM,2個帶預分頻的8位定時/計數(shù)器,2個帶預分頻的16位定時/計數(shù)器,帶看門狗定時器等,還支持ISP和IAP編程,帶有符合IEEE 1149.1標準的JTAG接口。其USB接口,可工作在全速/低速設備模式下。對于控制傳輸方式,端點0最大能支持64b的數(shù)據(jù)包。對于塊傳輸、中斷傳輸和同步傳輸方式,有6個可編程端點,最大能支持256b的數(shù)據(jù)包。
本文引用地址:http://www.butianyuan.cn/article/262220.htm 在啟動階段,可以通過對熔絲位HWBE(上劃線)置0,并下拉HWB(上劃線)引腳,使得系統(tǒng)先進入引導區(qū)程序,以方便固件更新。啟動流程部分,請參考圖2。
● bootloader開發(fā)示例
對于AVR微處理器來說,出廠的時候都預先燒錄了Atmel DFU (Device Firmware Update)進bootloader區(qū)。如果不需要進行bootloader區(qū)編程,可以省卻外部編程器。當需要更新固件程序時,無需外部編程器的參與,只需使系統(tǒng)運行在bootloader環(huán)境下,就可以利用USART、SPI或者USB接口,進行固件更新燒錄。
在LUFA開源框架庫中,有好幾種不同的bootloader示例。如支持AVR109協(xié)議的自編程框架,支持USB DFU協(xié)議的自編程框架,或者其他。在開發(fā)過程中,作為開發(fā)者,只要能理解其相關原理,即可靈活運用。
從示例中可以看出,整個軟件的工作流程如圖3所示。在啟動過程中,系統(tǒng)先調用初始化程序對相關的I/O口進行輸入/輸出定義及參數(shù)初始化;接著,進入bootloader循環(huán)。在bootloader循環(huán)中,系統(tǒng)不斷的檢測USB接口下的Endpoint,讀取數(shù)據(jù),返回指令信息等。直到收到結束通信的指令(AVR109和DFU協(xié)議均有相關指令),才退出bootloader應用。最后斷開這次USB連接,程序指針跳轉到0x0000位置,也就是應用程序的開始點。如圖3。
評論