OldComp.cz https://oldcomp.cz/ |
|
Interface SIF a infraport https://oldcomp.cz/viewtopic.php?f=39&t=10826 |
Stránka 1 z 1 |
Autor: | zxcygnus [ 13.03.2022, 17:44 ] |
Předmět příspěvku: | Interface SIF a infraport |
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. |
Autor: | zxcygnus [ 16.03.2022, 12:56 ] | ||
Předmět příspěvku: | Re: Interface SIF a infraport | ||
Včera jsem se tím opět chvilku zabýval a stále netuším v čem je problém. Pořád doufám, že to je jen hloupou chybou v nastavování 16C650. Na SIFu funguje správně nastavení baudrate i volba kanálu pomocí multiplexoru 74HC157 - ConnectOne / infraport. Sekundární 16C650 mi rozhodně s ConnectOne modulem pracuje správně a už dřív jsem ověřil přepínání kanálu pomocí signálu /OUT2 z 16C650. Že dělám něco špatně hádám podle toho, že se mi do režimu infraportu nedaří přepnout primární 16C650, ačkoli by to mělo fungovat, SIF Term to nerozlišuje. No nic - viz screenshoty z osciloskopu. Po přepnutí do režimu infraportu by 16C650 měla generovat místo každé nuly pulz dlouhý 3/16 trvání bitu dle nastaveného baudrate. PC to tak dělá, datasheet 16C650 to tak popisuje. Zkoušel jsem to na 1200bps, jeden bit by měl trvat cca 833μS a 3/16 z toho jsou cca 156μs. Místo toho tam vidím pulz dlouhý 42μs s odstupem 1666μs a 5001μs, což by odpovídalo odstupem třem sestupným hranám, které nastanou při vyslání znaku 0x0D (konec řádku CR). A tím pádem by seděl i správně baudrate 1200bps. Nezáleželo na tom, kde jsem měřil - jestli před 74HC157, za, nebo jestli jsem snímal blikání IR LED fototranzistorem. Mohl by některý z majitelů SIFu zkusit nastavit infraport a porovnat, co to dělá? Přítomnost TFDU4300 není nutná, stačí změřit přímo výstup z 16C650. Režim infraportu se nastavuje v registru MCR bitem 6 do 1 (a zároveň bitem 3 do 1, chci-li zvolit druhý kanál... ale i bez toho by to mělo tvarovat data jako pro infraport). (zkouším pomocí https://cygnus.speccy.cz/popis_sifterm.php ... ale obsahuje-li chybu, bylo by lepší zkusit svým programem) Přemýšlím, jestli nějaký vliv nemá nastavení řízení toku dat. Samozřejmě mám vypnuté CTS/RTS, ale nezkusil jsem řízení toku zcela vypnout, protože jsem se domníval, že i na infraportu lze vysílat a přijímat řídící byty xon/xoff.
|
Stránka 1 z 1 | Všechny časy jsou v UTC + 1 hodina [ Letní čas ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |