Programovací sériová komunikace

Odpovědět
Uživatelský avatar
fulda
Příspěvky: 1407
Registrován: 04 led 2016, 17:18

Programovací sériová komunikace

Příspěvek od fulda »

Ahoj,

mám trochu omezený rozhled a omezené zkušenosti s nahráváním picaxe. Možná také vynalézám kolo. Ale stejně mi to nedá.

Před mnoha lety, když jsem si zkoušel s picaxe hrát, tak jsem dostal "programovací kabel" a "ten správný" převodník USB-RS232. Jeho správnost spočívala v tom, že obsahoval nábojovou pumpu a jeho výstupy se blížily požadavkům RS-232 (asi -+9V). Tehdy jsem nad tím moc nepřemýšlel a vzal jsem to jako fakt, nutný pro nějakou magii.

Dnes, když nad tím trochu víc přemýšlím (a koukám do TOHOTO postu), tak si říkám, proč vlastně? Podle generickáho schématu (náhodně staženého z webu), se vlastně jedná jen o odporový dělič, který spoléhá na clamp diody uvnitř procesoru. Také spoléhá na to, že signály jsou po této "úpravě" invertované.
Obrázek

Pokud bychom se podívali do datasheetu k levným čínským USB-serial převodníkům (pozor, spoléhám na to, že čtenář rozeznává "Serial" a "RS-232" jako různá rozhraní), tak zjistíme, že je u nich velmi populární režim "asistovaného RS-232". Zase náhodným výběrem odkaz na datasheet od CH340. Zde se jedná konkrétně o nožičku 18 - vstup RS232. Pokud je tento vstup na úrovni "high", pak převodník invertuje vstupy a výstupy. To je vlastně vše co od něj očekáváme, protože pokud vynecháme pochybné zesílení pomocí jednoho tranzistoru (příkladové schéma v kapitole 7.3 datasheetu), tak máme rovnou logické úrovně, které naše picaxe očekává.

Pochopitelně bych vývody RxD a TxD mezi picaxe a převodníkem oddělil pomocí nějakých odporů (dejme tomu 100 Ω až 200 Ω), aby se zamezilo vyrovnávání potenciálů, když je picaxe napájen z jiného zdroje, ale to je tak vše.

Zabýval se tím někdy někdo?

Díky
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Uživatelský avatar
Dex
Administrátor
Příspěvky: 1562
Registrován: 16 úno 2013, 14:26

Re: Programovací sériová komunikace

Příspěvek od Dex »

Ahoj,

už je to dávno co jsem s PICAXE něco dělal, takže jen taková drobnost co si pamatuji - když tam ten 10k rezistor nebyl, tak PICAXE "nefungoval". Přišel jsem na to tak, že jsem si udělal kabel, kde byly rezistory uvnitř krytky. Když byl kabel zapojen, vše fungovalo a když ne, tak to nefungovalo.

Obyčejný převodník USB na "TTL" sériák mi tenkrát taky nefungoval, protože jsem neinvertoval.

No a pak jsem to nechal být a používal to klasicky, což bylo spolehlivé. Víc už bohužel nevím.
"all your robots are belong to us"
robodoupe.cz
Uživatelský avatar
fulda
Příspěvky: 1407
Registrován: 04 led 2016, 17:18

Re: Programovací sériová komunikace

Příspěvek od fulda »

Dex píše: 09 lis 2022, 13:02 už je to dávno co jsem s PICAXE něco dělal, takže jen taková drobnost co si pamatuji - když tam ten 10k rezistor nebyl, tak PICAXE "nefungoval". Přišel jsem na to tak, že jsem si udělal kabel, kde byly rezistory uvnitř krytky. Když byl kabel zapojen, vše fungovalo a když ne, tak to nefungovalo.
Ano, to je logické. Vysvětlení se najde například na následujícím obrázku. V normálním stavu je na sériové lince "ticho" reprezentováno logickou 1. Stejně tak odpojený vstup se čte jako logická 1 (zejména pokud má kde indukovat napětí a šum). Jenže tady se invertuje, takže je to naopak a proto když tam není ten odpor, tak boot loader čte 1 a pokouší se to interpretovat jako start-bit. Pak se pokouší rozpoznat co mu chceš říci a "nemá čas" na běh nějakého programu.
Obrázek
Dex píše: 09 lis 2022, 13:02 Obyčejný převodník USB na "TTL" sériák mi tenkrát taky nefungoval, protože jsem neinvertoval.

No a pak jsem to nechal být a používal to klasicky, což bylo spolehlivé. Víc už bohužel nevím.
Je jasné, že bez inverze to nepůjde. Proto právě poukazuji na ty levné převodníky, které jsou schopné invertovat "v základu".
Ale jinak jsem na tom stejně, také už nemám picaxe ani na experimentování. Takže to nechám dalším generacím.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
daton
Příspěvky: 667
Registrován: 16 bře 2013, 16:12

Re: Programovací sériová komunikace

Příspěvek od daton »

No pokud mohu něco dodat tak že to vyvojové prostředí pro picaxe fungovalo jen s určitými převodníky a jiné zásadně odmítalo ale to byla vlastnost toho programu a s datovým tokem co šel do čipu to nemělo co dělat.
Uživatelský avatar
Dex
Administrátor
Příspěvky: 1562
Registrován: 16 úno 2013, 14:26

Re: Programovací sériová komunikace

Příspěvek od Dex »

Tak u převodníků je sázkou na jistotu originální FTDI. Dodnes ho občas vytáhnu kvůli nějakým starším síťovým zařízením a to prostě šlape.

Jinak PICAXE na pokusy bych ti mohl půjčit, určitě jich tu pár někde ještě mám :D
"all your robots are belong to us"
robodoupe.cz
Odpovědět