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!
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 …
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 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 …
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 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 …
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 (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 …
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 …
È 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 …
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 …
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 …
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 …
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 …
Il monitoraggio della temperatura è un compito di ingegneria molto diffuso e comune. Sia in laboratorio che in fabbrica, eseguire misure accurate ad alta risoluzione può essere difficile e costoso. Nell’ambito della Microchip, possiamo disporre di una serie di sensori di temperatura con un certo range tipico di accuratezza a temperatura ambiente che può variare da ± 1 °C fino a scendere al di sotto dell’unità per sensori high-precision. Tuttavia, a temperature estreme, l'accuratezza diminuisce in modo non lineare, tipicamente quadratica. In questo articolo descriveremo una tecnica di compensazione matematica per migliorare l’accuratezza di un sensore in un determinato …
Lettura con bilanciamento di carica con microcontrollore Ecco un’altra tecnica di lettura di sensori analogici adatta in tutte le applicazioni in cui è necessaria una buona accuratezza. La tecnica, nota come metodo del bilanciamento di carica, prevede la carica di un condensatore da parte del sensore e la scarica dello stesso attraverso una resistenza di riferimento. Il microcontrollore inserirà la resistenza di scarica per opportuni intervalli di tempo in modo da mantenere costante la carica media del condensatore. La lettura del sensore viene determinata contando quante volte la tensione sul condensatore supera una tensione di riferimento arbitraria. Questa tecnica è …
Una panoramica sul protocollo di comunicazione CAN (Controller Area Network) ed un approfondimento sull'utilizzazione del canbus con il dsPIC30F. Inoltre un interessante studio sugli interrupt e sulla gestione errori del modulo CAN del dsPIC30F. Il sistema di comunicazione CAN risale alla fine degli anni ’80 ma solo verso la metà degli anni ’90 prende piede nel settore automotive. Vista la sua robustezza ed immunità al rumore, la sua applicazione si è allargata fino a coinvolgere il settore elettromedicale e dell’automazione industriale e oggi è considerato uno dei protocolli di trasmissione più utilizzati in campo industriale. Le specifiche del protocollo sono …
Una famiglia di FPGA a basso consumo rende possibile il progetto di dispositivi USB con alimentazione a bus, minimizzando la temperatura, le perdite e le dimensioni del die. Con diversi miliardi di dispositivi presenti sul mercato, l’interfaccia USB (Universal Serial Bus) è l’interfaccia d’elezione per le connessioni a velocità inferiori al gigabit fra host e dispositivi periferici. Tuttavia, a causa delle forti limitazioni in termini di corrente operativa di spunto ed allo stato stazionario previste dalla specifica USB, gli FPGA spesso non sono neppure considerati per le applicazioni alimentate a bus, a favore di soluzioni su microcontrollore, meno flessibili …
Le diverse tecnologie di produzione della program memory dei microcontrollori Flash di Microchip: le differenze tra le famiglie di microcontrollori PIC16 e PIC18, i metodi di scrittura e la gestione di un bootloader. La continua ricerca di migliori performance ed abbassamento dei costi dei dispositivi, ha portato allo sviluppo di diverse tecnologie di costruzione della Program memory. Ad oggi si possono pensare a quattro diverse tecnologie costruttive per realizzare la cella di memoria, ed in particolare si parla di: ROM o Read Only Memory. In questi microcontrollori, il codice di fatto viene univocamente definito in fase costruttiva, definendo una maschera …
È online EOS Top12 di novembre, i migliori articoli di Elettronica e Tecnologia! Nel numero di questo mese troverete articoli di qualità sul mondo dei microcontrollori e molti progetti interessanti: cominciamo con auricolari wireless, le prime cuffie senza fili con una perfetta aderenza all'orecchio; interfacce seriali SPI e I2C a confronto; convertitore AD dei microcontrollori PIC; Superenalotto, scopriamo le possibilità di vincita grazie al linguaggio C; ICD2 vs ICD-U; il driver perfetto per pilotare i LED; PIC 24F della Microchip; libreria per LCD 16×2 compatibile con Arduino M0 PRO; come gestire il debouncing nei microcontrollori; G-RO, una valigia rivoluzionaria; …
Come generare dei ritardi precisi nei microcontrollori grazie all'utilizzo dei cicli macchina NOP e delle istruzioni CALL e GOTO. Generare ritardi precisi con delle semplici istruzioni assembler Nel caso in cui sia necessario generare dei brevi ritardi, è possibile utilizzare una sequenza di istruzioni NOP ciascuna delle quali introduce un ritardo di 1 ciclo istruzione (per i PIC 1 ciclo istruzione corrisponde a 4 cicli di clock). Ecco alcuni accorgimenti per ottimizzare al massimo le dimensioni del codice. Per introdurre un ritardo di due cicli è possibile utilizzare due istruzioni NOP, ma lo stesso risultato è ottenibile impiegando una sola istruzione …