PIC16位單片機(jī)CAN(6)外部AD
AD7170是一款低功耗ADC,片內(nèi)集成精密12位Σ-Δ調(diào)制器和數(shù)字濾波器,用于測量寬動態(tài)范圍、低頻信號。該器件具有一個內(nèi)部時鐘和一路差分輸入,輸出數(shù)據(jù)速率為125 Hz,增益為1。雙線式接口可簡化從AD7170獲取數(shù)據(jù)的過程。
簡單一句話。一個時鐘輸入,一個串行轉(zhuǎn)換輸出。模擬輸入為雙極性輸入。
時鐘和串行數(shù)據(jù)輸出就不多說了,看看時序就知道了。重點看一下什么叫做雙極性輸入。
AD7170支持雙極性輸入范圍。雙極性輸入范圍不代表器件可以耐受相對于系統(tǒng)GND的負(fù)電壓。AIN(+)輸入端的信號以AIN(?)輸入端的電壓為基準(zhǔn)。例如,當(dāng)使用2.5 V基準(zhǔn)電壓時,如果AIN(?)為2.5 V,則AIN(+)輸入的模擬輸入范圍為0 V至5 V。
重點是數(shù)據(jù)輸出編碼!?。?/div>
當(dāng)ADC的輸入設(shè)為單極性輸入時,ADC的輸出碼是直接二進(jìn)制形式。以16位ADC為例,當(dāng)輸入為0V時,輸出碼是0x0000;當(dāng)輸入是一半量程時,輸出碼為0x8000;當(dāng)輸入為滿量程時,輸出為0xFFFF。
如果ADC的輸入是雙極性的,那么ADC的輸出碼為偏移二進(jìn)制形式,以16位ADC為例,當(dāng)輸入為負(fù)的滿量程,輸出碼為0x0000;當(dāng)輸入為0V,輸出碼為0x8000;當(dāng)輸入為正的滿量程,輸出為0xFFFF。
具體的編碼輸出可以看datasheet說明。提倡看英文版的,因為中文版的易出錯!
根據(jù)datasheet,我使用引腳電平變化中斷來確定什么時候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
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論