Identifikace neznameho serioveho async kodu
Moderátor: Moderátoři
v příloze jsou 3 měření pomocí Saleae sw druhé (novější) řady, konkrétně verze 2.3.15-master. Novější mi nefungují.
Jedná se jako předtím o postupné ruční stisknutí (tentokrát šesti) ovládacích tlačítek na DO, pořadí zůstává stejné, délka stisku je vidět z pulsu Tx Vcc (napájecí napětí vysílacího modulu).
Vysílaný kód tlačítka se stále opakuje, dokud je stisknuté, nebo je délka/počet opakování zdola softwarově omezena na nějaké minimum (popsal jsem už výše).
Jednotlivé záznamy se liší nastavením kódování vysílače - kód je součástí názvu souboru.
Vzorkování je tentokrát nastaveno na 4 MHz.
Díky za pomoc.
- Přílohy
-
Saleae_Logic_2.zip- (46.12 KiB) Staženo 66 x
Jsou to úrovně v daném okamžiku a synchronizace je hranami pulsů, nebo nějak jinak?
Párování u tohoto systému je tupě statická, člověkem prováděná činnost. Přijímač má kódování nastavitelné jumpery nebo DIPswitchem (pokud si dobře vzpomínám), vysílač to kdysi míval taky, teď se nastavuje v setup módu (vyvolaném stisknutím kombinace tlačítek) postupným stisknutím tlačítek nastavujících 0 a 1.
Čili přijímač se ničemu nepřizpůsobuje, je nastavený předem a vysílač se musí nastavit stejně.
To by vyžadovalo další zkoumání. Ale je to úplně zbytečná informace. Prostě vygeneruješ identický signál, co generuje vysílač. Ta informace, co je 0,1 a jakýma hranama se co synchronizuje, je zbytečná. Máš prostě identifikační část paketu, ta je vždy stejná pro každý vysílač (nastavený na kók přijímače), a pak máš výkonnou část v různých variaích a tu přilepíš k té identifikační. Více prostě nepotřebuješ. A to že se přijímač nepřizpůsobuje, je další bonus, který to zeště zjednodušší, protože potřebuješ jen jednu identifikaci.
Ale chtěl jsem pro zajímavost vědět víc, dělám to tak skoro vždycky. No a jelikož nejsem specialista na kódování, tak se ptám tady.
Čili ještě jednou díky ondroviN za příspěvky. Kdybys se časem (nebo někdo jiný) chtěl ještě zamyslet nad způsobem přenosu stavů (0 a 1) daným kódem, tak to - čistě ze zvědavosti - taky uvítám.
Můj tip je ten, že se v přijímači měří poměr trvání H a L a podle toho se to vyhodnocuje. Má to tu výhodu, že se vždy generuje synchronizační hrana (ať je bit 1 nebo 0) a dá se použít třeba interní RC oscilátor MCU, který zrovna přesností neoplývá. Podobně je to řešené třeba u digitálních LED WS2812D, tak mrkni do datasheetu.
ondraN píše:...
Můj tip je ten, že se v přijímači měří poměr trvání H a L a podle toho se to vyhodnocuje. Má to tu výhodu, že se vždy generuje synchronizační hrana (ať je bit 1 nebo 0) a dá se použít třeba interní RC oscilátor MCU, který zrovna přesností neoplývá. Podobně je to řešené třeba u digitálních LED WS2812D, tak mrkni do datasheetu.
Čili to by vedlo na princip typu "digitální PWM", viz výše... Jo, kouknu, díky.
Soustředím se i na ten taky výše uvedený Holtek HT12E, tam se (pokud to dobře chápu) přenáší 0 a 1 právě rozdílnými šířkami pulsů.