Recenzia: Vývojová doska PSoC4 Pioneer Kit

Publikované: 10.04.2014, Kategória: Mikroprocesory

www.svetelektro.com

Vývojový kit PSoC4 od firmy Cypress, koncepcia MCU.

Postupom času sa na trhu objavuje čoraz väčšie množstvo vývojových kitov pre rádio-amatérov. Človek v tom pomaly stráca prehľad a môže nadobudnúť pocit že výber správneho mikroprocesora (MCU) pre daný projekt je náročná úloha. Týmto článkom vám chcem predstaviť ďalšieho kandidáta z rodiny mikroprocesorov určených pre nás domácich kutilov, študentov, rádio-amatérov, ale i úplných začiatočníkov.
Článok je rozdelený na dve časti: V prvej si predstavíme samotný vývojový kit PSoC4 od firmy Cypress, pozrieme sa mu „pod kapotu“ a objasníme koncepciu tohto MCU. Druhá časť článku je venovaná konštrukcii programátora postaveného na vývojovej doske PSoC4.
 
Pýtate sa, čo to vlastne ten PSoC4 je ? Skratka PSoC je odvodená z anglického pojmu „Programable System-on-Chip“, čo v preklade znamená, že na čipe sa nachádza kompletný programovateľný systém (procesor + periférie + obvody napájania). Jedná sa o štvrtú generáciu tohto čipu. Na trhu je dostupná už aj piata generácia (PSoC5) ktorá je svojou cenou a výkonom určená pre náročnejšie projekty. Cena vývojovej dosky PSoC4 sa pohybuje na úrovni 25€. Cena samotného čipu začína na 2€ za kus, ideálne pre „low cost“ projekty.


Obr. 1: PSoC 4 Pioneer kit

Vývojový kit PSoC4 (taktiež nazývaný aj PSoC4 pioneer kit) obsahuje v základnom balení vývojovú dosku, mini-USB kábel a vodiče pre prepojenie PSoC4 s prototypovou doskou / breadboard. Priložená papierová brožúra popisuje jednotlivé prvky na vývojovej doske a odkazuje na domovskú stránku www.cypress.com/go/CY8CKIT-042.


Obr. 2: Popis komponentov na vývojovej doske PSoC4

Zdá sa vám vývojová doska z obr.2 nejaká povedomá ? Áno máte pravdu, doska nielen pripomína známe ARDUINO, ale dokonca je kompatibilná s arduino shieldami, vďaka čomu sa nám otvárajú nové možnosti využitia.
 
Stručný prehľad vlastností vývojového kitu PSoC4:
• Jadro: ARM Cortex M0
• interné taktovanie 3 až 48MHz, sekundárny oscilátor 32.768Hz
• Pamäť: 32Kbit Flash, 4Kbit SRAM
• Voliteľné napájanie: externé 5-12V, interné z USB -  3.3V / 5V
• 12 bitový SAR AD prevodník, 1Msps = 1Mega vzoriek za sekundu
• 2x 8 bitový DA prevodník
• Rozhranie pre dotykové ovládanie CapSense®
• Rozhrania I2C, UART, SPI
• Konfigurovateľný radič LCD displeja
•  Konfigurovateľné Časovače, PWM, Multiplexory
• Debugovanie priamo cez USB rozhranie a SWD protokol
• Analógové komparátory, op. zosilňovače a teplotný senzor priamo na čipe
• Precízne zdroje referenčných napätí a prúdov
• 32 dostupných I/O pinov, osem módov riadenia I/O pinov
 
Vývojová doska obsahuje dva PSoC čipy. Prvý PSoC4 čip v puzdre TQFP 44 s 36 I/O vývodmi je srdcom tejto dosky. Druhý PSoC5LP čip slúži štandardne ako USB programátor, debugger, UART a I2C bridge. Tento čip s jadrom ARM Cortex-M3 je taktiež možné programovať a využiť tak ďalšie „skryté“ možnosti tejto vývojovej dosky. Tá ďalej ponúka dve tlačidlá, RGB LEDku, dotykové „slider“ rozhranie, prepínač medzi 3,3V a 5V napájaním čipu a arduino kompatibilné vstupno-výstupné porty. Napájanie dosky je riešené priamo z USB zbernice alebo z externého adaptéra 5 až 12V. Samotná doska je štvorvrstvová, pravdepodobne kvôli EMI a citlivosti dotykového rozhrania.
 
Jadrom PSoC4 je známy ARM Cortex-M0, ktorý sa píši svojou nízkou spotrebou a podporovu 32 bitových inštrukcií. Základný takt jadra 48MHz je odvodený z interného oscilátora, pričom čip obsahuje aj 32KHz oscilátor. Na čipe je celkom 12 deličiek hodinového signálu čo zabezpečuje vysokú flexibilitu s periférnymi obvodmi bežiacimi na nižšom takte. Ako úložný priestor pre obslužný program procesora sa ponúka štedrých 32KB Flash pamäte a 4KB SRAM operačnej pamäte. Samotný čip je schopný pracovať pri napájaní  1,7V až 5,5V. Spomedzi ďalších periférií nemožno opomenúť aj prítomnosť analógových obvodov priamo na čipe. Analógové komparátory, multiplexory a operačné zosilňovače s nastaviteľným ziskom tvoria samostatnú časť čipu, ktorá môže pracovať nezávisle od jadra MCU. Tieto ale aj všetky ostatné periférie sú zapojené do unikátnej zbernice opísanej v ďalšej časti článku.


Obr. 3: Architektúra čipov rodiny PSoC 4200

Pozrime sa teda bližšie na architektúru PSoC4 čipu zobrazenú na obrázku 3. Samotný CPU predstavuje klasickú Von-Neumann-ovskú architektúru. Unikátnosť PSoC4 spočíva ale v prepojovacej zbernici a štruktúre periférií. Tieto štruktúry sú postavené na princípe FPGA obvodov, čo znamená, že periférie môžu komunikovať medzi sebou bez potreby obsluhy zo strany procesora. V praxi to znamená, že napr. dáta prijaté z AD prevodníka môžu byť odoslané na sériovú linku, pričom procesor zostáva v stave hybernácie. Výhodou tejto programovateľnej zbernice je aj možnosť prideliť akýkoľvek vstupno/výstupný pin k akejkoľvek dostupnej periférii.
Okrem štandardných pefiférií je PSoC4 unikátny aj univerzálnymi digitálnymi blokmi. Pomovou týchto základných stavebných blokov je možné zostaviť napr. hardvérovú násobičku, multiplexor, dekóder, sčítačku, posuvný register, FIR filter... A to všetko bez potreby obsluhy zo strany procesora! 

V porovnaní s procesormi AVR ma PSoC prekvapil aj konfigurovateľnosťou vstupno-výstupných (v/v) pinov. Tá je opäť podobná architektúre známej z FPGA obvodov. Každý v/v pin dovoľuje nezávisle od ostatných pinov sedem rôznych konfigurácií:
1. Vysoká vstupná impedancia / nezapojený / High Z
2. Resistive Pull-up
3. Resistive Pull-down
4. Otvorený kolektor
5. Otvorený emitor
6. Silná log. „1“ a log. „0“ / Strong drive
7. Slabá log. „1“ a log. „0“ / Resistive Pull-up & Resistive Pull-down
 
Cypress myslel tradične aj na ochranu vášho kódu a ponúka celkom štyri módy ochrany. Popri klasických zámkoch proti zápisu, či čítaniu pamäte ponúka Cypress aj úplné zamknutie čipu bez možnosti návratu, či mazania zámkov pomocou špeciálnych programátorov.  Nemenej užitočná je aj možnosť selektívneho zamknutia jednotlivých riadkov Flash pamäte, ktorá chráni napr. bootloader pred neúmyselným prepísaním.
 
Vývojové prostredie: Unikátna architektúra PSoC čipov si žiada aj unikátne vývojové prostredie. Cypress preto vyvinul PSoC Creator - IDE šité na mieru PSoC zariadeniam. S týmto riešením prichádza aj prvé nemilé prekvapenie, podpora jediného operačného systému – Windows. My linuxoví fanúšikovia musíme siahnuť po Virtualboxe, VMware či dualboote s Windowsom. Prostredie PSoC Creator ponúka „všetko pod jednou strechou“, vývoj aplikácie, programovanie, debugovanie, datasheety, application notes, návody, vzorové projekty a mnoho ďalších vychytávok sú vzdialené na „jeden klik“. Poteší aj možnosť exportu projektu do IDE Eclipse, IAR, uVision.
 
Ukážkový Projekt: Na nasledujúcich obrázkoch vám ponúkam stručný náhľad do projektu programátora postaveného na vývojovej doske PSoC4 vo vývojovom prostredí PSoC Creator. Jedná sa o vysokonapäťový (HV, +12V) paralelný programátor určený pre mazanie zablokovaných AVR mikroprocesorov (známy aj pod menom AVR FUSE Doctor). Bližší opis projektu však prekračuje rozsah tohto článku a preto preskočme rovno do hlavného diagramu nášho projektu.


Obr. 4: Top Design
 
Na obrázku 4 je znázornený hlavný diagram spolu s prehliadačom projektu (vľavo) a katalógom dostupných komponentov (vpravo). Komponenty je možné do projektu vložiť jednoduchým „drag&drop“. Konfigurácia komponentov je dostupná dvojklikom na komponent v hlavnom diagrame, ale aj v zdrojových kódoch dostupných v prehliadači (vľavo). Po kliknutí napr. na PWM blok je možné v tomto bloku jednoducho graficky meniť striedu PWM signálu, zapnúť hardvérové prerušenia, trigerring a mnoho ďalších možností. Po kliknutí na v/v piny je možné konfigurovať funkciu, pull-up /pull-down rezistory, ako aj výstupný prúd daného pinu. Komponenty znázornené modrou farbou v pravom dolnom rohu sú takzvané „off-chip“, majú iba informatívny charakter, a niesú zahrnuté do kompilácie projektu.


Obr. 5: Editor zdrojových kódov
 
Editor zdrojových kódov na obr. 5 štandardne podporuje automatické dopĺňanie, predikciu príkazov a štýl práce sa nelíši od IDE Eclipse či AVR Studio. Prekvapením pre mňa bolo úzke previazanie zdrojového kódu s hlavným diagramom popísaným vyššie: Ak napr. blok sériovej komunikácie v hlavnom diagrame pomenujeme UARTxyz123,  v zdrojových kódoch musíme použiť toto symbolické meno. Toto symbolické meno používame aj pri priradzovaní vstupov a výstupov k fyzickým pinom čipu (obr.6).


Obr. 6: Priradzovanie v/v pinov

 
Zhrnutie: PSoC4 Pioneer kit je skvelou možnosťou ako si rozšíriť obzory v oblasti mikroprocesorov, naučiť sa pracovať s ARM procesormi a odľahčiť pracné konfigurovanie čipu pomocou zdrojových kódov. Vývojová doska ponúka „výkon za rozumnú cenu“ a slúži zároveň aj ako programátor/debugger pre celú radu PSoC čipov použitých vo vašich aplikáciách. Na atraktívnosti pridáva aj vstavané dotykové rozhranie.
 
Ďalšie informácie, ukážkové videá, projekty je možné získať na nasledujúcich adresách:
–  http://www.cypress.com/go/CY8CKIT-042
–  http://www.cypress.com/psoc4/
–  http://www.element14.com/community/docs/DOC-53992?ICID=knode-cypresspioneerkit-space
– 100 Projects in 100 Days http://www.cypress.com/?rID=83212
–  http://en.wikipedia.org/wiki/PSoC
–  Getting Started With PSoC® 4 http://www.cypress.com/?docID=48213