OVLÁDÁNÍ PCF8574 POČÍTAČEM

Vágner Vlastimil

         Návrh převodníku vznikl z potřeby ovládání integrovaných obvodů na sběrnici I2C, důvodem jejich použití je jednodušší programové ovládání. Pro odzkoušení převodníku při komunikaci a psaní programů byl zvolen obvod PCF8574 pro svoji jednoduchou obsluhu. Převodník ani programy pro jeho odzkoušení si nekladou za cíl konkurovat továrním výrobkům, mohou sloužit pro vlastní inspiraci při tvorbě vlastních zařízení. Převodník se připojuje k počítači pomocí sériového portu počítače nebo pomocí redukce USB/COM.

 

 

STRUČNÝ POPIS PCF8574

      

         Uvedený integrovaný obvod je určený pro sběrnici I2C jde o obvod který má osm linek rozhraní. Tyto mohou být použity jako výstupní tak i jako vstupní, má vyvedeny i tři adresní linky, které je možné použít pro adresování až osmi stejných integrovaných obvodů. Pevně přednastavená bázová adresa obvodu je 32, v zapojeních je možné využít i výstupní linku přerušení (INT) s otevřeným kolektorem (DRAIN) který hlásí všechny změny na vstupních linkách přechodem na nízkou (LOW) úroveň. Tento vývod v průběhu čtení pak opět přechází do původního stavu (HIGH). I/O linky mají po zapnutí napájecího napětí a v klidovém stavu vysokou úroveň (HIGH) a vysoký odpor což znamená, že mohou být jinými vnějšími elektronickými obvody staženy na nízkou úroveň (LOW), maximální odběr na jednotlivé lince je v tomto případě 300µA. Každá z IO linek může být ovládána interním nízkoohmovým kolektorovým výstupem tak že může být interně stažena na nízkou úroveň. Celý osmibitový port je tedy možno částečně používat pro vstup dat tak částečně pro výstup dat, pouze čtecí linky musí být nastaveny na vysokou úroveň protože jinak by nebylo možné jejich stav číst. Na obrázku č, 02 je nákres uvedeného IO, bližší a podrobnější popis včetně algoritmu programování je v datashhetu k uvedenému IO. Napájecí napětí obvodu je v rozmezí 2.5V – 6V DC, IO linky obvodu snesou proud do 0.02A proti kladnému napájecímu napětí.

 

POPIS PŘEVODNÍKU PRO NAPÁJENÍ PCF8574  5VDC

      

         Převodník je určen pouze pro napěťový převod signálů z PC na úroveň napětí vstupů obvodů komunikujících po sběrnici I2C, na obrázku č. 01 je zapojení toho nejjednoduššího převodníku zapojení je uvedeno na mnoha stránkách a v mnoha modifikacích na internetu. Tento převodník bez problémů funguje na počítačích, které mají na výstupních linkách DTR, RTS, sériového portu při zapnutí uvedených výstupů na log. 1 a připojeném převodníku k sériovému portu bez osazeného IO PCF8574 v patici napětí 4.7 – 5V. Toto napětí změříme přímo na katodách ZENEROVÝCH DIOD hlavně se jedná o vývod DTR kde je současně připojen i vstup CTS na lince I2C jde o linku SDA, na tomto výstupu PC je vždy nižší hodnota napětí tím, že je současně připojen i vstup CTS a nesmí být nižší jak 4.5V PŘI NAPÁJENÍ PCF8574 NAPĚTÍM 5V DC i když při tomto napájecím napětí by mohla být logická hodnota „H“minimálně 3.5V DC. Na počítačích (noteboocích) které mají na výstupních linkách sériového portu a při stejném způsobu měření při připojeném převodníku hodnotu napětí výstupu DTR nižší jak 4.5V tento převodník NEFUNGUJE odzkoušeno při pokusech. Pro možné používání uvedeného jednoduchého převodníku i na počítačích co mají uvedenou napěťovou úroveň výstupu DTR při připojeném převodníku z obrázku č. 01 nižší jak 4.5V nebo je použit převodník USB/COM je na obrázku č. 03 upravené zapojení kde je doplněn tranzistor BC237 který odděluje vstup CTS od výstupu DTR. Tím je napětí výstupu DTR rozdílné s napětím výstupu RTS podle parametrů použitých ZENEROVÝCH DIOD protože výstup DTR není již přímo zatěžován vstupem CTS, hodnota napětí i při použití USB/COM je v rozmezí napětí s převodníkem v tomto případě 4.8V. Další možnost je napájet PCF8574 nižším napětím. Pokud navazující elektronické obvody jsou schopné při tomto napětí pracovat.

 

POPIS PROGRAMŮ

 

         Programy jsou odladěny v Turbo Pascalu a jsou určeny pro OS DOS na počítačích s OS Windows 95/98 jdou spustit buď po volbě DOS při startu počítače volba F8. Na počítačích s OS Windows 2000, NT, XP a Windows7-startér jdou spustit pouze z příkazové řádky POKUD JSOU UVEDENÉ OS NAINSTALOVÁNY VE 32-BITOVÉ VERZI. Soubory jsou uloženy v adresáři PROGRAMY a mají názvy VÝSTUP.EXE, PCF8574.EXE, TESTIC.EXE. Programy mají shodné ovládání : volba portu kde je připojený převodník ten se volí stiskem klávesy <1>, <2>. <3>, <4> stiskem klávesy 1 volíme port com1, stiskem klávesy 2 volíme port com2, atd. po volbě portu se již zobrazuje nabídka dle vybraného a spuštěného programu.

   

    Program VÝSTUP.EXE : umožňuje zapnout a vypnout výstupy DTR, RTS a TXD tím je možné změřit výstupní hodnotu napětí patřičného výstupu proti GND (-). Po volbě portu stiskem kláves „Z“ a „V“ již zapínáme a vypínáme výstupy sériového portu program ukončíme stiskem klávesy „ESC“.

   

    Program PCF8574.EXE : po volbě portu se na monitoru počítače zobrazí další nabídka zda budeme do IO zapisovat nebo z IO číst hodnoty vstupů. Volbu „zápisu“ volíme stiskem klávesy „Z“ po stisku klávesy se zobrazí zadej hodnotu od 0 – 255, po zadaní hodnoty a stisku klávesy ENTER je zadaná hodnota vyslána na výstupní linky IO PCF8574 a zároveň je také zobrazena na monitoru počítače. Další hodnotu můžeme zadat po stisku klávesy MEZERNÍK, program ukončíme stiskem klávesy ESC.

    Volbu „čtení“ volíme stiskem klávesy „C“ po jejím stisku se na monitoru počítače zobrazuje stav linek PCF8574, před načítáním linek jsou všechny linky automaticky programem nastaveny na HIGH  (hodnotou 255) a pokud nyní některou linku stáhneme na LOW (připojíme na mínus napájecího napětí) je zobrazena hodnota této linky. To znamená že pokud je na mínus připojena linka č.1 je na monitoru zobrazena hodnota „1“ jde o bit „0“ (proč „0“ 2 ^ 0 = 1). V případě že na mínus napájecího napětí připojíme linku č.2  je zobrazena hodnota „2“ jde o bit „1“ (proč „1“ 2 ^ 1 = 2). Pokud nyní připojíme obě linky tj. linku č. 1 a linku č.2 na mínus napájecího napětí zobrazí se hodnota „3“, jde o součet aktivních vstupů tj. vstupu č.1 a č.2. program ukončíme stiskem klávesy ESC. Program je možné použít k ovládání podle obr.č.04, obr.č.05, obr.č.06

   

    V případě že IO PCF8574 nekomunikuje s PC tak po volbě portu a volbě zápisu do IO zadání hodnoty a jejím odeslání na IO se na monitoru PC zobrazí nápis „IO nekomunikuje „ a dále pokračuj stiskem libovolné klávesy. Po stisku doporučeno stisknout klávesu „MEZERNÍK“ se program ukončí, tento nápis v případě chyby komunikace se zobrazí i po volbě „čtení“. Tato hláška poruchy komunikace s IO PCF8574 se zobrazí i v dalších programech „TESTIC.EXE, ULN.EXE“.

   

    Program TESTIC.EXE : po volbě portu se na monitoru počítače zobrazí bez další volby přímo zadej hodnotu od „0 – 255“ po zadaní hodnoty a stisku klávesy ENTER je zadaná hodnota přenesena do PCF8574 a linky IO jsou podle zadané hodnoty nastaveny na HIGH a LOW. Novou hodnotu můžeme zadat po stisku klávesy MEZERNÍK. Program ukončíme stiskem klávesy ESC, tento program je určen pro odzkoušení komunikace po výrobě převodníku. Může být použit pro ovládání k obr.č.04, obr.č.06.

 

    Pokud chceme z obvodu ULNXXXXA načítat hodnoty musí být zapojený tento obvod tak že jeho vstupy jsou připojeny na elektroniku která spíná báze tranzistorů v uvedeném IO a výstupy jsou připojeny na linky PCF8574.  Obr.č.05 

 

   obr Obr

 

 

                   Obr

 

                                                                  Obr

 

   

 

 

 

                       Obr

   

                         Obr

   

 

    Pokud chceme s PCF8574 ovládat nějaké zařízení a současně načítat hodnoty musí být vždy linky které chceme načítat nastaveny na vysokou úroveň, to znamená že na uvedený IO musíme zaslat po adresování obvodu hodnotu jednoho bajtu a to hodnotu součtu uvedených linek které chceme číst. Pokud nyní chceme např. číst hodnotu linek 1, 2, 3, 4 zadáme hodnotu součtu těchto linek tj. hodnoty 1+2+4+8 = 15, linka 1 odpovídá bitu „0“, linka 2 odpovídá bitu „1“, linka 3 odpovídá bitu 2, linka 4 odpovídá bitu „3“. Tento součet zadáme jako hodnotu a na uvedených linkách zůstane vysoká úroveň ostatní linky přejdou na nízkou úroveň.

 

P7240097

Zkušební zapojení převodníku dle Obr.č.01

 

P7250131

Zkušební zapojení převodníku dle Obr.č.02

 

P7240102

Zkušební zapojení převodníku s IO PCF8574

 

P7240100

Připojení zkušebního převodníku s IO PCF8574 k PC se sériovým portem

 

P7240106

Spuštěný program při zkouškách OS WindowsXP příkazová řádka

 

P7250115

Měření napětí na výstupu IOPCF8574 po zadání hodnoty

 

P7240109

Připojení vstupů IO PCF8574 na GND (-) zdroje

 

P7240107

Načítání vstupů z IO PCF8574 na PC OS Windows XP příkazová řádka

 

P7250130

Připojení převodníku dle Obr.č.02 k redukci USB/COM při zkoušení

 

P7250133Připojení vstupů IO PCF8574 na GND(-) zdroje

 

 

P7250138

načtená hodnota vstupů počítačem OS Windows7 – startér příkazová řádka

 

P7250114

spuštěný program na počítači s OS Windows7 – startér z příkazové řádky

 

    Programy jsou psány k použitému převodníku, k jinému typu zapojení převodníku je nutné mít program napsaný tak aby odpovídal signálům na lince I2C. Schémata uvedená v článku jsou odzkoušena pouze s tímto typem IO a uvedenými programy, jejich použití je možné i v jiných zapojeních po ozkoušení s těmito zařízeními, zde jde o zapojení na odzkoušení komunikace počítače s PCF8574.

 

Bližší informace

vagnervlastimil@seznam.cz

 

použité prameny : Martin Kvoch programování v TP

                              DATASHEET k IO PCF8574

                              Radio Plus KTE 2000 /5,6