場合によっては、マイクロコントローラよりもはるかにセンサー、ボタン、またはLEDがピンがある場合があります。 PCF8574は、8回の低速入力ピンまたは出力ピンをマイクロコントローラに追加するための簡単な方法です。設定可能なアドレスでは、いくつかのPCF8574Sがまったく同じバスに存在するため、2つのマイクロコントローラピンが多くのIOピンを管理できます。下のこのチップの利用方法を正確に説明します。
TI PCF8574 I2C 8ビットIOエキスパンダー(Mouser#595-PC8574N、$ 1.86)
私たちは、i2c.lbrのこのチップのPCBフットプリント、およびCADSoft Eagle LibraryダウンロードページのMicro-Phillips.LBRを発見しました。 PCF8574は2つのケーブルI2Cプロトコルで管理されているので、このチップを実演するためにバス海賊ユニバーサルシリアルインタフェースを利用しました。まったく同じ基本的な操作は、あらゆる種類のマイクロコントローラに適用されます。
回路図はPCF8574のための簡単なテスト回路を示していますが、これがデータシート(PDF)です。チップに5ボルトを搭載し、電源とグランドピンとの間に0.1UFのデカップリングコンデンサ(C1)を使用しました。 R1とR2は5ボルトのデータバスと同様にI2Cクロックを保持します。 LEDを利用してチップの出力機能をテストします。 P0は現在制限された抵抗器R3(330+ OHM)を備えたLED1にリンクされている。 P6とP7が理解されるように接続されているので、チップの入力機能を素早くテストできます。
PCF8574のI2Cアドレスは0100xxxyです。これは、アドレスピンA2-0の指定によって3ビット(X)が識別され、チェックアウト(1)または(0)モードを設定する最後のビット(Y)。多数のPFC8574Sは、さまざまなアドレスピン設定を利用してI2Cバスを共有できます。アドレスピンをグランドに接続しているため、作成アドレスは01000000(0x40)です。
出力
P0のLEDは、1(ON)または0(OFF)を構成して、構成されたアドレスに準拠したバイトのビット0になることによって管理されます。
I2C> {0x40 0B00000001} <-command. 210 I2Cが状態を開始します 220 I2C WRITE:0x40 ack:はい<書き込みアドレス 220 I2C WRITE:0x01 ack:はい<-OUTPUT値 240 I2C停止条件 i2c>
{問題I2C開始条件、作成アドレス、0x40によって準拠しています。出力値0B00000001は、P0 Highと滞留ビットをローに設定します。 i2cバス停条件を送信し、トランザクションを終了します。対応するビットがハイに設定されていると、LEDが点灯します。
LEDをオフにするには、対応する出力ビットが0に設定されているシーケンスを繰り返します。
i2c> {0x40 0b00000000} < - command 210 I2Cが状態を開始します 220 I2C WRITE:0x40 ack:はい<書き込みアドレス 220 I2C WRITE:0x00 GOT ACK:はい<-OUTPUT値 240 I2C停止条件 i2c>
P0が地面に設定されていると、LEDが消えます。
入力
出力ハイに設定されたピンも同様に入力として使用できます(データシートページ1)。この例では、P6は高(+ 5ボルト)に保持され、P7はロー(グランド)に保持されているが、これらは同様にボタン、センサ、または他のデジタルロジックであり得る。他のピンはフローティングのままであり、有効なデータを表していません。
i2c> {0x40 0b11000000} < - command 210 I2Cが状態を開始します 220 I2C WRITE:0x40 ack:はい<書き込みアドレス 220 I2C WRITE:0xC0 ACK:はい<-OUTPUT値 240 I2C停止条件 i2c>
まず、出力値の対応するビットに1を構成することで、優先入力ピンをハイに出力するように設定します。 5セットP6とP7を出力して高出力化を行います。
今、ピンをチェックアウトすることができます。この操作は、BUS Pirateの出力をバイナリモードに設定して、PIN値が速やかに明らかであることを確認しました。
I2C> {0x41 R} < - command 210 I2Cが状態を開始します 220 I2C WRITE:0B01000001 ACKを手に入れた:はい<-address 230 I2C読み出し:0B01000000 <-PIN状態 240 I2C停止条件 i2c>
{問題I2C開始条件、0x41はチェックアウトアドレスであり、rはデバイスから1バイトを読み取ります。 i2cバス停条件を送信し、トランザクションを終了します。
返信01000000は、入力ピンの指定を表します。 P7がグランドに接続されているので、最もかなりのビットは0です。次のビットは1です.P6はハイに保持されているため、他のビット(0)はゴミデータです。
これは唯一のIOエキスパンダICからはかけ離れています。もう1つのチップを利用しましたか?
あなたが逃したかもしれないどんな種類の部品メッセージに追いつくことを忘れないでください。
0