CHIPON 2 - Výuková deska s procesorem PIC16F877

26. 5. 2004

Chipon 2

   CHIPON 2 je výuková deska osazená procesorem PIC16F877. Procesor je osazen v patici pro případnou výměnu za jiný typ procesoru PIC ve stejném pouzdře. Obsahuje celkem 40 vývodů, z kterých je možné použít jen 33 jako vstupní nebo výstupní. V procesoru je vnitřní pamět RAM 368b a EEPROM 256b a také 8 10-bitových A/D převodníků, sběrnice I2C a USART. Do procesoru se nahraje program o celkové velikosti 8Kb pomocí rozhraní ICSP nebo zavaděče, který přepíše program procesoru z počítače PC přes sériové rozhraní RS232.

 

   Na stránkách časopisu Rádio plus KTE číslo 5/2004 vyšla výuková deska osazená procesorem PIC16F877. Je určená jako výukový prostředek pro začátečníky i pokročilé programátory zabývající se jednočipy od firmy Microchip. Plošný spoj pro CHIPON 2 se prodává pod označením KTE674 za 175,- Kč.

   Procesoru dává takt krystal 20MHz. Napájení je přivedeno z externího stabilizovaného zdroje 5V. Jednotlivé porty procesoru jsou vyvedeny na připojovací konektory (dutinková lišta) pro další periférie. Desku můžeme připojit k počítači PC přes sériové rozhraní RS232 pomocí 9-ti špičkového konektoru canon. Jako vstupní periferii můžeme připojit multiplexní klávesnici 4x4 tlačítek. Pro práci s A/D převodníkem slouží 3 potenciometry. Jako výstupní periferii připojíme dvouřádkový displej LCD, reproduktor nebo sériový kanál RS232. Dále mužeme použit jako výstupní konektor stereofoní Jack 3,5mm. Na desce je ještě resetovací tlačítko procesoru a druhý krystal jako zdroj hodin 32,786KHz.

   Na stránkách časopisu vychází nová miniškola programování PIC pro konstrukci CHIPON 2. Bude postupně vysvětlena práce s A/D převodníkem, komunikace přes RS232, testování programu v prostředí MPLAB a další.

  • 1. lekce v čísle 5/2004 - Návod na sestrojení desky CHIPON 2 a programovacího modulu ICSP. Popsán program zavaděč na programování procesoru z počítače PC přes rozhraní RS232 pomocí řízeného zápisu do FLASH paměti procesoru. Program ke stáhnutí na stránce časopisu je Miniskola_2_00.zip (289kB). Obsahuje zavaděč (v kódu mikrořadiče), jeho ovládací aplikace Loader16 (WIN32) i s návodem, jednoduchý obslužný program k ICSP modulu (pro DOS a Windows) a demonstrační program k otestování Chipona s periferiemi.
  • 2. lekce v čísle 6/2004 - Seznámení s přechodem procesoru PIC16F84 na PIC16F877. Většina lidí se bojí tohoto přechodu mezi mikrokontroléry a přitom to nic není. Dále je vysvětleno používání integrovaného A/D převodníku. Je zde uveden jak klasický jednorázový A/D převod, tak i vícenásobný s rychlým výpočtem průměrné hodnoty. Uvedena je i možnost, jak softwarově zvýšit rozlišení 10-bitového převodníku třeba na 12-bitů. Jednoduchá hystereze, která brání zakmitávání hodnot v blízkosti přechodových skoků.
  • 3. lekce v čísle 7/2004 - Se v první části krátce věnuje šestkové řadě MPLabu (mnoho čtenářu zřejmě používá pětkovou verzi). Následuje část se zaměřením na efektivní programování (používání substitucí, maker a direktiv jako je include, if, else a další). Poslední část lekce přináší seznámení s hardwarovým asynchronním sériovým portem (komunikace s PC), včetně softwarového výpočtu parity. To je doplněno hotovým programem v internetové příloze. Součástí je i testovací aplikace na straně PC.
  • 4. lekce v čísle 8/2004 - Se zabývá obsluhou přerušení u PIC16F877 a s tím souvisejícími obecnými zásadami. Dále je zde probrána problematika implementace "velkého" softwarového bufferu pro sériový asynchronní port (u PIC16F877) a na konci lekce je řešeno snímání celého stavu multiplexní 4x4 tlačítkové klávesnice pomocí obsluhy přerušení. Na WWW stránkách "Rádia plus" je k dosažení příloha s ukázkovými programy, včetně testovacích programů pro PC.
  • 5. lekce v čísle 9/2004 - Se věnuje robustní obsluze 16tlačítkové multiplexní klávesnice, včetně odstranění zákmitů, rozpoznání korektních kombinací kláves nebo implementace repetice (jako to znáte na PC). Celá konečná rutina pracuje jako obsluha přerušení, takže poskytuje maximální pohodlí při vývoji uživatelských programů. Na konci lekce se krátce věnuji čtení a zápisu do EEPROM a FLASH paměti.
  • 6. lekce v čísle 10/2004 - Seznamuje čtenáře s pohodlným způsobem, jak se dají ve FLASH paměti PIC16F877 vytvářet rozsáhlé tabulky. Toho je využito k ukládání zobrazovacích skriptů, což je posloupnost speciálních příkazů typu "nastav pozici", "vypiš znak/řádek" a podobných, které jsou zpracovány chytrým podprogramem. Tento podprogram se přitom stará i o práci s displejem, takže programátorovi ušetří spoustu práce.
  • 7. lekce v čísle 11/2004 - Dokončuje implementaci pokročilých příkazů, jakými je vypisování hodnot 8bitových a 16bitových proměnných v dekadickém tvaru s možností různého formátování. To vše může být součástí pohodlného skriptu, zadaného v tabulce. Aby toho nebylo v této lekci málo, je zde i seznámení s optopřijímačem SFH-506 a s jeho typickou aplikací - rozpoznáváním kódů IR ovladačů. Výsledkem lekce je tedy program, který si do paměti uloží tvar signálu jednoho tlačítka libovolného IR-ovladače a posléze na něj při opakovaném vysílání umí zareagovat (například výpisem na displeji).
  • 8. lekce v čísle 12/2004 - Na začátku lekce je dokončeno povídání o rozpoznávání IR-kódů. Výsledkem je program, který se dokáže naučit omezený počet IR-kódů, které ani nemusí pocházet ze stejného ovladače. Následně na tyto kódy dokáže reagovat vypisováním jejich záznamových indexů na LCD displej a současně vysláním stejné hodnoty na sériový port. Dále se nová lekce zabývá čtením znaků z PC klávesnice, a to jak s využitím obsluhy přerušení, tak i bez ní. Celá lekce končí úvodem do budoucího tématu, kterým je "učení se" a "emulování" klávesových zkratek (týká se PC klávesnice). V lekci je obsaženo jednoduché schéma, obsahující dvě jazýčková relé, pomocí nichž je možno odpojit datové vodiče PC klávesnice v průběhu emulace klávesnice mikrokontrolérem. To celé potom představuje jakýsi modul k Chiponu 2, který lze zapojit mezi počítač a klávesnici (v příští lekci toho bude využito k ovládání "domácího" počítače přes port klávesnice). V závěru lekce je tedy odhalen podprogram, který na klávesový port vyšle elementární znak. Na hlavní poentu si musí čtenář počkat do příští lekce...
  • 9. lekce v čísle 1/2005 - Dokončena problematika záznamu a reprodukce klávesových zkratek PC klávesnice. Na základě toho jsem dal čtenářům k dispozici univerzální program, který si sám zapamatuje několik předvedených klávesových zkratek a na pokyn uživatele je později reprodukuje. Tento systém jsem nakonec spojil se systémem na rozpoznávání naučených IR-kódů dálkových ovladačů a vznikl tak program, kterému stačí předvést kód ovladače + klávesovou zkratku a program potom na shodný kód ovladače reaguje generováním této klávesové zkratky. Takovýchto dvojic "IR-kód + klávesová zkratka" lze do systému uložit rovnou několik a systém tedy dokáže na různé kódy (třeba i z různých dálkových ovladačů) reagovat různými klávesovými zkratkami. Pomocí toho se dá snadno ovládat osobní počítač (například multimediální přehrávače nebo obchodní prezentace). Nepotřebujete k tomu žádný speciální PC-software a nejste potom vázán ani operačním systémem.
  • 10. lekce v čísle 2/2005 - Probereme měření času, nebo-li časomíru. Často se totiž setkávám s tím, že lidé vytvářejí časovací smyčky, které jsou už z principu špatné (neznalost přesného chování TMR0 s předděličkou a podobně). Proto jsem se zaměřil jak na konstrukci časování pomocí TMR0, tak i na softwarovou kalibraci v případě nepřesného oscilátoru. Také zde seznamuji čtenáře s časovačem TMR2 a jeho programovatelnou periodou (viz. registr PR2). Na závěr se lekce zaměřuje na časování pomocí TMR1 a sekundárního krystalu. To se dá dobře využít v úsporném režimu SLEEP. Tento režim je zde také přiblížen, včetně programu, který měří zpoždění po "probuzení". Čtenář ale získá hlavně funkční programy, které demonstrují měření reálného času pomocí různých režimů časování (TMR0, TMR1, TMR2 nebo v režimu SLEEP).
  • 11. lekce v čísle 3/2005 - Tentokrát je lekce zaměřena na PWM, tedy hardwarovou pulzní šířkovou modulaci mikrokontroléru PIC16F877. Je zde ukázáno, jak se dá pomocí této techniky realizovat docela přesný a rychlý D/A převodník. Dále se v této lekci věnuji ovládání stejnosměrných elektromotorů (DC motory) - také pomocí PWM. Je zde realizováno jednoduché zapojení s budičem L298, které slouží jako modul k Chiponu 2. Pomocí něj lze nezávisle ovládat dva DC motory (intenzita a směr otáčení). Ještě na začátku lekce je zmíňka o uplném adresování pamětí u PIC16F (pomocí PCLATH apod.) - to jen pro pořádek...
  • 12. lekce v čísle 4/2005 - Další použití PWM (pulzní šířková modulace). Nejprve zde uvádím realizaci experimentu s infračerveným přenosem - tlačítko aktivuje modulaci pro infradiodu a signál z optopřijímače zase řídí svid LED-diody. Tímto experimentem je demonstrován přenos signálu mezi infradiodou a optopřijímačem. Dále už se věnuji využití hardwarové PWM pro generování zvuku. Ukázkové programy realizují pod obsluhou přerušení virtuální zvukové generátory (umožnují nastavit frekvenci, hlasitost a dozvuk), jejichž výsledky se mohou sčítat ve výsledný zvuk (polyfonie). Součástí této Miniškoly je internetová příloha, obsahující (mimo jiné) program, který "čtyřhlasně" přehrává jednu známou Mozartovu skladbu.
  • 13. lekce v čísle 5/2005 - V této lekci bylo nastíněno (či dokonce vysvětleno), jak funguje onen demonstrační program z lekce 12, který přehrává Mozartovu skladbu. Jako nové téma jsem zvolil problematiku vnořeného přerušení u PIC16F. To je poněkud komplikované, protože architektura těchto mikrokontrolérů je velmi omezená. Jako demonstrační program na závěr jsem zveřejnil (v internetové příloze) vylepšenou verzi prehrávání skladby. Na displeji se navíc zobrazují ukazatele jednotlivých tónových generátorů. Samotné přehrávání skladby běží čistě jen pod obsluhou přerušení! Takže hlavní program se nemusí o nic starat a může běžným způsobem pracovat s displejem...
  • 14. lekce v čísle 6/2005 - Tentokrát jsem se rozhodl seznámit čtenáře s jinými členy rodiny PIC16F. Uvedl jsem zde i "superlevný" univerzální prostředek pro zavádění programů do těchto mikrokontrolérů. Jako úvodní příklad posloužila jednoduchá aplikace s PIC12F675 (stejné procesorové jádro jako u PIC16F). Tento mikrokontrolér může být například naprogramován jako jednoduchý AD-převodník se sériovou komunikací. Tuto možnost jsem zde uvedl jako jednoduchý příklad použití pro začátek... Celá tato lekce měla posloužit jako inspirace k používání více typů PIC16(12)F.

14. lekce je lekcí poslední, protože vydávání časopisu KTE (Rádio Plus) bylo ukončeno.

Poznámka !
Vydávání časopisu KTE (Rádio Plus) bylo ukončeno a redakce zrušena k datu 6/2005. Zrušeny jsou internetové stránky časopisu na kterých byly ke stažení soubory k jednotlivím lekcím. Soubory můžete stáhnout zde: programy chipon2.

Časopisy je možné stáhnout na stránce KTE 1997-2005.

Kontakt na autora miniškola programování: Martin Vonášek, email: miniprog@seznam.cz