Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Microcontrollori....mi date qualche info ?

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto UtenteIsidoroKZ, Foto UtenteBrunoValente, Foto Utentecarloc, Foto Utenteg.schgor

0
voti

[11] Re: Microcontrollori....mi date qualche info ?

Messaggioda Foto Utentesisi » 24 mag 2011, 14:53

Comincio a capire qualcosina....almeno leggendo i datasheet comprendo più di prima.

Una domanda...scusa ma sono un po' curioso....


1) vedo che i micro hanno delle porte con possibilità di generare un PWM.
Se genero un segnale da queste porte uso il Timer e suoi comparatori.
Al contrario se genero sempre un PPM , ma da porte senza PWM...dovrò dare sempre dei tempi Ton e Toff usando il clock/timer comune a tutti ( ??? ) forse meno preciso del primo.
All' atto pratico cosa cambia tra i due segnali ....tra quello generato attraverso una porta con PWM e una senza ?????


Grazie
Avatar utente
Foto Utentesisi
5 3
New entry
New entry
 
Messaggi: 77
Iscritto il: 2 ago 2007, 21:59

0
voti

[12] Re: Microcontrollori....mi date qualche info ?

Messaggioda Foto UtenteTardoFreak » 24 mag 2011, 14:58

Adesso sono curioso io.
Portami un esempio, un datasheet, una definizione di "porta PWM".

Rimango in attesa.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,8k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15763
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[13] Re: Microcontrollori....mi date qualche info ?

Messaggioda Foto Utentesisi » 24 mag 2011, 15:17

ammazza come sei curioso.... :D
Sicuramente uso impropriamente il nome porta PWM...intendendo che posso usare un tot. di "moduli" PWM sulle porte in uscita.

Forse avevo un po' di confusione perché quando leggo cose del tipo:

The Arduino Duemilanove ("2009") is a microcontroller board based on the ATmega168 (datasheet) or ATmega328 (datasheet). It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz crystal oscillator, a USB connection....[CUT] ......

Controllando nei datasheet leggo che un certo micro ha un tot di PWM hardware utilizzabili sulle porte.

Comunque mi rimane il dubbio di cosa cambia nel generare un PPM con delle semplici istruzioni che dicono HIGH per 1ms e LOW per 20ms...rispetto ad utilizzare un PWM ( penso utilizzando delle librerie ).


Grazie
Avatar utente
Foto Utentesisi
5 3
New entry
New entry
 
Messaggi: 77
Iscritto il: 2 ago 2007, 21:59

0
voti

[14] Re: Microcontrollori....mi date qualche info ?

Messaggioda Foto UtenteTardoFreak » 24 mag 2011, 17:00

Non cambia niente. Se pero' lo fai con istruzioni e ritardi il micro fara' quello e basta. I moduli servono perche' viaggiano da soli (piu' o meno) ed il micro si puo' dedicare a fare altro o a gestire altri moduli.
Inoltre generando segnali con moduli dedicati ottieni generalmente maggiore precisione.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,8k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15763
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[15] Re: Microcontrollori....mi date qualche info ?

Messaggioda Foto Utentesisi » 24 mag 2011, 17:21

OK, quindi sia in un modo che nell' altro usano sempre lo stesso timer .... giusto ?

Quello che viene chiamato JITTER, che mi sembra di aver capito essere un specie di errore dato di ritardi o anticipi...come posso valutarlo dalle caratteristiche del micro ? Non cambia nulla se lo genero con moduli PWM o via "SW" ?



Grazie ancora
Avatar utente
Foto Utentesisi
5 3
New entry
New entry
 
Messaggi: 77
Iscritto il: 2 ago 2007, 21:59

0
voti

[16] Re: Microcontrollori....mi date qualche info ?

Messaggioda Foto Utentemovlw » 24 mag 2011, 17:45

PPM e PWM sono due cose sostanzialmente differenti. Le periferiche PWM di un micro non consentono di norma di ottenere un PPM. Sono fatte per generare PWM che richiede meno informazioni rispetto ad un PPM.

La soluzione è scrivere un programma che comandi tutte le uscite tenendo traccia dei tempi in modo indipendente. Farlo per 12 canali è impresa difficile anche per un programmatore esperto. Devi certamente usare l'assembler che ti permette di avere controllo totale sui tempi esatti delle commutazioni e il jitter, se il lavoro viene eseguito come si deve, diventa sostanzialmente nullo.

Dodici canali con una risoluzione di 1 us richiedono un microcontrollore molto veloce e con un 8 bit è molto difficile tu possa riuscirci.
Avatar utente
Foto Utentemovlw
9 4
---
 
Messaggi: 120
Iscritto il: 11 mag 2011, 11:19

1
voti

[17] Re: Microcontrollori....mi date qualche info ?

Messaggioda Foto Utentecarloc » 25 mag 2011, 22:42

Certo farlo in un loop ... si può.. ma a parte l'eleganza c'è da dire che il processore non può fare nient'altro, in particolare andarsi a "leggere" in qualche modo i valori di impulsi da generare significherebbe "sballare tutte le temporizzazioni...

Io proverei così (esempio con 4 impulsi)...

* un timer -chiamato genericamente T0 ma poi dipende dal micro che usi quale convenga usare- un timer dicevo fissa la cadenza del gruppo di impulsi,come dire .... free run, autoreload, interrupt on overflow ma non voglio scendere nei dettagli che dipendono da che micro usi... ma sono funzioni che hanno tutti più o meno simili...

* il suo interrupt esegue il codice 1 che, carica nel timer T1 il tempo del primo impulso, setta l'uscita e avvia T1 (poche istrucioni che anche in C non prendono più di qualche decina di cicli macchina)

* ogni successivo interrupt di T1 inverte l'uscita e carica nel registro di compare dello stesso T1 il tempo successivo ( uno alto, uno basso, etc. etc...) e conta a che impulso siamo. Codice 2 , anche in questo caso sono poche istruzioni ed abbiamo invece almeno 300 us per eseguirle (minima durata di un impulso)

* arrivati all'ultimo impulso, codice 3, azzeriamo l'uscita, fermiamo T1 e aspettiamo... che T0 faccia ripartire tutto...

Anche con micro lenti, così a spanne ognuno di quei codici non prende più di 10-20us ogni minimo minimo 300us, questo è rappresentato (non in scala) nel grafico giallo... nel frattempo puoi leggerti una seriale in polling (o anche con un altro interrupt di priorità più bassa), o chissà da dove arrivano i dati da inviare ai servo....

Per l'uscita se fai come dicevo sopra hai un jitter che dipende dal fatto che la latenza dell'interrupt non è fissa ma qualcosa tipo da 4 a 6 cicli -numeri a crai- certo è poca cosa... 2 cilci di jitter a 20MHz sono 100 ns...non credoi che un servo se ne accorga... ma se vuoi strafare ci potrebbero essere dei modi di timer che all'interrupt o al match invertono l'uscita autonomamente, via hardware, e con jitter virtualmente nullo (mi pare che AVR ce l'ha ma documentati)
Se ti serve il valore di beta: hai sbagliato il progetto!
Avatar utente
Foto Utentecarloc
33,6k 6 11 13
G.Master EY
G.Master EY
 
Messaggi: 2134
Iscritto il: 7 set 2010, 19:23

0
voti

[18] Re: Microcontrollori....mi date qualche info ?

Messaggioda Foto UtenteTardoFreak » 25 mag 2011, 22:58

Con un timer a 16 o piu' bit con 2 comparatori (che possano far commutare l' uscita) e la possibilita' di utilizzarne uno per il reset si puo' fare (quasi) qualsiasi cosa, con ottima risoluzione e senza jitter.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,8k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15763
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[19] Re: Microcontrollori....mi date qualche info ?

Messaggioda Foto Utentemovlw » 25 mag 2011, 23:18

TardoFreak ha scritto:Con un timer a 16 o piu' bit con 2 comparatori (che possano far commutare l' uscita) e la possibilita' di utilizzarne uno per il reset si puo' fare (quasi) qualsiasi cosa, con ottima risoluzione e senza jitter.


Uno si, 12 no.
Avatar utente
Foto Utentemovlw
9 4
---
 
Messaggi: 120
Iscritto il: 11 mag 2011, 11:19

0
voti

[20] Re: Microcontrollori....mi date qualche info ?

Messaggioda Foto UtenteTardoFreak » 25 mag 2011, 23:21

Infatti. :ok:
E se pensiamo che un micro del genere di canali ne puo' anche avere due (senza andare a prendere micro galattici) in un contenitore da 8 pin direi che il problema e' risolto.
Poi, per carita', ognuno e' libero di incasinarsi l' esistenza come meglio crede.
Di modi per fare cose esagerate ce ne sono tantissimi. :mrgreen:
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,8k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15763
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

PrecedenteProssimo

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 72 ospiti