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!

Sistemi di sviluppo per LPC2000

Esistono diverse proposte commerciali che permettono di sviluppare codice in ambiente ARM, in questo articolo è presentato l’ambiente MDK-ARM che ha il pregio di fornire una serie di utility attraverso un unico workbench. La proposta MDK-ARM (Keil Microcontroller development kit) è un ambiente completo che comprende, oltre ai tool di debug (uVision), la cross factory (ARM Real View), un ker nel real-time, l’ambiente di simulazione e l’interfaccia verso lo JTAG. Inoltre, esiste la possibilità di utilizzare componenti aggiuntivi per sopperire ad ogni specifica esigenza, quali uno stack TCP/IP, un file system embedded o drivers CAN o USB. Non solo, questo ambiente di lavoro permette di aggiungere parti sviluppate da terzi in maniera del tutto …

Le periferiche dei PIC24

Un viaggio all’interno del PIC 24 con l’analisi delle periferiche ed in particolare dei moduli RTCC (RealTime Clock & Calendar), PMP (Parallel Master Port) e CRC (Cyclic Redundancy Check). I microcontrollori a 16 bit PIC24 di Microchip possiedono un’architettura innovativa ed un ricco insieme di periferiche. Nell’articolo, dopo una breve introduzione sull’architettura, vedremo la dotazione di periferiche di questi dispositivi, con particolare riguardo ad alcune delle più interessanti: il modulo RTCC - un orologio e calendario real time - l’interfaccia parallela master PMP, il generatore  CRC. Caratteristiche dei PIC24 Il core dei PIC 24 è basato su una CPU a 16 bit con un’architettura Harvard modificata: …

Pilotare ESP32 con i Comandi AT

L'ESP32 è il nuovo modulino prodotto da Espressif ed erede dell'ESP8266. Economico, studiato per l'IOT e dunque ricco di connettività (WiFi e BLE ), sta conquistando il mondo hobbistico e professionale. Purtroppo doversi studiare una nuova architettura non sempre è fattibile a causa di tempi ed effort.  A tal proposito, Espressif viene incontro alle esigenze dei vari sviluppatori offrendo una soluzione "black box" già compilata.   Introduzione La maggior parte degli articoli disponibili sul web propongono soluzioni in cui si utilizza direttamente la CPU dual core Xtensa disponibile a bordo dell'ESP32. Si tratta appunto di un uControllore dual core molto prestante, …

CPU Design: Progettare il guinzaglio

Ultimo passo, croce e fatica è l’implementazione della circuiteria che genera i segnali di controllo. È vero che si tratta di poco più che ricavare dei circuiti a partire da delle tabelle della verità, ma si tratta di una procedura importante perché ci permette anche di capire come estendere il processore, cioè come aggiungere nuove funzionalità a ciò che già abbiamo. Detto tra parentesi, “ultimo” non è del tutto esatto. Anzi, è una spudorata menzogna. Con quello che vi diremo oggi, potrete andare in giro a vantarvi di aver progettato un processore funzionante, ma sappiate: il vostro processore fa …

Cerchi lavoro (o clienti) nel settore dell’elettronica o dell’IoT?

Che si tratti della ricerca di nuovi clienti o di un impiego stabile nel settore dell'elettronica (o dell'IoT), per raggiungere il proprio obiettivo è utile avere un percorso sicuro da seguire, e poter attingere dall'esperienza di chi l'ha tracciato.  L'esperienza professionale di Emanuele Bonanni, fondatore di Elettronica Open Source ed EOS-Academy, è a disposizione di chi cerca un nuovo approccio per il conseguimento dei propri obiettivi professionali in questo settore costantemente in crescita. Scegliere di lavorare nell'elettronica significa scegliere di avere un ruolo attivo nella realizzazione delle innovazioni che diventeranno la quotidianità del futuro, ma significa anche inserirsi in …

La scheda di sviluppo Xplained Pro per ATmega4809

La scheda di sviluppo di Microchip denominata Xplained Pro evaluation kit per ATmega4809 è una piattaforma hardware progettata per valutare il microcontrollore ATmega4809. Si tratta di una piattaforma a basso costo, completa e facile da usare,  per prototipare i progetti basati sul microcontrollore Atmel. Introduzione Supportata dalla piattaforma integrata di sviluppo Atmel Studio, il kit fornisce facile accesso alle caratteristiche del microcontrollore ATmega4809 e spiega come integrare il dispositivo in un progetto personalizzato. Il kit di valutazione include un Debugger integrato sulla scheda e non sono necessari strumenti esterni per la programmazione o per il debug di ATmega4809. I …

L’Atmega 128

L’architettura AVR è del tipo RISC e dispone di un ricco ed efficiente set di istruzioni con 32 registri general purpose: questi sono connessi direttamente all’ALU in modo da renderne accessibili due contemporaneamente in un singolo ciclo di clock e poter in tal modo raggiungere velocità di esecuzione fino a dieci volte superiori rispetto ai tradizionali microcontrollori CISC.  Una visione d’insieme delle caratteristiche hardware del modello Atmega128 rivela 128K bytes di memoria flash programmabile in-circuit, con la possibilità di lettura e scrittura contemporanee; 4K bytes di SRAM; 53 linee di I/O, 32 registri di uso generale; un Real Time Counter (RTC); quattro Timer-Contatori che possono essere utilizzati in modalità Capture/Compare e …

CPU Design: La potenza è niente senza controllo

I set di istruzioni vengono odiati, temuti o riveriti perché fanno pensare alla programmazione assembly, ossia un tipo di programmazione altamente stressante, soprattutto se sai che quello che stai facendo lo potresti fare più facilmente con un linguaggio ad alto livello. Le ALU vengono odiate, temute o riverite perché prese così risultano essere un concetto misterioso, e tutto quello che non viene capito tende a spaventare. Ma in realtà, il brutto del progetto di un processore non è né nella definizione del set di istruzioni, né nella realizzazione della ALU: sta nel progetto del circuito che li utilizzerà. Iniziamo …

Baud detection con dsPIC30F

La selezione del baud rate dell’UART di un microcontrollore è generalmente eseguita nella fase di inizializzazione, ma nel caso in cui il baud rate dei dati in arrivo non sia noto a priori, oppure la sorgente del clock del micro non sia sufficientemente precisa (ad esempio se generata tramite un oscillatore RC), sarà necessario utilizzare un metodo di Automatic Baud detection, brevemente detto Auto Baud. I  microcontrollori delle famiglie dsPIC30F e 33F sono dotati di UART con supporto per l’Auto Baud: quando in un dsPIC si abilita la procedura di Auto Baud, il segnale presente  sul pin RX dell’UART viene connesso internamente ad …

Una compatta scheda di sviluppo display per microcontrollori TIVA

MikroElektronika mikromedia Plus è una compatta scheda di sviluppo display per microcontrollori TIVA. Le schede di sviluppo MikroElektronika mikromedia Plus possono essere usate per creare delle dashboard di controllo per macchine industriali, strumenti medici, applicazioni smart home, ed altro ancora. Oltre al microcontrollore, la scheda incorpora un touch screen e diversi moduli integrati per la realizzazione dei più svariati progetti. Mikromedia+ è compatto e sottile, e si adatta perfettamente al palmo della mano rendendolo conveniente per dispositivi mobile e multimediali. Introduzione La scheda si presenta leggermente più grande (119,54 x 78 mm) delle dimensioni del touch screen TFT supportato, …

Il Can Controller di Fujitsu

Il microcontrollore di casa Fujitsu MB90340E, contiene anche un’interfaccia CAN bus. Vediamo in questo articolo quali sono le sue caratteristiche. Il Controller Area Network (CAN) è un protocollo utilizzato per la maggiore nelle applicazioni di tipo automotive. L’implementazione dello standard da parte di Fujitsu risulta conforme alle specifiche 2.0 parte A e B. La figura 1 mostra il diagramma a blocchi di questo CAN Controller. Dalla figura possiamo notare la varietà dei registri che il componente propone al programmatore. I nodi che rispondono alle specifiche 2.0A e 2.0B comunicano tra loro solo se non utilizzano la modalità estesa, ovvero Extended Frame. Qui di seguito vediamo alcune caratteristiche di questo componente: ➤ Il  componente …

CPU Design: la ALU operaia

Uno dei concetti più misteriosi e intriganti per la giovane matricola di ingegneria è quello di ALU. Sai che è qualcosa che sta dentro la CPU, non sai bene che cos’è né che cosa faccia, ma già perché sta dentro la CPU deve essere qualcosa di incredibile. Hai saputo? Quello si è progettato una ALU! Caspita! Ma in realtà una ALU non è niente di fantascientifico. La ALU è la manodopera della CPU, è il blocco di circuiti che fa tutto il lavoro, ma niente di più. Progettare una ALU significa mettere insieme un po’ di circuiteria in grado …

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 …