Na desce je provedena jednoduchá úprava signálů rozhraní RS232 na vhodnou úroveň. Zároveň je zde umístěn stabilizátor 5V pro napájení jednoduchých aplikací. Napájení je přes konektor pro adaptér, odděleno diodou. Vlastní připojení na sběrnici I2C je provedeno přes klíčovaný samořezný konektor pro plochý kabel. Rozložení signálů na konektoru není optimální dle doporučení výrobce, ale respektuje rozložení signálů na vývodech nejčastěji používaných součástek komunikujících na sběrnici I2C.
Zenerovy diody zajišťují že napětí na signálových vodičích nepřekročí doporučené meze. Při záporném napětí na výstupech sériové linky omezují diody napětí na -0,7V, toto může některým integrovaným obvodům již vadit. Pokud budeme chtít toto zlepšit je možno paralelně k zenerovým diodám připájet diody BAT46. Tím snížíme napětí na cca -0,3V a to by mělo být již bezpečné pro většinu obvodů. Zatím se mi však nepodařilo žádnému obvodu tímto zapojením ublížit a to i bez přídavných diod.
Na následujících obrázcích jsou fotografie převodníku, a převodník v provedení bez napájení.
Vzhledem k jednoduchosti zapojení nemusí převodník fungovat na všech počítačích. Většinou bývají problémy jen s některými provedeními notebook. Případně pokud je RS232 realizována příliš podle normy. Hodnota zvedacích odporů na sběrnici I2C, připojené k tomuto převodníku by neměla být menší než 5k6. Doporučuji ověřit statickým nastavením, např. krokováním v programu, výstupů RS232 zda s přpojenými obvody na sběrnici I2C dosahujeme správných logických úrovní.
Rozložení signálů na konektoru RS232 odpovídá rozložení používaném v programech z knihy Využití rozhraní PC od Burkhard Kainka a také s rozložením používaným v programátoru PonyProg. Zapojení konektoru pro připojení I2C svým rozložení umožňuje přímé připojení s moduly MITE.
Propojení signálů I2C a RS232
signál I2C | signál RS232 | offset / bit |
SDA in SDA out SCL in SCL out |
CTS DTR DSR RTS |
6 / 4 4 / 0 6 / 5 4 / 1 |
Programový přístup k jednotlivým signálům získáme přes registry modemu. Konkrétně se jedná o řídící registr modemu a stavový registr příslušného COMu.
- Řídící registr - zápisem vhodné úrovně nastavujeme úrovně na výstupech.
- Stavový registr - čtením získáme informace o stavu vstupů.
Tyto registry mají proti adrese COMu offset, posunutí.
- Řídící registr - offset 4.
- Stavový registr - offset 6.
Pro spolehlivou funkci komunikace po I2C musíme splnit všechny základní požadavky "normy" o I2C jinak se můžeme dočkat, tedy spíše nedočkat spolehlivé funkčnosti komunikace. Běžně provozuji tento převodník s plochým kabelem o délce 50cm, zcela bez problémů. Je třeba jen dodržet požadavky na zvedací odpory na sběrnici a samozřejmě mýt dobře napsané základní rutiny pro obsluhu I2C. Pravděpodobně se s některým z těchto problémů se střetl autor článku v Sdělovací Technice a vyřešil svůj problém konstatováním o malé spolehlivosti I2C.
Spolehlivost komunikace
Zároveň musím upozornit že základní rutiny, z CD-ROM ke knize Využití rozhraní PC pod Windows od Burkhard Kainka, mají drobnou chybu která způsobuje nefunkčnost některých režimů I2C. Prostě vyrobit chybu můžeme každý, a mi se to povedlo také mnohokrát. Je třeba ji najít a odstranit a ne tvrdit že nějaký HW je nespolehlivý. Samozřejmě může být i chyba v HW, ale tento případ je podstatně méně častý než chyba v programu nebo v chybném návrhu zapojení či desky plošných spojů.
Pokud si budete chtít některé brouky s I2C vyzkoušet, použijte Školku I2C připojitelných k tomuto převodníku. Jedná se o zkušební zapojení a nejsou určena pro přímou aplikaci i když se to nevylučuje. Prostě sloužila k odzkoušení komunikace a obsluhy pomocí PC, jde to rychleji na PCečku, než ladění pomocí mikroprocesoru, po odladění algoritmu a ověření funkčnosti stačí jen přepsat pro daný mikroprocesor.
- Plošné spoje ve formátu do programu Formica - i2c_prog.zip
Copyright (C) 2001 Petr Stehlík