Česky | English

Otáčkoměr RCEXL - alternativní firmware

Úvod

Příspěvek popisuje technické řešení otáčkoměru fy RCEXL (resp. změnu jeho programového vybavení - firmware). Tato firma je známa především jako výrobce a dodavatel el. zapalování pro motory nejrůznějších značek (DLE, DLA, ale i Saito a další). Z tohoto důvodu se domnívám, že uvedený popis může být zajímavý pro široký okruh modelářů.

Myšlenka změny (přehrání) firmware není v žádném případě v ničem nová, natož originální. Podmínkou je slušně provedený návrh hardware (obvodové řešení) a možnost změny software (dáno převážně firmwarem mikrokontroléru). Obě základní podmínky otáčkoměr splňuje (úspěšně jsem testoval verzi 1.0 a 2.1), tak proč to nezkusit?

Co potřebujete

Co získáte

Co ztratíte

Popis zapojení

Aby bylo vůbec možné provést zmíněnou změnu firmware (vyžaduje napsání vlastního programu pro mikrokontrolér, protože originál firmware není znám), tak je nutné znát obvodové řešení, resp. jeho chováni a vlastnosti. Proto se o tom zmíním alespoň okrajově. Základ otáčkoměru tvoří mikrokontrolér PIC16F628A fy Microchip s vyvedenou sběrnicí ICSP na konektor (realizovaný 5 body na straně plošného spoje - viz. foto). Pro nás jde patrně o nejzajímavější vlastnost - díky tomu lze "zvenčí" přeprogramovat mikrokontrolér, který je již osazen na plošném spoji. Dalším prvkem je 4místný LED displej (se společnou katodou) připojený k portu A a B mikrokontroléru a pracující v multiplexním režimu (doba přepínání je cca 1 ms). Poslední část tvoří LDO stabilizátor napětí 5 V, oscilátor realizovaný krystalem 4 MHz (patrně z důvodu vyšší přesnosti není použit interní kalibrovaný RC oscilátor mikrokontroléru) a tranzistorový tvarovač vstupního signálu.

Princip měření

Vstupní signál (ať už přímo z Hall snímače nebo z externího vývodu zapalování) je přiveden na pin RB3 mikrokontroléru, přesněji na vstup jeho CCP modulu. Tudíž je zřejmé, že se měří perioda signálu. Tedy čas, nikoliv frekvence (četnost pulsů za jednotku času). Tato metoda poskytuje přesnější výsledky, především v oblasti nízkých hodnot otáček. Nevýhodou zůstává nutný přepočet na frekvenci (resp. otáčky) - vykonání matematické operace (RPM = 60x [1/T]). Od toho tam ale mikrokontrolér je.

Údaj na displeji je aktualizován cca po 300 ms. Během této doby se opakovaně provádí měření jednotlivých period signálu (max. 20, zbytek se "vypouští"). Následně dochází k výpočtu aritmetického průměru a vlastní hodnoty otáček (RPM). Přestože je výsledek v jednotkách RPM, tak je údaj poměrně stabilní. Při vývoji jsem taktéž zkoušel nahradit aritmetický průměr mediánem (který je, jak známo, více imunní na extrém jedné hodnoty), ale ukázalo se, že to je zbytečné. Nehledě na to, že výpočet mediánu je logicky daleko časově i "prostorově" náročnější pro mikrokontrolér, než výpočet aritmetického průměru. Pro úplnost dodávám, že perioda se měří s rozlišením 1 ms - pro tuto aplikaci zcela dostatečné.

Programování

Vlastní přeprogramování paměti mikrokontroléru je poměrně jednoduché. Stačí připojit ICSP programátor na sběrnici/konektor na odpovídající plošky na plošném spoji (viz foto). Pro jednoduchou orientaci je první bod čtvercový (MCLR), ostatní kruhové. Dále se v ovládací aplikaci nahraje zkompilovaný program (hex) a provede vlastní přeprogramování.

Konkrétní zapojení je logicky závislé na možnostech (hw, sw) každého jednotlivce (v angličtině by se použilo výstižné slovo "setup"). Já osobně používám již řadu let produkty fy Elnec, ale lze samozřejmě použít téměř cokoliv, co je určeno na programování mikrokontrolérů a pamětí. V případě zpětných referencí od uživatelů (především jejich vyzkoušených konfigurací) doplním web o tyto informace i pro další ev. zájemce.

V originálu byla u novějších verzí otáčkoměru (ověřeno u 2.1) doplněna na začátku dle letáčku "autokalibrace", ale řekněme si to na rovinu, je to jenom "show". Ta má podobu zobrazení 8, resp. jejich jakousi sekvencí. Proto jsem ani já nemohl zůstat pozadu a úspěšně přeprogramovaný otáčkoměr poznáte tímto zobrazením v rychlém sledu: COPY / 2011 / PEb / U_10 / otáčky

Kalibrace

I při použití krystalu bude každý oscilátor kmitat na jiné frekvenci. To je dáno přesností součástek tvořících oscilátor, resp. jejich toleranční odchylkou. Z tohoto důvodu bude pravděpodobně nutné provést kalibraci otáčkoměru. Ta se provádí víceméně experimentálně úpravou kalibrační hodnoty, kterou je potřeba umístit na první 4 bajty v eeprom paměti mikrokontroléru. Pokud není zadána žádná (na adresách je FF nebo 00), tak program automaticky použije hodnotu odpovídající ideální frekvenci oscilátoru 4 MHz.

Ideální stav je použití přesného generátoru frekvence signálu. Další možným řešením je provést kalibraci podle druhého otáčkoměru. Kupodivu jsou originál otáčkoměry relativně přesné (z mé zkušenosti 0.3 - 0.5 %). Bohužel jiné jednoduché řešení neznám. Na druhou stranu je předpoklad toho, že kdo přeprogramování bude provádět, tak nebude mít problém kalibraci provést.

Program (firmware)

Možná se zdá, že se popis zatím zabýval víceméně pouze teorií. Proto přejdeme k tomu, co je jediné opravdu potřeba - program pro mikrokontrolér otáčkoměru. Ten je pro nekomerční účely volně k dispozici na webu autora [3], stejně jako ev. doplnění tohoto článku. Uvádět ho zde v časopisu by nebylo moc efektivní. Nehledě na to, že je občas aktualizován (v době vydání časopisu je verze 1.2).

Jak již bylo zmíněno originální program není k dispozici a tudíž není možná jeho úprava. Proto byl alternativní program napsán znova, zcela od začátku (a logicky trochu jinak). Výsledek je stejný nebo lepší, doufám… Pokud jde o jeho velikost, tak zabírá přibližně 50% kapacity vnitřní paměti mikrokontroléru. Tudíž bude-li mít někdo nápad na jeho doplnění nebo rozšíření, tak prostor tady stále je.

K chování programu asi není co napsat, snad jen, že hodnota max. dosažených otáček (od připojení napájení) je zobrazena cca každých 25 sekund trojitým zablikáním této hodnoty. Poté jsou opět zobrazovány otáčky aktuální.

Závěr

Přeprogramování se není třeba obávat. Je dobré mít na paměti, že na zničení otáčkoměru by snad opravdu bylo potřeba kladivo. Buď se podaří nebo nepodaří - poté skoro jistě zůstane původní firmware nezměněn (ověřeno). Jedinou nepříjemností může být nalezení správné kalibrační hodnoty.

Poznámka nakonec
Toto vše vzniklo pro kamaráda-kolegu Charlieho na ukázku toho, že i některé levné čínské věci mohou fungovat dobře, či jim lze dokonce zvýšit jejich užitnou hodnotu. Proto je mu tento příspěvek věnován.

Soubory ke stažení

Viz. odkaz "Download"

Foto

RCEXL otáčkoměr s ICSP konektorem RCEXL otáčkoměr - originál a alternativní firmware

Video

« zpět do kategorie "Elektronika"
« zpět do kategorie "RC modelářství"