• Uncategorized
  • 0

Parti: 8BIT IO Expander (PCF8574)

In alcuni casi un lavoro ha molti più sensori, pulsanti o LED rispetto al microcontrollore ha Pins. PCF8574 è un metodo semplice per aggiungere 8 pin di ingresso o uscita a bassa velocità a un microcontrollore. Un indirizzo configurabile consente a diversi PCF8574S esistono nello stesso identico bus, quindi due pin del microcontrollore possono gestire un lotti di spilli IO. Ti mostreremo esattamente come utilizzare questo chip qui sotto.

TI PCF8574 I2C 8D IO Expander (mouser # 595-PCF8574N, $ 1,86)

Abbiamo scoperto impronte PCB per questo chip in I2C.LBR e Micro-Phillips.lbr sulla pagina di download della libreria di Cadsoft Eagle. Il PCF8574 è gestito con il protocollo I2C a 2 cavi, quindi abbiamo utilizzato la nostra interfaccia seriale universale del pirata dell’autobus per dimostrare questo chip. Le stesse esatte operazioni fondamentali si applicheranno a qualsiasi tipo di microcontrollore.

Lo schema mostra il nostro facile circuito di test per PCF8574, ecco la scheda tecnica (PDF). Abbiamo alimentato il chip con 5volts, oltre a utilizzare un condensatore di disaccoppiamento 0,1UF (C1) tra la potenza e i perni a terra. R1 e R2 Tenere premuto l’orologio I2C e il bus dati a 5Volts. Utilizzeremo un LED per testare le caratteristiche di uscita del chip; P0 è collegato a LED1 con resistore limitante attuale R3 (330+ ohm). P6 e P7 sono collegati a intesa specifica, quindi possiamo testare rapidamente le funzionalità di input del chip.

L’indirizzo I2C PCF8574 è 0100xxxy, con tre bit (x) identificati dal specificato dei pin dell’indirizzo A2-0, nonché un bit finale (Y) che imposta la modalità verificata (1) o composizione (0). Numerosi PFC8574S possono condividere un bus I2C utilizzando le diverse impostazioni del PIN dell’indirizzo. Poiché ci collegavamo i pin dell’indirizzo a terra, l’indirizzo composto è 01000000 (0x40).

Produzione

Il LED su P0 è gestito componendo un 1 (On) o 0 (OFF) a bit 0 del byte che rispetta l’indirizzo composto.

I2C> {0x40 0b00000001} <-Command 210 I2C Begin condition 220 I2C Scrivi: 0x40 GET ACK: Sì <-StiRing Indirizzo 220 I2C Scrivi: 0x01 GET ACK: Sì <-Output valore 240 condizione di arresto I2C I2c >.

{Problemi Una condizione di inizio I2C, rispettata dall’indirizzo Compose, 0x40. Il valore di uscita, 0b00000001, imposta P0 in alto così come i bit rimanenti bassi. } Invia la condizione di arresto del bus I2C, terminando la transazione. Quando il bit corrispondente è impostato in alto, il LED si accende.

Per spegnere il LED, ripetere la sequenza con il bit di uscita corrispondente impostato su 0.

I2c> {0x40 0b00000000} <- Command 210 I2C Begin condition 220 I2C Scrivi: 0x40 GET ACK: Sì <-StiRing Indirizzo 220 I2C Scrivi: 0x00 GET ACK: Sì <-Output valore 240 condizione di arresto I2C I2c >.

Con P0 ora impostato su Ground, il LED si spegne.

Ingresso

Anche i pin impostati sull’output possono essere utilizzati come ingressi (scheda tecnica Pagina 1). Nell’esempio, P6 è tenuto alto (+5 volt) e P7 è tenuto basso (terreno), tuttavia questi potrebbero anche essere pulsanti, sensori o altre logiche digitali. Gli altri pin sono lasciati flottanti e non rappresentano dati validi.

I2C> {0x40 0b11000000} <- Command 210 I2C Begin condition 220 I2C Scrivi: 0x40 GET ACK: Sì <-StiRing Indirizzo 220 I2C Scrivi: 0xc0 Got Ack: Sì <-Output valore 240 condizione di arresto I2C I2c >.

Innanzitutto, impostiamo i PIN di ingresso preferiti per emettere elevati componendo 1 ai bit corrispondenti nel valore di output. Bit 6 e 7 Set P6 e P7 in alto in uscita.

Ora, possiamo controllare il perno. Abbiamo fatto questa operazione con l’output di Pirate Bus Imposta in modalità binaria per garantire che i valori PIN siano prontamente ovvi.

I2C> {0x41 R} <- Command 210 I2C Begin condition 220 I2C Scrivi: 0b01000001 GO ACK: SÌ <-Address 230 I2C Leggi: 0b01000000 <-Pin State 240 condizione di arresto I2C I2c >.

{Problemi Una condizione di inizio I2C, 0x41 è l’indirizzo controllato, nonché R leggi un byte dal dispositivo. } Invia la condizione di arresto del bus I2C, terminando la transazione.

La risposta, 01000000, rappresenta la specifica dei pin di ingresso. Il bit più considerevole è 0 poiché P7 è collegato a terra. Il bit successivo è 1 poiché P6 è tenuto alto gli altri bit (0) sono i dati della spazzatura.

Questo è lontano dall’unico IO Expander IC. Hai utilizzato un altro chip?

Non riuscire a ricordare di recuperare qualsiasi tipo di messaggi di parti che potresti aver perso.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *