Jste zde

Převodník na I2C pro připojení PC přes RS232

Následující jednoduchý obvod umožňuje na sériové lince běžného PC provozovat sběrnici I2C. To umožní připojit k PC přímo obvody ovládané po I2C a využít tohoto k rozšíření portů počítače nebo použít jako jednoduchý programátor EEPROM řady 24CXX.

 

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í.  
 

   
   

Při připojování k aplikaci je třeba pamatovat nato že pokud má aplikace vlastní napájení může dojít ke kofliktu se zdrojem v převodníku Proto je v tomto případě vhodnější použít převodník bez zdroje. Samozřejmě se nesmí také zapomenou na to že dojde k propojení záporného pólu napájecího napětí s zemí PC a tím i s ochranným vodičem a při nevhodné konstrukci vaší aplikace to v lepším případě způsobí nefunkčnost. 

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.


Spolehlivost komunikace 


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. 

 

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. 
 

DOWNLOAD a Odkazy



Copyright (C) 2001 Petr Stehlík
Hodnocení článku: