Cypress PSoC - CY8CKIT-49-42xx

Sono venuto in possesso (comprandolo) di questo simpatico kit per sviluppare sistemi di controllo a microprocessore e ne sono rimasto rapito.

CY8CKIT-49-4xxx

Ha un costo minimo, 4 Euro, e mette a disposizione un versatile sistema per sviluppare, con facilità applicazioni embedded, anche complesse.

La parte principale, quella di destra ha un SoC (System on Chip) al quale Cypress ha dato il nome commerciale PSoC (Programmable SoC).

In chip PSoC è molto di più di un semplice processore. Racchiude tutte le risorse per realizzare un sistema completo e funzionante per le applicazioni a cui è destinato. Si tratta di memoria (SRAM, Flash), di clock, sistemi di I/O (Input/Output) analogico e digitale, di interfacce di comunicazione (USB, USART, I2C, SPI) e altre cosette simili.

I SoC non sono una grossa novità, si trovano in tutti gli smart phone, nei dispositivi piccoli, alimentati a batterie, ma solo recentemente cominciano ad essere disponibili a prezzi abbordabili su piccole quantità. Sarà grazie a sistemi come Raspberry Pi e similari, fatto sta che ci sono. Il Raspberry Pi Zero, ha la potenzialità di un PC ma è venduto a 5 Euro.

Cypress ha diversi Kit di valutazione per vari modelli di PSoC, anche più versatili, ma i costi salgono a qualche decina di Euro.

Il Kit che presento ha un PSoC (parte dx in figura) con processore ARM Cortex-M0 a 32 bit e 48 MHz di clock, 32KB di Flash, 4 KB di SRAM, 2 porte di comunicazione seriali, convertitore ADC e DAC, un paio di operazionali (analocici), 36 porte configurabili come ingresso o uscita sia digitale che analogico e può essere alimentato con tensioni da 1,7 V a 5,5. Le dimensioni sono 80 x 23 mm e la scheda si può montare comodamente su una breadboard. Per i dettali rimando al link del costruttore.

La parte di destra è un chip che ha la funzione di convertitore seriale USB e può essere collegata ad una normale porta USB che funge anche da alimentazione del kit.

Tramite la porta USB è possibile scaricare il programma nel PSoC, che funzionerà anche senza il convertitore, in effetti la parte di sinistra è progettata per essere separata dal SoC una volta programmato.
Ovviamente i programmi stanno in Flash per cui è possibile riprogrammare il tutto.

Una scheda autonoma a costi molto bassi con caratteristiche hardware di tutto rispetto, ma la parte più interessante non è questa.

Quanto veramente mi ha stupito è l'ambiente di sviluppo e la modalità di progettazione della applicazione. Una vera sciccheria. Nulla di particolare se si pensa ai numerosi framework per sviluppo presenti su PC, ma certamente interessante se si pensa al piccolo dispositivo.

L'ambiente di sviluppo è fornito gratuitamente da Cypress che, evidentemente ha il suo business nell'hardware: si chiama PSoC Creator e va installato su un PC.

Il codice di programmazione è ridotto al minimo e si è agevolati dall'utilizzo di blocchi funzionali ben organizzati, facili da usare con l'interfaccia grafica.
E' qualcosa che fa pensare alla programmazione ad oggetti, dove l'oggetto è descritto con metodi (funzioni) e proprietà (variabili), solo che in questo caso non si parla di linguaggi come 'C', Python o altro. In questo caso l'oggetto è un simbolo grafico che si inserisce con il trascinamento del mouse, sul quale si clicca per configurarlo.
L'oggetto è ben decritto nella documentazione, che ho trovato buona, ed è direttamente accessibile, in formato pdf, dal PSoC Creator.

La costruzione del progetto (build) mette a disposizione delleAPI (Application Programming Interface). Il codice da scrivere, in 'C' si riduce, nella maggior parte, alla chiamata delle API per inizializzare i blocchi e alle funzioni che ne controllano il funzionamento.

Ad esempio uno di questi blocchi consente il controllo di display LCD, anche quelli classici a 2 righe 20 caratteri.

Le righe da aggiungere al programma principale per scrivere la classica frase "Salve mondo" sono 2:

 

LCD_Start();    // Inizializza l'LCD

LCD_PrintString("Salve mondo");   // Scrive la stringa

Il resto del codice è generato dall'ambiente di sviluppo.

La programmazione, in forma grafica, si riduce all'uso di un solo blocco:

Programmazione grafica

E alla definizione dei pin da usare (7) per l'I/O. Anche in questo caso con un paio di click.

Assegnazione pin

Basta cablare le 7 linee del display, scaricare sul Kit il software e vedere il risultato.

Il risultato finale

Nella foto il cablaggio abbonda perchè il progetto implementa anche altre funzioni.

L'unica delusione, non si può avere tutto, è la macanza, in questo kit, di strumenti per il debug. Il problema si risolve con un dispositivo esterno che costa circa 80 Euro.

Dopo le esperienze su Z80, PIC e affini con assembler o linguaggi più evoluti, questa mi sembra un ottimo passo avanti.

 

Categoria: 

Tags: 

Mi piace: 

0
No votes yet