OK1UFC, České Budějovice, JN78fx, dne 27. ledna 2018:

 
Popis sériové komunikace z PC do čipu PICAXE - další příklady vidláckého programování

Úvod

Vážení čtenáři, to jsem to od vás v uplynulém týdnu schytal :-) Nemohu každému z vás odpovědět na více mailů, ale přidávám to, oč mě žádáte. Popis jednoduchého programu pro komunikaci mezi PC a mikropočítačem. Přestože nemám rád návody, tak zde ty prográmky jsou téměř návody. Počítačové bakalářství toho má dneska málo společného s technikou.

Část komunikačních programů pro PC (Windows) jsem už v minulosti popsal. Ale určitě tady přidám ještě nějaký příklad, až vyšetřím chviličku času. Jeden jsem však stačil dneska upravit. Lze s ním níže popsaný spínač řídit.

Výslovně na vaše přání uvádím tu nejjednodušší a supervidlácky napsanou komunikaci, kód programu pro mikropočítač, tedy to, co je na druhém konci seriové linky od PC. Tedy program pro "dětstký" PICAXE procesor. Tady je schéma HW:

Na fotografii vidíte desku, která původně slouží k programování čipů frekvenčních syntezátorů PLL, ale tady v tomto příkladu jsem ji použil pro spínání jediné LED, která na desce je, a to povelem z USB rozhraní přes FTDI konvertor, protože jsem už v šuplíku neměl ani jeden volný čip a žádný rozdělaný přístroj s lepší deskou:



Potřebné součásti a dovednosti

Pokud si chcete zkonstruovat jednoduché kontrolery, které budou ovládané z PC nebo z tlačítek, budete potřebovat nějaký ten jednočipový mikropočítač. Já používám v současné době ATMEGA88, ATTiny a čipy PICAXE.

Čipy PICAXE mají výhodu v minimálním počtu součástí potřebných kolem čipu. Vpodstatě potřebujete jen čip, blokovací kondenzátory na napájení a dva nebo 4 rezistory na ošetření vstupu ze sériové linky RS-232. Dva v případě, že čip nebude komunikovat po sériové lince a 4 v případě, že bude komunikovat. Ty první dva použijete pro zavádění programu do čipu a ty druhé dva pro pouštění dat ze sériové linky do čipu. V našem případě povelů, pomocí kterých budeme ovládat svícení LED diody.

Z dovedností potřebujete:

- umět zapojit čip PICAXE do desky (plošný spoj, bastlfuš karty, podle toho, s čím kdo dělá)
- umět spustit editor pro programování čipu, já jsem psal těch pár instrukcí v PICAXE Editor 6
- pochopit a naučit se několik základních instrukcí

Použité instrukce

Zde si lze stáhnout komentované výpisy dvou jednoduchých vidláckých programů. V prvním je popis programu, který testuje, zda tlačítko na vstupním pinu C.2 je sepnuté, či nikoliv. Program dělá pár věcí, po startu zabliká s LEDkou na pinu C.0, testuje tlačítko, skáče do některého z podprogramů, atd.

Ve druhém programu bylo tlačítko nahrazeno vstupem pro sériovou komunikaci.

Tady je fotka, jak "komunikuji" s kontrolérem pomocí programu na testování komunikace Icomů:

Poznámky

1. V počítačovém bakalářství je často těžké se domluvit s lidmi a nebo pochopit, jak to mysleli. Tomu se nevyhneme ani u mikropočítačů tak jednoduchých, jako je PICAXE a jeho Basic. Je opravdu jednoduchý. Určený pro školní děti. Z mého pohledu je vidlácký, ale maličký prográmek napíšete za večír, i když jste s tím rok nedělali. Takže, s čím jsem měl problémy? Pochopit, že jednou se pracuje s pinem např ve tvaru zápisu high C.0, což nastaví pin č. 7 na vysokou úroveň. Při testování musíte pracovat s označením pin2, protože špička č. 5 je druhá v pořadí, která je nastavená na čtení. Ta první je špička č. 4, která nejde nastavit jako výstupní. Jinak zase musíte označit číslem sériový vstup. Tady, mimochodem je počítají na pouzdře s 8 špičkami od nuly do sedmičky (0 až 7). Pravděpodobně editor psalo víc programátorů, každý měl jiný styl. Pro uživatele však jde o záludnosti, na které si musí přijít sám. Vývojové kity (bastl karty) jsou s manuály více než užitečné. Otráví vás to, pokud to musíte hledat a číst opakovaně. Proto si oživené algoritmy okomentuji a ukládám. Občas se mi to hodilo.

2. Pro komunikaci se vám budou hodit komunikační programy. Zde je ke stažení soubor zip, který obsahuje můj oblíbený terminálový program Hercules. Okopíroval jsem tu také jeho obrazovku, abyste viděli, v jakém formátu jsem do něho psal data, čím jsem je odděloval, apod. Hercules je jediný exe soubor, nicc se nikde neinstaluje, umí mnohem víc věcí. Proto je v adresáři také html stránka s návodem.



3. V příkladu jsem použil protokol podobný takovému, který používá Icom. Takový protokol umí adresovat kontrolér. I tak jednoduchý čip, jako je PICAXE, disponuje nádhernou funkcí tzv. parametrů qualifiers. Jde o bajty, které musí po sériovém portu přijít na vstup čipu. Pokud jsou v pořádku přijaté, v uvedeném příkladě čip přijme bajt s užitečnými daty. Tento bajt se testuje a podle výsledku testu se spíná nebo nespíná výstup C.0.

4. Hodnoty qualifiers jsem použil takové, jako používá Icom pro komunikaci do rádia ICOM 7200. Použil jsem jen první čtyři bajty: FE FE 76 E0, což znamená FE FE preambuli, 76 je adresa IC7200, E0 je adresa kontroléru, který smí do IC7200 posílat povely. Tyto čtyři bajty jsou v hexadekadickém formátě. Abyste si ho uměli přepočítat do desítkového, je v adresáři s terminálem také kalkulačka na přepočet. V dekadickém formátě mají qualifiers hodnoty 254, 254, 118, 224. Minimum o číselných soustavách, které se hodí v oboru komunikace z PC do 8 bitových mikropočítačů jsem popsal tady.

5. Za qualifiers je odeslán jeden bajt s daty. Pokud qualifiers sedí, znamená to, že jde o povel do vašeho kontroléru. Ten ho přijme a data uloží do proměnné b1, což je jediná proměnná v tomto programu. Tuto proměnnou testuji a zjišťuji, zda není nulová nebo nemá hodnotu 255 v dekadickém tvaru. Podle výsledku zapnu nebo vypnu LED. Jiné hodnoty mě nezajímají, program na ně nijak nereaguje a čeká na další bajty.

6. PICAXE Editor 6 má vestavěný simulátor. Je to dobré, když ještě nemáte žádnou desku s čipem a začali jste zkoušet prográmek. Já to používám hlavně s notebookem ve vlaku. Rovněž tento komunikační program lze vyzkoušet:

Na řádku bufferu vidíte čtyři bajty qualifiers (254, 254, 118, 224) a jeden bajt s povelem (255). Jde o povel k rozsvícení LEDky. Bohužel, to, co jsem neviděl, byla informace, ke kterému portu editor tento simulátor připojil :-) Inu, i profesionální programátoři, kteří mají tak vynikající produkt, jako je PICAXE, trpí profesionální slepotou o tom, že náhodný kolemjdoucí budoucí uživatel jim do hlavy nevidí a musí bádat v dokumentaci, jak to je.

7. Za výhodu čipů PICAXE považuji také skutečnost, že k naprogramování nepotřebujete žádný programátor. Zkompilovaný kód posílá editor PICAXE rovnou po sériové lince.

Elektrická schémata zapojení sériového rozhraní

Sériové rozhraní mezi PC a PICAXE lze elektricky zapojit dvěma základními způsoby:

1. Použít adaptér USB to RS 232. Tyto adaptéry mají nízkou klidovou úroveň, značka má vysokou úroveň. Firma Revolution uvedla ve svém manuálu jednoduché zapojení, které využívá pouze 2 rezistorů. Tímto zapojením zavedete do PICAXE program z editoru. Pokud si zrealizujete na desce dva vstupy, můžete do pinu 2 zavádět program a např. do pinu 4 posílat povely z PC. Piny nesmí být spojené (nefungují povely). Na straně PICAXE se v povelu serin používá zadávání baudové rychlosti ve tvaru N2400 (N je důležité, nikoliv T):


 

Toto zapojení je vhodné pro případ, že mikropočítač je od PC vzdálený. Sériový kanál můžete realizovat např. s pomocí bluetooth adaptéru, adaptérem RS-232 over ethernet, atd.

V případě, že máme mikropočítač PICAXE poblíž USB rozhraní, tj. u notebooku, na hubu, atd., vystačíme s levným USB FTDI adaptérem (kabelem), který nemá obvody pro RS-232. Takový adaptér však má "obrácenou" polaritu. Tedy vysokou úroveň v čase mezery, nízkou úroveň v čase značky. Takovým kabelem nezavedete do mikropočítače program, pokud polaritu neinvertujete. Já jsem použil pouzdro s invertory 74HC04 v provedení SOIC14, které jsem naletoval na malou desku PCB přímo do konektoru Canon (DB9). Zapojení potom vypadá takto:

Obvod 7404 je napájen napětím +5V z USB rozhraní (červený drát). Zem GND byla vyvedena u mého kabelu černým drátem. TxData byla vyvedena na zelený drát. V klidu (mezera), jsem na něm naměřil asi 3.5 V. RxData byla vyvedena na bílý drát. Z adaptéru byly vyvedeny ještě signály CTS (modrá) a RTS (žlutá). Tyto nebyly použity. Toto zapojení používám, jak jsem psal, pro zařízení, která leží na stole nebo u hubu. Většinou jde o programátory, zkušební desky a o zařízení, která jsou použita ke komunikaci uvnitř víceprocesorového přístroje.

Příklad : Mám dálkově řízený tuner. Jsou v něm celkem 2 desky s elektronikou. Na první desce je PICAXE 20M2, který je připojen k portu RS-232, komunikuje s PC, ovládá celkem 8 relé přepínače indukčností. Z pohledu toku dat přijímá povely z PC a odesílá po sériové lince data do druhé desky. Na druhé desce je rovněž PICAXE 20M2, který přijímá data z prvního procesoru, nastavuje 8 relé přepínače kapacit a 2 relé, která připojují kapacity na vstup nebo na výstup indukčností. A také po sériové lince potvrzuje do prvního procesoru (a ten do PC), že kontrolní byty povelů byly správně přijaty. Do druhé desky je třeba zavést na stole program a spustit testy, že program správně spíná jednotlivá relé. Neviděl jsem důvod mít na druhé desce rozhraní RS-232, stačí jen TTL úrovně a adaptér podle druhého schématu.


Závěry

Předpokládám, že je všechno jasné a že si zkoušíte svou první komunikaci mezi PC a vámi zkonstruovaným zařízením, hi ... Pokud to někdo umíte ještě jednodušším způsobem, pochlubte se!

Kus kódu z programu (Windows), který posílá bajty z PC do kontroléru je taky např. také na stránce zde.

Přestože jsou mikropočítače PICAXE určené pro výukové programy a pro děti, považuji si na nich těchto výhod:

1. Nepotřebujete programátor. Netrápíte se tedy se zaváděním programu. Netrápíte se např. s tzv. konfiguračními bity, jako u jiných procesorů.
2. PICAXE pracují s minimem vnějších součástí. Např. ve schématu 2 tvoří mikropočítač jen čip PICAXE, dva keramické blokovací kondenzátory (používám 10n a 10M v keramice) a přepínání vstupů.
3. Naprogramujete je s pomocí jednoduchého vyššího programovacího jazyka Basic, který byl kdysi vyvinut pro techniky a začátečníky a jak vidíte, stále se používá. A používá se díky tomu, že se snadno učí.

 

TU 73, Mira, ok1ufc