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!
Lo sviluppo di sistemi embedded basati sul protocollo di comunicazione USB sono sempre più diffusi e tendono a soppiantare altri tipi di comunicazioni come quella seriale. A differenza di quest’ultima, la trasmissione dati tramite l’Universal Serial Bus può essere abbastanza difficoltosa per il progettista che voglia sviluppare da zero l’intero protocollo. Le specifiche USB 2.0 sono, infatti, un documento di oltre 650 pagine. Fortunatamente molti produttori di microcontrollori hanno cercato di facilitare il lavoro del progettista, realizzando dispositivi che gestiscono interamente il protocollo USB, rendendolo molto semplice ed intuitivo nell’uso, come fosse una semplice interfaccia seriale. Un modo per …
Costruiamo un generatore di onda sinusoidale e quadra con sintesi digitale e frequenza da 1 Hz fino a 40MHz con il modulo AD9850, un microcontrollore PIC e un encoder. Con pochi componenti si può realizzare senza troppe difficoltà un generatore che può essere molto utile sia per arricchire la strumentazione di un appassionato di elettronica sia per il radioamatore, infatti, la frequenza generata ha la stabilità e l’accuratezza tipica di un oscillatore a quarzo e può essere usata anche in un apparato radio come VFO (Variable Frequency Oscillator). Da una descrizione teorica del funzionamento della sintesi digitale DDS usata nel chip AD9850, …
È uscito il nuovo numero di Firmware! Scopriamo insieme gli articoli di questo mese: innanzitutto la copertina è dedicata alle tecniche di design per ridurre l’esposizione RF negli smartphone. Abbiamo poi proseguito con: standard OTN (Optical Transport Network); Tool Command Language per il controllo di simulazioni HDL; Qi, uno standard per il trasferimento di potenza wireless; Intel e Altera, le ragioni di una acquisizione; FPGA con Cortex-M1; interfacciamento uomo-macchina. Buona lettura! La copertina di Firmware n. 127 Il sommario di Firmware n. 127 Tecniche di design per ridurre l’esposizione RF negli smartphone Lo standard OTN (Optical Transport …
CONVERSIONE SERIALE/DMX CON AVR Ecco come realizzare un convertitore da seriale verso il protocollo DMX tipicamente usato nel campo del controllo dei sistemi di illuminazione. L’hardware è piuttosto semplice: un AVR (90S2313) il cui UART (PD0 e PD1) sono connessi ad un MAX232, mentre il PB0 connesso ad un MAX485. Il sistema funziona con un cristallo da 4MHz e l’UART dovrà essere impostato su 19200bps, 8 bit dati, 1 stop bit e nessuna parità. Connettendo il sistema ad un PC via RS232 il protocollo di comunicazione consiste nei seguenti passi: Il PC invia all’AVR il byte 0xFF (comando START); Quindi viene …
Il microcontrollore Freescale (ora NXP) MCF5213 è dotato di un controller DMA a 4 canali per velocizzare le operazioni di accesso diretto alla memoria. MCF5213 rappresenta una famiglia di microcontrollori a 32 bit ad alta integrazione basata su un'architettura ColdFire e core V2 di Freescale Semiconductor (ora NXP). Ecco una descrizione dettagliata del modulo con i relativi segnali, registri e modalità di trasferimento dati. Introduzione I micro di questa famiglia dispongono di SRAM interna fino a 32KB e 256 KB di memoria Flash oltre a quattro timer a 32 bit in grado di inoltrare richieste in DMA, un controller DMA a …
Come molte altre attività di un comune flusso di sviluppo HW o SW, anche la simulazione di un circuito HDL può essere condotta sia tramite approcci più manuali, che richiedono il costante controllo da parte dell’operatore, sia tramite approcci più automatici, basati su strumenti che minimizzano la necessità di intervento umano e comportano molti altri vantaggi. Controllare una simulazione HDL tramite script vuol dire, infatti, poterla lanciare in qualunque momento senza costi che non siano il tempo macchina, poter documentare in un formato univoco ed eseguibile la sequenza di operazioni che descrive il test e poterne quindi tracciare eventuali …
Il multicontrollore Propeller è un dispositivo della Parallax inc. contenente otto processori RISC a 32 bit e può gestire direttamente un’uscita video VGA, videocomposito, una tastiera, un mouse. Ben otto processori 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 richieste dei singoli COG. Per questo motivo, per definire il Propeller, è più appropriato il termine multicontrollore. Introduzione I vantaggi di questa architettura sono molteplici. …
ARM Cortex-M1 a 32 bit è il primo processore progettato per l'impiego in FPGA. E' stato integrato nel software di progettazione Quartus II di Altera, configurabile come un componente nello strumento SOPC Builder. SOPC Builder è incluso nel software Quartus II ed è un potente strumento di sviluppo che consente di definire e generare un system-on-a-programmable-chip (SOPC) in meno tempo rispetto all'utilizzo di metodi di integrazione manuali tradizionali. Il processore Cortex-M1 viene fornito nel tool SOPC Builder con la proprietà intellettuale (IP), per consentire agli OEM di integrarlo rapidamente con le altre componenti del sistema. Il processore Cortex-M1 beneficia …
DS1305 è un Real Time Clock con porta I2C. Ecco come utilizzarlo con un PIC16F628 e come monitorarlo attraverso una connessione seriale RS232. REAL TIME CLOCK SPI CON PIC16F628 Lo schema di figura 1 mostra la connessione tra il modulo RTC ed il PIC, connessione effettuata mediante interfaccia SPI a tre fili. Per questa applicazione è possibile utilizzare anche un DS1306. Il PIC legge i dati dal DS1305 e li invia ad un PC attraverso una connessione RS232. La linea DTR della porta seriale è utilizzata per resettare il PIC ed avviare quindi il programma. La conversione dei livelli TTL/RS232 …
Quando Apple ha lanciato l'iPhone, quasi dieci anni fa, ha innescato una rivoluzione nel campo della progettazione delle interfacce utente per i sistemi embedded. Anche se i touch screen erano già in uso da alcuni decenni, ad esempio nei terminali CAD o nei sofisticati controlli industriali, l'integrazione dei gesti nelle interfacce uomo-macchina aprì la strada a molte nuove possibilità di interazione. Oltre al tocco, gli utenti hanno imparato gesti semplici come "pitch" e "zoom", pizzicare e allargare, e presto hanno iniziato a chiedere la presenza di maggiori funzionalità anche negli altri dispositivi utilizzati. Introduzione Per i costruttori di una …
Le librerie software modulari, come la Elektor EFL (Embedded Firmware Library), presentano numerosi vantaggi, ma il loro utilizzo in un progetto in fase di sviluppo richiede degli step addizionali, spesso non alla portata del principiante. In questo articolo descriveremo un'applicazione basata su script che, con un semplice click del mouse, è in grado di generare un nuovo progetto EFL in Atmel Studio. I lettori più esperti potranno inoltre trovare dei suggerimenti su come ridurre l'utilizzo della memoria richiesta dal firmware prodotto. Introduzione Le librerie software modulari come le EFL presentano numerosi vantaggi (analizzati a fondo in [1]), in particolare …
CONFIGURAZIONE DEL MODULO PWM DEL PIC16F877 I registri usati per la configurazione del modulo PWM sono: TRISC, PR2, CCP1CON, CCP2CON, CCPR1L, CCPR2L e T2CON. Tipicamente il modulo PWM viene utilizzato per il controllo dei motori. È dunque molto importante determinare la frequenza e la larghezza dell’impulso in base alla propria applicazione. Alcuni motori richiedono frequenze di impulsi relativamente basse (inferiori ai 5KHz) mentre altri richiedono frequenze più elevate, tipicamente dell’ordine dei 15-20KHz. Il listato 1 mostra come utilizzare il modulo PWM del PIC16F877 con i compilatori CCS. #include <16f877.h> #ORG 0x1F00,0x1FFF {} /* Reserve memory for bootloader for the 8k 16F876/7 */ #device …
PILOTARE UN MODULO AD ULTRASUONI CON UN PIC16F877 Il modulo SRF04 è un dispositivo ad ultrasuoni che consente di rilevare la vicinanza di oggetti fino a 3 metri. Il sensore invia un segnale ad ultrasuoni e capta l’eco generato dagli oggetti vicini. Per determinare la distanza di un oggetto dal sensore è dunque necessario misurare il ritardo che intercorre tra l’invio del segnale e la ricezione dell’eco. Tale tempo, moltiplicato per la velocità del suono (che può essere considerata costante e pari a 347m/s) consente di ricavare la distanza dell’oggetto. Nel listato 1 la funzione che calcola la distanza dal sensore. …
È online EOS Top12 di giugno la nostra raccolta dedicata all'Elettronica e alla Tecnologia! Nel numero di questo mese troverete molti articoli e progetti dedicati a Raspberry Pi e non solo: serratura comandata con uno smartwatch e una Raspberry Pi; OpenWeatherMap, come vestirsi in base al tempo con Raspberry Pi; sensore PixyCam per Arduino e Raspberry Pi; fotocamera a infrarossi EYE-PI con Raspberry Pi; creiamo un gioco istruttivo con il RaspberryPi; architettura del dsPIC33F, il DSC della Microchip; 5 sistemi operativi per Raspberry Pi assolutamente da provare; il kit Robot NIBO Burger; disattivatore Wi-Fi di Droni con Raspberry Pi; …
Una analisi dettagliata dell’architettura interna del DSC (Digital Signal Controller) dsPIC33F di Microchip: un single chip con funzioni DSP ad elevate prestazioni per controllo industriale e sistemi audio. I DSC integrano al loro interno un potente microcontrollore 16bit e un DSP. La famiglia dsPIC33F comprende due categorie, la prima con una periferica CODEC per applicazioni audio o di riconoscimento vocale. La seconda comprende una periferica PWM a otto canali e si adatta ad applicazioni industriali per controllo motore o sistemi di conversione di potenza. Le tabelle 1 e 2 elencano i dettagli delle due famiglie con i principali IC. Introduzione I …
IL TIMER DEL PIC16F877 E I COMPILATORI CCS La periferica timer è una delle periferiche base messe a disposizione da un microcontrollore. Per i PIC, i compilatori CCS forniscono funzioni per la gestione di ritardi, per monitorare un tempo trascorso ed altre utilità legate appunto al timer del microcontrollore. Il PIC16F877 dispone di ben tre periferiche timer note come Timer0, Timer1 e Timer2. Questi sono sostanzialmente dei contatori incrementati automaticamente in base alla frequenza del clock secondo un eventuale fattore di scala impostato mediante prescaler. Timer0 è ad 8 bit mentre gli altri sono a 16 bit. Con i compilatori CCS …
È online EOS Top12 di maggio la nostra raccolta dedicata all'Elettronica e alla Tecnologia! Nel numero di questo mese troverete articoli di qualità sul mondo dei microcontrollori e molti progetti interessanti: Digital Signage; Kit sensori per Arduino; droni e relativi aspetti progettuali; alimentare il Raspberry Pi con una comune batteria; misura del rumore 2nV/√Hz e della reiezione a 120dB di segnali dell’alimentatore in regolatori lineari; monitor con tecnologia E Ink; IoT nell’agricoltura; motori passo-passo; approccio geometrico alla teoria dei numeri; un innovativo violino creato con la stampante 3D; controllo motore e servomotore per Arduino; periferiche analogiche della serie ADuC7000. …
USARE UN SENSORE DI PROSSIMITÀ AD INFRAROSSI Il GP2D12 è un sensore di prossimità ad infrarossi di tipo analogico utilizzato tipicamente per il rilevamento di ostacoli. Il sensore è costituito da un LED ad infrarossi la cui luce (invisibile all’occhio umano) viene riflessa dagli ostacoli e captata da un fotodiodo contenuto nel sensore stesso. La tensione di uscita del fotodiodo è proporzionale alla quantità di luce infrarossa captata quindi sarà tanto maggiore quanto più il sensore si trova vicino all’ostacolo. La tensione analogica in uscita dal sensore può essere inviata all’ingresso analogico di un PIC16F877 che lo converte in un valore …
Durante il normale funzionamento di un FPGA (se si è fortunati, quando ancora il dispositivo è in fase di test e debug) può capitare talvolta di trovarsi davanti ad un errore transitorio e sporadico che non è stato possibile catturare in fase di simulazione RTL del codice, per quanto bene si possa essere riusciti a riprodurre nell’ambiente di simulazione gli stimoli che consentono di osservarlo on-board. Errori di questa natura sono di norma associati ad una violazione di timing che è possibile individuare tramite una Static Timing Analysis oppure, nel caso in cui il design includa più di un …
PIC: OTTIMIZZARE LA VELOCITÀ CON IL COMPILATORE HI-TECH C Ecco alcuni consigli su come ottimizzare la velocità di esecuzione del codice nella programmazione dei microcontrollori PIC: La fase di inizializzazione del PIC è piuttosto lunga in termini di tempo di esecuzione; per aumentare al massimo la velocità è consigliato inizializzare per primi i registri nel bank 0 quindi quelli nel bank 1 e così via; Ricordarsi che non tutte le variabili necessitano di essere inizializzare; Ove possibile riordinare gli operatori aritmetici in modo da minimizzare l’uso da parte del compilatore del registro W o di locazioni temporanee; Per evitare …