Nuvoton(新唐科技)M480 LPUART(Low Power UART)如何使用 32KHz crystal 當 clock source 來產生 9600及4800 Baud rate 的訊號

以9600 baud rate為例,每個位元週期 = 1/9600 = 104.16 us
因為 32kHz 當 LPUART clock source 時, 除頻後的 9600 baud rate 誤差偏大
每個位元週期 = 1/[32768/(1+2)] = 91.55 us
誤差率 = (104.16-91.55)/104.16*100% = 12.11% 已經大於 UART 規格可容許的誤差, 會導致無法正常通訊
M480 LPUART 硬體有增加 baud rate 正補償與負補償的功能,可以改善 baud rate 的誤差
M480 TRM 裡有詳盡的描述如何設置,如下範例 :

1. Baud rate 9600
UART 外設時鐘為 32.768K,波特率為9600,即每位 3.413 個外設時鐘
如果分頻值設為 1 (每位 3 個外設時鐘),則每位的誤差為 -0.413 個外設時鐘,BRCOMPDEC = 0

所以 BRCOMP (UART_BRCOMP[8:0]) 可以設為 9'b010100101 = 0xa5.


2. Baud rate 4800
UART 外設時鐘為 32.768K,波特率為 4800,即每位 6.827 個外設時鐘
如果分頻值設為 5 (每位 7 個外設時鐘),則每位的誤差為 0.173 個外設時鐘,BRCOMPDEC = 1

所以 BRCOMP (UART_BRCOMP[8:0]) 可以設為 9'b010000010 = 0x82. 


UART 波特率補償寄存器 (UART_BRCOMP) 

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論