è la categoria relativa all’elettronica embedded. Troverete articoli relativi ai sistemi embedded sia lato hardware che software con particolare riferimento appunto a tutti quei sistemi rivolti ad una specifica applicazione. Tratteremo anche Linux embedded ed altri sistemi operativi leggeri in grado di “girare” su schede embedded a microcontrollore.
La famiglia di micro ST10 si compone i dispositivi dotati di una DSP-MAC e di un accumulatore a 40 bit. Lo sviluppo delle applicazioni è facilitato grazie all’ambiente Tasking VX, un tool basato sul framework Eclipse. Ecco le sue caratteristiche ed un esempio di applicazione. I MICROCONTROLLORI ST10 I dispositivi della famiglia ST10 sono dei microcontrollori a 16 bit disponibili in due categorie principali: con memoria programma Flash o senza (ROMless). Tutti i componenti della famiglia, tranne due (ST10R167 ed ST10R172) sono inoltre dotati di una unità DSP-MAC (Digital Signal Processor-Multiply and ACcumulate). Il DSP-MAC si avvale di un moltiplicatore hardware da 16x16 …
Il modulo rfPIC12F675, prodotto dalla Microchip, contiene in un unico modulo un microcontrollore, capace di gestire piccoli e medi sistemi, e un trasmettitore radio di segnali digitali, operante nella banda UHF. I suoi vantaggi si concretizzano in bassi costi di acquisto, alte prestazioni nelle trasmissioni a breve raggio e codifica ti tipo ASK e FSK. LA MEMORIA PROGRAMMA I dispositivi rfPIC12F675 dispongono di un program counter a 13 bit in grado di indirizzare uno spazio di memoria di 8K x 14. Solo il primo banco di 1K per 14, corrispondente agli indirizzi (0000H – 03FFH), è fisicamente implementato. ORGANIZZAZIONE DELLA …
Qualsiasi programmatore di sistemi dedicati che utilizza soluzioni basate su System-onChips (SoCs) ha la necessità di utilizzare codice oggetto che coniuga aspetti di safety con quelli d’efficienza: il codice deve occupare poco spazio, deve garantire prestazioni paragonabili a quella d’esecuzione e utilizzare codice che sia il più efficiente possibile. Per rispondere a queste esigenze occorre disporre di soluzioni appositamente realizzate. Utilizzare un compilatore GCC può non essere praticabile, è necessario modificarlo nella parte di back-end. Quando si parla di compilatori di solito si considerano due aspetti: il front-end e il back-end, vale a dire lo stato iniziale e finale di …
La necessità di dispositivi human interface in applicazioni consumer ed industriali ha determinato una sempre più crescente domanda di display a cristalli liquidi. Microchip ha fatto fronte a questa necessità con diverse serie di microcontrollori PIC con driver LCD on-board. I PICMicro offrono la possibilità di realizzare un controller LCD. Questo comporta una sensibile riduzione di costi e tempo poiché non è più necessario impiegare un controller esterno. In questo articolo vengono presentati i concetti fondamentali e le tecniche generali di implementazione. INTRODUZIONE A partire dalle serie PIC16F91X, PIC18F6390/6490/8390/8490 e PIC16F65J90/85J90 è possibile pilotare display con un numero di segmenti sempre maggiore …
La conversione analogico-digitale, come dice lo stesso nome, è il processo per cui una grandezza analogica è resa disponibile e verificabile in un dispositivo digitale, quindi in forma numerica. Ogni convertitore esegue un’operazione di campionamento ed una di quantizzazione. Si tratta di un’operazione a “perdita d’informazione”, in quanto alcuni dettagli iniziali vanno irrimediabilmente persi, anche se la risoluzione adottata è molto alta. GLI ERRORI NELLA CONVERSIONE Nella trasformazione di un segnale, da analogico a digitale, vi è sempre una componente, ideale o reale, che differisce tra le due risultanti. Si definisce pertanto errore la differenza, dinamica o statica, tra …
Una breve descrizione dello standard Bluetooth ed il suo impiego in applicazioni embedded. Come esempio verrà descritta la realizzazione di una applicazione di cable replacement per il controllo remoto di I/O. Tra i sistemi di comunicazione dati wireless, i dispositivi Bluetooth presentano molte caratteristiche interessanti: offrono una discreta velocità, una buona affidabilità e sicurezza nella comunicazione, ed inoltre sono estremamente diffusi (circa un miliardo di dispositivi) e disponibili in molti tipi di apparati dai PC ai PDA fino ai telefoni cellulari. Tutte queste caratteristiche lo rendono adatto in numerose applicazioni, in particolare di tipo industriale, di remotizzazione sensori o di cable replacement …
MSP430 rappresenta una famiglia di microcontrollori prodotti dalla Texas Instruments e basati su un’architettura a 16 bit. I vantaggi principali sono il consumo estremamente ridotto (ultra low-power) e il design innovativo. La famiglia dei dispositivi MSP430 rappresenta la serie mixed-signal dei processori a 16 bit di Texas Instrument (TI). Essi sono la soluzione ideale per applicazioni di misura caratterizzate da alimentazione a batteria e quindi bassissimo consumo. La leadership sia nella tecnologia mixed-signal che in quella digitale ha permesso a TI di creare i chip MSP430 che consento al progettista di interfacciarsi, anche simultaneamente, con segnali analogici, sensori di vario tipo e componenti digitali, il tutto con un consumo ridotto. Applicazioni tipiche includono misurazione, …
IAR Systems produce e vende tools per lo sviluppo e il debug di applicazioni embedded a microprossore/microcontrollore, offrendo supporto per un'ampia gamma di microcontrollori (MCU's) 8/16 e 32 bit. MSP430 rappresenta una famiglia di microcontrollori prodotti dalla Texas Instruments. Questi microcontrollori lavorano a 16 bit e sono caratterizzati da un consumo estremamente ridotto (ultra low-power). INTRODUZIONE IAR Embedded Workbench è un ambiente integrato di sviluppo (IDE) per Windows . Questo include tutti i tools necessari per lo sviluppo ed il testing delle applicazioni embedded: Project Manager, Editor, Compilatore ANSI C (or EC++), Assembler, Linker, Librerie, set completo di Librerie Runtime …
Un ottimo tool per manipolare i file utilizzati dai programmatori di EPROM. Ecco come installarlo, compilarlo e modificarlo per l’aggiunta di nuovi formati. SRecord è un pacchetto open source studiato per gestire i formati dei “file da epromizzare”. Con “file da epromizzare” ci si vuole riferire a quei particolari formati utilizzati dai programmatori di eprom. È possibile modificare i codici sorgenti, inclusi nella distribuzione, in accordo alla licenza GNU General Public License messa a punto dalla Free Software Foundation. Questa caratteristica rende il tool veramente interessante infatti, in questo modo, è possibile farsi la propria distribuzione includendo formati proprietari o aggiungere proprie …
Le tecniche di scheduling alternative alla priorità fissa per lo scheduling dei processi nei sistemi real-time. L’articolo descrive l’algoritmo di scheduling EDF (Earliest Deadline First) e lo confronta con gli algoritmi tradizionali. Vengono inoltre descritte le principali tecniche di implementazione di EDF per dispositivi a microcontrollore, fornendo esempi relativi al kernel open-source ERIKA Enterprise Basic. Le tradizionali implementazioni dei sistemi operativi real-time prevedono la possibilità di specificare dei parametri utilizzati per decidere quale sia in ogni istante il task da mettere in esecuzione. La maggior parte dei sistemi operativi in commercio fornisce per ogni task la possibilità di specificare un numero, detto priorità, utilizzato successivamente …
L’elemento centrale di qualsiasi dispositivo FPGA è il suo “blocco logico”, cioè un circuito logico in grado di essere configurato dall’utente per potere implementare semplici funzioni logiche o aritmetiche arbitrarie. L’interconnessione di più blocchi logici permette poi di realizzare circuiti di complessità maggiore. Negli anni sono state proposte ed utilizzate diverse strutture per la realizzazione dei blocchi logici, caratterizzati da differenti gradi di complessità (“granulosità”) e diverse soluzioni circuitali (semplici porte logiche, multiplexer, Look-Up Table, etc). Gli FPGA basati su tecnologia SRAM, come quelli prodotti da Altera o Xilinx, hanno adottato fin dall’inizio una soluzione simile, che si è …
La TPU, acronimo di Time Processing Unit, è un controller programmabile sviluppato da Freescale (ora NXP) e dotato di sistema di memoria e codice propri. Questo consente di eseguire temporizzazioni e gestione dei pin di I/O in maniera efficiente, indipendentemente dalla CPU. La TPU è sostanzialmente un “microcontroller nel microcontroller”, poiché contenuta all’interno dei chip Freescale delle famiglie MPC500 e MC68332. Le sue funzioni principali spaziano dal controllo delle temporizzazioni, alla gestione degli I/O, alla comunicazione seriale, al controllo motori. Una nuova versione del modulo TPU è conosciuta con il nome di eTPU (Enhanced TPU) Introduzione La nuova versione eTPU (Enhanced …
In applicazioni con FPGA e ASIC sono richieste diverse tensioni di alimentazione, per il core, per gli I/O e in taluni casi anche una terza tensione per l’alimentazione dei circuiti ausiliari. Ecco come scegliere il sistema di alimentazione più idoneo anche in termini di ingombro su PCB, risposta ai transitori ed efficienza. Nei mercati super-competitivi di oggi, che vedono una sempre più crescente pressione del time-to-market relativamente ai sottosistemi elettronici, l’importanza di FPGA e ASIC è cresciuta enormemente per il fatto che da questi componenti deriva la funzionalità di numerosi nuovi sistemi. Uno dei fattori più critici di un sistema basato su una FPGA è …
Il VHDL viene concepito per la descrizione dei circuiti elettronici e quindi consente le realizzazione di sistemi molto complessi. In elettronica troviamo una differenza sostanziale tra circuiti combinatori e sequenziali data dalla presenza di una cella di memoria al proprio interno. Infatti, nei circuiti combinatori, l'output è il risultato di una funzione logica dei soli input. Differentemente nel circuito sequenziale troviamo di fatto un elemento di memoria che porta in conto lo stato attuale (o quello precedente) del circuito stesso. In merito, il VHDL mette a disposizione diversi costrutti molto interessanti che possono rendere efficace e leggibile l'implementazione dei …
Buildroot è un tool che permette di costruirci una cross-compiler toolchain e un root filesystem per il nostro target in modo più efficiente e veloce. I suoi usi sono rivolti principalmente verso il settore embedded. Buildroot è una collezione di makefiles e patches ed è largamente utilizzato per applicazioni che richiedono piccoli sistemi o sistemi dedicati. Le applicazioni dedicate, di solito, non utilizzano la famiglia x86, ma più spesso microprocessori come PowerPc, MIPS o ARM e incontrano maggiormente il gradimento dei tecnici. Se pensiamo di utilizzare Buildroot allora molto probabilmente quello che vogliamo è uno strumento che permette la creazione, in un modo abbastanza …
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 …
Così come la struttura dei componenti a semiconduttori sta sempre più riducendosi, anche la tensione nominale di alimentazione tende ad abbassarsi con il vantaggio, naturalmente, di minori consumi e di velocità operative sempre maggiori. In questo articolo si vedrà come collegare fisicamente una memoria, funzionante con una tensione di 3V, con un sistema digitale a 5V. Ovvero, analizzeremo alcune tecniche per l’interfacciamento di una memoria DataFlash a 3Volt con un microcontrollore alimentato a 5Volt. La tensione che deve alimentare la DataFlash deve essere compresa tra 2,7V e 3,6V. Innalzandola ulteriormente si rischia di danneggiare seriamente il modulo. DEFINIZIONE DEI LIVELLI …
È veramente indispensabile utilizzare un sistema operativo real-time? Quali sono le ragioni per utilizzare un RTOS in un sistema dedicato? Vediamo quali sono gli aspetti da tenere presenti per decidere l’acquisto di un sistema operativo per sistemi embedded. Non è detto che un sistema dedicato deve disporre di un RTOS real-time. Infatti una grossa fetta delle applicazioni commerciali non utilizzano un sistema operativo, ma si basano su un modello ciclico basato anche su evento. In questo articolo si vogliono dare indicazioni di massima sulle ragioni che possono decidere l’acquisto di un kernel real-time. LE RAGIONI Il firmware potrebbe essere semplicemente un ciclo software principale …
In questo articolo vedremo alcune considerazioni hardware e software per realizzare un dispositivo in grado di quantificare le capacità respiratorie di un essere umano, misurando sia i volumi che le portate. I risultati delle misure effettuate da questo dispositivo potranno essere inviate ad un computer per visualizzare graficamente i dati. Fondamenti di spirometria Vediamo anzitutto di acquisire familiarità con i principali parametri utilizzati nell’ambito della spirometria, analizzando come essi possano essere misurati. Per spirometria si intende una serie di test volti a determinare le capacità respiratorie di una persona. La spirometrica misura la quantità di aria inalata ed espirata …
Tutti oramai sanno cos’è un Arduino, ovvero di come un dispositivo di prototipizzazione elettronica rapida abbia semplificato i test e la realizzazione di molti circuiti, avvicinando un gran numero di non addetti ai lavori, al mondo dell’elettronica. Arduino si è imposto per la sua semplicità d’utilizzo e la sua community, che in una sorta di effetto valanga si allarga in continuazione. Tuttavia l’IDE di sviluppo, consigliata ed usata dalla maggior parte degli utenti per la scrittura degli sketch, proprio in nome della semplicità, non permette di sfruttare appieno tutte le periferiche a bordo dei micro-controllori appartenenti alla famiglia Arduino, …