è 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.
Quali sono i limiti e le considerazioni da tenere presente quando si decide di fare il troubleshooting di un sistema embedded? E se poi la nostra applicazione risultasse integrata in un real-time kernel? In questo articolo cerchiamo di fare alcune considerazioni su come condurre sessioni di debug utilizzando la strumentazione a nostra disposizione. Una sessione di test deve essere appositamente pianificata prevedendo tutti i possibili limiti o problemi che si possono presentare, in special modo, quando si deve condurre un’attività di verifica sul software embedded. In definitiva, occorre predisporre un’apposita metodologia per affrontare una sessione di test. Questa sessione è tanto particolare quanto più il sistema stesso non è corredato da un tool di debug o, ancora meglio, quando …
Il linguaggio assembly è uno strumento tipico per programmare sistemi embedded di piccola fascia. Oggi, con l’efficienza dei compilatori, è fortemente sconsigliato utilizzarlo; infatti, solo un linguaggio strutturato, come il C, rende la nostra architettura più versatile e manutenibile. Da diverso tempo i sistemi embedded di piccola fascia sono programmati utilizzando l’ormai classico linguaggio C, magari utilizzando qualche prerogativa non propria del linguaggio. A volte può capitare di dover migrare codice scritto in assembly verso un’applicazione C o, ancora meglio, può nascere l’esigenza di sviluppare in Assembly parti di codice per sfruttare la velocità e la versatilità di uno strumento che permette di accedere direttamente alle risorse hardware. In questo articolo vediamo alcune considerazioni da tenere presente per utilizzare …
Il chip FT232BM di FTDI è un convertitore seriale USB che permette di implementare una comunicazione USB nella propria applicazione senza entrare nel merito dello standard USB, ma comunicando semplicemente attraverso un UART. Dal punto di vista software dal lato USB il dispositivo può essere gestito in due diverse modalità. La più semplice è quella che vede l’impiego di un driver (fornito dal costruttore) che permette la creazione di una porta seriale virtuale, per cui l’applicazione software dovrà essere configurata per inviare e ricevere dati su tale porta. L’altra modalità è quella di utilizzare il Direct Driver D2XX anch’esso fornito da FTDI, che …
Nell’articolo vengono presentati alcuni esempi di configurazione dell’interfaccia SPI per i micro Fujitsu. Si dice che l’SPI sia una semplice comunicazione seriale tra due dispositivi digitali, tuttavia la mancanza di un formato standard non lo rende affatto semplice. Questo articolo descrive i più comuni formati SPI e come implementarli sui Fujitsu a otto e sedici bit. Alcuni formati SPI L’SPI è una comunicazione seriale tra un singolo dispositivo master e un singolo dispositivo slave. Ciascun bit di da ti da e per il master ha il suo proprio impulso di clock. Perciò l’SPI usa almeno tre diversi segnali: » SCK clock seriale; » SI input seriale, ovvero i dati dallo Slave …
Nella maggior parte dei pic è implementata una periferica seriale, che viene identificata con il termine di “UNIVERSAL SYNCRONOUS ASYNCHRONOUS RECEIVER TRASMITTER (USART)”, nel presente articolo si fa riferimento a quella presente nel pic16f628. La USART è uguale per tutta la famiglia pic16, quindi una routine scritta per un pic16 è utilizzabile su tutti i PIC della stessa famiglia a meno, del collegamento con il mondo esterno, ogni microcontrollore può avere mappato i pin su porte differenti, di conseguenza fanno verificati sul datasheet del microcontrollore dove sono ‘fisicamente collegati’. Da ricordare che la mappa dei registri in memoria potrebbe essere differente da modello a modello, e non tutti i registri SFR …
Attualmente ci sono molte strumentazioni dotati di porta seriale. Come possiamo comunicare con loro in un modo semplice? La risposta è Labview. In questo articolo analizzeremo un semplice programma che ci permetterà di comunicare con il dispositivo via RS232. In un prossimo articolo vedremo come comunicare da remoto con la porta seriale. Innanzituto vediamo che cosè la porta seriale conosciuta anche come porta RS232 (figura 1). La porta seriale permette lo scambio di informazioni digitali tra due dispositivi. Il protocollo utilizzato è di tipo seriale, ovvero le informazioni sono trasmessi uno alla volta su un unico filo e asincrono, ovvero i dati sono trasmessi senza l’utilizzo di un clock. La tensione di uscita da un trasmettitore RS232 deve essere compresa …
Questo progetto mostra come sia semplice partendo da un singolo pin di output avere la possibilità di ottenere più segnali di uscita, il tutto grazie ad un semplice filtro RC e ad un convertitore seriale/parallelo. Quante volte in un progetto vi è mancata la possibilità di portare un segnale supplementare su di un pin di uscita, magari quel segnale a cui non avevate pensato durante la fase di progetto della scheda, ora vi farebbe veramente comodo però avete tutti i GPO (general purpose output pin) impegnati. Oppure vi è capitato che per esigenze di debug o per risolvere i problemi di una scheda sia necessario avere in uscita un segnale che non era previsto. Queste …
Una modalità per la realizzazione di un segnale PWM software, generato su di un pin di un microcontrollore PIC della famiglia mid-range; metodo utile sia quando si usa un PIC senza PWM sia quando la risorsa PWM hardware sia di per sé disponibile. Il tutto realizzato in linguaggio C, con codice portabile su due compilatori: MikroC e BoostC. Chi conosce i microcontrollori PIC di Microchip, sa perfettamente che questi dispositivi, dispongono di canali PWM hardware. Va però detto che: » non tutti i PIC sono dotati di PWM hardware; » i PIC della famiglia mid-range hanno al più uno o due canali PWM; » per avere più canali PWM è necessario impiegare ad esempio i dsPIC destinati al motor control, …
Già da parecchio tempo, allo scopo di soddisfare le sempre più esigenti richieste del mercato, quasi tutte le case costruttrici di semiconduttori stanno producendo microcontrollori a 32 bit. Parallelamente, le richieste di sistemi di sviluppo sempre più economici hanno reso molti di questi potenti componenti a portata di hobbista. In questo articolo, attraverso un esempio pratico, verrà illustrato come iniziare rapidamente ad utilizzare un microcontroller a 32 bit con core ARM7 e clock massimo di 60MHz per lo sviluppo delle proprie applicazioni. LPC2000 è una famiglia di microcontrollers, prodotta oggi da NXP, basata sulla collaudata architettura ARM, una delle più diffuse architetture a livello mondiale per applicazioni embedded a basso consumo energetico come cellulari, PDA, routers, videogiochi portatili, e altro ancora. In questi …
Normalmente il firmware realizzato per una scheda embedded contiene sia i driver di basso livello per la gestione delle periferiche hardware, sia il programma applicativo. Questa soluzione non sempre è vantaggiosa: chi sviluppa il firmware deve conoscere i dettagli dell’ hardware della scheda ed avere le competenze necessarie per lo sviluppo dell’applicativo. Una soluzione più generale consiste nel separare il firmware di basso livello, che dipende dall’hardware utilizzato, dal programma applicativo. La scheda, in questo caso, verrà fornita con un rudimentale bios che metterà a disposizione le funzioni a cui dovrà fare riferimento il programmatore dell’applicativo per accedere alle varie periferiche della scheda. La realizzazione di due diversi firmware indipendenti comporta però …
In questo articolo saranno mostrate alcune soluzioni circuitali per la misura della temperatura che sfrutta circuiti integrati della Linear Technology/Analog Devices. Cominciamo con il definire cos’è un sensore di temperatura. Si tratta di un trasduttore che converte una grandezza termica in un’elettrica che generalmente è rappresentata da una tensione. Esistono diversi principi di conversione, ma il più semplice è rappresentato dal termoresistore al platino in cui la resistività del sensore varia linearmente con la temperatura (la variazione quadratica è trascurabile). Il circuito che permette la misura di questa variazione è il ponte di Wheatston seguito da un amplificatore differenziale che ne amplifica la tensione di uscita. Il circuito mostrato in …
I filtri di linea (filtri EMC) spesso sono visti come una scatola nera e, giustamente, l’utilizzatore non si preoccupa di conoscere il loro funzionamento interno. Tuttavia, per un uso efficiente dei filtri, è vantaggioso disporre di una conoscenza di base. Il punto centrale di quest’articolo riguarda le correnti di dispersione e ciò di cui occorre tener conto al loro riguardo. Gli impianti elettrici devono avere la proprietà di funzionare in modo soddisfacente nell’ambiente elettromagnetico in cui si trovano (immunità), senza influenzare tale ambiente (emissione) in misura non tollerabile. Si parla allora di compatibilità elettromagnetica. Distinguiamo tra interferenze da irradiazione e da conduzione. Nel caso di interferenza da conduzione, esistono interferenze simmetriche e asimmetriche (note rispetti vamente anche come interferenze differenziali …
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 …
Scopriamo in questo articolo il cross compilatore SwiftX, un sistema di sviluppo interattivo basato sul linguaggio Forth in grado di supportare un’ampia gamma di microcontrollori. Il cross compilatore SwiftX è prodotto dalla società americana FORTH Inc. (figura 1), la più grande e referenziata azienda in grado di fornire soluzioni e sistemi basati sul linguaggio Forth. FORTH, Inc., con sede a Los Angeles, California, fu fondata nel 1973 dagli stessi creatori del linguaggio Forth, tra i quali è doveroso ricordare la figura di Charles H. Moore, detto familiarmente “Chuck” (figura 2). La prima versione del Forth fu inventata da Chuck Moore nel 1968, quando era impiegato in Arizona presso il National Radio …
L’IoT promette di modificare radicalmente le nostre relazioni con il mondo che ci circonda. Un esempio è rappresentato dai sistemi di condizionamento e riscaldamento, dove l’introduzione dell’IoT è in grado di portare sostanziali benefici non solo sul piano tecnico, ma anche su quello economico. In questo scenario assume una importanza fondamentale l’infrastruttura di rete: la tecnologia SDR rappresenta in quest’ottica la soluzione ideale per realizzare una rete di comunicazione robusta in grado di connettere e gestire numerosi dispositivi. Introduzione Gli impianti per il riscaldamento, condizionamento, e ventilazione dell’aria (noti anche con il termine HVAC, acronimo di Heating, Ventilation, e …
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: …
I dispositivi digitali con i quali interagiamo ogni giorno sono tutti basati sulla logica, o aritmetica, binaria. Computer, smartphone, applicazioni software e app, microprocessori e tutti i componenti realizzati con la tecnologia digitale operano su singole unità di informazione note come bit. Cosa succederebbe se esistesse e utilizzasse una logica di calcolo non binaria, ma piuttosto ternaria? Introduzione Nei precedenti articoli abbiamo avuto modo di conoscere IOTA, la moneta decentralizzata nata espressamente per supportare le applicazioni di Internet of Things (IoT) attuali e future. Abbiamo inoltre imparato ad apprezzarne le caratteristiche principali e, soprattutto, i vantaggi offerti da questa …
La libreria di conversione in ambiente AVR che presenteremo in questo articolo è ready-to-run per essere utilizzata in applicazioni embedded e dispone di numerosi aspetti che la rendono davvero interessante. Questa libreria di conversione, da rappresentazioni in virgola mobile a stringa, è stata studiata per sistemi embedded con ridotte dimensioni di memoria: si quantifica un’occupazione di memoria di circa 6000 byte di memoria FLASH. Questo modulo software è stato testato e realizzato utilizzando l’ambiente di compilazione AVR-GCC. È necessario disporre di almeno due funzioni che stdlib.h mette a disposizione: ultoa e itoa. La funzione C che realizza la conversione è ftoa così come è mostrato nel listato 1. #define SIZE_OF_MANTISSA 23 #define BITS_UNTIL_EXPONENT 23 …
Visualizzazione di contenuti grafici e riproduzione del suono sono divenute ormai caratteristiche irrinunciabili nei moderni sistemi embedded. Nel settore audio, in particolare, se da un lato esistono codec più o meno complessi che implementano le principali funzionalità per applicazioni ad elevata qualità, dall’altro i moderni microcontrollori integrano già periferiche che consentono facilmente la generazione di suoni in sistemi low-cost. Il presente articolo presenta in particolare alcuni esempi basati sui dispositivi della famiglia MB91460 di Fujitsu. Il suono non è altro che una oscillazione dell’area percepita dall’udito come conseguenza della vibrazione di una sorgente di onde acustiche. Come al solito, si può rappresentare come sovrapposizioni di vibrazioni elementari che assumono forma di onde sinusoidali di ampiezza variabile a diverse frequenze; ogni armonica rappresenta un tono del segnale acustico. Acquisizione e riproduzione del …
Il Controller Area Network, noto anche come CAN-bus, è uno standard seriale per bus principalmente di tipo automotive e multicast. E’ stato introdotto negli anni ottanta dalla Robert BoschGmbH, per collegare diverse unità di controllo elettronico (ECU). Analizziamo le proprietà e le caratteristiche di questo importante bus. Il protocollo CAN (figura 1 e 2) è stato sviluppato in Europa per utilizzo in ambito automobilistico. In seguito al proficuo utilizzo nelle applicazioni nel campo degli autoveicoli, nei sistemi di controllo, sensori ed attuatori si è sviluppato in tutto in mondo in particolare negli USA. Il protocollo di comunicazione CAN è stato reso norma internazionale nel 1993 come ISO 11898-1. Il bus CAN è un bus …