BRG là thanh ghiphỏt chuyờn dụng 8 bithoặc 16 bit được cung cấp trong chế đụ
đồng bộ và khụngđồng bộ của EUSART.BRG được mặc định hoạtđộng ở c
hế độ 8
bit;đặtBRGlàmviệc16bitdựngthanhghi(BAUDCON<3>)đểchọnchếđộ 16bit.
The SPBRGH:SPBRG là hai thanh ghi điều khiển chu kỡ của bộ đếm th
ời gian
chạy tự do. Trong chế độ khụng đồng bộ cỏc bit BRGH (TXSTA<2>) và
BRG16
(BAUDCON<3>) cũng điều khiển tốc độ baud.Trong chế độ đồng bộ, BRGH
khụng
được dựng. Bảng 18-1 chỉ ra cỏch tớnh toỏn tốc độ baud cho cỏc chế độ E
USART
khỏcnhau mànúchỉỏpdụngchochếđộchớnh (tạoxungnhịpbờntrong). TừtốcđộbaudyờucầuvàtầnsốthạchanhFosc,giỏtrịnguyờngầnnhấtđư ợctớnh
cho thanh ghiSPBRGH:SPBRG cú thể tớnh toỏn dựa vào kết quả của bảng 1
8-1. Từ
đú cỏc lỗi về tốc độ baud cú thểxỏc định.Một vớ dụ về tớnh tốc độ baud tron g vớ dụ
18-1.Tốc độmặc định và lỗigiỏtrị trong cỏcchế độkhụngđồng bộkhỏc
nhauđược
chỉ ra trong bảng 18-2. Đú cú thể là thũn lợi cho việc sử dụng tốc độ ba
ud cao
(BRGH = 1) hoặc 16-bit BRG để làm giảm lỗitốc độ baud,hoặc cú thểđạt
được tốc
độbaudthấpkhisửdụng bộdao động cú tầnsố cao.Ghilạigiỏtrị mớivàoth anhghi
SPBRGH:SPBRG bằngcỏch resetBRG (hoặc xúa). BộBRG đưara tốcđộba
udmới
trướcthờigiantràn.
Hoạtđộngởchếđộquảnlớnguồn.
Bộtạoxungđược sửdụngđểphỏtratốcđộbaudmongmuốn.Khihoạtđộn gở chế
độ quản lớ nguồn, nguồn xung nhịp mới cú thể hoạt động ở cỏc tần số khỏc
nhau .
Bằngcỏchthay đổigiỏtrịtrongcặpthanhghiSPBRG.
VÍ DỤ: Dữ liệu trờn chõn RX được lấy mẫu 3 lần bằng cỏch dũtrờn mạch n
ếu mức
tớchcựctrờnchõnRXlàmứccaohaythấp.
TỰĐỘNGDềTỐCĐỘBAUD
Module USART mở rộng hỗ trợ chế độ dũ và hiệu chỉnh tốc độ baud t
ự động.
Đõy là đặc trưng hoạtđộng chỉ cú trong chế độkhụng đồng bộ và trong khi b it được
xúa.
PhạmVănCường- HồngVănQũn.Lớp ĐKTĐ1-K49
41
ViđiềukhiểnPic iểnPic
Tốc độbaud được đoliờn tục bắtđầu khi bitstart được nhậnvà bitABDE
N được
Trongchếđộtựdũ tốcđộbaud(ABD),xungnhịpcủa BRGđượcđảohơn nửabộ
đếm BRGthuthậptớn hiệuRX,tớnhiệuRXlàthờigian BRG.TrongchếđộA
BD,bộ
phỏttốcđộbaudtừbờntrong đượcsửdụng nhưbộđếmthờigian chu kỳbit củathu
thậpchuỗibytenốitiếp.
Khi màbitABDENđượcset, trạngthỏi mỏysẽ xúaBRG vàchờ bitstart. T
ựđộng
dũ tốc độbaud phải nhõn byte vớigiỏ trị 55h (ASCII “U”, núcũng là kớ tự đ
ồng bộ
LIN bus)để tớnh toỏn tần số chớnh xỏc.Phộp đođượclấy trờn cả hai mứccao và thấp
để làm giảm tớnh đối xứng của tớn hiệu thu thập. Sau khi start bit, SPBRG bắt đầu
đếm, nú sẽ đếm sườn lờnđõu tiờn đầu tiờn của RX. Sau khi 8 bittrờn chõn R
X hoặc
sườn lờn thứ 5 của RX , một giỏ trị tổng chu kỡ BRG được đặt trong cặp th
anh ghi
SPBRGH:SPBRG.Mộtkhicúsườnlờnthứ5,thỡbitABDENsẽtựđộngđược
xúa.
Nếu thanh ghiBGR xảy ra tràn (tràntừ FFFFhđến 0000h), sự kiện này đ
ược bỏo
hiệu bởitrạngthỏi bit ABDOVF(BAUDCON<7>).Bitnàyđượcset bằngphầ ncứng
khixảyratràn vàcúthểsethoặcxúabằngphầnmền.Chế độABDvẫn hoạtđ ộngkhi
xảyrasựkiệntrànvà bitABDENvẫnđượcđặt(Figure18-2).
Trongkhihiệu chỉnh chu kỡtốcđộbaud, giỏtri thanh ghiBRG đượcđặtb ằng 1/8
tốc độ xung nhịp ban đầu . Xung nhịp BRG được thiết lập bởi cỏc bit BR
G16 và
BRGH . BitBRG16được đặt độclập, cả SPBRGvà SPBRGH được sử dụng
như bộ
đếm 16 bit. Cho phộp người lập trỡnh là khụng cú nhớ trong chế độ8 bit bằn g cỏch
kiểmtrathanhghiSPBRGHcú bằng00hkhụng.
Trong quỏ trỡnhABD diễn ra ,trạng thỏi bộ vi xử lớ trongchế độ EUSRT l à trạng
thỏi rảnh rỗi(Idle). Bit bỏo ngắt RCIF được đặt khi phỏt hiện ra sườn lờn thứ 5 trờn
RX. Cầnđọc giỏ trị trong thanh ghiRCREG để xúa cờ ngắt RCIF. Giỏ trị chứ
a trong
RCREGcúthểbỏđi.
ChếđộtruyềnEUSARTvàABD(AutoBaudRateDetect)
Khi xung nhịp BRG được giữ trong quỏ trỡnh ABD ,chế độ truyền E
khụngđược sử dụngtrong quỏ trỡnhABDhoạt động.Điều nàycú nghĩa làbất cứ khi
nào bit ABDEN được set,thi TXREG khụng thể được ghi . Người sử dụng ph
ải đảm
bảorằngbitABDENkhụngđượcsettrongquỏ trỡnhtruyềnliờntiếp.Khiđúho ạtđộng
củaEUSARTsẽkhụngxỏcđinh.
PhạmVănCường- HồngVănQũn.Lớp ĐKTĐ1-K49
42
ViđiềukhiểnPic iểnPic