320 likes | 541 Views
[1226] Lecture 12. USCI (Universal Serial Communication Interface) USCI 傳輸協定包含 UART 、 SPI 以及 I 2 C MSP430F5438 中的 USCI 模組分別支援 USCI 的傳輸協定 EX: 支援 UART 的 USCI 模組以 UCA 命名, 支援 I 2 C 的 USCI 模組以 UCB 命名. UCA. UCAx 若是 MSP430 晶片中支援一組以上的 UCA 模組,則再加上數字,成為 UCAx , x=0,1,2… UCAx 模組提供了 USCI-UART Mode
E N D
[1226]Lecture 12 • USCI (Universal Serial Communication Interface) • USCI 傳輸協定包含UART、SPI以及I2C • MSP430F5438中的USCI模組分別支援USCI的傳輸協定 • EX:支援UART的USCI模組以UCA命名,支援I2C的USCI模組以UCB命名
UCA • UCAx • 若是MSP430晶片中支援一組以上的UCA模組,則再加上數字,成為UCAx,x=0,1,2… • UCAx模組提供了USCI-UART Mode • UART Mode 的運作是設定了傳輸速率Baud-rate之後,將要傳輸的字節送入TXBUF傳出,或自RXBUF讀取收到的字節
UCA • Character Format • 傳送的字節以特定的格式傳送 • 包含有Start bit = 0Data bits D0~D6(D7)Parity bitStop bit(s) = 1
UCA • Baud-rate • 決定傳輸的速度,需要與傳輸對象有相同的設定。 • 常用的設定有9600 與115200 • 設定Baud-rate需要先以UCSSELx選擇時脈來源。 • 知道時脈來源後,參考User’s Guide 中的表34-4,以及表34-5找到對應的Baud-rate,按照表上的參數設定UCBRx、UCBRSx和UCBRFx.
UCA • Baud-rate • 以Baud-rate 9600為例:
UCA • 接收資料 • UART在接收資料時,資料會從USCIAxRXD進來,並存放在UCAxRXBUF中。 • UCAxRXBUF為一個8-bit的暫存器。接收完完整字節後,便會升起RXIFG,我們便可以透過RXISR 將資料讀出,並儲存到適當的位置 • 當RXBUF的資料被讀取,RXIFG便會被reset.
UCA • 接收資料 • RXD的位置
UCA • 傳送資料 • UART在傳送資料時,將資料存放在UCAxTXBUF中,UCAx便會將資料由UCAxTXD傳出去。 • UCAxTXBUF為一個8-bit的暫存器。存入的字節傳送出去後,便會升起TXIFG,我們便可以藉此知道該字節是否完成傳出 • 當TXBUF被寫進資料時,TXIFG便會被reset.
UCA • 傳送資料 • TXD的位置
UCA • UCAx模組設定 • UCAx的部分設定需要在模組暫停時才能變更,因此在設定前,我們需要以UCSWRT 軟體暫停功能先暫停UCA模組的活動。 • 透過暫存器設定偏好的設定(須配合傳輸對象),包括Stop bit 數量,Paritybit 模式,Baud-rate的四項參數以及時脈來源等設定。
UCA • UCAx模組設定 • 待設定完成後,再清除UCSWRSTbit 讓系統就緒。 • 系統就緒後即可開始傳送與接收動作
UCA • UCAxCTL0 • UCPEN:Parityenable0b= disabled1b= enabled • UCPAR: Parity select. Not used when parity is disabled.0b= Odd parity1b= Even parity
UCA • UCAxCTL0 • UCMSB: MSB first select.0b = LSB first1b = MSB first • UC7BIT: Character length.0b = 8-bit data1b = 7-bit data
UCA • UCAxCTL0 • UCSPB: Stop bit select.0b= One stop bit1b= Two stop bit • UCMODEx:00b = UART mode11b = UART mode with automaticbaud-rate detection
UCA • UCAxCTL0 • UCSYNC: Synchronous mode enable0b = Asynchronous mode1b = Synchronous mode
UCA • UCAxCTL1 • UCSSELx: Clock source select00b = UCAxCLK(external USCI clock)01b = ACLK10b = SMCLK11b = SMCLK
UCA • UCAxCTL1 • UCSWRT: Software Reset(Default=1)通訊模組的軟暫停,許多設定必須在通訊模組暫停的情況下才能更動,預設是1。0b = 通訊模組啟動1b = 通訊模組暫停
UCA • UCAxBR0 • UCBRx: Baud-rate prescaler(Bit7-Bit0)Baud-rate 預除器的Low byte 設定,加上的值成為UCBRx,用來設定Baud-rate 和Source clock的關係。
UCA • UCAxBR1 • UCBRx: Baud-rate prescaler(Bit15-Bit8)Baud-rate 預除器的High byte 設定,加上的值成為UCBRx,用來設定Baud-rate 和Source clock的關係。
UCA • UCAxMCTL • UCBRFx: First Modulation stage select.UCOS16 = 1b時用來調整BITCLK16使用UCOS16 = 0b時沒有作用。 • UCBRSx: Second Modulation stage select.用來調整BITCLK,依照需要的Baud-rate 在User’s Guide參考對應的值
UCA • UCAxSTAT • UCLISTEN: Listen enable0b = Disabled1b = Enabled. UCAxTXD會把資料傳到receiver. • UCFE: Framing Error flag. • UCOE: Overrun Error flag • UCPE: Parity Error flag
UCA • UCAxSTAT • UCBRK: Break detect flag. • UCRXERR: Receive error flag • UCADDR/UCIDLE: for ADDR mode or IDLE mode • UCBUSY: UCSI Busy flag.
UCA • UCAxRXBUF • UCRXBUFx: Receive data Buffer外部傳入的資料會暫存於此,RXBUFx在收到資料後會升起UCRXIFG;讀取RXBUFx會清除UCRXERR、UCADDR(UCIDLE) and UCRXIFG. • 在7-bit 模式下(2 STOPbits) MSB會一直為0。
UCA • UCAxTXBUF • UCTXBUFx: Transmit data Buffer將要傳出的資料存放於此。一旦將要傳輸的資料放置於此,傳輸模組即開始傳送,同時寫入資料到TXbuffer 會清除UCTXIFG • 在7-bit 模式下(2 STOPbits) MSB會一直為0且不被使用。
UCA • UCAxIE • UCTXIE: Transmit interrupt enabled • UCRXIE: Receive interrupt enabled
UCA • UCAxIFG • UCTXIFG: Transmit interrupt FlagUCTXIFG 會在 TXbuffer 清空時升起 • UCRXIFG: Receive interrupt FlagUCRXIFG 會在讀取完一個完整字節後升起
UCA • UCAxIV • UCAxIV: Interrupt Vector反映 Interrupt source,02b = UCRXIFG; Higher Priority04b = UCTXIFG; Lower Priority
Example • 範例1 • 利用RS232訊號線連接PC與MSP430EVM • 以RS232通訊測試軟體作為PC端程式 • 在EVM上收到字節後,將字節Echoback 回傳到PC端 • 範例程式下載
Exercise • 練習1 • 撰寫一個UART傳輸程式 • No parity bit8-BIT dataOne stop bitCLK Source = ACLKBaud-rate = 9600 • 將來自PC端的資料顯示在LCM上 • 以Key pad 控制,傳輸5個不同字元到PC端
Exercise • 完成後,找到專案裡面的source file,以附檔形式寄到 kchu@ares.ee.nchu.edu.tw,並在主旨中註明姓名、系級與學號,source檔名稱請利於辨識。EX: • 主旨: 微處理機實習 LAB3 王大明 電機碩二 7101064123
Appendixes • 附件 • LCD.h • 附件下載
Appendixes • 附件 • RS232通訊測試軟體 • 附件下載