I2C の ACK とは I2Cプロトコルでは、スレーブ側が応答として DATA ラインを使って ACK応答を返します。その詳細を書いてみます。 ハード的には I2Cのはなしにも書きましたが、I2Cラインはオープンドレイン出力+プルアップで構成されています。特にDATA ラインはACK受信のため頻繁に送信ラインと受信ラインを切り替えています。ハードではオープンドレインポートと入力ポートからなっていますので、マスター側がACKを確認するにはオープンドレインを OFF ( 出力オープン状態)にしてプルアップ抵抗による High 状態にします。スレーブがACKとして Lowを返すと DATAラインが Lowになりますので、確認できます。 ここで注意したいのは、DATAラインを変化できるのは CLOCK ラインが Lowの期間だけ というきまりがあることです。マスター側もスレーブ側も CLOCKの
I2Cの続編です WEBではかなりI2Cの規格・プログラミングが公開されていますので、実際のトラブルに対する経験を書いてみたいと思います。 ハード的には 1)ウンともスンとも動かない時 テスターがあったら、動作させる前(電源入れた直後)にデバイス側とマイコン側のSCL,SDAの電圧を測ってみましょう。両方とも Highになっていますか?両方ともLowの場合はデバイス側の電源か、マイコン側のプルアップ抵抗をチェックしましょう。「デバイスのVdd端子を間違えて、動いてなかった」なんてことはよくあります。もちろんデバイスのアドレスデーター設定端子が合っているかチェックしましょう。アドレスが違うと反応しません。また送るアドレスデーターは間違えていませんか? アドレスデーターの最下位ビットは Read(1)/Write(0)の区別のため実際のアドレスより送るデータは2倍の値になります。 2) どちら
概要 本稿はMPUを使ったハードウェア間の通信規格のひとつであるI2Cについて記述しています。 本稿は現在、後輩指導用にノイズ対策部分についてのみ記述した書きかけの頁です。 ノイズ対策 I2CはWired-ORで通信を行うという仕様上、差動通信などに比べノイズに非常に弱いです。またバスを共有するため、誰かが通信ミスを犯すと全員に波及する場合があります。 基本的な対策としては、下記が挙げられます。その他の項目の詳細について順次後述していきます。 受信側プログラムにバグがないことを確認する 通信線をできるだけ短くする 通信クロックを遅くする プルアップ抵抗値を調整する、定電流源を使う、ローパスフィルタを入れる... I2Cハングアップとそれ以外の原因との切り分け I2C通信が原因と思われるハングアップをした場合、まずそれがI2C割り込みに起因するものかをチェックします。 チェックの手法として、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く