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!

Progettare con Quartus II di Altera

Quartus II è un software per la progettazione di CPLD, FPGA e structured ASIC della famiglia Altera. Nell’articolo la descrizione dell’applicativo e alcuni consigli per conoscerlo meglio. La versione 7.0 di Altera Quartus II ha integrato l’analizzatore TimeQuest, il primo tool di analisi delle temporizzazioni mai realizzato da un fornitore di FPGA a offrire un supporto nativo completo per il formato standard Synopsys Design Constraints. La versione integra anche una serie di prestazioni di progettazione team-based che permettono di gestire in modo efficiente le attività di sviluppo congiunto su progetti ad alta densità. Questi potenziamenti soddisfano le specifiche imposte dai moderni progetti …

Programmazione e debug con Keil µVision3

µVision3 è un ambiente di sviluppo offerto da Keil Software. Rappresenta la piattaforma per lo sviluppo di firmware per un elevato numero di microcontrollori, tra cui ARM e 8051-based. µVision3, il famoso ambiente di sviluppo di Keil Software, integra un Project Manager, un editor di testi, un debug ed un Flash Programmer in un unico e potente prodotto. Tra i chip che possono essere programmati si ricordano Atmel, Analog Device, Cypress  Semiconductor, Dallas Semiconductor ed STMicroelectronics. Nell’articolo si esamineranno i passi fondamentali per realizzare le prime prove di scrittura  e debug del codice. La Figura 2 riporta una tipica schermata di Keil …

Display e accessori 4D Systems

4D Systems Pty Ltd è leader mondiale nella ricerca, nello sviluppo e nella produzione di soluzioni grafiche intelligenti, offrendo ai propri clienti moduli e processori grafici unici, innovativi ed economicamente convenienti che soddisfano una serie di applicazioni e industrie. TME è il distributore ufficiale di 4D Systems. Introduzione Fondata nel 1990, la vasta esperienza della 4D Systems permette di trasformare concetti e idee in prodotti hardware e software all'avanguardia, capaci di superare le richieste e le aspettative dei vari clienti.  4D Systems progetta, sviluppa e produce soluzioni grafiche intelligenti utilizzando l'ultima tecnologia OLED (diodo organico emettitore) e quella LCD …

Sintesi di applicazioni DSP con Synplify DSP

Synplify DSP è un tool che costituisce un punto di incontro tra gli applicativi usati dai progettisti DSP ed i motori di sintesi RTL. Ecco in dettaglio tutte le funzionalità di questo strumento di sintesi automatica. La crescente capacità logica dei dispositivi a semiconduttore – FPGA ed ASIC – ne ha determinato una rapida diffusione nell’ambito delle applicazioni di Digital Signal Processing. Grazie alla disponibilità di funzioni aritmetiche embedded ed alla naturale predisposizione per  la realizzazione di  architetture parallele, questi dispositivi consentono di raggiungere elevate capacità di calcolo (dell’ordine di centinaia di MIPS), impensabili con processori DSP classici ‘programmabili’  via software. Nel …

MCS8140 Network USB processor

La CPU MCS8140 è un processore a 32-bit RISC basato su un core ARM92EJ-S a 170 MHz e la sua prestazione può raggiungere i 1.1 MIPS per MHz. È un classico dispositivo network USB processor orientato alle reti, ma la sua caratteristica che lo rende veramente interessante, da un punto di vista progettuale, è certamente la capacità di fornire soluzioni di tipo IPSec integrate. Il dispositivo MCS8140 è un componente orientato alle applicazioni di rete. Il componente  ha diversi blocchi funzionali: CPU Subsystem, Ethernet Interface, USB Host, PCI Host, Memory Controller, TOE and Security Engine, and General Interface Blocks. Il componente può essere utilizzato per applicazioni …

PSoC Express

Programmare i chip della Cypress con l’ambiente di sviluppo PSoC Express è davvero semplice ed intuitivo. Non è richiesta nessuna conoscenza di programmazione assembly o C e neppure leggere pagine e pagine di datasheet per la scelta del giusto componente. Ecco come iniziare a muovere i “primi passi” con PSoC Express. Il PSoC è un sistema programmabile, prodotto da Cypress, dotato di un micro ad 8bit ed una serie di blocchi analogici e digitali completamente programmabili a livello funzionale. L’architettura interna di questo chip è stata ampiamente descritta nel numero 12 di Firmware. Si analizzerà, ora, uno degli ambienti di sviluppo messo a …

Architettura Harvard nei microcontrollori e DSP

L’architettura von Neumann prevede un unico bus per memoria dati e memoria programma per cui non è possibile leggere contemporaneamente un dato e una istruzione. Essa ha rappresentato la prima architettura  per elaboratore. Si tratta  di  un modello di computer basato su di una singola struttura di memorizzazione sia per i dati che per le istruzioni. Ecco come l’architettura Harvard risolve questo problema. DALL’ARCHITETTURA VON NEUMANN ALL’ARCHITETTURA HARVARD Lo schema di principio è riportato in figura 1. Con questo termine si rappresenta un computer che implementa una macchina di Turing ed il modello referenziale di architettura sequenziale, in contrasto con quella parallela. …

Un Controller Ethernet

Con l’incredibile evoluzione che negli ultimi anni ha avuto il mondo di internet, un numero sempre maggiore di applicazioni industriali, consumer o addirittura medicali hanno la necessità di avere una interfaccia verso la grande Rete Mondiale. Microchip ha realizzato tempo fa un Front End in grado di interfacciare in maniera semplice e robusta una qualsiasi applicazione ad una rete Ethernet o TCP-IP: il componente è l’ENC28J60. Introduzione L’ENC28J60 è un dispositivo dotato di 28 pin, in grado di interfacciare un qualsiasi microcontrollore o sistema dotato di una porta SPI ad una interfaccia IEEE 802.3 con un data rate di 10 Mbit/sec. Come appare in figura 1, …

AVR LCD Visualizer

Un utile tool offerto da Atmel facilita lo sviluppo ed il debug di applicazioni in cui è necessario comandare direttamente display LCD, integrandosi con l’ambiente di sviluppo AVR Studio. Il crescente utilizzo dei microcontrollori in moltissime applicazioni, anche consumer, rende sempre più frequente l’impiego di interfacce utente basate su display LCD. Nonostante in molti casi sia possibile impiegare display alfanumerici generici  dotati  di  controllore  integrato,  in  altri casi questa soluzione risulta troppo  costosa o non adeguata. In molte applicazioni infatti è preferibile utilizzare display progettati appositamente, contenenti pochi simboli e caratteri specifici, piuttosto che matrici generiche (di punti o di caratteri). …

Un web server con stack MicroNet TCP/IP

I microcontrollori  della famiglia HCS12 prodotti da Freescale (ora NXP) sono dei micro a 16 bit, versione potenziata dei 68HC11  di Motorola. In questo articolo vedremo a livello generale l’implementazione del web server su un componente di questa famiglia, il micro MC9S12NE64. Tale componente è stato scelto perché possiede un controller Ethernet integrato compatibile 802.3/802.3u da 10/100 Mbps Il microcontrollore è dotato inoltre di 64KB di FLASH EEPROM, 8KB di RAM, ed include diverse altre periferiche tra cui due SCI, una SPI, una IIC ed un convertitore A/D a 10  bit. LO STACK TCP/IP CMX-MICRONET Lo stack TCP/IP Lo …

Progettare con Actel Fusion

“One Chip is All You Need”, questa è l’espressione che Actel (ora Microsemi) usa per descrivere la sua FPGA Fusion. Questo chip integra all’interno non solo blocchi digitali, tipici di una FPGA, ma anche un flessibile set di periferiche analogiche. Nell’articolo si presentano le caratteristiche distintive e le tecniche di programmazione di Actel Fusion. Fusion PSC (Programmable System Chip) è la prima FPGA di Actel (ora Microsemi) di tipo mixed-signal, che integra periferiche analogiche configurabili  (tra cui ADC), blocchi  di memoria Flash di elevata capacità,  efficienti modalità di generazione del master clock ed una logica programmabile dalla elevate prestazioni: tutto questo in un …

Un compilatore Ada per AVR

Ada è un linguaggio di programmazione nato per volontà del DoD (il ministero della difesa degli Stati Uniti) per impieghi su sistemi embedded in applicazioni di tipo militare. In seguito è stato utilizzato in svariati campi quali avionica civile, nei sistemi di controllo di volo, nella robotica… Il linguaggio prende il nome dalla contessa Ada Lovelace, considerata la prima programmatrice della storia, e risponde, in modo stringente, ai requisiti di correttezza, sicurezza, manutenibilità e affidabilità. CENNI STORICI Perché il DoD impose l’uso di un linguaggio come  Ada?  Nel  1974  il  Dipartimento  della Difesa USA si accorse che i costi …

VHDL for beginners: Dati e tipi

Eccoci alla seconda lezione del corso base di VHDL. Nella precedente lezione, prettamente teorica, abbiamo affrontato una panoramica sul linguaggio introducendo i concetti base che ci sono dietro lo sviluppo di un nuovo componente, quali ENTITY e ARCHITECTURE. In questa lezione entreremo nel dettaglio dello sviluppo affrontando i concetti alla base dei tipi, delle variabili e dei segnali. Proverò a trasmettervi delle linee guida per gestirli nel modo corretto. Questa lezione non sarà solo teorica, ma inizieremo a sporcarci le mani con qualche esempio muovendo i primi passi con la suite di sviluppo Xilinx e valutando i primi errori …

Controllo di servomotori con PIC

I servomotori R/C (Radio Controlled), molto usati nella modellistica, hanno trovato un nuovo campo di utilizzo nella realizzazione di piccoli robot, come i robot esploratori.  In questo articolo esamineremo le caratteristiche dei servomotori e vedremo come poterli controllare tramite un microcontrollore. Per dimostrare come sia possibile controllarli tramite un micro avente potenza di calcolo e dotazioni hardware relativamente ridotte, verrà illustrata una applicazione d’esempio in cui un PIC16F876 viene utilizzato per pilotare due servi in configurazione X-Y. Con una applicazione Windows appositamente sviluppata vedremo inoltre come pilotare i due servi tramite PC utilizzando un joystick (al seguente link un approfondimento con …

Il PLL nelle Xilinx Virtex-5

Negli scorsi anni, con il crescere della densità e della complessità dei dispositivi FPGA si è avvertita l’esigenza di integrare periferiche adatte a gestire in maniera flessibile e precisa i segnali di clock all’interno ed all’esterno del dispositivo. I primi dispositivi di Xilinx integravano soltanto blocchi chiamati “Delay Locked Loop” (DLL), capaci di correggere i ritardi generati nella distribuzione del clock in diverse aree del dispositivo, o anche fuori da esso. I DLL sono capaci di generare ritardi variabili, e quindi se sono controllati da un segnale di retroazione, possono essere utilizzati per ottenere il deskew (allineamento) dei clock, …

Stack UDP/IP per Freescale HCS12

Per consentire ad un microcontrollore di connettersi ad Internet o di sfruttare tutti i vantaggi di una comunicazione su rete LAN, è necessario dotarlo di una pila TCP/IP o UDP/IP. L’implementazione di una pila TCP o UDP richiede tipicamente  un  sistema  operativo  (per  la gestione della memoria, della rete e delle informazioni  da  scambiare), oltre  ad  una  ingente quantità di memoria. D’altra parte i dispositivi a 8 o 16 bit non hanno risorse tali da consentire l’uso di un sistema operativo, per cui l’idea di utilizzare una implementazione dedicata permette, intervenendo sul codice, di ottimizzare la memoria in uso e …

La comunicazione I2C per il microcontrollore MAXQ2000

Il bus I2C (o IIC Inter Integrate Communication) è un bus di comunicazione seriale sincrono ideato dalla Philips che utilizza due sole linee di comunicazione, una linea di clock e una linea dati bidirezionale. In questo articolo vedremo come configurare e utilizzare la libreria maxqi2c per interfacciare periferiche con porta di comunicazione I2C ai microcontrollori della famiglia MAXQ. La libreria è formata da 2 file maxqi2c.h e maxqi2c.c, il software si può scaricare dal sito MAXIM Integrated ed è scritto interamente in linguaggio C.  Con questa libreria è possibile realizzare un driver I2C con funzione master per bus funzionanti in …

Sviluppare con i dsPIC

I DSC (Digital Signal Controller) di Microchip sono dei controller single-chip che integrano le funzionalità di controllo di una MCU (MicroController Unit) con la potenza di elaborazione di un DSP (Digital Signal Processor). Microchip fornisce una suite completa di strumenti di sviluppo specifici per i dsPIC, sia software che hardware, altamente integrati in MPLAB IDE. L’ambiente di sviluppo MPLAB è costruito intorno all’IDE (Integrated Development Environment), e si tratta in pratica  dello  stesso  ambiente utilizzato per sviluppare applicazioni  per le MCU delle varie famiglie PIC, cui sono stati aggiunti dei tool specifici  per i dsPIC ed i file di …

Lettore RFID Arduino compatibile [Progetto Completo Open Source]

Il progetto descritto in questo articolo vuole rappresentare una solida base per lo sviluppo di applicativi RFID. Combinando il microcontrollore ATMEGA328P e il modulo EM-18 è possibile realizzare un semplice sistema per il comando di automatismi attraverso lettori card RFID. Il dispositivo EM-18 è uno dei lettori più comunemente usati per leggere i tag a 125KHz. Dispone di un basso consumo energetico, basso costo, fattore di forma ridotto e facilità di utilizzo.  Introduzione L'utilizzo della tecnologia di identificazione a radiofrequenza, conosciuta come RFID, sta crescendo rapidamente in molte applicazioni industriali e commerciali. La tecnologia RFID consente la raccolta dati …

VHDL for beginners: Entità e Architetture

La necessità di prestazioni sempre superiori e di consumi sempre più ridotti ha spinto il mondo dell'elettronica ad un uso sempre più massivo di dispositivi quali FPGA. Tali dispositivi devono la loro fama per la peculiarità di essere programmabili o meglio configurabili grazie a linguaggi come il VHDL o il Verilog, anche se sono linguaggi abbastanza complessi. Questi sono dedicati alla descrizione dell'hardware e consentono quindi di specificare il comportamento di circuiti elettronici sia semplici (ad esempio una funzione booleana o un sommatore) sia molto complessi come i processori. Con questo articolo iniziamo un corso base sul VHDL muovendo …

Soluzioni di alimentazione single chip per FPGA

I sistemi basati su FPGA stanno riscuotendo un crescente successo. Mentre parecchi progettisti preferiscono le architetture basate su FPGA per la loro flessibilità, grazie alla quale è possibile aggiungere caratteristiche o apportare modifiche attraverso il codice, la progettazione di un alimentatore idoneo comporta la risoluzione di alcuni problemi. Il primo è quello relativo alla presenza di più terminali di alimentazione. Introduzione Gli FPGA richiedono, come minimo, una tensione per l’alimentazione del core e una (o più) tensioni per l’alimentazione dei gruppi di I/O. Comunque, i sistemi basati su FPGA possono richiedere altri terminali per l’alimentazione di memorie DDR (Double …

Actel IGLOO e la tecnologia Flash Freeze

Gli IC standard sono integrati costruiti senza considerare una specifica applicazione, quindi hanno una serie di funzionalità generiche che potrebbero essere in eccesso per un caso specifico cosi come potrebbero non avere una funzionalità essenziale all’applicazione stessa. Utilizzando gli IC standard è facile quindi trovarsi nella situazione di avere un eccessivo consumo di potenza, dover disabilitare componenti, dover  trovare  soluzioni  personalizzate oppure eseguire test impegnativi. Le logiche programmabili La Figura 1 riporta la classificazione completa di tutte le tipologie di circuiti integrati. Gli ASIC (Application Specific Integrated Circuits) sono IC creati appositamente per tipologie di applicazioni oppure per applicazioni ben …

Aritmetica BCD per AVR

Il microprocessore opera su una rappresentazione dei dati in forma binaria, questa non è propriamente comprensibile agli esseri umani che sono abituati ad utilizzare rappresentazioni decimali. In una notazione BCD (Binary Coded Decimal) un numero è rappresentato su quattro bits (un Nibble): il valore decimale è compreso tra 0 e 9. In questo modo, su due byte possono essere rappresentati due digits con un valore da 00 a 99. In quest’articolo, dopo un’introduzione al codice BCD, saranno illustrate alcune tecniche che ci permetteranno, al termine, di avere a disposizione una vera e propria libreria in assembler. IL CODICE BCD Un codice è …

Propeller Tools

Il microcontrollore Propeller è un dispositivo della Parallax inc. contenente otto processori RISC a 32 bit e può gestire direttamente un’uscita video VGA, video composito, tastiera, mouse ed altro ancora. La programmazione del chip è notevolmente semplificata grazie all’ambiente di sviluppo integrato Propeller Editor/Development System. Introduzione L’architettura interna del Propeller è costituita da otto processori di tipo RISC a 32 bit indipendenti, tutti uguali, sincronizzati dallo stesso clock che può arrivare alla frequenza massima di 80MHz. Gli otto processori, chiamati COG, condividono le risorse comuni del Propeller quali registri di I/O e timer, mentre l’accesso alla memoria RAM/ROM avviene tramite un HUB che sincronizza le …

Il kit XMC4300 Relax EtherCAT

Il kit EtherCAT XMC4300 è dotato di un microcontrollore basato su ARM Cortex-M4 della serie XMC della Infineon Technologies. Può essere utilizzato con un'ampia gamma di strumenti di sviluppo, compreso l'IDE DAVE basato su Eclipse. Il kit è stato progettato per valutare le funzionalità del microcontrollore XMC4300, in particolare nelle applicazioni slave EtherCAT. Introduzione La serie di microcontrollori XMC4300 riduce ulteriormente la complessità dell'implementazione di EtherCAT e il costo dell'automazione di fabbrica, dal controllo del motore industriale, dei moduli I / O e della robotica. La serie XMC4300 è stata sviluppata appositamente per applicazioni industriali EtherCAT con forti pressioni …