Aktualizováno v březnu 2019

      
 

   Základy programování - úvod do sériové komunikace s jednočipovými procesory PICAXE


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

Úvod

V tomto článku je popsána část přístroje, která je na druhém konci sériového kabelu. Deska s procesorem PICAXE. A zde 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 jednočipový mikropočítač. Já používám v současné době čipy PICAXE.

Čipy PICAXE mají výhodu v minimálním počtu součástí potřebných kolem čipu. Vlastně 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š karta, 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.

Poznámky

1. 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, nic se nikde neinstaluje, umí mnohem víc věcí. Proto je v adresáři také html stránka s návodem.



2. 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. Programem na Icomy z minulé lekce můžeme samozřejmě LED v našem PICAXE udělátku rozsvítit:

3. 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. Program na převod čísel z hexadekadické do dekadické soustavy jsme si popsali v jedné z úvodních lekcí.

4. 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.

5. 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.

6. 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, 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 ... Při použití procesorů PICAXE vidím tyto výhody::

1. Na programování čipů PICAXE nepotřebujete hardwarový programátor.
2. Netrápíte se se zaváděním programu.
3. Netrápíte se např. s tzv. konfiguračními bity, jako u jiných procesorů.
4. 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ů.
5. PICAXE se dělají s různým počtem vstupních a výstupních pinů. Snadno zrealizujete projekt s velkým množstvím relé. V anténním tuneru jsem měl 25 relé.
6. PICAXE si naprogramujete ve vyšším programovacím jazyce Basic, který byl kdysi vyvinut pro techniky a vidláky. Jak vidíte, stále se používá. A používá se také proto, že se snadno učí.
7. Příklad použití PICAXE v přepínači antén, včetně ovládacího programu pro PC.

 
 

Zpět na obsah


TU 73, Mira, ok1ufc