Před časem jsem se pustil do zkoumání infraportu, protože už od roku 2009 - od doby, kdy jsem si od Pavla Urbančíka koupil SIF mě to lákalo, ale nejprve jsem neměl žádné zařízení a když jsem ho sehnal, tak mi s ním SIF nikdy ani náznakem nekomunikoval. Nekomunikoval s tiskárnou, nekomunikoval s notebookem (Omnibook XE 4500, který jako na potvoru teď nemám při ruce).
Loni jsem začal dělal repliku SIFu. Navrhl jsem nový plošný spoj, objednal část součástek, ale pořád ještě nemám naprogramované CPLD - to je na jinou diskuzi.
Při navrhování jsem zjistil, že je na původním SIFu - na té první verzi - čip infraportu obráceně. Pořadí plošek na PCB je opačně a tedy správně osazený TFDU4300 je vlastně otočený o 180°
https://cygnus.speccy.cz/obrazky/sif/sif_04_detail.jpg (fotka ukazuje špatné osazení!)
UB880 mi poslal fotky svého SIFu, porovnali jsme pár detailů a zdá se, že jeho pozdější verze SIFu, která je výrazně odlišná tu chybu nemá. Zkusil jsem svůj starý TFDU4300 otočit, ale nepodařilo se. Utrhl jsem při odpajování jeden vývod (nechtěl jsem na desku foukat horkým vzduchem). Pravděpodobně byl čip stejnak dávno nefunkční.
V Mouseru jsem na novou verzi SIFu objednal novější verzi téhož infraportu Vishay TFDU4301 - liší se pouze tím, že nemá samostatné napájení logiky a noha 7 je proto nezapojená. Jinak by měl být stejný. Osadil jsem ho na původní SIF a když přepnu druhou 16C650 na kanál 2, tak alespoň bliká a vysílá (vidím kamerou, a snímám fototranzistorem na osciloskop).
Zaradoval jsem se a zkusil jsem to propojit s USB infraportem Tekram IR-410U. V Linuxu se infraport detekuje jako /dev/ttyUSB0 dají se na něj poslat data, bliká v infra a ... a nic. ZX Spectrum nepříjímá, Deskjet 340 netiskne, nic. Mrknul jsem osciloskopem skrz fototranzistor a ukázalo se, že data jsou kódovaná úplně odlišně než jak bliká SIF.
Dokonce jsem zkusil infraport koupit na eBay, byl tam jeden pěkný v původní krabici s připojením na RS232, objednal jsem a za dva dny mi prodejce vrátil peníze, že už ho nemá. Ostatní bylo nepřijatelně drahé, nebo prostě infraporty zmizely z nabídek.
Tak jsem to opět na čas odložil. Dokud mi nedávno kamarád ve svém elektroodpadu nenašel a nepřinesl infraport ACT-IR210L údajně na RS232. No, nebyla to úplná pravda, protože nemá RS232 konektor, ale připojuje se na header základní desky. Základní deska tedy musí infraport podporovat. Naštěstí, aniž bych to dopředu tušil, jedno z mých PC s deskou FIC PA-2007 má takový header - 2x5 pinů, zatímco infraport má 1x5. A naštěstí pinout infraportu byl popsaný v manuálu, který jsem kdesi našel.
S deskou to bylo záludnější, v manuálu je pouze zmínka, že to IR má a nic víc. Najít +5V a GND bylo snadné, najít výstup nakonec taky, připojil jsem osciloskop a zkoušel terminálem v Dos Navigatoru - výstup byl na 7 & 8, oba piny spojené. No a vstup mohly být nakonec jen dva piny 3 nebo 4 a to jsem si tipnul. Trefil jsem 4 napodruhé.
Kód:
FIC PA-2007 IR header -> infraport ACT-IR210L
[1] +5V [2] +5V červený drát infraportu (5) na oba piny 1 i 2
[3] vstup [4] nezapojen? žlutý drát infraportu (3) na vstup pin 3
[5] GND [6] GND černý drát infraportu (2) na oba piny 5 i 6
[7] výstup [8] výstup zelený drát infraportu (1) na výstup pin 8
[9] +5V [10] +5V
A stále to nekomunikuje. To, co leze z PC s onboard headerem je podobné RS232 a tomu, co vysílá SIF - krátké bliknutí za každou 0 (protože je třeba začít startbitem a to je nula), mezera za každou 1. Bliknutí by mělo trvat 3/16 času jednoho bitu - říká to datasheet 16C650 a je to tak i v BIOSu PC (druhá možnost je 1.6us)
Ukázalo se, že ze SIFu je baudrate nesmyslný - nastavím 9600bps, ale na infraportu vidím rychlost zhruba 1/3. To je divné, protože stejné nastavení mi pro "normální" komunikaci funguje správně. Je snad nutné nastavit baudrate v 16C650 pro infraport jinak?
No nic, pátrám dál. Pokud s tím máte nějakou zkušenost, nenechávejte si ji pro sebe.