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

https://www.ti.com/lit/ug/spruhm8h/spruhm8h.pdf

LAUNCHXL-F28379D Overview User’s Guide (Rev. C)

https://www.ti.com/lit/pdf/sprui77

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 程式會卡死。

--

--