新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC16位單片機(jī)CAN(6)外部AD

PIC16位單片機(jī)CAN(6)外部AD

作者: 時(shí)間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
外部AD使用的是AD7170 具體的資料看datasheet。簡單說一下這個AD的注意事項(xiàng)。
AD7170是一款低功耗ADC,片內(nèi)集成精密12位Σ-Δ調(diào)制器和數(shù)字濾波器,用于測量寬動態(tài)范圍、低頻信號。該器件具有一個內(nèi)部時(shí)鐘和一路差分輸入,輸出數(shù)據(jù)速率為125 Hz,增益為1。雙線式接口可簡化從AD7170獲取數(shù)據(jù)的過程。
簡單一句話。一個時(shí)鐘輸入,一個串行轉(zhuǎn)換輸出。模擬輸入為雙極性輸入。
時(shí)鐘和串行數(shù)據(jù)輸出就不多說了,看看時(shí)序就知道了。重點(diǎn)看一下什么叫做雙極性輸入。
AD7170支持雙極性輸入范圍。雙極性輸入范圍不代表器件可以耐受相對于系統(tǒng)GND的負(fù)電壓。AIN(+)輸入端的信號以AIN(?)輸入端的電壓為基準(zhǔn)。例如,當(dāng)使用2.5 V基準(zhǔn)電壓時(shí),如果AIN(?)為2.5 V,則AIN(+)輸入的模擬輸入范圍為0 V至5 V。
重點(diǎn)是數(shù)據(jù)輸出編碼?。?!
當(dāng)ADC的輸入設(shè)為單極性輸入時(shí),ADC的輸出碼是直接二進(jìn)制形式。以16位ADC為例,當(dāng)輸入為0V時(shí),輸出碼是0x0000;當(dāng)輸入是一半量程時(shí),輸出碼為0x8000;當(dāng)輸入為滿量程時(shí),輸出為0xFFFF。
如果ADC的輸入是雙極性的,那么ADC的輸出碼為偏移二進(jìn)制形式,以16位ADC為例,當(dāng)輸入為負(fù)的滿量程,輸出碼為0x0000;當(dāng)輸入為0V,輸出碼為0x8000;當(dāng)輸入為正的滿量程,輸出為0xFFFF。
具體的編碼輸出可以看datasheet說明。提倡看英文版的,因?yàn)橹形陌娴囊壮鲥e!
根據(jù)datasheet,我使用引腳電平變化中斷來確定什么時(shí)候AD轉(zhuǎn)換完成。
void __attribute__((__interrupt__,no_auto_psv)) _CNInterrupt(void)
{
IFS1bits.CNIF=0;//輸入電平變化通知中斷標(biāo)志狀態(tài)位
IEC1bits.CNIE=0;//輸入電平變化通知中斷允許位
if(PORTAbits.RA1==1)
{
Nop();
}
else
{
AD_Data=AD_ReadData()/2;
}
IEC1bits.CNIE=1;//輸入電平變化通知中斷允許位
}



關(guān)鍵詞: PIC16位單片機(jī)外部A

評論


技術(shù)專區(qū)

關(guān)閉