2017年12月02日

ADC微小電圧読込

今回はSTM32F103のAD変換を使用した際に
ちょっとした問題に遭遇したため紹介します。


TI製電流検知センサINA181A1の出力を
STM32F103のADCで読み込む際に
意図した電圧が読み込めてないことが分かりました。


シャント抵抗に10mΩを接続し、
0.3Aの電流を流しているので
60mVの出力が出ます。
※INA181A1はゲイン20倍

60mVの出力が出ていることは確認できましたが、
ADCで読み込むと6mVしか読み込めていない状況でした。


調査するとTI製電流検知センサINA181A1は全く問題がなく、
STM32F103のADCの初期化に問題があることが分かりました。


HAL_ADCEx_Calibration_Start
というADCのキャリブレーションを初期化時に実行すると
意図した60mVの出力を読み取ることができました。



可変抵抗などでざっくりとした値をAD変換で読み込む場合は
ADCのキャリブレーションをしなくとも問題ありませんが、
電流検知センサなどの微小な電圧を読み込む際には
ADCのキャリブレーションが必須です。


//ADの初期化
MX_ADC1_Init(); 

//ADのキャリブレーション
if (HAL_ADCEx_Calibration_Start(&hadc1) != HAL_OK) 
  {
    /* Calibration Error */
    Error_Handler();
  }


思った以上に微小電圧の読み込む場合は誤差が出るので、
面倒でもADCのキャリブレーションは初期化時に行った方が良さそうです。





ラベル:部品 STM32 HAL
posted by Crescent at 00:00| Comment(0) | 組込ソフト | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。