Posted
by: 邱小新
at 上午9:26
in
8052
baudrate 推導過程,以 timer2 為 baudrate 產生器
- baudrate 的單位為 bps 即每秒傳送多少 bits,反過來說傳送一個 bit 要花掉 1/baudrate 時間。
- 根據上圖來看,每次 timer 溢位一次,要先經過一個 16 的除法器,所以需 16 次溢位才接收一個 bit。
- 根據上圖來看,計數器每次加一需先經過一個 2 的除法器,所以每一次溢位時間為 (65536-RCAP2) * 2 / Fosc。
- 每接受一個 bit 要花掉時間為 16 * (65536-RCAP2) * 2 / Fosc。
- 1/baudrate = 16 * (65536-RCAP2) * 2 / Fosc = 32 * (65536-RCAP2) / Fosc。
- baudrate = Fosc / 32 / (65536-RCAP2)。
- 以 40MHz 為例,baudrate 最大值為 1250000,最小值為 19。
- RCAP2 = 65536 - (Fosc / 32 / baudrate)。
- 以 11.0592MHz 為例,baudrate=115200 時,RCAP2 = 65536-(11059200 / 32 / 115200)=65536-3=65533。
- 以 22.1184MHz 為例,baudrate=115200 時,RCAP2 = 65536-(22118400 / 32 / 115200)=65536-6=65530。
張貼留言