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!

La porta seriale del micro 8051

Come configurare la porta seriale di un 8051 per selezionare una delle quattro modalità di funzionamento. La periferica di comunicazione seriale del micrcontrollore 8051 prevede quattro diverse modalità di funzionamento, le più impiegate sono quelle che consentono di utilizzare il baudrate variabile: Modo1, il formato del dato trasmesso è 1bit start + 8bit data +1 bit stop. Modo3, il formato del dato trasmesso è 1bit start + 9bit data +1 bit stop. In entrambi i casi i bit di start e stop sono aggiunti automaticamente dalla periferica rispettivamente  all’inizio e alla fine di ogni byte inviato. Il registro SFR di configurazione della periferica è S0CON (figura 1), i bit TB8 e RB8 di questo registro …

Pilotare un LCD con un microcontrollore PIC

In questo breve articolo illustreremo come interfacciare un display LCD a caratteri 2x16 Hitachi compatibile (l’interfaccia ideata da Hitachi è uno standard di fatto, tanto da essere adottata anche dalle altre case costruttrici) con un controllore PIC Microchip. Del tutto simile è l’interfacciamento di display a caratteri di altre dimensioni (1x16, 2x20, 4x16, 4x20, 2x40 e 4x40) e solo un po’ più complesso quello di LCD grafici (GLCD- Grafic Liquid Crystal Display)  o di LCD touch screen. Interfacciamento tra display LCD 2x16 ed un Controllore PIC Microchip I  dati (caratteri ASCII) e i  comandi del display sono codici ad 8 bit; nonostante tutto gli LCD che integrano  il …

EEMBC Benchmark: la misura delle performance nei processori e microcontrollori

L’Embedded  Microprocessor Benchmark Consortium (EEMBC) ha l'obiettivo di sviluppare misure di riferimento per la stima delle prestazioni di processori e compilatori in applicazioni embedded. Grazie agli sforzi combinati dei suoi membri, i benchmark EEMBC sono presto divenuti uno standard industriale nella stima delle prestazioni dei dispositivi in accordo ad obiettivi ben definiti e criteri application-based. Fin dalla prima certificazione rilasciata (risalente all’Aprile 2000), la valutazione EEMBC ha effettivamente soppiantato il più obsoleto Dhrystone MIPS. A differenza del Dhrystone MIPS che riassume in un unico indice (il MIPS, appunto) le prestazioni di un processore indipendentemente  dall’applicazione, l’EEMBC prevede una serie di …

Il mercato dei microcontrollori, intervista a Lucio Di Jasio EMEA BD team leader @ Microchip

La crescente consapevolezza della gestione intelligente dell'energia, insieme al miglioramento della tecnologia dovrebbero agire come forze trainanti per il mercato dei microcontrollori. L'alto grado di concorrenza nel mercato ha portato anche ad una forte riduzione del prezzo che dovrebbe contribuire alla crescita del mercato. La crescente domanda dell'elettronica per gli usi finali, quali consumer e automotive, dovrebbe agire come forza trainante per la crescita del mercato dei microcontrollori (MCU) classificati sulla base della larghezza del bus interno in tre categorie, che comprendono MCU a 32 bit, 16 bit e 4/8-bit. I microcontrollori a 32-bit dominano il mercato in termini …

Voltage monitor MAX8212

Semplice e versatile IC per il monitoraggio della tensione di alimentazione in circuiti con architettura a microprocessore e non solo. L’integrato che andiamo a presentarvi è un semplice dispositivo per il monitoraggio della tensione di alimentazione di un circuito. Quando si verifica un power-failure, ad esempio per un malfunzionamento dello stadio di alimentazione, oppure in caso di blackout, il cambiamento dell’uscita del dispositivo comunica questo evento ad un microprocessore (o ad un controller dedicato), cosicché la procedura, prevista per queste evenienze, possa essere attivata in tempo. Ecco allora che il microprocessore può decretare l’immediato backup dei dati ed iniziare lo spegnimento del sistema, oppure decidere di commutare la sorgente di …

EOS Top12 – Febbraio 2017

È online EOS Top12 di febbraio, la nostra raccolta dedicata all'Elettronica e alla Tecnologia! Nel numero di questo mese troverete molti articoli e progetti interessanti: il Santo Graal del computing quantistico; il Kit Raspberry Pi; tecnica di guida autonoma su strada sterrata; distribuzioni Linux embedded per architetture ARM; tecnologie medicali; la struttura dei files .BIT; progetti modulari in bandabase per applicazioni wireless; batteria nei dispositivi indossabili; algoritmi di schedulazione nei sistemi real-time; HD Voice; interfaccia smartcard nell’ST7SCR; LTpowerPlanner. Se vi siete persi i numeri precedenti ecco il link. Buona lettura! 1. Il Santo Graal del computing quantistico Gli scienziati …

Misura del valore efficace

Il firmware descritto, abbinato ad un microcontrollore PIC, consente di effettuare la misura del vero valore efficace e del livello in dB di un qualunque segnale analogico. Il valore efficace di una grandezza elettrica in corrente alternata è un parametro che ha lo scopo di semplificare i calcoli ingegneristici (al seguente link un approfondimento sugli errori sperimentali) evitando di analizzare ogni istante infinitesimo che costituisce la forma d’onda. Il valore efficace  di una grandezza equivale a quel valore che in regime di tensione continua svilupperebbe la stessa potenza. Un segnale variabile periodico infatti non ha un valore definito di tensione o corrente come nel caso della corrente continua, ma varia istante per istante. Ad esempio sottoponendo un resistore …

Gestione interrupt del TMR0 e PIC16F84

Un esempio di uso e gestione del timer0 per la realizzazione di un controllore di impulsi. Il listato1 mostra l’utilizzo dell’interrupt del TMR0 per il conteggio di impulsi “squadrati”: il programma è costituito da: una fase di acquisizione degli impulsi, una di conversione del numero binario in una forma adatta alla visualizzazione (sui tre display a sette segmenti) e una fase di visualizzazione. Il numero decimale corrispondente al numero degli impulsi si suppone a tre cifre e il codice binario di ognuna di queste viene salvato in tre registri (UNI, DECI, CENTI); tale codice viene sommato al Program Counter per ottenere, da una tabella,  il codice per il display. La fase di acquisizione mostra l’uso dell’interrupt del …

La distorsione armonica nei data converters

L’interpretazione del segnale prodotto da un data-converter (numerico o analogico a seconda che si tratti di un ADC o di un DAC) può risultare talvolta complicata dalla presenza di una serie di disturbi di entità quasi confrontabile con quella del segnale utile e sovrapposti ad esso. Uno dei fenomeni in grado in determinare tali disturbi è la distorsione armonica, dovuta agli ineliminabili effetti di non linearità introdotti da qualunque circuito analogico subito a monte dell’ADC o subito a valle del DAC. In questo articolo, discutiamo il problema della distorsione armonica nei data-converters: per ciascuno dei casi A/D e D/A, …

Interfaccia smartcard nell’ST7SCR microcontrollore di ST

Il microcontrollore ST7SCR di ST Microelectronics è dotato di un'interfaccia per smartcard e in questo articolo faremo una descrizione dettagliata del suo funzionamento e dei registri coinvolti per poterla utilizzare al meglio. I dispositivi ST7SCR e ST7FSCR sono membri della famiglia di microcontrollori ST7 progettati per applicazioni USB. Tutti i dispositivi sono basati su un common standard di settore Core 8-bit, con un set di istruzioni ampliate. Architettura L’interfaccia smartcard (CRD) del micro ST7SRC è elettricamente compatibile e certificata con gli standards ISO7816, EMV, GSM, WHQL e supporta smartcard tipo memory cards e microprocessor cards. In figura 1 lo schema …

Gestione Timer/Counter su AVR

Affinché si possa generare un RTC è necessario un elemento di sincronizzazione per il tempo. Per tale scopo, è possibile usare uno dei Timer/Counter presenti nell’AVR che, nel caso del TTiny13, è unico e identificato come Timer/Counter0. Questo contatore può essere pilotato mediante un prescaler: cambiando il valore del prescaler si possono ottenere incrementi del contatore ad ogni ciclo di clock del sistema, ogni 8 cicli, ogni 64 e così via, fino a un massimo di un incremento ogni 1024 cicli. Per ottenere l’RTC il contatore viene incrementato dal timer/counter clock che a sua volta è stato inizialmente generato dal clock di sistema. I due segnali di clock vengono divisi per opportuni fattori mediante un prescaler. In …

Traslazione dei livelli logici

All’inizio dell’era digitale, la logica TTL e quella CMOS a 5 Volt erano le più diffuse. Tutti i dispositivi adottavano questi due standard e la realizzazione dei circuiti, uniti alla questione dell’interfacciamento,  non comportava alcun problema. Anzi, la semplicità e soprattutto  la tipologia di logica positiva prevista (0 Volt per L e 5 Volt per H) consentivano di collegare direttamente le varie porte, senza prevedere alcun tipo di adattamento. Con lo svilupparsi dei metodi  di integrazione, del risparmio energetico e della velocità dei dispositivi, inevitabilmente anche i livelli logici previsti da questi, hanno subito modifiche sostanziali, soprattutto  per ciò che concerne …

CRC su USB e algoritmo di SWAP in C

La specifica USB utilizza il classico CRC (Cyclic Redundancy Checksums) per garantire l’integrità dei pacchetti dagli errori di trasmissione. I pacchetti previsti dallo standard USB sono quattro: token, data, handshake e special. Ogni pacchetto è diviso in campi di 8 bit (o multipli di 8) ciascuno. I bit sono inviati sul bus dal bit meno significativo al più significativo. La specifica USB utilizza due polinomi differenti per il calcolo del CRC: uno per i token e l’altro per i dati. La tabella 1 pone in evidenza i vari pacchetti in relazione ai gruppi presenti nella specifica. Implementazione CRC per USb Il generatore  utilizzato  per i token deve essere conforme al polinomio: X5 + …

Scheda di controllo remoto ad infrarossi con protocollo RC5 e microcontrollore PIC

In questo articolo vedremo come sarà possibile comandare mediante un telecomando ad infrarossi con il supporto del protocollo Philips RC5, uno o più carichi a distanza. Inizieremo con l'analisi del protocollo per poi passare allo sviluppo di una scheda madre con a bordo un PIC 16F876 che si occuperà della decodifica del segnale e del controllo dei pin d'uscita in funzione del pulsante premuto. Nell'articolo successivo invece, analizzeremo lo sviluppo di una scheda di interfaccia con a bordo dei TRIAC, la quale collegata alla scheda "Main Board" di cui parleremo oggi, consentirà il controllo a distanza di carichi a 220 Volt. Il …

Algoritmo di controllo dell’oscillatore DCO per microcontrollore MSP430

Un algoritmo di controllo e regolazione dell’oscillatore interno DCO del microcontrollore Texas Instruments MSP430: le sue prestazioni lo rendono particolarmente adatto ad applicazioni quali strumentazione di misura, sensoristica intelligente  ed elettronica di consumo. Le periferiche sono state progettate  per richiedere il minor supporto software possibile. L’algoritmo è stato scritto interamente in linguaggio C ed è suddiviso in due funzioni: il ciclo di taratura del DCO e il controllo della stabilità dell’oscillatore nel tempo. Introduzione Il microcontrollore  MSP430 di Texas Instruments, è un RISC a 16 bit con architettura von Neumann (figura 1). Di seguito le principali caratteristiche del micro: 1KB-120KB di …

I micro ColdFire® di Freescale a 32-bit

La gamma di microcontroller Freescale (ora NXP) a 32 bit per la connettività single-chip si propone come la soluzione ideale per i progettisti che necessitano delle elevate performance dei micro a 32 bit. Freescale Semiconductor ha presentato nel lontano 2006 la  gamma di prodotti basata sul core 68K/ColdFire®  per il controllo delle applicazioni industriali che variano dalla raccolta remota di dati, alla sicurezza, dalla domotica  fino al monitoraggio ambientale. Facciamo una panoramica su questi prodotti che hanno portato tanto successo a Freescale, e continuano a farlo ancora oggi. La gamma MCF522xx La Figura 1 rende l’idea di quelli che sono stati i …

Il modulo CCP nei microcontrolori PIC

Il modulo CCP dei PICMicro® è davvero una miniera inesauribile di funzioni. Si tratta di un dispositivo integrato sui PICMicro, il cui interfacciamento con l’esterno è realizzato tramite il pin CCP. In questo articolo esamineremo le principali applicazioni pratiche in cui si possono sfruttare le tre modalità di questo modulo: Capture, Compare e PWM. Il CCP è utilizzato in generale per effettuare misure o per il controllo di dispositivi mediante segnali modulati PWM. CHE COS’È IL MODULO CCP DEL PIC? Il modulo è programmabile via software per operare in una delle tre seguenti modalità: Capture (input). Il contenuto del Timer1 viene …

Pilotaggio di un mosfet di potenza con un microcontrollore

In questo articolo viene presentato un circuito semplice ed economico per pilotare con un microcontrollore un transistor Mosfet di potenza che può essere utilizzato con impulsi PWM o come relè statico in corrente continua. Esso funziona fino a circa 60 kHz e permette un completo isolamento con livelli d’ingresso a partire da 3,3 V. Lo scopo di questo articolo non è quello di spiegare nel dettaglio il funzionamento di questi semiconduttori ma di studiare un'economica e semplice interfaccia per connetterli con sistemi tipo Arduino o PIC. Dopo un’introduzione teorica sul funzionamento dei transistori Enhancement Mode Mosfet e sulle caratteristiche …

Microcontrollori con USB Host

Il mercato delle soluzioni tecnologiche basate su dispositivi intelligenti, quali microprocessori e microntrollori, si è arricchito, da una decina d’anni, di nuovi dispositivi hardware integrati. L’interfaccia USB, con il suo standard, rappresenta senza dubbio una grossa novità. Grazie a questa nuova tecnologia la caratteristica denominata plug&play è diventata una solida realtà. Negli anni questa tecnologia ha soppiantato i tradizionali standard seriali per l’enorme facilità di colloquiare con dispositivi periferici quali stampanti, tastiere, mouse, memorie a velocità superiori. Certamente il bus USB rappresenta una grossa novità e fornisce un seguìto commerciale non indifferente ed è altrettanto vero che la disponibilità di un USB …

Come prevenire le manomissioni dei contatori elettrici

Dalla sua scoperta, l’energia elettrica si è velocemente diffusa ed imposta nella vita di tutti i giorni arrivando alla portata di tutti e sostituendo quasi completamente tutte le altre forme di energia comunemente usate, arrivando fino ai combustibili fossili usati dalle nostre automobili. L’arrivo dell’energia elettrica a casa di tutti, ha portato alla nascita di nuove problematiche e rispettive soluzioni per la produzione, la distribuzione e la regolarizzazione ed è proprio in quest’ambito che nel corso degli anni sono stati creati ed installati contatori, dai primi modelli analogici fino ai nuovissimi digitali, in modo da conoscere e misurare i consumi …

Elettronica News Dicembre 2016

Le news di questo mese riguardano importanti aggiornamenti in vari campi dell’elettronica con una interessante acquisizione nel mercato del software EDA (Electronic Design Automation).  Intersil ha annunciato il primo controllore DC/DC bidirezionale a 6 fasi per sistemi di alimentazione a 12-48 V in ambito automotive, garantendo sensibili riduzioni delle emissioni con un deciso risparmio di carburante. La Linear Technology ha immesso sul mercato un nuovo dispositivo DC-DC sincrono buck-boost per applicazioni nei sistemi automotive, industriali, telecom e sistemi alimentati a batteria. Infineon Technologies ha annunciato aggiornamenti della famiglia di iMOTION Modular Application Design Kit (MADK) per applicazioni nel campo …

Come abilitare la ricezione degli interrupt da USART

Gli AVR e la gran parte dei microcontrollori, dispongono di una caratteristica conosciuta come Interrupt. Come il nome stesso implica, l’interrupt permette agli eventi esterni (come un input da utente o dall’unità periferica dell’AVR) di bloccare il programma principale, di eseguire l’ISR (Interrupt Service Routine) e solo dopo riprendere  il programma dove si era interrotto. Gli interrupt sono estremamente utili per gestire input irregolari (come il cambio di un pin) o per eseguire “background tasks” come il lampeggio di un LED nel caso di un timer overflow. Per questo esempio stiamo usando un MEGA16. Partiamo da un semplice programma per l’utilizzo dell’interfaccia per la comunicazione …

Una tastiera LCD sulla stessa porta

E' noto che per utilizzare un LCD, tutti i pin connessi al modulo alfanumerico devono essere impostati come uscite, mentre per il pilotaggio di una tastiera solo i pin connessi alle colonne devono essere impostati come uscita e quelli connessi alle righe devono essere ingressi. Questi ultimi devono essere connessi anche ad un pull-up resistivo che può essere costituito da resistori esterni da 10K o dal pull-up interno del microcontrollore (se disponibile). L’accorgimento per gestire entrambi i dispositivi è piuttosto elementare: durante la gestione della tastiera si mantiene a livello basso il pin Enable del modulo LCD in modo da …

Una macro per la generazione di ritardi di estrema precisione con Atmel AVR

La macro _Waiste_us il cui codice  sorgente è riportato nel listato 1, consente di generare con precisione  un   ritardo   da   un   minimo   di 1000000/F_CPU (F_CPU è la frequenza in Hz a cui  lavora  il  micro)  fino  ad  un  massimo  di 25.769.803.779/F_CPU_in_MHz. ;****************************************************************************** .equ F_CPU = 3579545 ;Hz .Macro _Waiste_us ;n .set Fraction = @0*F_CPU/1000000 .set Fraction = Fraction * 100 .set Fraction = @0*F_CPU/10000 - Fraction .if Fraction >= 50 .equ Cycles_Needed = (@0 * F_CPU /1000000)+1 .endif .if Fraction < 50 .equ Cycles_Needed = (@0 * F_CPU /1000000) .endif _Cycle_Waister Cycles_Needed .endmacro .macro _Cycle_Waister .If @0 == 1 nop .EndIf …

Elettronica News Novembre 2016

Le news di questo mese riguardano importanti aggiornamenti in vari campi dell’elettronica con interessanti acquisizioni che coinvolgono Qualcomm e Murata, portando con se nuove prospettive nel mercato della comunicazione (mobile), automotive e medicale. CUI ha annunciato l’ampliamento della propria gamma di connettori USB 2.0 e 3.0 disponibili in diverse versioni. MicroEJ e Micrium Software, parte della Silicon Labs, hanno annunciato l'integrazione della piattaforma applicativa MicroEJ OS per offrire un miglior sistema di sviluppo mixed C e Java per i progettisti di software nell'ambito dei microcontrollori e microprocessori embedded. XP Power ha annunciato una nuova famiglia di alimentatori AC-DC a …