Převodník na I2C pro připojení PC přes COM.
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.
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 kabele 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.
Desku plošných spojů převodníku Vám vyrobí např. firmaSEMACH.
Návrh desky je proveden ve Formice
a jde otevřít i v demoverzi.
Zde si můžete stáhnout schéma předlohy
pro desku ve formátu GIF a i soubory do Formiky.