基于ATt i n y 1 3的模擬量隔離采集
4.2 波特率設(shè)置
波特率是UART異步串行通信中非常重要的參數(shù)。通信雙方必須以約定好的速率通信,才能保證通信成功。波特率與異步串行協(xié)議中“位”所占用的時(shí)間密切相關(guān)。對于二進(jìn)制信號,數(shù)據(jù)幀中每一位的占用時(shí)間就是波特率的倒數(shù)。因此,如何精確確定每一位的時(shí)間寬度,成為確保串口通信成功的關(guān)鍵因素。
ATtiny13沒有集成UART,但內(nèi)部含有一個(gè)8位定時(shí)器/計(jì)數(shù)器,可利用軟件控制該定時(shí)器產(chǎn)生波特率。MCU自帶的RC振蕩器可以作為時(shí)鐘源,但是振蕩頻率存在最大±10%的誤差,并且受溫度影響較大。這樣會造成波特率不穩(wěn),通信時(shí)可能出現(xiàn)接收不到數(shù)據(jù),或者丟數(shù)據(jù)位、出現(xiàn)亂碼和錯碼的情況。ATtiny13從外部引入了7.372 8 MHz有源晶振時(shí)鐘信號,從而保證了主時(shí)鐘頻率的穩(wěn)定性。
異步通信波特率可按式(1)計(jì)算。
式中:XTAL為引入的主時(shí)鐘頻率;Baud為需設(shè)置的波特率;C為定時(shí)器時(shí)鐘分頻系數(shù);n為8位定時(shí)器/計(jì)數(shù)器的預(yù)加載比較值。定時(shí)器/計(jì)數(shù)器工作在CTC模式(比較匹配時(shí)清零定時(shí)器)。
XTAL即7.372 8 MHz,Baud設(shè)定為9 600,定時(shí)器時(shí)鐘信號為主時(shí)鐘4分頻(即C=4),可得n=192。據(jù)此,8位定時(shí)器/計(jì)數(shù)器從0計(jì)到192時(shí),產(chǎn)生比較中斷,軟件控制發(fā)送新的一位信息。
4.3 數(shù)據(jù)發(fā)送
UART異步串行協(xié)議規(guī)定了在沒有數(shù)據(jù)幀發(fā)送時(shí),通過邏輯“1”表示目前處于閑置狀態(tài)。如果有數(shù)據(jù)需要發(fā)送,首先將發(fā)送線TXD拉低成邏輯“0”,并保持一個(gè)基本時(shí)間單位;之后根據(jù)待發(fā)送數(shù)據(jù)的二進(jìn)制數(shù)值,依次逐位輸出。本設(shè)計(jì)中未使用奇偶校驗(yàn)位,相關(guān)處理略去。5位數(shù)據(jù)發(fā)送完畢后,緊接著將TXD拉高為邏輯“1”,表示該幀結(jié)束。軟件UART發(fā)送流程如圖2所示。本文引用地址:http://butianyuan.cn/article/188463.htm
函數(shù)Uart_SendByte(unsigned char data)實(shí)現(xiàn)了上述功能,一次發(fā)送5位數(shù)據(jù)。在模擬量隔離采集中,單片機(jī)不斷地獲取A/D轉(zhuǎn)換值,并通過調(diào)用上述函數(shù)發(fā)送出去。
結(jié) 語
本文介紹一種基于ATtiny13的模擬量隔離采集電路,受ADC最大采樣速率及光耦PC817傳輸帶寬的限制,只適用于頻率變換緩慢的模擬信號。該電路體積小、成本低、接線簡單,已用于開關(guān)電源成品檢測。
評論