アナログ電子回路技術者同士の交流のためのアナログ・デバイセズ提供の掲示板サイトです。
日々の回路設計活動での課題や疑問とそれらの解決、あるいはご意見やご提案などの投稿を是非お寄せください!
  トップページに戻る
 現在の総記事数
 Translation
スタッフ
 

閲覧数の多い投稿

* ランキング情報は約24時間おきに更新されます。
ポイント数が高い投稿

* ランキング情報は約24時間おきに更新されます。

アナログ電子回路コミュニティサービス終了のお知らせ

平素はアナログ電子回路コミュニティをご愛顧いただき誠にありがとうございます。

この度、アナログ電子回路コミュニティは2018年3月末日をもってサービスを終了することとなりました。それに伴いまして、本サービスへの新規会員登録は2月末日をもって締切りといたします。約10年という大変長い間、たくさんの皆様にコミュニティをご利用いただきましたこと、深く感謝申し上げます。

なお、コミュニティに掲載しているコンテンツは編集の上、アナログ・デバイセズ社のウェブサイトに随時掲載していく予定です。詳細は追って会員の皆様にお知らせいたします。

今後ともEDN Japanをご愛顧くださいますようお願い申し上げます。


アナログ電子回路コミュニティ運営事務局
* LTC製品に関するご注意
申し訳ございませんが、現時点ではリニアテクノロジー社製品についてのお問い合わせは、リニアテクノロジー社の 技術サポートページ からお問い合わせください。

スレッド一覧に戻る

kawano-r
タイトル
AD7192 使い方が難しい・・・
ポイント []
pt.
アクセス410
カテゴリーA/D&D/Aコンバータ、クロック
キーワード MCLK2   難しい・24bit ADC AD7192   クロック   AIN2   コンフィギュレーションレジスタ   Powered by Yahoo
投稿日時17/12/12 19:05
24bit ADC AD7192 を使おうとしています。
接続は図の通りです。
アナログ電源 3.3V、デジタル電源 3.3V
アナログGND とデジタルGND は IC の近くで接続しています。
アナログ信号は 1本だけで、0.3V~2.5V くらいの間で変化します。
マイコンとは 1対1 で SPI にて接続しています。
クロックの速さは 500kHz です。
クロックの立下りでデータを変化させ、クロックの立ち上がりで取り込む設定です。データは MSB ファーストです。

40ms 毎に 1回ずつ変換をしたいので、下記の処理を行っています。

コンフィギュレーションレジスタ書き込み
0x00 0x01 0x08
チャンネル設定は AIN1 と AIN2 の間の信号を選択。
AIN2 端子が 0V なので(AINCOM端子も)、バッファモードの入力電圧範囲に入らないためアンバッファモードにしています。
正の値だけにしたいので U/B = 1 にしています。

モードレジスタ書き込み
0x2C 0x00 0x60
シングル変換を選択
内蔵クロックを MCLK2 端子へモニタ出力しています。

約18ms で変換が完了するようなので、上記から
約20ms後にデータレジスタを 3バイト読み出しています。

全体を 40ms 周期で繰り返しています。

ところが、変換結果が意図した値にならず、困っています。
何か数字が入っていることもあるし、オール 0 のときも
オール 1 のときもあります。

入力信号の電圧を変えても、値が変わりません。

また、MCLK2 端子から 4.92MHz クロックが出るときもあるし
出ないときもあります。

何が原因でしょうか?

ちなみに、ステータスレジスタを読み出すと 0x80 だったり
0x00 だったりします。

よろしくお願い致します。
※このデータをダウンロードするにはログイン(ユーザー登録)が必要です。

コメントする     


kawano-r 回答番号 3
タイトル
リセット開始時、500us 以上待つ
ポイント
pt.
アクセス331
投稿日時17/12/13 16:26
yoshi05 さん

コメントありがとうございます。

実はちゃんと読んでいなくて 500us は意識していませんでした。

改めて自分のプログラムを確認しました。
メインループに入る前に ADC のリセット動作を行っています。
そしてメインループの先頭で、20msタイマ割り込みが掛かったかどうかをチェックしてからループの中身の動作に入っています。
つまり最初に約 20ms 待ってからコンフィギュレーションレジスタやモードレジスタにアクセスしているので、問題ありませんでした。

以上、ご報告します。ありがとうございました。

yoshi05 回答番号 2
タイトル
FYI.
ポイント
pt.
アクセス355
投稿日時17/12/13 08:53

Cal さんのスレッド「AD7192 ADCの初期化」
 
>電源投入後、通信によりリセット(40ビットの1)を送信した後モード設定、コンフィグレーション設定を行います。

>「リセットが開始された場合、内蔵レジスタへのアクセスは 500 us 間待った後に行う必要があります。」

> 10秒待ったら・・ 

kawano-r 回答番号 1
タイトル
最初に強制リセットしたら動きました!
ポイント
pt.
アクセス397
投稿日時17/12/12 20:19
解決しました!

データシートを良く読むと、40サイクル以上の H を与えるとリセットされるという記述を見つけました。

マイコンのリセット解除後、メインループに入る前のところで SPI に対して 0xFF を連続 6回送信してやると強制的にリセットがかかり、正常に動くようになりました。

お騒がせしました。
良かった良かった!

スレッド一覧に戻る



コメント投稿

* コメントの投稿にはログイン(ユーザー登録)が必要です。


タイトル

* 50文字以内
『初心者でも大丈夫!』
(記事の内容が初心者向けの場合はここにチェックをしてください。)
本文

* あと6000文字

ファイル1
ファイル2
ファイル3

* 5MBまでのGIF, JPEG, PDF ファイルが投稿できます。

* 入力に時間がかかると、セキュリティのためにログイン情報が破棄されて書き込みが処理されないことがあります。投稿内容確認ボタンを押す前に、一旦文章をクリップボードにコピー(本文入力欄をクリック後Ctrlキー+A、Ctrlキー+Cと連続で押す)して、再貼り付けできるようにしておいて下さい。

ゲスト 様
投稿する場合はログインして下さい。 初めての方はこちらからご登録ください。

お知らせ
ユーザーランキング

* ランキング情報は約24時間おきに更新されます。


  個人情報保護方針会社情報お問い合わせ

copyright(c) 2010 - 2017 ITmedia Inc.