CAMPac / ClonePac 16K a 64K
|
CAMPac je výměnný paměťový modul určený k rozšíření základní paměti vysílačů Futaba. Nejen k rozšíření, ale i k zálohování nastavení modelů v případech, že, nedej bože, musíme poslat vysilač do opravy, nebo potřebujeme skopírovat model do druhého vysilače. Bohužel jen do stejného typu. Je to logické, protože čím je vysilač složitější, umožní nastavit ke každému modelu více parametrů a tím každý model potřebuje více paměti. Podle typu vysilače a velikosti paměti je tak počet modelů patřičným způsobem rozšířen. Dnes již považována základní pamět 16K pojme jedenáct modelů u FC-18, kdežto u FF-9Super jen šest.
Pokud se rozhodneme, že si 16K pamět pořídíme jako originál, budeme muset sáhnout asi dost hluboko do kapsy. Tento přístup výrobců mě stále více a více rozčiluje. Vyrobit si 16K paměť není pro zručného laika nic složitého. Modul obsahuje celkem 4 součástky.
Kdo by se ale spokojil s 16K pamětí a nechtěl větší?
16K modul je však jediný, který se dá tímto "amatérským" způsobem vyrobit. Nejdříve jsem se pídil po Internetu po nějakém zapojení nebo popisu komunikačního protokolu. Bohužel jen s polovičním úspěchem. Nalezl jsem na ruských stránkách popis modulu MEMPAC64 s mikroprocesorem Atmel ATTiny15L. Úžasně jednoduchý procesor v pouzdře s osmi vývody a 1K paměti. Tento procesor má ale jednu nevýhodu. Ze zkušeností, které s ním mám je kalibrační konstanta vnitřního oscilátoru od výrobce dost vysoká a procesor se tak nedá přinutit k vyšší frekvenci.
Procesory jsou vždy taktovány nějakým kmitočtovým normálem. Zprvu to byl externí krystalový oscilátor ve spojení se dvěmi keramickými kondenzátory. Později byly procesory vybavovány vnitřními oscilátory, případně kombinací obou, kdy se v procesu programování zvolí vhodný oscilátor. Protože se oscilátor nedá vyrobit vždy zcela stejný, provádí výrobce při výrobě každého kusu kalibraci. Tuto konstantu pak zapíše do paměti procesoru. Tato konstanta pak nastaví všechny procesory na stejný kmitočet. Zvětšení hodnoty konstanty dojde ke zvýšení kmitočtu. Uložený program tedy běží rychleji.
Najít protokol se mi ale nepodařilo. Nezbývalo tedy, než protokol někde odkoukat. Měl jsem dvě možnosti. Připojit se přímo do vysilače nebo se podívat jak komunikují programy pro čtení a zálohování těchto modulů. Ten druhý je samozřejmě bezpečný způsob. Stačí vyrobit nějakou čtečku CAMPac modulů a jednoduchým logickým analyzátorem se připojit na 2 dráty. Komunikace s vysilačem probíhá po dvou drátech v protokolu I2C (jednosměrné hodiny a obousměrá data) a to samé mezi procesorem a vlastní 64K pamětí. Nejdříve je nutné dokonale pochopit jak komunikuje čistá paměť, pak se ponořit do analýzy výstupu logického analyzátoru a potrápit šedé buňky mozkové.
Základním kamenem bylo zjistit, jak je adresována větší paměť než základní 16K. Jedná se o osm bitů adresy, která přijde hned po startovací sekvenci (přechod SDA z 1->0 při SCL=1). Adresaci ilustruje následující tabulka.
paměť | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
24C16 | 1 | 0 | 1 | 0 | B2 | B1 | B0 | R/W |
24C64 | 0 | 0 | A12 | A11 | A10 | A9 | A8 | R/W |
Máte-li zájem, kontaktujte mě a já jsem schopen modul pro Vás vyrobit.