新聞中心

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

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

        作者: 時間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
        外部AD使用的是AD7170 具體的資料看datasheet。簡單說一下這個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ù)輸出編碼!!!
        當(dāng)ADC的輸入設(shè)為單極性輸入時,ADC的輸出碼是直接二進制形式。以16位ADC為例,當(dāng)輸入為0V時,輸出碼是0x0000;當(dāng)輸入是一半量程時,輸出碼為0x8000;當(dāng)輸入為滿量程時,輸出為0xFFFF。
        如果ADC的輸入是雙極性的,那么ADC的輸出碼為偏移二進制形式,以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位單片機外部A

        評論


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

        關(guān)閉
        主站蜘蛛池模板: 开江县| 蚌埠市| 宣城市| 康定县| 江城| 邵武市| 遵义县| 东宁县| 米林县| 高邮市| 泰兴市| 宜春市| 灌云县| 沅陵县| 徐闻县| 宜川县| 什邡市| 南溪县| 博罗县| 邻水| 安顺市| 阳谷县| 江永县| 辽源市| 全椒县| 天镇县| 晋宁县| 郧西县| 东至县| 黄平县| 兴城市| 武鸣县| 金坛市| 韶山市| 盖州市| 樟树市| 宜城市| 保靖县| 玉门市| 房山区| 额尔古纳市|