全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1133
推到 Plurk!
推到 Facebook!

鮑率加倍的問題?

答題得分者是:dootf
therockis75831
一般會員


發表:15
回覆:16
積分:6
註冊:2011-11-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-12-08 17:41:13 IP:210.66.xxx.xxx 訂閱
如果使用UART 模式1 (非同步10bit UART傳輸 可設定傳輸速率 用於電腦RS232)

然後一般這個公式都是TH1=256-[(2^smod) *Fosc /384*鮑率]
若今天我鮑率9600 那震盪器是設11.0592 MHz或者是22.1184MHz
為何會分為需要鮑率加倍?與不需要鮑率加倍?


我再某公司的IC看到 mode1 公式是 Baud Rate =(2^SMOD/32) *( Timer-1 overflow rate )

Timer-1 overflow rate又是什麼?
------
Rock
therockis75831
一般會員


發表:15
回覆:16
積分:6
註冊:2011-11-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-12-09 10:15:36 IP:122.147.xxx.xxx 訂閱
SMOD 選擇1是可鮑率加倍

鮑率加倍是什麼意思??
------
Rock
dootf
一般會員


發表:3
回覆:10
積分:7
註冊:2011-10-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-12-10 11:59:41 IP:123.193.xxx.xxx 未訂閱
smod = PCON 暫存器的 第7bit,當 UART 傳輸模式處於 1 or 3 的時候,就會與 smod 、 timer1 等等暫存器有關,公式如你自己提供的,計算方式如下:

Fose = 11.0592MHz
smod =0 所以 2^smod = 2^0 = 1

TH1=256-[(2^smod) *Fosc /384*鮑率]

TH1 = 256 -[ 1*11059200/(384*9600)]
=256-11059200/3686400
= 256-3
= 253 'TH1 就是 timer1 的 overflow,也就是 每三個晶振就溢位產生中斷

上述相同的情況下,若要產生鮑率 19200,則只須修改 smod = 1 即可

Fose = 11.0592MHz
smod =1 所以 2^smod = 2^1 = 2

TH1 = 256 -[ 2*11059200/(384*19200)]
=256-22118400/7372800
= 256-3
= 253
系統時間:2024-04-23 18:32:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!