CCS Note 02: How to calculate the baud rate of SCI Module
教學
如何計算與設定F2837xD SCI模組之Baud rate
環境
本文使用
OS: Windows x64
Code Composer Studio Version: 11.1
開發板: LAUNCHXL-F28379D Development kit
v210 Example
教學文章列表
參考資料
TMS320F2837xD Dual-Core Delfino Microcontrollers Technical Reference Manual
LAUNCHXL-F28379D Overview User’s Guide (Rev. C)
Section 1. 原理
Section 1.1 SCI Baud Rate Calculation
根據 Technical Reference Manual 給出的公式即可計算出Baud rate,並用來設定BRR。
此處需知道的參數有LSPCLK,CPU頻率200MHz情況下,預設為50MHz。
舉例來說:
若要設定 Baud = 9600 (bits/s)
BRR = [ 50000000 / (9600 * 8)]-1 = 651 = 0x28B
設定暫存器 SCIHBAUD = 0x2; SCILBAUD = 0x8B;
即可完成設定
其中BRR值介於(0, 65536) 間
若BRR=0,Baud = LSPCLK / 16
故LSPCLK = 50MHz 時,Baud rate max. = 3125000 (bits/s)
Section 1.2 LSPCLKDIV 調整
若要 Baud rate 操作在 > 3125000 bits/s,我們須調整LSPCLKDIV來提高時脈,概念圖以及暫存器內容(設定值為二進制)如下圖。
只需要在InitSysCtrl()下方加入設定,直接修改LSPCLKDIV即可。
EALLOW; //寫入保護關閉
…
EDIS; //寫入保護開啟
此處設定為將LSPCLK調整到100MHz
若BRR=2,Baud rate = 4Mbits/s。
目前實測與pySerial通訊,Baud rate到 4Mbits/s 可正常通訊
而 6Mbits/s 程式會卡死。