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
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ň.
Zkušební
zapojení převodníku dle Obr.č.01
Zkušební
zapojení převodníku dle Obr.č.02
Zkušební
zapojení převodníku s IO PCF8574
Připojení
zkušebního převodníku s IO PCF8574 k PC se sériovým portem
Spuštěný
program při zkouškách OS WindowsXP příkazová řádka
Měření
napětí na výstupu IOPCF8574 po zadání hodnoty
Připojení
vstupů IO PCF8574 na GND (-) zdroje
Načítání
vstupů z IO PCF8574 na PC OS Windows XP příkazová řádka
Připojení
převodníku dle Obr.č.02 k redukci USB/COM při zkoušení
Připojení vstupů IO
PCF8574 na GND(-) zdroje
načtená
hodnota vstupů počítačem OS Windows7 – startér příkazová řádka
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
použité
prameny : Martin Kvoch programování v TP
DATASHEET
k IO PCF8574
Radio Plus KTE 2000 /5,6