1 / 32

[1226] Lecture 12

[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

luce
Download Presentation

[1226] Lecture 12

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. [1226]Lecture 12 • USCI (Universal Serial Communication Interface) • USCI 傳輸協定包含UART、SPI以及I2C • MSP430F5438中的USCI模組分別支援USCI的傳輸協定 • EX:支援UART的USCI模組以UCA命名,支援I2C的USCI模組以UCB命名

  2. UCA • UCAx • 若是MSP430晶片中支援一組以上的UCA模組,則再加上數字,成為UCAx,x=0,1,2… • UCAx模組提供了USCI-UART Mode • UART Mode 的運作是設定了傳輸速率Baud-rate之後,將要傳輸的字節送入TXBUF傳出,或自RXBUF讀取收到的字節

  3. UCA • Character Format • 傳送的字節以特定的格式傳送 • 包含有Start bit = 0Data bits D0~D6(D7)Parity bitStop bit(s) = 1

  4. UCA • Baud-rate • 決定傳輸的速度,需要與傳輸對象有相同的設定。 • 常用的設定有9600 與115200 • 設定Baud-rate需要先以UCSSELx選擇時脈來源。 • 知道時脈來源後,參考User’s Guide 中的表34-4,以及表34-5找到對應的Baud-rate,按照表上的參數設定UCBRx、UCBRSx和UCBRFx.

  5. UCA • Baud-rate • 以Baud-rate 9600為例:

  6. UCA • 接收資料 • UART在接收資料時,資料會從USCIAxRXD進來,並存放在UCAxRXBUF中。 • UCAxRXBUF為一個8-bit的暫存器。接收完完整字節後,便會升起RXIFG,我們便可以透過RXISR 將資料讀出,並儲存到適當的位置 • 當RXBUF的資料被讀取,RXIFG便會被reset.

  7. UCA • 接收資料 • RXD的位置

  8. UCA • 傳送資料 • UART在傳送資料時,將資料存放在UCAxTXBUF中,UCAx便會將資料由UCAxTXD傳出去。 • UCAxTXBUF為一個8-bit的暫存器。存入的字節傳送出去後,便會升起TXIFG,我們便可以藉此知道該字節是否完成傳出 • 當TXBUF被寫進資料時,TXIFG便會被reset.

  9. UCA • 傳送資料 • TXD的位置

  10. UCA • UCAx模組設定 • UCAx的部分設定需要在模組暫停時才能變更,因此在設定前,我們需要以UCSWRT 軟體暫停功能先暫停UCA模組的活動。 • 透過暫存器設定偏好的設定(須配合傳輸對象),包括Stop bit 數量,Paritybit 模式,Baud-rate的四項參數以及時脈來源等設定。

  11. UCA • UCAx模組設定 • 待設定完成後,再清除UCSWRSTbit 讓系統就緒。 • 系統就緒後即可開始傳送與接收動作

  12. UCA • UCAxCTL0 • UCPEN:Parityenable0b= disabled1b= enabled • UCPAR: Parity select. Not used when parity is disabled.0b= Odd parity1b= Even parity

  13. UCA • UCAxCTL0 • UCMSB: MSB first select.0b = LSB first1b = MSB first • UC7BIT: Character length.0b = 8-bit data1b = 7-bit data

  14. UCA • UCAxCTL0 • UCSPB: Stop bit select.0b= One stop bit1b= Two stop bit • UCMODEx:00b = UART mode11b = UART mode with automaticbaud-rate detection

  15. UCA • UCAxCTL0 • UCSYNC: Synchronous mode enable0b = Asynchronous mode1b = Synchronous mode

  16. UCA • UCAxCTL1 • UCSSELx: Clock source select00b = UCAxCLK(external USCI clock)01b = ACLK10b = SMCLK11b = SMCLK

  17. UCA • UCAxCTL1 • UCSWRT: Software Reset(Default=1)通訊模組的軟暫停,許多設定必須在通訊模組暫停的情況下才能更動,預設是1。0b = 通訊模組啟動1b = 通訊模組暫停

  18. UCA • UCAxBR0 • UCBRx: Baud-rate prescaler(Bit7-Bit0)Baud-rate 預除器的Low byte 設定,加上的值成為UCBRx,用來設定Baud-rate 和Source clock的關係。

  19. UCA • UCAxBR1 • UCBRx: Baud-rate prescaler(Bit15-Bit8)Baud-rate 預除器的High byte 設定,加上的值成為UCBRx,用來設定Baud-rate 和Source clock的關係。

  20. UCA • UCAxMCTL • UCBRFx: First Modulation stage select.UCOS16 = 1b時用來調整BITCLK16使用UCOS16 = 0b時沒有作用。 • UCBRSx: Second Modulation stage select.用來調整BITCLK,依照需要的Baud-rate 在User’s Guide參考對應的值

  21. UCA • UCAxSTAT • UCLISTEN: Listen enable0b = Disabled1b = Enabled. UCAxTXD會把資料傳到receiver. • UCFE: Framing Error flag. • UCOE: Overrun Error flag • UCPE: Parity Error flag

  22. UCA • UCAxSTAT • UCBRK: Break detect flag. • UCRXERR: Receive error flag • UCADDR/UCIDLE: for ADDR mode or IDLE mode • UCBUSY: UCSI Busy flag.

  23. UCA • UCAxRXBUF • UCRXBUFx: Receive data Buffer外部傳入的資料會暫存於此,RXBUFx在收到資料後會升起UCRXIFG;讀取RXBUFx會清除UCRXERR、UCADDR(UCIDLE) and UCRXIFG. • 在7-bit 模式下(2 STOPbits) MSB會一直為0。

  24. UCA • UCAxTXBUF • UCTXBUFx: Transmit data Buffer將要傳出的資料存放於此。一旦將要傳輸的資料放置於此,傳輸模組即開始傳送,同時寫入資料到TXbuffer 會清除UCTXIFG • 在7-bit 模式下(2 STOPbits) MSB會一直為0且不被使用。

  25. UCA • UCAxIE • UCTXIE: Transmit interrupt enabled • UCRXIE: Receive interrupt enabled

  26. UCA • UCAxIFG • UCTXIFG: Transmit interrupt FlagUCTXIFG 會在 TXbuffer 清空時升起 • UCRXIFG: Receive interrupt FlagUCRXIFG 會在讀取完一個完整字節後升起

  27. UCA • UCAxIV • UCAxIV: Interrupt Vector反映 Interrupt source,02b = UCRXIFG; Higher Priority04b = UCTXIFG; Lower Priority

  28. Example • 範例1 • 利用RS232訊號線連接PC與MSP430EVM • 以RS232通訊測試軟體作為PC端程式 • 在EVM上收到字節後,將字節Echoback 回傳到PC端 • 範例程式下載

  29. Exercise • 練習1 • 撰寫一個UART傳輸程式 • No parity bit8-BIT dataOne stop bitCLK Source = ACLKBaud-rate = 9600 • 將來自PC端的資料顯示在LCM上 • 以Key pad 控制,傳輸5個不同字元到PC端

  30. Exercise • 完成後,找到專案裡面的source file,以附檔形式寄到 kchu@ares.ee.nchu.edu.tw,並在主旨中註明姓名、系級與學號,source檔名稱請利於辨識。EX: • 主旨: 微處理機實習 LAB3 王大明 電機碩二 7101064123

  31. Appendixes • 附件 • LCD.h • 附件下載

  32. Appendixes • 附件 • RS232通訊測試軟體 • 附件下載

More Related