部品:8ビットIOエキスパンダー(PCF8574)

場合によっては、マイクロコントローラよりもはるかにセンサー、ボタン、または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つのチップを利用しましたか?

あなたが逃したかもしれないどんな種類の部品メッセージに追いつくことを忘れないでください。

Back to top