8052 UART

Posted by: 邱小新 at 上午9:26 in

baudrate 推導過程,以 timer2 為 baudrate 產生器

  1. baudrate 的單位為 bps 即每秒傳送多少 bits,反過來說傳送一個 bit 要花掉 1/baudrate 時間。
  2. 根據上圖來看,每次 timer 溢位一次,要先經過一個 16 的除法器,所以需 16 次溢位才接收一個 bit。
  3. 根據上圖來看,計數器每次加一需先經過一個 2 的除法器,所以每一次溢位時間為 (65536-RCAP2) * 2 / Fosc。
  4. 每接受一個 bit 要花掉時間為 16 * (65536-RCAP2) * 2 / Fosc。
  5. 1/baudrate = 16 * (65536-RCAP2) * 2 / Fosc = 32 * (65536-RCAP2) / Fosc。
  6. baudrate = Fosc / 32 / (65536-RCAP2)
  7. 以 40MHz 為例,baudrate 最大值為 1250000,最小值為 19。
  8. RCAP2 = 65536 - (Fosc / 32 / baudrate)
  9. 以 11.0592MHz 為例,baudrate=115200 時,RCAP2 = 65536-(11059200 / 32 / 115200)=65536-3=65533。
  10. 以 22.1184MHz 為例,baudrate=115200 時,RCAP2 = 65536-(22118400 / 32 / 115200)=65536-6=65530。

0 意見

張貼留言