基于TUSB3410的MSP430 USB接口方案
本文主要講述利用TUSB3410 USB-TO-UART橋接芯片實現(xiàn)MSP430微控制器與USB設(shè)備通訊的一種接口方案
通過該USB接口可實現(xiàn)高達921 600bit/s的數(shù)據(jù)傳輸速率,也可通過該接口下載MSP430程序代碼,是一種MSP430系列微控制器的高效USB接口解決方案
硬件設(shè)計
系統(tǒng)結(jié)構(gòu)框圖如圖1所示,主機PC與MSP430之間可進行全雙工串口通訊,主機PC經(jīng)TUSB3410虛擬的一個COM口與MSP430的硬件USART模塊進行通訊,本文重點敘述TUSB3410與MCU之間的軟、硬件設(shè)計
系統(tǒng)采用USB總線供電模式,MCU可通過I2C接口對TUSB3410進行在線編程及外部EEPROM存儲器的配置
1.TUSB3410接口芯片
TUSB3410為TI公司推出的一款用于USB-TO-UART端口的橋接器,包括通過USB總線與主機進行通信所必需的全部邏輯電路,符合USB2.0規(guī)范,支持最高12Mb/s的全速傳輸,支持USB中止、恢復(fù)及遠程喚醒功能;同時,其內(nèi)部包含一個8052的CPU核、16KB RAM、包含I2C引導加載程序的10KB ROM,4個通用I/0口,具有USB總線供電和自帶電源兩種供電模式
TUSB3410引腳框圖如圖2所示
2.USB配置
TUSB3410可以支持多種應(yīng)用,本文所描述的參考設(shè)計配置如表1所示
對于USB的兼容性來說,任意USB設(shè)備都具有唯一的VID(廠商識別碼)和PID(產(chǎn)品識別碼),VID/PID值作為一描述符傳輸給主機PC,并且與存儲在驅(qū)動INF文件中的值相匹配,操作系統(tǒng)根據(jù)VlD/PID加載不同的驅(qū)動程序
外部EEPROM用于存儲配置參數(shù),如VID/PID信息等,既可通過MCU經(jīng)12C模塊將EEPROM的鏡像文件寫入EEP-ROM,也可通過專用EEPROM編程器直接對EEPROM進行鏡像文件寫入TUSB3410也通過12C接口讀取EEPROM數(shù)據(jù)
3.硬件電路原理
系統(tǒng)原理圖如圖3所示,本文以MSP430F1612(U1)為例,任意一款內(nèi)部含UART模塊的MSP430微處理器均可與TUSB3410連接,MSP430F1612為MSP430系列中的高端MCU,豐富的資源使得開發(fā)具有更多的靈活性
MSP430F1612選用8MHz晶振工作,MCU的6個引腳P1-P6通過PORT1-PORT6的8引腳插針引出,方便MCU與TUSB3410(U2)及外圍器件的連接;SW1-SW4按鍵和LED1-LED4指示燈均通過I/O口控制,演示測試過程;同時,MCU與標準14針JTAG接口連接用于調(diào)試程序或調(diào)整電壓值
系統(tǒng)采用USB總線供電,同時LED5指示燈點亮,TUSB3410(U2)的USB數(shù)據(jù)信號經(jīng)雙路USB端口瞬態(tài)抵制器SN75240(U3)后連接到標準的USB B型連接口,以增強系統(tǒng)ESD抗干擾能力;USB總線提供的5V電壓經(jīng)TPS77301(U4)3.6V LDO穩(wěn)壓后作為MCU系統(tǒng)的VCC電壓
外部EEPROM(U5)通過12C通訊并存儲USB配置參數(shù),EEPROM的大小根據(jù)存儲量選擇,編程時通過短接JP1跳針與EEPROM的SCL信號線相連,同時TUSB3410通過USB將標準的VID/PID值傳送到主機PC
TUSB3410選用12MHz晶振,與MCU信號連接如表2所示,數(shù)據(jù)傳輸時,MCU的UART模塊開始工作,支持TUSB3410所有波特率,同時通過12C模塊與外部EEPROM采用在線編程方式直接存儲數(shù)據(jù)MCU的P3.O/SETO引腳作為TUSB3410的復(fù)位腳,當MCU訪問EEPROM時,復(fù)位該引腳,當沒有外設(shè)連耐也可用該引腳進行復(fù)位測試
4.低成本參考設(shè)計
系統(tǒng)的功耗設(shè)計可以從兩方面考慮:(1)不使用外部EEP-ROM;(2)不使用外部晶振
(1)不使用外部EEPROM
利用TUSB3410實現(xiàn)的USB轉(zhuǎn)UART接口可以不使用外部EEPROM,VID/PID描述符使用TI的默認缺省值,TUSB3410固件從主機PC上下載即可實現(xiàn)通訊,但是,存在兩個問題:①因為不具備唯一VlD值,系統(tǒng)的USB設(shè)備兼容性不好;②當主機檢測到兩個不同USB設(shè)備,具有相同的VID/PID和序列號時,可能會導到USB設(shè)備不能正常工作或發(fā)生設(shè)備連接沖突所以,通常設(shè)計中不推薦采用此方法,除非該系統(tǒng)為獨立總線工作方式,即不與外界任何USB設(shè)備同進與主機通訊
(2)MSP430微控器器不使用外部晶振
TUSB3410由CLKOUT引腳輸出UART波特率或一個固定的3.556MHz的頻率信號,該頻率信號可以作為MCU的外時鐘輸入,這種穩(wěn)定的頻率信號可作為MCU外設(shè)的工作頻率,此時MCU無須連接外部晶振
當系統(tǒng)選用TUSB3410產(chǎn)生的頻率作為MCU時鐘時,只需修改TUSB3410固件,通過設(shè)置MODECNFG配置寄存器的CLKOUTEN位,CLKOUT位使能輸出,同時,CLKSLCT位用于選擇以UART輸出還是固定頻率輸出
修改后的固件存放在外部EEPROM或存放于系統(tǒng)的驅(qū)動程序包中,當存于系統(tǒng)驅(qū)動程序包中時,設(shè)備連接時修改后的固件自動從操作系統(tǒng)驅(qū)動程序中載入,MCU的OSCFAULT位用于檢測是否系統(tǒng)使用外部晶振當TUSB3410輸出7.3728MHz頻率作為MCU的UART模塊的時鐘源時,此時UART傳輸速率可達921 000波特
軟件設(shè)計
MCU固件的主程序流程圖如圖4所示,MCU上電復(fù)位后調(diào)用InitSystem()初始化程序,初始化外設(shè)、看門狗、通用I/O口等,設(shè)置系統(tǒng)時鐘為外部8MHz晶振,同時將USARTO設(shè)為12C模式與外部EEPROM實時通訊
MCU初始化時,TUSB3410處于復(fù)位狀態(tài),MCU通過12C直接檢測外部EEPROM的有效地址位和ACK應(yīng)答位,當接收到有效ACK信號時,則調(diào)用EEPROM-Verify()程序校驗該EEPROM中的程序是否與MSP430F1612內(nèi)部Flash存儲的EEPROM鏡像文件一致若檢測到外部EEPROM為空,則調(diào)用EEPROM_Write()程序?qū)SP430F1612內(nèi)部Flash存儲的EEPROM鏡像寫入EEPROM當EEPROM程序更新后,TUSB3410釋放復(fù)位信號,讀取外部EEPROM值,當連接到USB主機控制器時,TUSB3410會將這些數(shù)據(jù)提供給USB主機核對,同時將MCU復(fù)位引腳設(shè)為NMI模式,防止MCU意外復(fù)位
初始化后,MCU通過Timer_B7模塊檢測SWl-SW4按鍵狀態(tài),當有鍵按下,捕獲/比較模塊捕捉到按鍵的上升沿信號時產(chǎn)生中斷,同時喚醒MCLJ
中斷服務(wù)程序流程圖如圖5所示,首先將USARTO設(shè)為UART異步串口模式,然后以460 800波特進行通訊,一幀數(shù)據(jù)通信的字符格式為8位數(shù)據(jù)位和1個停止位,沒有奇偶校驗位當系統(tǒng)要求高速率傳輸時,主機PC需打開虛擬COM口,并MCU配置相匹配,此時MCU傳輸速率可達到921 600波特
PC主機固件及USB驅(qū)動程序不作為本文敘述的重點
小結(jié)
超低功耗MSP430微控制器與TUSB3410實現(xiàn)USB設(shè)備的接口設(shè)計,具有功耗低、可靠性高、移植性強等特點,同時也可以加以推廣應(yīng)用到其它便攜式設(shè)備開發(fā)中