LPC810でAD変換

LPCOpen2.01でまたもやバグを発見(すでに発見したバクについては過去の投稿を探してください)。lpc_chip_8xx_libのacmp_8xx.cのChip_ACMP_SetupVoltLadderで、引数に記述したボルテージラダーの値が正しく設定されない。当面、(ボルテージラダーの値 << 1)と指定すれば正しく設定されるが、バグが修正されたとき誤動作を招くので、バグが修正されるまでこの関数を使わず、レジスタを直接操作するのが無難。

LPC810のボルテージラダーの動かしかたが判明した結果、NXPのAN11329に説明されている、コンパレータとタイマを使ったシグマデルタADコンバータが完成。これにI2Cスレーブのソースを埋め込んで1チャンネルADコンバータICのようにまとめた。動作確認した様子を下に示す。LCDが乗った基板はただひたすらADコンバータの値を読んで表示するだけの装置。その手前にある基板がADコンバータの評価装置。電圧入力ピンをプルアップ抵抗に当てているからLCDが約3.3Vを表示している。

ADC810

LPC810が本物のADコンバータを備えていればこんな面倒くさいことをしなくていい。しかし、これはこれでメリットもある。このADコンバータはフルスケール3.3VでAD変換値が3300になるよう設定してあり、直読でmV単位の電圧が得られる。こんなこと、既製のADコンバータにはできないでしょ。基本的にはAN11329のパクリだけれど、ソースはほぼ書き下ろし、それやこれやの現実的な機能を盛り込んだ。回路図とソースは清書してから公開するつもりだが、LPC810についてはほかにやりたいことがいっぱいあり、しばらく清書するヒマがないと思う。

広告
カテゴリー: LPC810 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中