Operácie

Zbernica i2c: PCF8591: Rozdiel medzi revíziami

Z SensorWiki

(Vlastnosti)
Riadok 53: Riadok 53:
 
* Rozsah napájania: 2,5 - 6 V DC; režim so zníženou spotrebou
 
* Rozsah napájania: 2,5 - 6 V DC; režim so zníženou spotrebou
 
* Adresa nastaviteľná v rozsahu 0x90-9F
 
* Adresa nastaviteľná v rozsahu 0x90-9F
 +
 +
 +
 +
== '''Software''' ==
 +
 +
 +
<source lang="c">
 +
 +
    i2c_init();                            // initialize I2C library
 +
 +
</source>
 +
 +
Zápis hodnoty na analógový výstup
 +
 +
<source lang="c">
 +
 +
    i2c_start(PCF8591ADDR + I2C_WRITE);    // set device address and write mode
 +
    i2c_write(ControlByte);                // write control Byte (0x40)
 +
    i2c_write(AnalogValue);                // write the required Analog Output value (0-255)
 +
    i2c_stop();                            // set stop conditon = release bus
 +
 +
</source>
 +
 +
<source lang="c">
 +
 +
    i2c_start(PCF8591ADDR);                // set device address and write mode
 +
    i2c_write(AnalogChannel);              // write the channel you want to read
 +
    i2c_stop();                            // set stop conditon = release bus
 +
 +
    i2c_start(Dev24C02+I2C_READ);    // set device address and write mode
 +
    i2c_write(0x05);                        // write address = 5
 +
    ret = i2c_readAck();                    // read one byte from EEPROM
 +
    value = i2c_readNack();
 +
    i2c_stop();
 +
 +
</source>
 +
  
 
=='''Resource'''==
 
=='''Resource'''==

Verzia zo dňa a času 15:44, 15. marec 2021


Modul YL-40

MIPS Modul YL-40.jpg
Modul YL-40 obsahuje kombinovaný A/D a D/A prevodník PCF8591 a niekoľko ďalších komponentov. K mikroprocesoru ho pripájame cez konektor J3, ktorý okrem napájania obsahuje aj dva komunikačné signály rozhrania i2c - SCL (Serial Clock) a SDA (Serial Data). Na druhej strane modulu sa nacháda konektor J2, na ktorom sú štyri analógové vstupy a jeden analógový výstup. Adresa modulu je nastavená na pevno signálmi A0, A1 a A2 a nedá sa zmeniť. Na module sa nachádza aj trimer (premenlivý rezistor nastaviteľný nástrojom), ktorým si ľahko možno overiť správnu funkciu A/D prevodníka. Okrem toho je na module aj termistor a fotoodpor, ktoré umožňujú realizovať orientačné merania teploty a osvetlenia. Ak potrebujete využiť všetky štyri analógové vstupy, dajú sa tieto prvky odpojiť prepojkami J4, J5 a J6.

Analógový výstup je pripojený na signalizačnú LED diódu (zelená), takže sa dá tento výstup kontrolovať vizuálne. Žiaľ, LED dióda predstavuje pomerne veľkú záťaž, takže výstupné napätie nie je veľmi presné a nedosiahne ani max. možnú úroveň. Pre kvalitnejšiu aplikáciu by sme museli LED diódu alebo rezistor odpájkovať. Okrem toho je na module červená LED dióda, ktorá signalizuje prítomnosť napájacieho napätia.

Ain 0 J5 fotorezistor (s rastúcou hodnotou osvetlenia hodnota klesá)
Ain 1 J4 NTC termistor (s rastúcou teplotou hodnota klesá)
Ain 2 -- nezapojený (náhodné čísla)
Ain 3 J6 potenciometer ( 0 - 255 )

MIPS 8591 SchemaZapojenia.png
Schéma zapojenia modulu YL-40


PCF8591

Integrovaný obvod PCF8591 je jednočipový kombinovaný obvod 8-bitového A/D a D/A prevodníka vyrobený technológiou CMOS. Je určený na pripojenie k zbernici I2C, pričom na vstupoch A0, A1 a A2 vieme nastaviť adresu zariadenia a pripojiť tak na jednu zbernicu až 8 takýchto obvodov. Obvod má štyri analógové vstupy a jeden analógový výstup. Vstupy aj výstup využívajú jediný a spoločný prevodník, takže prevod je multiplexovaný a pri využití všetkých 5 I/O musíme počítať s poklesom rýchlosti.

Maximálna rýchlosť prevodov je limitovaná rýchlosťou zbernice I2C.

Block Diagram

MIPS PCF8591 internals.png

Vlastnosti

  • Štyri nezávislé analógové napäťové vstupy (rozsah 0-5 V)
  • Možnosť využiť vždy dva vstupy ako jeden diferenciálny
  • Jeden analógový napäťový výstup (rozsah 0-5 V)
  • Interný 8-bitový A/D prevodník pracujúci metódou postupnej aproximácie
  • Pripojenie cez zbernicu I2C bus
  • Rozsah napájania: 2,5 - 6 V DC; režim so zníženou spotrebou
  • Adresa nastaviteľná v rozsahu 0x90-9F


Software

    i2c_init();                             // initialize I2C library

Zápis hodnoty na analógový výstup

    i2c_start(PCF8591ADDR + I2C_WRITE);     // set device address and write mode
    i2c_write(ControlByte);                 // write control Byte (0x40)
    i2c_write(AnalogValue);                 // write the required Analog Output value (0-255)
    i2c_stop();                             // set stop conditon = release bus
    i2c_start(PCF8591ADDR);                 // set device address and write mode
    i2c_write(AnalogChannel);               // write the channel you want to read
    i2c_stop();                             // set stop conditon = release bus

    i2c_start(Dev24C02+I2C_READ);     // set device address and write mode
    i2c_write(0x05);                        // write address = 5
    ret = i2c_readAck();                    // read one byte from EEPROM
    value = i2c_readNack();
    i2c_stop();


Resource