Alkatrészek: 8bit io expander (PCF8574)

Alkatrészek: 8bit io expander (PCF8574)

Néhány esetben a munka sokkal több érzékelővel, gombokkal vagy LED-ekkel rendelkezik, mint a mikrokontroller csapata. A PCF8574 egy egyszerű módszer, amely 8 alacsony fordulatszámú bemeneti vagy kimeneti csapot adhat a mikrokontrollerhez. A configurable address lets several PCF8574s exist on the exact same bus, so two microcontroller pins can manage lots of IO pins. Pontosan megmutatjuk, hogyan használjuk fel ezt a chipet.

Ti pcf8574 i2c 8bit io expander (mouser # 595-pcf8574n, $ 1.86)

A PCB lábnyomokat fedeztük fel az i2c.lbr-ben, valamint a mikro-Phillips.lbr-ben a Cadsoft Eagle Könyvtár letöltési oldalán. A PCF8574-et a 2 kábelt I2C protokoll segítségével kezeljük, így a busz kalóz univerzális soros interfészünket kihasználva bizonyítjuk ezt a chipet. A pontos azonos alapműveletek bármilyen más mikrokontrollerre vonatkoznak.

The schematic shows our easy test circuit for the PCF8574, here’s the datasheet (PDF). A chipet 5voltokkal, valamint a 0.1uf szétválasztó kondenzátort (C1) alkalmaztuk a tápellátás és a földi csapok között. R1  as well as R2 hold the I2C clock as well as data bus at 5volts. Használunk egy LED-t a chip kimeneti funkcióinak teszteléséhez; A P0 a LED1-hez kapcsolódik a jelenlegi korlátozó R3 (330+ ohm) ellenállással. P6 as well as P7 are connected to understood specifies so we can quickly test the chip’s input capabilities.

A PCF8574 I2C-címe 0100xxxy, három bit (X) azonosított az A2-0 címének megadásával, valamint egy végső bit (Y), amely beállítja a kijelölt ki (1) vagy a (0) üzemmódot. Számos PFC8574S megoszthatja az I2C buszot különböző címpel beállításainak felhasználásával. Mivel a címcsapokat őröltük, a Compose cím 01000000 (0x40).

Kimenet

A P0 LED-t az 1 (ON) vagy 0 (OFF) kompozíciót kezeljük az összetett címmel betöltő byte 0 bitjéhez.

I2C> {0x40 0b00000001} <-command 210 I2C Kezdje a feltételeket 220 I2C írás: 0x40 kapott ACK: Igen <-Write cím 220 I2C írás: 0x01 kapott ACK: Igen

{Problémák Az I2C megkezdődési feltétel, amelyet a 0x40 összeállítási címe betart. A kimeneti érték, a 0B00000001, a P0 magas, valamint a tartózkodási bitek alacsony. } elküldi az I2C buszmegálló állapotát, befejezve a tranzakciót. Ha a megfelelő bit magas, akkor a LED bekapcsol.

A LED kikapcsolásához ismételje meg a szekvenciát a megfelelő kimeneti bit beállítással 0-ra.

I2C> {0x40 0b00000000} <- Parancs 210 I2C Kezdje a feltételeket 220 I2C írás: 0x40 kapott ACK: Igen <-Write cím 220 I2C írás: 0x00 kapott ACK: Igen

A P0 most a földre állt, a LED kikapcsol.

Bemenet

A kimenethez beállított csapok szinte felhasználhatók bemenetként (adatlap Page 1). In the example, P6 is held high (+5 volts) as well as P7 is held low (ground), however these might likewise be buttons, sensors, or other digital logic. A többi csap marha, és nem jelent az érvényes adatokat.

I2C> {0x40 0b11000000} <- Command 210 I2C Kezdje a feltételeket 220 I2C írás: 0x40 kapott ACK: Igen <-Write cím 220 I2C írás: 0xc0 kapott ACK: Igen

Először is beállítottuk az előnyös bemeneti csapokat a magas kimenethez azáltal, hogy az 1-et a megfelelő bitekhez a kimeneti értékben állítsa be. Bitek 6, valamint 7 készlet P6, valamint P7 a kimenethez.

Most, megnézhetjük a PIN-kódot. Ezt a műveletet a busz kalóz kimenetével bináris módba állítottuk, hogy a PIN-értékek azonnal nyilvánvalóak legyenek.

I2C> {0x41 r} <- parancs 210 I2C Kezdje a feltételeket 220 I2C írás: 0b01000001 kapott ACK: Igen <-Adress 230 I2C Olvassa el: 0B01000000 <-pin állapot 240 I2C stop állapot I2C>

{Az i2c problémák kezdőbetűje, a 0x41 a kijelölt cím, valamint az R olvas egy bájtot az eszközről. } elküldi az I2C buszmegálló állapotát, befejezve a tranzakciót.

A válasz, 01000000, a bemeneti csapok megadását jelenti. A legjelentősebb bit 0, mivel a P7 a földhez csatlakozik. A következő bit 1, mivel a P6-ot magasra tartják, a többi bit (0) szemétadatok.

This is far from the only IO expander IC. have you utilized one more chip?

Don’t fail to remember to catch up on any type of parts messages you may have missed.

Leave a Reply