この連載では、AVRのUSI、TWIの2種類のインターフェース・モジュールを使ったI2C通信のC言語プログラミングについて解説します。まずは比較的プログラミングが簡単なTWIモジュールを使用したI2Cマスタ・プログラム、I2Cスレーブ・プログラムについて説明した後に、USIのマスタ、スレーブ・プログラムについて説明します。
続きを読む "AVRのI2C通信プログラミング(1) USIとTWI" »
今回は、AVRのI2Cマスタ動作時のTWI関係のレジスタや、TWIを使用したI2Cマスタ通信プログラムの処理の概要について説明します。
続きを読む "AVRのI2C通信プログラミング(2) TWI使用のI2Cマスタ その1" »
今回はTWIを使ったI2Cマスタの具体的なプログラムのコードについて説明します。なお、処理を簡単にするために、待ち処理では割り込みは使用せず、割り込み要因フラグ(TWINT)をポーリングしています。
続きを読む "AVRのI2C通信プログラミング(3) TWI使用のI2Cマスタ その2" »
前回はTWIモジュールを使ったI2Cマスタ制御プログラムを機能(関数)ごとに説明しましたが、今回は、それらの関数を組み合わせて実際のI2Cスレーブ(I2C-EEPROMの24LC64)をアクセスするプログラムについて説明します。
続きを読む "AVRのI2C通信プログラミング(4) TWI使用のI2Cマスタ その3" »
今回からAVR内蔵のTWIモジュールを使用したI2Cスレーブの制御ソフトウェアについて説明しますが、具体的なソフトウェアの説明に入る前に、今回作成するI2Cスレーブのドライバの構造や使い方について概要を簡単に説明しておきます。
続きを読む "AVRのI2C通信プログラミング(5) TWI使用のI2Cスレーブ その1" »
今回は、TWIモジュールを使用したI2Cスレーブの制御ソフトウェアについて、レジスタの用途や処理方法などを説明します。
スレーブ動作は受動的な処理になりますが、ステータス・レジスタの状態コードにより動作が決められるため、意外と簡単なプログラムになります。
続きを読む "AVRのI2C通信プログラミング(6)
TWI使用のI2Cスレーブ その2" »
今回はTWIを使用したスレーブ制御ソフトウェアのコードを説明します。
実験にはマスタとスレーブの二つのマイコン・ボードを使用しますが、今回はスレーブ側のソフトウェアを中心に実験環境や実験用のアプリケーション・プログラムについて説明します。
続きを読む "AVRのI2C通信プログラミング(7)
TWI使用のI2Cスレーブ その3" »
前回に引き続き、I2Cマスタ-スレーブ通信の実験用アプリケーションについて説明します。今回は、スレーブをテストするためのマスタ・アプリケーションのプログラムについて説明し、マスタ、スレーブを接続して実際に作動させます。
続きを読む "AVRのI2C通信プログラミング(8)
TWI使用のI2Cスレーブ その4" »