基于TUSB3410的MSP430 USB接口方案
TUSB3410選用12MHz晶振,與MCU信號連接如表2所示,數(shù)據(jù)傳輸時,MCU的UART模塊開始工作,支持TUSB3410所有波特率,同時通過12C模塊與外部EEPROM采用在線編程方式直接存儲數(shù)據(jù)MCU的P3.O/SETO引腳作為TUSB3410的復位腳,當MCU訪問EEPROM時,復位該引腳,當沒有外設連耐也可用該引腳進行復位測試
4.低成本參考設計
系統(tǒng)的功耗設計可以從兩方面考慮:(1)不使用外部EEP-ROM;(2)不使用外部晶振
(1)不使用外部EEPROM
利用TUSB3410實現(xiàn)的USB轉UART接口可以不使用外部EEPROM,VID/PID描述符使用TI的默認缺省值,TUSB3410固件從主機PC上下載即可實現(xiàn)通訊,但是,存在兩個問題:①因為不具備唯一VlD值,系統(tǒng)的USB設備兼容性不好;②當主機檢測到兩個不同USB設備,具有相同的VID/PID和序列號時,可能會導到USB設備不能正常工作或發(fā)生設備連接沖突所以,通常設計中不推薦采用此方法,除非該系統(tǒng)為獨立總線工作方式,即不與外界任何USB設備同進與主機通訊
TUSB3410由CLKOUT引腳輸出UART波特率或一個固定的3.556MHz的頻率信號,該頻率信號可以作為MCU的外時鐘輸入,這種穩(wěn)定的頻率信號可作為MCU外設的工作頻率,此時MCU無須連接外部晶振
當系統(tǒng)選用TUSB3410產生的頻率作為MCU時鐘時,只需修改TUSB3410固件,通過設置MODECNFG配置寄存器的CLKOUTEN位,CLKOUT位使能輸出,同時,CLKSLCT位用于選擇以UART輸出還是固定頻率輸出
修改后的固件存放在外部EEPROM或存放于系統(tǒng)的驅動程序包中,當存于系統(tǒng)驅動程序包中時,設備連接時修改后的固件自動從操作系統(tǒng)驅動程序中載入,MCU的OSCFAULT位用于檢測是否系統(tǒng)使用外部晶振當TUSB3410輸出7.3728MHz頻率作為MCU的UART模塊的時鐘源時,此時UART傳輸速率可達921 000波特
軟件設計
MCU固件的主程序流程圖如圖4所示,MCU上電復位后調用InitSystem()初始化程序,初始化外設、看門狗、通用I/O口等,設置系統(tǒng)時鐘為外部8MHz晶振,同時將USARTO設為12C模式與外部EEPROM實時通訊
MCU初始化時,TUSB3410處于復位狀態(tài),MCU通過12C直接檢測外部EEPROM的有效地址位和ACK應答位,當接收到有效ACK信號時,則調用EEPROM-Verify()程序校驗該EEPROM中的程序是否與MSP430F1612內部Flash存儲的EEPROM鏡像文件一致若檢測到外部EEPROM為空,則調用EEPROM_Write()程序將MSP430F1612內部Flash存儲的EEPROM鏡像寫入EEPROM當EEPROM程序更新后,TUSB3410釋放復位信號,讀取外部EEPROM值,當連接到USB主機控制器時,TUSB3410會將這些數(shù)據(jù)提供給USB主機核對,同時將MCU復位引腳設為NMI模式,防止MCU意外復位
初始化后,MCU通過Timer_B7模塊檢測SWl-SW4按鍵狀態(tài),當有鍵按下,捕獲/比較模塊捕捉到按鍵的上升沿信號時產生中斷,同時喚醒MCLJ
中斷服務程序流程圖如圖5所示,首先將USARTO設為UART異步串口模式,然后以460 800波特進行通訊,一幀數(shù)據(jù)通信的字符格式為8位數(shù)據(jù)位和1個停止位,沒有奇偶校驗位當系統(tǒng)要求高速率傳輸時,主機PC需打開虛擬COM口,并MCU配置相匹配,此時MCU傳輸速率可達到921 600波特
PC主機固件及USB驅動程序不作為本文敘述的重點
小結
超低功耗MSP430微控制器與TUSB3410實現(xiàn)USB設備的接口設計,具有功耗低、可靠性高、移植性強等特點,同時也可以加以推廣應用到其它便攜式設備開發(fā)中
評論