1. <th id="61obs"><pre id="61obs"><sup id="61obs"></sup></pre></th>
      <button id="61obs"></button>

      <button id="61obs"><object id="61obs"></object></button>
      <rp id="61obs"><object id="61obs"></object></rp><th id="61obs"><pre id="61obs"></pre></th>

      <em id="61obs"></em><label id="61obs"></label>

      常見問題

      進芯電子AVP32F335的ADC使用時,采樣值偏差

      2021-11-15 來源:原創 瀏覽量:3650

      你好,我在用AVP32F335,在對外部標準的1.5v采樣的時候,會出現采樣值偏離較大,有些芯片甚至不到1.4v的采樣值,實測AD口的信號是1.5v。下面是初始化的代碼:

      1.AdcRegs.ADCTRL1.bit.RESET = 1; 惹的禍

      以上這個問題,首先要考慮的是ADCOFFTRIM寄存器。需要考慮系統出廠默認ADCOFFTRIM寄存器是否曾改變過?芯片在出廠測試時,會對每顆芯片的ADC測試,并把零點的偏差值寫入ROM中,而在芯片脫離仿真啟動的過程中,BOOT ROM的程序會自動調用ADC_cal()函數,其作用就是將ADCREFSEL和ADCOFFTRIM寄存器寫事先芯片出廠存在ROM中的數據。但芯片仿真過程中,會自動跳過BOOT ROM,因此在例程中,InitAdc()函數起始,對ADC時鐘使能后,就調用了ADC_cal()以寫入ADCOFFTRIM值。注意,ADC時鐘不使能,ADC寄存器是無法寫入的。ADC在每次轉換后,結果寄存器的值都會減去ADCOFFTRIM寄存器的值,此時的采樣結果才是準確的。所以,采樣值如果偏差過大,首先,可以設置斷點看下ADCOFFTRIM的值是否是出廠值。ADCOFFTRIM出廠值在地址0x380085;ADCREFSEL出廠值在地址0x380083。如果ADCOFFTRIM不等于0x380085地址的值,且不為0,您的軟件可能有重新對ADC校準的過程。如果ADCOFFTRIM等于0,還需要考慮文檔中以下描述內容。

      上圖資料顯示,ADCOFFTRIM寄存器的值是通過執行ADC_cal()函數來賦值的,而給ADC控制寄存器1的14位(RESET)置1,會清零ADCOFFTRIM以及其他ADC寄存器。因此,在RESET=1之后,一定要重復執行一次ADC_cal();相對于要重新配置ADC,以下測試過程可以完整體現此問題。如以下測試程序:


      上圖是在執行AdcRegs.ADCTRL1.bit.RESET = 1; 之前,寄存器AdcRegs.ADCOFFTRIM.bit.OFFSET_TRIM 的值是11;

      執行完AdcRegs.ADCTRL1.bit.RESET = 1;后,寄存器AdcRegs.ADCOFFTRIM.bit.OFFSET_TRIM 的值是0,

      只有當從新調用ADC_cal()后,寄存器AdcRegs.ADCOFFTRIM.bit.OFFSET_TRIM才回到11。RESET位功能說明如下:

      注意:因為RESET=1后是重置整個ADC,所以在RESET=1以后,不但ADC_cal()要重新調用,ADC所有寄存器都恢復默認狀態,同樣影響到進芯電子ADC內部1.5v模擬電源使能位需使能的注意事項AdcRegs.ADCTRL1.bit.rsvd1 = 8;

      以上問題,在TMS320F28335芯片上同樣存在,而在TI的程序示例代碼中,因為沒有AdcRegs.ADCTRL1.bit.RESET = 1; 且F28335的ADCOFFTRIM值比較集中,所以一般不會注意此問題。


      電話咨詢

      0731-88731027

      微信公眾號

      微信公眾號

      微信公眾號

      移動二維碼

      移動二維碼

      移動二維碼

      返回頂部

      爆乳流奶水无码中文字幕在线网站_免费黄色视频观看_91看片婬黄大片欧美看国产片_av天堂成人在线

      1. <th id="61obs"><pre id="61obs"><sup id="61obs"></sup></pre></th>
          <button id="61obs"></button>

          <button id="61obs"><object id="61obs"></object></button>
          <rp id="61obs"><object id="61obs"></object></rp><th id="61obs"><pre id="61obs"></pre></th>

          <em id="61obs"></em><label id="61obs"></label>