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