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