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!

Lo sviluppo di FPGA con Cortex-M1

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 …

Real time clock SPI con PIC16F628

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 …

FTDI porta la tecnologia touch nei progetti esistenti grazie all’Embedded Video Engine

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 …

Atmel Studio: come realizzare progetti C con un semplice click

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

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

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. …

EOS Top12 – Giugno 2016

È 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; …

Architettura del dsPIC33F: il DSC della Microchip

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

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 …

EOS Top12 – Maggio 2016

È 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

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 …

Il problema del CDC (Clock Domain Crossing) negli FPGA

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

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 …

Gestione del sensore di temperatura 1-WIRE DS1820 con AVR

La gestione del sensore di temperatura 1-wire DS1820 con AT90S2343-1: le routines di lettura, setup, invio comandi e conversione in linguaggio assembler. Ecco come leggere il sensore di temperatura DS1820 utilizzando il protocollo 1-wire implementato  su un AT90S2343-1 con oscillatore RC interno a 1MHz. Il sensore è connesso alla portb0. Il listato 1 riporta la routine  integrale. Oltre a mostrare la gestione del sensore 1-wire, la routine mostra anche la conversione del  valore di  temperatura  letto  dal  sensore e  la gestione degli eventuali errori di lettura. ;************************************************************ .equ convert_t= $44 .equ tx= $be .equ led=3 .def temp= r16 .def shift= r17 …

EOS Top12 – Aprile 2016

È online EOS Top12 di aprile, 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: Aperitivo Tecnologico, il nuovo evento organizzato dallo staff di Elettronica Open Source; C-Control, soluzioni per l’automazione; le soluzioni ARM Cortex-M per il Wearable e IoT; ZUBI, un progetto hardware e software per gestire la stampante 3D wireless; una serie di esperimenti con la Demo Board Freescale HC08; Robot Beginner KIT V2; HOVR, un innovativo dispositivo per bruciare calorie a lavoro; programmazione in C; monitoraggio wireless delle stampanti 3D …

Luxmetro con range da 1 a 100 klx

Le tradizionali lampadade ad incandescenza sono state gradualmente tolte dalla produzione in numerosi paesi, inclusa l’Europa e il Canada. Sono rimaste in produzione le lampade alogene, le lampade ad alta efficienza energetica, e le lampade a led, più efficienti rispetto a quelle ad incandescenza. Tuttavia, quando si vuole scegliere il modello di lampada più efficiente, non resta che fidarsi dei dati forniti dal produttore. Sappiamo che fidarsi è bene, ma è sicuramente meglio essere in grado di eseguire le misure da soli. Il luxmetro descritto in questo progetto è proprio lo strumento che occorre per questo scopo. Introduzione Quando si …

Programmazione degli ADuC via seriale

Una panoramica sul microcontrollore ADuC, della Analog Devices e l’analisi del protocollo utilizzato per la sua programmazione. La famiglia degli ADuC, basata sul core 8052, comprende diverse varianti a seconda del progetto a cui essi sono destinati.  Perciò sono identificati  da un valore numerico, proprio come un normale circuito integrato. I modelli e loro caratteristiche Introduzione: Gli ADuC rappresentano un ottimo condensato di elettronica mixed-signal, in quanto sono dotati al loro interno, oltre ad un core 8052, anche un ADC, DAC e dei banchi di memoria programma e dati (Figura 1). La tabella 1 elenca i vari modelli ed i …

Porting del codice da IAR-C a GCC/WINAVR

PORTING DEL CODICE Per chi usa microcontrollori  AVR, può  essere  utile sapere che con piccoli accorgimenti è possibile compilare con GCC/WinAVR il codice scritto per IAR-C. Ecco alcuni utilissimi consigli. Registri e  locazioni  di  memoria  possono avere diversi alias definiti nei files .H di IAR e di WinAVR. È dunque consigliato editare tali file per avere uniformità nella nomenclatura. Inoltre i file .H non vengono richiamati automaticamente ma devono essere inclusi esplicitamente utilizzando la direttiva #INCLUDE. In IAR le routines di interruzione vengono gestite utilizzando la direttiva #PRAGMA: #pragma vector=TIMER0_0VF_vect __interrupt void NomeRoutine(){ //codice della routine } In WinAVR la …

Routines per la copia di blocchi di memoria su AVR

Nelle applicazioni embedded è spesso necessario spostare interi blocchi di memoria dalla FLASH alla SRAM o all’interno della SRAM stessa. Ecco una serie di routine assembler (o assembly) per microcontrollori AVR di Atmel ottimizzate per lo spostamento di blocchi di dimensioni fino a 256 bytes. La routine flash2ram consente la copia di un blocco di  memoria  dalla  FLASH alla  SRAM. Per la copia di un blocco di dati all’interno  della SRAM, verrà illustrata la routine  ram2ram. LA COPIA DA MEMORIA FLASH A SRAM I parametri richiesti dalla routine flash2ram sono tre: flashsize,  Z-pointer e Y-pointer.  Il primo specifica la dimensione del …

Esperimenti con la Demo Board Freescale HC08

Un economico kit di sviluppo di Freescale (ora NXP) permette di esplorare in maniera semplice e veloce le possibilità dei micro HCS08. La DEMO9S08QG8  è una scheda di sviluppo a basso costo dedicata al microcontrollore  MC9S08QG8 che mette a disposizione tutto  il necessario per iniziare a sviluppare delle applicazioni per questo microcontrollore  e per testarle. Ecco una serie di esperimenti utili per conoscerli e iniziare ad usarli. LA DEMO BOARD HC08 La scheda monta un debugger integrato (BDM) accessibile via USB che permette di programmare il microcontrollore ed eseguire il debug in-circuit dei programmi. Con la scheda sono forniti  anche …

Send this to a friend