Stavím si malé kolejiště podle vzoru Jafobe (nick na modely.biz) a chtěl jsem čtečku CV zabudovanou do kolejiště tak, aby se nemuselo nic kabelovat a přepojovat. Teda zajet s pomocí ovladače s loko na určené místo, vytáhnout ovládací pultík zpod panelu a nastavovat. A taky umožnit trošku vyšší standard obsluhy. Nechci to dělat moc drahé a složité, aby si to mohl postavit každý trosku zručnější modelář, který aspoň rozezná diodu od odporu. Není to určené pro laiky, je to přece jenom trošku složitá konstrukce.
Schéma zapojení:
Vypadá to jednoducho, jak je mým zvykem, ale není to až tak pravda, protože využívám opravdu hodně zabudovaných periferií a přerušení v procesoru Atmega 328PU a to se musí umět. Taky TFT display s grafickým procesorem ST7735S není zrovna uživatelsky příjemný a tak jsem se dost potrápil, asi tři měsíce. Například 15 drátových propojek je síla, ale použití natvrdo zapojených pinů od periferií, je nutnost se tomu přizpůsobit. Používám všechny časovače, hard SPI, USART + buffer, ADC převodník a externí přerušení. Zrovna v tomto programu používám zvláštnost, kdy povoluji volaní dalších přerušení u méně důležitých přerušení. Rekurze nehrozí.
Důvody, proč jsem se do toho pustil, jsou dva. První je možnost trvalého zabudování programovací koleje do kolejiště bez nutnosti změny kabeláže a druhý je požadovaný vyšší standard obsluhy. Tím myslím, že když jsou #CV okomentované na displeji a tak člověk nemusí stále hledat v manuálu RP-9.2.2 od NMRA, s čím to pracuje.
Asi největší problém bylo použití relé, které má neskutečně dlouhou dobu na uklidnění kontaktu a zákmitů. Časy nad 5 mS jsou normální a jsou pro procesor otravné. Třeba si uvědomit, že za čas 5 mS dokáže procesor vygenerovat 8 až 12 byte DCC a ty jsou většinou nadobro ztracené. Ještě že ma protokol DCC celkem dobré ochrany pomoci EXOR kontroly. Je použité bipolární relé TAKAMISAWA – RALDI 12W – K z Aliepress.
Princip a popis konstrukce čtečky CV je uveden v článku Čtečka CV proměnných v lokodekodérech, bez kalibrace a nastavování, proto je celkem zbytečné o tom psát. Co je úplně jiné a jinak, je použití klávesnice a displeje. Použitím grafického displeje se nám neskutečně rozšířily možnosti informování o funkci čtečky, třeba chybové hlášení. Zjistit nepřítomnost ACK impulsu je pro mne velmi důležité. Tím myslím, že pokud je vyčtená hodnota „0“, tak nevíme, či je to správné, protože stejná hodnota se ukáže i při stavu buňky CV „0“.
Popiska klávesnice.
Zařízení umí čtyři činnosti, pokud je připojená programovací kolej a na ní stojí loko s dekodérem a tři další příkazy bez přítomnosti loko s dekodérem.
1. Čteni adresy:
Po stisknutí klávesy „cteni adres“ se objeví řádek s informací o CV29, podle kterého se vyčte malá nebo velká adresa. Pokud je CV29.5 = 0, tak se čte adresa CV1, kde je uložená hodnota malé adresy.
Pokud je CV29.5 = 1, tak se čtou CV17 a CV18, kde jsou uložené hodnoty velké adresy. Tady je trošku zrada v tom, že vyšší adresa je uložená v nižším byte a ne, jako je obvyklé v programátorské praxi, ze vyšší byte je ve vyšším byte z dvojice. Velká adresa se ukládá ve formátu DCC, teda i s bity 17.6 a 17.7 v hodnotě „1“.
Na řádku s CV29 se objeví hodnota klidového proudu v klidu a při ACK impulsu. Tato hodnota je bezrozměrná a není o skutečné hodnotě proudu, informuje jen o tom, či je čtečka v pořádku. První hodnota musí být větší než 200 a druha do hodnoty 50.
Tyto hodnoty se nastavují při prvém zapnutí trimrem R18 a už se nikdy nemění.
Pochopitelně musí být na koleji nějaká loko.
Pokud není ACK impuls, tak se vypíše „spatne cteni“.
2. Zápis adresy:
Tu je to složitější v tom, že se musí zadat adresa, kterou chcete zapsat. Hodnoty 0 a nad 10239 jsou ignorovány a hlásí se chyba platnosti. Takže naťukáte adresu a stisknete „zapis adres“, obvod si sám zjistí, kam to ma zapsat a upraví si a zapíše CV29.5 podle vzoru do 127 a nad 127. A zapíše to do CV1 anebo CV17 a 18. Pokud není ACK impuls, tak se vypíše „spatny zapis“.
3. Čtení CV:
Taky tady se musí nastavit adresa CV v hodnotě od 1 do 1024, jiné hodnoty jsou označené jako chyba. Pak se stiskne tlačítko „Čteni #CV“ a na displeji se objeví adresa CV a jeho hodnota. Pokud není ACK impuls, tak se vypíše „spatne cteni“.
4. Zápis CV:
Tady je to nejsložitější, protože se musí zadat dvě numerické hodnoty a ty oddělit od sebe. Nejdříve se zadá adresa CV a oddělí stiskem „zapis #CV“ a napíše se hodnota CV a znova se stiskne „zapis #CV“. Objeví se nápis „Zápis data do CV“ a následně se to potvrdí nebo se vypíše chybové hlášení „spatny zapis“.
5. Stiskem tlačítka „Menu“ se vypíše základní menu. Tímto tlačítkem se dá taky zrušit rozpracovaný příkaz a obvod se vrací do základního stavu.
6. Svit displeje funguje tak, že se zvolí číslo od 1 do 9 a to se potvrdí tlačítkem Svit. Okamžitě se změní podsvětlení displeje od minima 1 do maxima 9.
7. Pokud zasunete Loconet ovladač do RJ12 6/6 zásuvky, tak zjistíte adresu ovladače. To se hodí u ovladačů bez displeje. Pokud zasunete ovladač bez adresy (červený), tak můžete navolit poslední vyčtenou adresu z loko do ovladače, volbou na to určenou na ovladači. U Oto ovladače je to stisknutí enkodéru. Pro méně chápavé opakuji, že musí být předem uložená adresa od vyčtené loko, která se následně nahraje do ovladače. Je to logické, vyčtete adresu loko a tu převezmete do ovladače, se který bude loko spojená a ovládaná.
Rozložení součástek na plošném spoji. Spojek je opravdu hodně, ale to si vyžádalo použití natvrdo přidělených pinů od zabudovaných periferií. Třeba hard SPI používá jen piny na Portu B.
Loconet v obvodu používám na zjištění adresy ovladače a pokud je to potřebné, tak pomoci funkce Dispatch navolíme jeho novou adresu podle přečtené loko. Funkce jsou spojené a pokud dáte vyčíst adresu loko, a potom zapíchnete ovladač a požádáte o novou adresu na ovladači, tak se to vykoná automaticky. Tato zásuvka Loconetu není nikde jinde připojená, proto se NESMÍ použít na ovládání loko. POZOR, pin 1 zásuvky RJ12 je připojen na +15V po usměrněni DCC. Zapojil jsem jen jeden, jako prevenci proti lidské blbosti, aby se to nedalo zkratovat.
Zásuvka „Vstup DCC“ se napojuje na DCC v kolejišti nebo modulu, odběr je pod 20 mA a tak to celkem ničemu nevadí. Dá se napsat, že to bere méně než některý osvětlený vagon. Pak je úsek trvale průjezdný. Pokud to bude některým puristům vadit, tak se tato zásuvka rozpojí, ale úsek bude bez DCC napájení a pochopitelně, čtečka CV nebude fungovat.
Zásuvka „programovací kolej“ je připojená na kolej, která nemá jiné napájení a to zabezpečuje jen tento obvod. Podle výběru z menu prochází napájení z hlavního DCC anebo se programuje. To zabezpečuje relé.
Pár fotek z realizace.
Zasunutý modul pod kolejiště. Ta slepá kolej je připojená na čtečku CV.
Vysunutý modul zpod kolejiště. Ta německá mašinka je můj otloukánek, který používám na testování.
Vyčtená adresa 33.
Ahoj Zdeno,
DCC signál sa dá ťahať z rozvodu X1 a čítačkou napájať priamo samostatnú programovaciu koľaj? Čítačka nemá vplyv (okrem zanedbateľného odberu) na DCC signál na moduloch.
Pochopil som správne?
A po čom to predávaš už hotové v krabičke?
Odpoveď mi stačí do mailu vrattovin@gmail.com
Ďakujem.
VraTTo
nevyrabim na prodej, bol to a zustane to prototyp.
Muzem poslat podklady. Ozvi se na janecek3@zoznam.sk