PSoC 3 FirstTouch Starter Kit je určen pro první seznámení se systémem vývoje na PSoC3. Jedná se o kit nevelkých rozměrů s množstvím senzorů, tlačítek a LED. Hlavním významem vývojové desky je rychlé seznámení s vývojovým softwarem PSoC Creator, který je hlavním nástrojem pro práci s PSoC3 a PSoC5. Kit obsahuje:
- Vývojový software PSoC Creator s integrovaným C kompilátorem od společnosti Keil.
- Programovací a ladící rozhranní.
- Analogový akcelerometr.
- Analogový termistor.
- Analogový indikátor blízkého pole.
- CapSense interface.
- 28 GPIO.
- 14-ti pinový konektor pro bezdrátový modul.
- USB kabel.
- 9V baterie.
Obrázek 1: DPS PSoC FirtTouch Starter Kit
Instalace a první spuštění
Jak už bylo výše uvedeno, PSoC 3 FirstTouch Starter Kit je dodáván s kompletní sadou software nutného pro vývoj a programování. V případě PSoC 3 jde pak o PSoC Creator společně se speciální edicí kompilátoru jazyka C od společnosti Keil. Po vložení instalačního CD je automaticky spuštěn instalační dialog. Nezbytnými součástmi pro práci s kitem jsou: PSoC Creator, PSoC Programmer (od verze 3 a Keil C51 kompilátor (edice Cypress). Pro práci s PSoC5 je pak instalován GNU GCC kompilátor a v obou případech příklady využití PSoC3 a PSoC5.
Co se týče kitu samotného, ten je funkční bez jakékoliv nutné přípravy. Připojením devíti voltové baterie se spustí předem naprogramovaný demonstrační program, který při potřesení deskou prostřednictvím LED vypisuje připravený text. Zdrojový kód je možné si otevřít v instalačním adresáři.
Hello World
Kit máme zakoupen, nainstalován příslušný software ale co s ním. Uživatelé zvyklí na PSoC 1 jistě budou také překvapeni, co že za software to nainstalovali, protože se rapidně liší od toho, na co byli za ta léta zvyklí. Klasikou pod označením Hello World ve světě mcu je rozblikání LED. Těch je na kitu víc než dost, takže se můžeme směle pustit do díla. Předem musím upozornit, že s PSoC3 nemám žádné dalekosáhlé zkušenosti, nicméně podařilo se mi vytvořit funkční příklad pro rozblikání dvou LED, jedné pomocí klasické zpožďovací smyčky v programu, druhé pomocí čistě HW řešení (blok PWM). Pokud někdo najde efektivnější nebo zajímavější řešení problému, prosím, aby si to nenechal pro sebe a vyjádřil se pod článek.
Spustíme si tedy PSoC Creator. Vzhledem k rychlosti s jakou jsou vyvíjeny nové verze je možné, že některé screeshoty uvedené v tomto článku nebudou odpovídat skutečnému stavu, nicméně neměly by se lišit o mnoho.
Obrázek 2: Úvodní obrazovka PSoC Creator
Pro vytvoření nového projektu stačí kliknout na „Create New Project“ nebo „File – New – Project“. Vyplňte dialog dle vlastního uvážení, pokročilá nastavení (po kliknutí na +) nechte beze změny. Ve výchozím stavu je nastaven procesor umístěný na vývojové desce a měnit ho tedy nechceme.
Obrázek 3: Dialogové okno vytváření projektu
Následuje drobná prodleva, kdy jsou vytvářeny soubory projektu. Jako první je zobrazen list pro kreslení vnitřního zapojení. Zde je možné vkládat objekty, které jsou k výběru v Component Catalog (obyčejně vpravo). Pro naše účely postačí následující zapojení:
Obrázek 4: Vnitřní zapojení
Na listu jsou zapojeny komponenty typu Digital Output Pin (Ports and Pins), blok PWM (Digital – Functions), bloky logických stavů Logic High „1“ a Logic Low „0“ (Digital - Logic) a blok Clock (System). Konfigurujte bloky následovně:
Obrázek 5: Nastavení Pin_1
Obrázek 6: Nastavení Pin_2
Obrázek 7: Nastavení PWM_1
Obrázek 8: Nastavení PWM_1
Obrázek 9: Nastavení Clock_1
Uvedené nastavení v praxi znamená to, že si vytvoříme dva piny, jeden pouze pro HW využití (tedy v zapojení s ostatními bloky) a druhý pouze pro SW využití (Pin_1). K Pin_2 připojíme blok PWM, ten máme nastaven tak, že je vždy povolena jeho funkce, jako zdroj hodin je nastaven Clock_1, který má zdroj hodin nastaven na ILO (1khz) s dělícím poměrem 2. Uvedené zapojení nám bude tedy generovat na výstupu pulzy se střídou cca 1:1 a o LED připojenou na Pin_2 se tedy nemusíme vůbec starat. Co se týče obsluhy Pin_1, k tomu slouží následující zdrojový kód:
#includeint i, ii; void main() { /* Place your initialization/startup code here (e.g. MyInst_Start()) */ Clock_1_Start(); PWM_1_Start(); Pin_1_Write(0); for(;;) { for (i = 0; i<200; i++) for (ii=0; ii<1000; ii++); Pin_1_Write(1); //Pin_2_Write(1); for (i = 0; i<200; i++) for (ii=0; ii<1000; ii++); Pin_1_Write(0); //Pin_2_Write(0); } }
Zbývá namapovat piny, to lze provést například v souboru s příponou .cydwr:
Obrázek 10: Mapování pinů
V této chvíli již zbývá pouze celý projekt přeložit (Shif-F6) a nahrát do procesoru (CTRL-F5). Je-li vše v pořádku, krajní LED na kitu by měly blikat. Pokud dojde k přehrání programu v procesoru doporučují vysunout a zpět nasunou jumper J4 (napájení)
Blikat tedy už umíme, To je dobrý základ, Příště si zkusíme něco složitějšího a zapojíme periferie osazené na desce. Celý projekt je možné stáhnout a dle vlastních potřeb upravovat.
Odkazy & Download
- Kompletní projekt ke stažení
- www.cypress.com – výrobce PSoC
- www.msc-ge.com – distributor PSoC v ČR