Microcontrollori & FPGA:

Microcontrollori PIC, microcontrollori Atmel, microcontrollori ARM, Freescale, Texas Instruments, STM, Renesas, NXP etc. A 8bit, a 16bit ed a 32bit! In questa categoria troverete progetti sui microcontrollori, firmware per programmare microcontrollori e tutorial. Ci sono anche articoli su Arduino e DSC, i microcontrollori con a bordo funzioni DSP e molto altro!

Expansion Bus Multiplexer Module TMS470

L’ EBM in un modulo definito standalone che rende disponibile al microcontrollore, su dei pin dedicati, una serie di I/O general purpose e un expansion bus per tutta la famiglia di questo fortunato microcontrollore. Il modulo supporta, poi, il multiplexing. Questo modulo permette, quando i canali di I/O non sono utilizzati, di interfacciare, attraverso il microcontrollore, memorie con taglio a 8 e 16 bit. Caratteristiche principali L’EBM, come abbiamo scritto, permette di fare il multiplexing  dei segnali di I/O verso una periferica ed è in grado di interfacciare memorie con taglio a 8 e 16 bit. Permette, inoltre, di indirizzare periferiche fino a 30 bit di indirizzo con 8 …

Eccezioni su MPC555

Quali sono le informazioni che bisogna conoscere per gestire correttamente una ISR in un MPC555? Questo articolo fornirà elementi utili per gestire un'eccezione su MPC555. Il componente siglato come MPC555 appartiene alla famiglia Powerpc™ e contiene al suo interno timers e altre periferiche che, se opportunamente programmate, possono generare interrupts. L’architettura è definita in tre livelli che corrispondono a tre ambienti di programmazione. Questa stratificazione dell’architettura fornisce una maggiore flessibilità al sistema, consentendo un maggior grado di compatibilità software tra un’ampia gamma di implementazioni. I tre livelli sono definiti in questo modo: ➤ User Instruction Set Architecture (UISA): UISA definisce il livello  di architettura a cui il software user-level deve essere conforme. UISA definisce così il set …

CPU Design: l’arte di dare ordini

L’ingegnere sa essere una creatura paradossale. Ama le cose complicate, ma non complicarsi la vita. Più il progetto è complicato e più probabilmente lo troverà interessante, ma la soluzione che fornirà sarà quella che può ottenere con meno complicazioni. Progettare un set di istruzioni, in fin dei conti, porta ad un paradosso simile. Il progetto è complicato, ma è opportuno portarlo a termine nel modo più semplice possibile, altrimenti il progetto dell’hardware che seguirà sarà infernale. Ma del resto, un set di istruzioni poco complicato potrebbe rendere infernale la vita del programmatore (per quanto pochi progettisti hardware abbiano a …

Il protocollo IrDA con MCP2150

La comunicazione UART è molto utilizzata in tutte le applicazioni basate su microcontrollori. Tra gli svantaggi di tale soluzione ci sono sicuramente le interferenze elettromagnetiche e la presenza di cavi di interconnessione. Ecco come superare questi limiti mediante una connessione di tipo wireless IrDA, mantenendo la stessa semplicità di gestione. La tendenza attuale nella trasmissione dati tra dispositivi elettronici è ormai diventata quella di eliminare i cavi di collegamento, sostituendoli con protocolli di tipo wireless. Negli ultimi anni si è assistito ad una proliferazione di standard wireless: dallo ZigBee al Wi-Fi. Spesso la difficoltà che si incontra è nell'implementazione di questi protocolli. Un altro metodo di comunicazione senza fili, che ha avuto molto successo negli anni passati, ma che continua ad essere utilizzato per le trasmissioni …

Debug in-circuit di FPGA

La crescente capacità logica dei dispostivi programmabili consente oggi di realizzare complessi System-On-Chip che includono le principali funzionalità di sistema in un unico dispositivo. Tuttavia, unitamente alla complessità del sistema, crescono le problematiche legate alla fase di verifica del progetto che tendono ad incidere negativamente sul time-to-market del prodotto. Identify è un software per il debug in circuit di FPGA sviluppato tempo fa da Synplicity, leader nell’ambito dei tool EDA per logiche programmabili ed ASIC. Introduzione La figura 1a mostra il flusso di processo che viene tradizionalmente seguito nel progetto di sistemi complessi mediante logiche  programmabili. Il codice sorgente viene verificato funzionalmente creando opportuni test-bench che cercano …

CPU Design: come farsi obbedire da un processore

Si sente dire spesso che un processore è più stupido di un lombrico. Stando così le cose, uno sarebbe portato a pensare che, in fin dei conti, farsi obbedire da un processore non possa essere chissà quale problema. In realtà sì, ma anche no. Insomma: dipende. Dipende da quello che vogliamo che il processore faccia e, soprattutto, da come vogliamo che lo faccia. Più cose vogliamo fargli fare e più il set di istruzioni sarà complicato, ma fargli fare più cose e in tanti modi diversi ingarbuglia molto di più la situazione. Come scopriremo in quest’articolo, il primo passo …

Bootloader DES per AVR

L’articolo affronta il problema dell’implementazione di applicazioni cifrate secondo l’algoritmo DES su piattaforme AVR. Il DES è un algoritmo di crittazione adottato per la prima volta dal governo americano nel 1977: si tratta di un sistema di cifratura che trasforma blocchi di dati di 64 bits mediante una serie di sostituzioni e di scambi in cui intervengono una o più chiavi di 56 bits. Nonostante l’età esso è ancora ampiamente utilizzato in tutte quelle applicazioni che non richiedono margini di sicurezza troppo elevati, dal momento che hardware specializzato potrebbe violare il sistema in tempi dell’ordine di giorni o settimane (anche se un’evoluzione del DES originario, il 3DES, è virtualmente inattaccabile). Nel mondo dell’elettronica consumer la cifratura di dati e files è pratica diffusa soprattutto per la protezione di firmware dedicato …

Una piattaforma multi-sensore con interfaccia Arduino

SENSORSHLD1-EVK-101 è una piattaforma shield della ROHM Semiconductor che integra vari sensori (tra cui temperatura, accelerometro, di prossimità) su una singola scheda. La shield utilizza pin di interfaccia standard Arduino, rendendo possibile la connessione a qualsiasi kit di valutazione. Introduzione Sensor Shield (SENSORSHLD1-EVK-101) offre un'alternativa a basso costo che include vari sensori e i pin di interfaccia standard Arduino per il collegamento a qualsiasi kit di sviluppo. Ciò consente la verifica immediata del funzionamento del sensore e facilita la progettazione di dispositivi di sensing, alleggerendo significativamente il carico di sviluppo, promuovendo l'espansione del mercato dei sensori e nello stesso tempo offre …

Un alimentatore per FPGA

I requisiti di un sistema di alimentazione per FPGA esaminati dal punto di vista del progettista di sistema in termini di linee di tensione di alimentazione e di livelli di corrente, sequenza di applicazione delle tensioni, e caratteristiche di start-up. La Xilinx Virtex™-5 e l’Altera Stratix® III sono famiglie di FPGA avanzate basate su un core da 65-nm che riunisce varie piattaforme ed è disponibile in varie tipologie di velocità, fattori che consentono di ottenere un elevato livello di prestazioni e di flessibilità. In questo articolo si discute dei requisiti di un sistema di alimentazione per FPGA esaminati dal punto di vista del progettista di sistema in termini di linee di tensione di alimentazione e di livelli di corrente, sequenza di applicazione delle tensioni, e caratteristiche di start-up. Di seguito …

CPU Design: introduzione

Molti di voi probabilmente si saranno chiesti come funziona un microprocessore. Alcuni probabilmente si saranno anche dati una risposta, frugando su internet, o magari su qualche libro. Ma quanti di voi si sono detti “cavolo, mi piacerebbe proprio progettarne uno e fare concorrenza alla Intel!” Bene, questo e i successivi articoli sono proprio per quelli di voi affetti da manie di grandezza e che pensano di poter fare meglio della Intel. Vi guideremo passo passo nella progettazione di un moderno processore e, se siete abili con il VHDL, potrete anche implementarvelo su scheda. Iniziamo con questo articolo presentando l’architettura …

Riduzione del rumore in applicazioni PWM

Le applicazioni di controllo motore, di conversione e trasformazione dell’energia, di audio e video encoding e decoding, sfruttano oggi sempre più le periferiche di pulse width modulation presenti nei microcontrollori. Esistono tecniche e trucchi hardware e software volti alla riduzione del rumore generato da queste periferiche: eccoli svelati in questo articolo. Le moderne tecniche di controllo motore, nonché le specifiche e raffinate analisi di segnale per l’ottimizzazione di conversione dell’energia, costituiscono oggi uno dei più interessanti ed attuali punti di interesse nelle applicazioni elettroniche. I progettisti, per raggiungere livelli di efficienza e potenza sempre più elevati, fanno affidamento alle periferiche evolute dei microcontrollori, in particolare della periferica PWM. Ecco nel …

Filtri numerici con ST10

I microcontrollori della serie ST10  sono dotati di un coprocessore a 16 bit ottimizzato per le operazioni di elaborazione numerica e filtraggio dei segnali. L’elaborazione numerica dei segnali trova oggi ampio utilizzo in un vasto insieme di applicazioni, che vanno dall’acquisizione dati, al progetto di regolatori industriali, al trattamento di suoni e immagini. Di particolare importanza sono quelle applicazioni che richiedono l’esecuzione in tempo reale degli algoritmi di calcolo (applicazioni real-time), come quelle del settore automotive (centraline di controllo iniezione, ABS, sospensioni…). E’ comprensibile dunque lo sviluppo di algoritmi sempre più veloci (Fast Fourier Transform, convoluzioni, deconvoluzioni) in parallelo alla realizzazione hardware di unità di calcolo sempre più specializzate e performanti.  I …

Applicazioni USB con MB90330A Fujitsu

La MB2031-01 è una scheda di valutazione multifunzionale che, in parallelo con la scheda-figlia MB2031-20, permette il testing e lo sviluppo di applicazioni basate sui microcontrollori Fujitsu della serie MB90330A, a 16 bits e dotati di memoria Flash. Rivolgendosi a segmenti di mercato come quelli del settore automobilistico (automotive) e di controllo industriale, dispongono di una capacità di elaborazione aumentata sino a cinque volte, grazie anche ad un incremento sostanziale della bandwidth del bus interno. Il ricorso alla nuova tecnologia di processo CMOS a 0,18μm permette di raggiungere frequenze di clock fino a 56 Mhz, sfiorando le prestazioni dei processori a 32 bit. Il minor voltaggio interno della CPU, ridotto a 1.8 V e …

Pilotare motori Brushless con i microcontrollori RENESAS

Lo sviluppo di periferiche sempre più specifiche e complete a bordo dei microcontrollori  ha permesso l’integrazione sempre più spinta dei circuiti di controllo e la conseguente riduzione di spazio e potenza dissipata. Nell’articolo si illustrerà un caso tangibile di questa integrazione: il pilotaggio di un motore con la tecnica della modulazione della larghezza dell’impulso (pwm). Il micro H8/3687 di Renesas è dotato di un PWM a 14-bit che sarà utilizzato per generare la forma d’onda necessaria a far ruotare un tipico motore brushless. La figura 1 mostra la configurazione circuitale che sarà impiegata per il pilotaggio. E’ utilizzato l’interrupt esterno (IRQ1) per avviare il …

Il protocollo X-10 con PIC

Il continuo sviluppo di nuove tecnologie ha portato innovazioni in svariati settori, tra cui quello della domotica. La domotica è un particolare aspetto di questa evoluzione tecnologica: cambia l’interazione tra l’uomo e la casa, apportando migliorie in quella che è la vita quotidiana, sia essa racchiusa tra le mura domestiche o in ambienti lavorativi. La domotica spazia sia nel settore dell’automazione di grandi dimensioni come condomini e aziende (Building Automation) e sia dell’automazione di una singola casa (Home Automation). La Building Automation si pone come obiettivo quello di integrare tutti gli impianti (di sicurezza, di climatizzazione, di distribuzione) sotto un unico strumento di controllo, sfruttando tecnologie …

Intelligent I/O nei micro Renesas

Intelligent i/o è una periferica integrata nei micro renesas della famiglia mc32/80 che rende disponibili moduli per eseguire misure di tempo, generare segnali di controllo temporizzati, gestire protocolli di comunicazione standard. Intelligent I/O è una periferica integrata nei microcontrollori della serie M32C/80 che rende disponibili funzionalità per misure di tempo, generazione di forme d’onda, gestione di interfacce di comunicazione standard. La periferica comprende nella configurazione più generale fino a 4 gruppi, ognuno dei quali include le seguenti due unità: Time Measurement Unit, Communication Unit. In funzione del tipo di microcontrollore selezionato e della configurazione hardware della periferica presente, tutte o soltanto alcuni dei gruppi e delle funzionalità supportate da questi sono implementati. La tabella …

Il modulo quadrature encoder nei dsPIC

In applicazioni basate su parti  rotanti è spesso richiesta la conoscenza della velocità angolare e della direzione di rotazione. Tali informazioni sono prelevate da un dispositivo detto encoder incrementale, che dotato  di diodi laser e fotorilevatori, fornisce in uscita particolari segnali. Gli encoder incrementali, detti anche ottici o quadrature encoder, sono molto utilizzati in applicazioni in cui è richiesta la misura della posizione angolare e/o della velocità di un elemento rotante. Essi forniscono in uscita un treno continuo di onde quadre, durante tutto il tempo di rotazione. A differenza degli encoder assoluti, in cui la posizione del rotore è nota a priori, negli encoder incrementali (figura 1) i segnali  di uscita …

Sistemi di alimentazione per FPGA

I sistemi  basati  su fpga beneficiano delle soluzioni complete cc/cc in un formato da circuito integrato.I miglioramenti nelle geometrie dei processi delle FPGA e configurazioni di progetto più flessibili, oltre all’evoluzione dei sistemi che li incorporano, hanno permesso ai produttori di FPGA di penetrare mercati un tempo monopolizzati dai fornitori di microprocessori e ASIC. Sebbene la natura versatile e configurabile di questi dispositivi sia considerata interessante dai progettisti dei sistemi, la complessità delle regole di progettazione che governano il  funzionamento interno di questi componenti e i protocolli delle loro interfacce esterne richiedono una preparazione profonda, la valutazione delle schede di riferimento e varie simulazioni e verifiche del progetto. Di conseguenza, …

VHDL for beginners: Le Macchine a Stati Finiti

Nelle precedenti lezioni abbiamo visto come il VHDL mette a disposizione alcuni costrutti per realizzare i circuiti sequenziali. In generale un circuito sequenziale, se ben definito, può essere modellato tramite le macchine a stati finiti. Le FSM sono un concetto molto fondamentale e forte nello sviluppo dei componenti e in questo articolo cercheremo di fornire tutti gli strumenti base per utilizzare tale modellazione con il codice VHDL e quindi come progettare ed implementare una FSM su FPGA. Al termine della parte teorica, vi proporrò un esempio di FSM abbastanza semplice e intuitiva, di cui proveremo a sviluppare la parte …

L’ambiente di sviluppo per le FPGA ACTEL LIBERO IDE

Actel ha rilasciato tempo fa una versione di libero integrated design environment (ide), che dispone del pieno supporto per le famiglie di FPGA low-power igloo, mixed-signal fusion e le low-cost proasic3/e. l’ide, migliorato in molti  suoi aspetti con la versione  8, si integra perfettamente con prodotti di terze parti  come synplicity, mentor graphics e synapticad. Ecco come muovere i primi passi con l’ambiente di sviluppo. Il flusso di progettazione con Actel Libero IDE Il software Libero IDE di Actel si integra perfettamente con tool HDL e schematici di terze parti per progettare, simulare e programmare con dispositivi FPGA della famiglia Actel. In quest’articolo si illustrerà e descriverà  il flusso di progettazione …

I microcontrollori 8051 SILABS

I microcontrollori silabs si basano  sul collaudato core 8051. sono disponibili in cento versioni diverse e offrono un’ampia scelta di periferiche analogiche e di comunicazione. La famiglia di microcontrollori Silabs nasce alla fine degli anni 90 con il marchio Cygnal. Capostipite è la serie C8051F0xx seguita poi da numerosi altri modelli, ad oggi sono quasi un centinaio e offrono un’ampia scelta di periferiche, molte configurazioni di memoria e diversi package anche di dimensioni ridotte. Il microcontrollore è basato sul core 8051 che, rappresenta un ritorno al futuro in quanto il core, pur mantenendo l’architettura standard del vecchio 8051, in alcuni modelli può raggiungere velocità di picco di …

Routines matematiche per microprocessori HOLTEK

I microcontrollori general-purpose spesso non dispongono di un coprocessore matematico integrato per svolgere i più comuni algoritmi di calcolo in virgola fissa o mobile come avviene invece in dispositivi specializzati come i Digital Signal Processors o nelle Cpu dei moderni Pc. Per questo motivo nasce l’esigenza di creare routines adatte alla particolare architettura hardware che si sta utilizzando; tali algoritmi devono essere ottimizzati al fine di rendere minimo il tempo di calcolo e dunque vanno realizzati in Assembler, ricorrendo ad istruzioni specifiche dei micro destinati alla loro esecuzione. Oltre ad essere interessanti di per sé, questi argomenti sono di importanza fondamentale poiché toccano alcuni aspetti fondamentali di un sistema di elaborazione, inteso nel senso più specifico come macchina per …

Gestione della Preemption nei sistemi a microcontrollore

La preemption è la possibilità da parte di un sistema di interrompere una attività in corso per eseguirne un’altra  in  quel  momento  giudicata “più importante”. Esempi di preemption sono l’interruzione dell’esecuzione del codice di un microcontrollore  a causa dell’arrivo di un interrupt, il termine di un quanto di tempo in un sistema operativo time-sharing, oppure la preemption dovuta all’attivazione di un task ad alta priorità in un sistema operativo real-time. Questo articolo descrive le principali caratteristiche delle tecniche di scheduling preemptive e non preemptive utilizzabili nei dispositivi a microcontrollore con sistemi operativi di classe OSEK. Introduzione I sistemi di elaborazione embedded possono …

Ethernet facile con le VIRTEX-5

Con la serie Virtex-5, Xilinx continua a percorrere la strada dei multi-platform FPGA integrando core hard IP in dispositivi logici riprogrammabili di nuova generazione. I componenti delle serie LXT ed SXT, in particolare, includono macro tri-mode ethernet mac (media access control) 10/100/1000 MBPS IEEE 802.3 compliant. Il presente articolo ne introduce le caratteristiche principali unitamente ad una panoramica delle tipiche applicazioni supportate. Nel mercato moderno, Ethernet è, senza ombra di dubbio, lo standard di connessione cablata più diffuso al mondo; allo stesso modo, nel settore delle applicazioni embedded i dispositivi logici programmabili rappresentano ormai una consolidata realtà in rapida diffusione. Non era difficile prevedere, quindi, che le …

Moltiplicare le linee I/O dei micro con i Port Expander

Quando si affronta la progettazione di un sistema embedded, uno dei limiti è quello di non riuscire a prevedere in maniera precisa il numero di pin del micro che saranno necessari. Ecco come risolvere questo problema ricorrendo all’uso dei port expander. Nella progettazione di sistemi embedded un vincolo importante da considerare è il numero di pin disponibili del sistema a microcontrollore scelto. Spesso il fallimento di un progetto può dipendere proprio dalla scelta errata del modello di micro, dotato di un numero di pin inferiore rispetto a quello necessario a pilotare tutte le periferiche. D’altro canto anche una pianificazione attenta e l’adozione di …