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!

Pilotaggio del display di un Nokia 3310 con microcontrollore PIC

Pilotaggio del display di un Nokia 3310 con microcontrollore PIC Il display del telefono cellulare Nokia3310 è un LPH7779 da 84x48 pixel. In figura 4 lo schema della connessione del display ad un microcontrollore PIC16F877. Lo schema prevede l’uso di  una EEPROM per la memorizzazione dei caratteri. Nel listato 3 una serie di  routine  scritte in PICC (Hitech) per la gestione del display. Le routine prevedono la dichiarazione delle opportune  variabili, in partico- lare la variabile “bytefornokia” che costituisce il dato da inviare al display. void nokia_write_command(void) //”bytefornokia” viene inviato come comando { nok_dc=0; nok_cs=0; nokia_write_dorc(); nok_cs=1; } void nokia_write_data(void) //”bytefornokia” …

Modalità di indirizzamento nei dsPIC30F

Tutti i meccanismi per l’indirizzamento della memoria nel dsPIC: la tecnica PSV (Program Space Visibility), la tecnica con istruzioni Table, l’indirizzamento Modulo Addressing e la tecnica Bit-Reversed. Introduzione Per illustrare le varie modalità di indirizzamento per un  dsPIC30F è  necessario innanzitutto chiarire quale è la struttura della memoria dei dispositivi di questa famiglia.  La figura  1  mostra la mappa  di memoria del dsPIC30F6014. Lo spazio fisico termina all’indirizzo  0x27FF e la memoria  può  essere pensata composta da celle a 16bit  in cui ciascun byte ha un proprio  indirizzo (indirizzo pari per il byte meno significativo e dispari per quello più significativo). …

Riconoscimento automatico del baud-rate su microcontrollori 8051

Riconoscimento automatico del baud-rate su microcontrollori 8051 Nel listato 2 è riportata una tecnica per il riconoscimento automatico del baud rate nelle comunicazioni seriali. La soluzione riportata è scritta per un microcontrollore 8051, ma è facilmente modificabile per altri tipi di micro. Il baud rate viene calcolato assumendo che la comunicazione seriale sia di tipo 8-N-1. autobaud: mov tmod, #0x11 ;abilitazione timer #1 mov tcon, #0x00 clr a mov th1, a mov tl1, a autob2: jb p3.0, * ;attesa start bit jb p3.0, autob2 jb p3.0, autob2 ;Prolungamento dell’attesa jb p3.0, autob2 ;per evitare inneschi da rumore jb p3.0, autob2 jnb …

PIC10F, un piccolo grande microcontrollore

Primo microcontrollore al mondo  ad essere presentato nel case SOT-23, il PIC10F20x offre una soluzione miniaturizzata, ma robusta ed efficace per il controllo in soli 6 pin. Com’è chiaro agli utenti più attenti alle evoluzioni del mercato, Microchip ha negli ultimi anni spostato la strategia dei propri investimenti verso l’alta gamma (si pensi alle nuovissime famiglie a 16  bit  PIC24, dsPIC30, dsPIC33 e ai moltissimi componenti usciti nella famiglia ad 8 bit PIC18). Pur avendo effettuato una scelta strategica di questo tipo però, la casa di Chandler cerca naturalmente di mantenere il proprio primato nella vendita di microcontrollori ad 8 …

Generatore di numeri pseudo-random su microcontrollori 8051

Generatore di numeri pseudo-random su microcontrollori 8051 La generazione di numeri casuali può spesso causare inutili perdite di tempo. Nel listato 1 sono riportate due soluzioni per la generazione di numeri a 8 e 16 bit su microcontrollori 8051. .equ rand8reg, 0x20 ;one byte .equ rand16reg, 0x21 ;two bytes ;Generazione di un numero ad 8 bit. ;Il risultato viene posto nell’accumulatore. rand8: mov a, rand8reg jnz rand8b cpl a mov rand8reg, a rand8b:anl a, #10111000b mov c, p mov a, rand8reg rlc a mov rand8reg, a ret ;generazione del numero a 16 bit. ;Il byte meno significativo viene posto nell’accumulatore …

STM32F4 Discovery: Debug e Centralina Domotica

Siamo alla fine di questo piccolo viaggio alla scoperta della STM32 Discovery. Nei primi tre articoli (1°, 2° e 3°) abbiamo tentato di abbracciare quanti più argomenti possibili, cercando di ingolosire gli sviluppatori. In questo appuntamento impareremo ad usare le modalità di debug messe a disposizione da CoIDE ed da STMSTudio, un tool di debug più performante. Infine come sempre chiuderemo con un piccolo esempio pratico realizzando un piccolo progetto di domotica. Soddisfatti dal successo ottenuto nei primi tre articoli, segno di una community viva ed attenta, speriamo che questo non sia un arrivederci ma l’inizio di un proficuo …

EOS Top12 – Gennaio 2016

È online EOS Top12 di gennaio, la prima raccolta del 2016 dedicata all'Elettronica e alla Tecnologia! Nel numero di questo mese troverete articoli di qualità sul mondo dei microcontrollori e molti progetti interessanti: orologio “parlante” open source; 7 soluzioni per misurare la qualità dell’aria con Arduino e Raspberry Pi; una preziosa rassegna dei sistemi di sviluppo per microcontrollori; un modulo sensore radar di movimento dalle dimensioni decisamente ridotte; Raspberry Pi Wind measurement; il debugging con MPLAB; una sveglia imbattibile per il tuo risveglio; routine matematiche nei microcontrollori PIC Microchip; Air mouse; PID; Pancake CNC Machine; FreeRTOS. Se vi siete …

Microprocessore o microcontrollore multi-firmware

Microprocessore o microcontrollore multi-firmware Microprocessore multi-firmware Nei casi in cui uno stesso hardware può essere impiegato per diverse applicazioni differenziando esclusivamente il firmware, potrebbe risultare strategico implementare una tecnica di caricamento di diversi firmware a seconda dell’applicazione. Le diverse versioni di firmware risiedono tutte  sullo stesso chip e possono essere  selezionate a seconda le valore di opportuni  ingressi di controllo.  Una soluzione di questo tipo consente di abbattere i costi di produzione in quanto lo stesso identico hardware (incluso il micro con le varie versioni di firmware) è valido per tutte le applicazioni. Come esempio si supponga di disporre di …

Word Clock – Orologio “parlante” open source

Progetto completo di un World Clock realizzato con il PIC18F4620, completamente open source. Inizialmente verrà mostrato l'hardware di un orologio che usa le parole al posto dei numeri. Successivamente si descriverà il software con le routine che possono essere utili più in generale. Tutto il progetto può anche essere visto come un esercizio, con diversi spunti da prendere, e ce ne sono molti, dalla gestione della comunicazione I2C alla definizione di una macchina a stati finiti per gestire procedure Time-Safe attraverso interrupt. Ed infine si proseguirà con la descrizione dell'assemblaggio, del tutto in una cornice, nel vero senso della parola, …

Il formato dei file HEX nei microcontrollori

Il file HEX al microscopio: la struttura dei file in formato INHX8M. Il formato dei file HEX Il formato HEX di Intel (INHX8M) è quello generato dalla maggior parte dei compilatori ed è idoneo ad essere scaricato  direttamente  nella  memoria  del micro. Il formato prevede che il file sia composto da righe aventi la seguente formattazione: :BBAAAATTHHHH……HHCC Ciascuna linea inizia con i due punti (scritti in formato ASCII). BB sono due byte che indicano il numero di bytes contenuti nella riga. Nel caso del PIC tali byte vanno da 0x00 a 0x10. AAAA è un indirizzo esadecimale di quattro …

Sistemi di sviluppo per microcontrollori

Spesso la scelta di un microcontrollore è fortemente condizionata dalla disponibilità di sistemi di sviluppo. Ecco una rassegna di ciò che offre il mercato per poter scegliere il tool giusto per il micro giusto! LE SOLUZIONI PER FREESCALE Freescale  Semiconductor, leader nella tecnologia dei Microcontrollori  a 8Bit, e Distar, distributore specialista di prodotti  e marchi dal forte contenuto tecnologico, sono lieti di offrire un portafoglio microcontrollori molto ampio e articolato perfettamente supportati da una gamma completa hardware e software di sistemi di sviluppo per tutto il portafoglio prodotti. Demo ed Evaluation Boards Per la famiglia HC(S)08 sono disponibili diverse demo ed …

Moltiplicazione tra interi a 32 bit su microcontrollori Atmel AVR

Moltiplicazione tra interi a 32 bit su microcontrollori AVR Nel listato seguente una soluzione in assembler per eseguire il prodotto tra due interi a 32 bit su microcontrollori AVR. La variabile var1[3:0] contiene il moltiplicando (32 bit), var2[3:0] contiene il moltiplicatore  (32 bit), mentre il risultato viene allocato in var1[7:0]. Al termine dell’operazione viene restituito 0 nel registro lc. La routine occupa 21 words e non coinvolge alcun livello dello stack. mul32u: sub var17,var17 sub var16,var16 sub var15,var15 sub var14,var14 ldi lc,33 ;lc = 33; brcc PC+5 ;ciclo di calcolo add var14,var20 adc var15,var21 adc var16,var22 adc var17,var23 ror var17 ror var16 ror var15 …

Routine matematiche nei microcontrollori PIC Microchip

Dalla famiglia di microcontrollori PIC10F fino ai più potenti e versatili dsPIC, ecco le principali routine matematiche che consentono di fare dei microcontrollori Microchip delle vere macchine per il calcolo e l’analisi matematica. Per chi lavorando con un microcontrollore Microchip  della  famiglia  PIC16 si è  trovato  di fronte al problema di dover eseguire una moltiplicazione o una divisione ecco uno strumento applicativo per poter far uso di routine efficienti e bugs free. Le routine di Somma e Differenza I pionieri  della programmazione su Microchip,  ossia coloro i quali per primi iniziarono a sviluppare sui PIC16C54, di certo si chiesero come …

FreeRTOS: un sistema operativo real-time anche per microcontrollori AVR

FreeRTOS è un sistema operativo real-time (RTOS) che permette la commutazione tra vari task assicurandone la corretta esecuzione in base alla priorità del task stesso. Questo meccanismo dipende fortemente dall’architettura del microcontrollore. Ecco come implementare un RTOS, nello specifico FreeRTOS, su un microcontrollore AVR. Le applicazioni che utilizzano un sistema operativo real-time (RTOS) sono costituite da un insieme di processi (task) ed è compito  del sistema operativo eseguire i vari task ad intervalli di tempo ben definiti. Il kernel del sistema operativo prepara i vari processi per l’esecuzione o la sospensione ed un processo può anche autosospendersi (ad esempio nel caso …

Come leggere due ingressi e visualizzare i valori di picco in mikroBASIC

Visualizzazione di picco con mikroBASIC Il programma del listato 4 consente di leggere due ingressi analogici e visualizzare i valori di picco sulle porte PORTB e PORTD. L’effetto è simile a quello di un VU-meter a barra di LED. program PeakMeter sub procedure DoSample(dim byref OutPort as byte, dim Channel as byte) dim Sample as Integer dim OutPut as byte Sample = ADC_read(Channel) ‘lettura dell’ingresso analogico OutPut = 1 Sample = Sample - 128 while Sample > 0 OutPut = (OutPut << 1) or 1 Sample = Sample - 128 wend OutPort = OutPut ‘accensione dei LED in uscita …

EOS Top12 – Dicembre 2015

È online EOS Top12 di dicembre, i migliori articoli di Elettronica e Tecnologia! Nel numero di questo mese troverete articoli di qualità sul mondo dei microcontrollori e molti progetti interessanti: scopriamo come realizzare una maschera di Dart Fener o Ironman; 5 progetti da realizzare con Raspberry Pi il prossimo weekend; la lampadina WiFi più smart e conveniente del mondo; comunicazione su CAN-BUS con dsPIC30F; Retrogaming, scopri come giocare i tuoi Arcade preferiti con Raspgaming pi; Self-Programming con ATMEL megaAVR®; domotica e GSM; costruiamo una Desk weather station con Raspberry Pi; controllo motore in PWM con dsPIC30F; un microscopio professionale …

STM32 Discovery: Le Comunicazioni Seriali

Nelle prime due puntate abbiamo visto un po’ i concetti elementari legati ai microcontrollori, come ingressi ed uscite ed abbiamo sviluppato un paio di semplici progetti. In questa terza puntata “saliamo” di livello introducendo il concetto di comunicazione seriale che ci permetterà nei nostri progetti futuri di connettere la Discovery al computer ed ai sensori in grado di registrare una grande quantità di dati come ad esempio gli accelerometri. Nello specifico vedremo dapprima le periferiche USART, per poi passare all’I2C ed SPI. In questa 3° Puntata sulle STM32 Discovery (qui la prima e qui la seconda) come anticipato nel teaser …

Come scambiare un registro con W in assembler

Scambio di un registro con W in assembler Con un banale accorgimento è possibile scambiare il contenuto di un qualsiasi registro con il registro accumulatore W senza l’ausilio di un terzo registro di appoggio. L’accorgimento consiste nell’usare tre istruzioni XOR consecutive come mostrato  nel listato 3 (si ricorda che l’operazione XOR tra due bit restituisce un valore alto solo se i due bit operando sono diversi tra loro). Il listato 3 riporta un esempio scritto sottoforma di macro per PIC ed è facilmente trasportabile su altri microcontrollori. Per l’esempio si è supporto di voler scambiare il contenuto di W con quello di …

Self-Programming con ATMEL megaAVR®

I più recenti microcontrollori ATMEL della serie megaAVR® incorporano avanzate tecnologie che consentono il “Self-Programming” della memoria. Ecco cosa si può fare e come farlo. Esistono diversi approcci alternativi per la realizzazione di microcontrollori  con la possibilità di eseguire l’auto-scrittura delle memoria programma e le differenza stanno sostanzialmente nella dimensione dei blocchi della memoria codice e di boot, la dimensione del settore che può essere cancellato e riprogrammato, la gestione e la configurazione del settore di boot  e l’implementazione  di  tecniche di  sicurezza per la protezione del codice contro le programmazioni accidentali. La scelta della dimensione del settore che può essere …

Controllo Motore in PWM con dsPIC30F

La struttura della periferica PWM del dsPIC30F, le tecniche per la generazione della base dei tempi e tutto quello che si deve sapere per avere il massimo controllo su carichi induttivi ed in particolare il controllo motori. Il PWM, acronimo di Pulse Width Modulation, è una tecnica per il controllo di dispositivi analogici mediante segnali digitali generati tipicamente da un microcontrollore. La tecnica consiste nel modulare il duty cycle di un’onda quadra in accordo ad un segnale di controllo: il risultato è quindi una sequenza di impulsi aventi tutti la medesima ampiezza ma aventi una durata diversa in funzione di un segnale di …

Send this to a friend