新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于LUFA開源框架庫對AVR芯片進行USB終端設備開發(fā)

基于LUFA開源框架庫對AVR芯片進行USB終端設備開發(fā)

作者:陳哲川 時間:2014-08-26 來源:電子產(chǎn)品世界 收藏
編者按:  摘要:本文針對一般USB設備的開發(fā)過程過于困難、復雜、繁瑣等不利于快速開發(fā)的問題,引入了LUFA(Lightweight USB Framework for AVRs)開源框架庫,解決了基于AVR芯片的USB設備的快速開發(fā)問題。這種方法能實現(xiàn)快速開發(fā)并實現(xiàn)相關的產(chǎn)品,并且有穩(wěn)定的性能表現(xiàn),具有工程實踐意義。   概述   目前,USB控制器主要有兩種:一種是帶USB接口的單片機(MCU),另一種是純粹的USB接口芯片。前者的最大優(yōu)勢在于,開發(fā)者對系統(tǒng)結構和指令集非常熟悉,開發(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接口。其接口,可工作在全速/低速設備模式下。對于控制傳輸方式,端點0最大能支持64b的數(shù)據(jù)包。對于塊傳輸、中斷傳輸和同步傳輸方式,有6個可編程端點,最大能支持256b的數(shù)據(jù)包。

本文引用地址:http://www.butianyuan.cn/article/262220.htm

  在啟動階段,可以通過對熔絲位HWBE(上劃線)置0,并下拉HWB(上劃線)引腳,使得系統(tǒng)先進入引導區(qū)程序,以方便固件更新。啟動流程部分,請參考圖2。

  ● bootloader開發(fā)示例

  對于微處理器來說,出廠的時候都預先燒錄了Atmel DFU (Device Firmware Update)進bootloader區(qū)。如果不需要進行bootloader區(qū)編程,可以省卻外部編程器。當需要更新固件程序時,無需外部編程器的參與,只需使系統(tǒng)運行在bootloader環(huán)境下,就可以利用USART、SPI或者接口,進行固件更新燒錄。

  在開源框架庫中,有好幾種不同的bootloader示例。如支持109協(xié)議的自編程框架,支持 DFU協(xié)議的自編程框架,或者其他。在開發(fā)過程中,作為開發(fā)者,只要能理解其相關原理,即可靈活運用。

  從示例中可以看出,整個軟件的工作流程如圖3所示。在啟動過程中,系統(tǒng)先調用初始化程序對相關的I/O口進行輸入/輸出定義及參數(shù)初始化;接著,進入bootloader循環(huán)。在bootloader循環(huán)中,系統(tǒng)不斷的檢測USB接口下的Endpoint,讀取數(shù)據(jù),返回指令信息等。直到收到結束通信的指令(109和DFU協(xié)議均有相關指令),才退出bootloader應用。最后斷開這次USB連接,程序指針跳轉到0x0000位置,也就是應用程序的開始點。如圖3。



關鍵詞: LUFA AVR USB MCU 單片機 201409

評論


相關推薦

技術專區(qū)

關閉