Anteprima
Vedrai una selezione di 14 pagine su 61
Appunti Laboratorio di Misure Pag. 1 Appunti Laboratorio di Misure Pag. 2
Anteprima di 14 pagg. su 61.
Scarica il documento per vederlo tutto.
Appunti Laboratorio di Misure Pag. 6
Anteprima di 14 pagg. su 61.
Scarica il documento per vederlo tutto.
Appunti Laboratorio di Misure Pag. 11
Anteprima di 14 pagg. su 61.
Scarica il documento per vederlo tutto.
Appunti Laboratorio di Misure Pag. 16
Anteprima di 14 pagg. su 61.
Scarica il documento per vederlo tutto.
Appunti Laboratorio di Misure Pag. 21
Anteprima di 14 pagg. su 61.
Scarica il documento per vederlo tutto.
Appunti Laboratorio di Misure Pag. 26
Anteprima di 14 pagg. su 61.
Scarica il documento per vederlo tutto.
Appunti Laboratorio di Misure Pag. 31
Anteprima di 14 pagg. su 61.
Scarica il documento per vederlo tutto.
Appunti Laboratorio di Misure Pag. 36
Anteprima di 14 pagg. su 61.
Scarica il documento per vederlo tutto.
Appunti Laboratorio di Misure Pag. 41
Anteprima di 14 pagg. su 61.
Scarica il documento per vederlo tutto.
Appunti Laboratorio di Misure Pag. 46
Anteprima di 14 pagg. su 61.
Scarica il documento per vederlo tutto.
Appunti Laboratorio di Misure Pag. 51
Anteprima di 14 pagg. su 61.
Scarica il documento per vederlo tutto.
Appunti Laboratorio di Misure Pag. 56
Anteprima di 14 pagg. su 61.
Scarica il documento per vederlo tutto.
Appunti Laboratorio di Misure Pag. 61
1 su 61
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Il nostro compito a lezione: a ogni pressione del tasto generiamo una tensione che cresce con un passo di 500 livelli per poi riazzerarsi.

Cosa da fare:

  1. Usare il programma della volta scorsa, l'interruzione sul pulsante EXT0.
  2. Abilitare il clock per GPIOA, SYSCONFIGCONTROL, DAC.
  3. Impostare PA4 come uscita del DACOUTPUT1.
  4. Impostare PA0 su EXT0.
  5. Smascherare EXT0.
  6. Lavorare sul fronte di salita.
  7. Impostare il NVIC in posizione 6.
  8. Utilizzare il canale 1.

Quando si desidera utilizzare l'uscita 2, si deve utilizzare PA5, ma ci sono alcune note da considerare.

luogo posso scegliere quale trigger utilizzare,io scelgo di usare il software trigger, per poterlo usare, devo mettere innanzitutto TEN a 1, nel Control Register devo andare ad impostare quel Trigger Enable per il canale 1 pari a 1, per poter4 giovedì 13 gennaio 2022utilizzare il software trigger devo andare a mettere 111, quindi TSEL 0,1,2 devono essereimpostati tutti e tre a 1, dopo devo abilitare il canale (EN1).Dopo questo e ho anche abilitato l’interruzione, devo mettere nel DHR un valore inizialeconosciuto, ad esempio 0 (prima di abilitarlo), dopo nel EXT0 scatta l’IKhandler, quindi possoassegnare una variabile j di appoggio al DHR, dove questa variabile deve essere pre-assegnataè sarà il primo che le assegnerò appena premo il pulsante, ogni volta che premo il tasto nellaIKHANDLER(ho cercato ovunque questo registro, anche sui manuali e sui tuoi appunti di ieri manon trovo il nome preciso) vado a incrementare questa variabile j, come ho

costruito il programma, io nella IKHANDLER assegno il vecchio valore della variabile di stato j al DHR, dopo di che vado a incrementare la variabile j, devo verificare che quando ho raggiunto il mio valore massimo che è 4095, ovvero 12 bit, dopo di che anche se premessi non succederebbe nulla, quando supero questo valore torno nel punto iniziale. IL PROF HA FATTO UN CONTATTO ELETTRICO UTILIZZANDO UN APPOSITO PONTICELLO TRA PA4 E PE8, IO SO CHE PE8 è COLLEGATO AD UN LED, PRIMA DI COLLEGARE HO FATTO GIRARE IL MIO PROGRAMMA FINO A AD AVER IMPOSTATO COME VALORE ANALOGICO PE8, PROPRIO PERCHÉ IO GLI DO DEI VALORI DISCRETI MA PRESSO CHE ANALOGICI MA NON GLI AVREBBE FATTO PIACERE RICEVERE QUESTI INGRESSI, QUINDI PRIMA LO CONFIGURO COME ANALOGICO PE8 E POI STO TRANQUILLO DI POTER UTILIZZARE IL LED, CHE è ACCESO MA è MOLTO FLEBILE, siccome il LED ha una soglia di accensione, io posso anche dargli più corrente, in maniera tale da farlo illuminare di

più—> luceintensa5

LEZIONE 8

Oggi ci occuperemo di un argomento molto importante, l’ADC, ovvero il convertitore digitale-analogico del nostro microcontrollore.

L’ADC è una delle periferiche più importanti del nostro microcontrollore perché l’uso del microcontrollore come sappiamo è agganciato a una parte sensoristica che prende informazioni dal mondo esterno (e anche interno ma lo vedremo più avanti).

L’utilizzo dei sensori è fondamentale (come i sensi per l’essere umano, necessari per prendere delle decisioni).

I sensori molo spesso sono ancora analogici, cioè forniscono in uscita una grandezza elettrica che è proporzionale alla grandezza monitorata.

Sappiamo che questa grandezza, che sia tensione o corrente, per la legge di Ohm possiamo trasformarla in tensione e dunque avere un convertitore analogico-digitale ci consentirà di andare a post-elaborare le informazioni prese dal mondo.

esterno e in base a quello scegliere se compiere delle azioni. IL nostro microcontrollore è formato da 4 ADC, che sono pensati per lavorare a coppie di 2 (ADC1-ADC2 E ADC3-ADC4), il clock infatti si attiva su 2 ADC alla volta. Usare 2 ADC può garantire un incremento della frequenza di campionamento. Questi ADC sono di tipo SAR, di tipo seriale e seguono un algoritmo di approssimazione successiva. Gli ADC sono a 12 bit. Gli ADC possono arrivare fino a 19 canali multiplexati. Significa che noi abbiamo un multiplexer in ingresso, questo multiplexer consente di passare alla parte vera e propria di conversione i canali di ingresso. Ci sono diverse modalità di conversione, si passa da modalità singola a modalità continua con la possibilità di seguire delle scansioni, ovvero posso andare ad acquisire un solo canale o fare una scansione e poi ricominciare con la scansione successiva. Visto che il dato è memorizzato in un registro a 16 bit scegliamo l'allineamento,

E tipicamente utilizziamo l'allineamento a destra. Ci sono poi delle funzionalità avanzate che non tratteremo (tipo le soglie dopo le quali viene lanciata un'interruzione).

Gli ADC sono mappati su bus AHB, troveremo quindi su questo un bit per abilitare il clock della parte logica dell'ADC.

Dobbiamo anche occuparci del clock per utilizzare questo oggetto (un clock che necessitano gli ADC per la frequenza di campionamento) è possibile sia usare il clock di sistema e sia collegarlo a sorgenti esterne (caso dello scaldabagno che non ha senso campionare la temperatura ogni 60 nanosecondi).

Abbiamo la possibilità di cambiare risoluzione e potremmo volerlo fare sia per questioni di memoria ma anche perché essendo un SAR se riduciamo la risoluzione si riduce anche il tempo di campionamento (perdendo però risoluzione).

Esistono canali veloci e canali lenti, tra questi varia proprio la parte hardware che garantisce ad esempio tempi di campionamento minori.

però più sono veloci i canali e più costano quindi è necessario ridurre il numero dei canali veloci. Esistono due modalità di conversione:
  • Single-ended: possibilità di convertire la differenza di potenziale tra il canale e la massa
  • Different (Differenziale): possibilità di convertire la differenza di potenziale tra due canali consecutivi.
Noi non utilizzeremo la modalità differenziale ma è necessario conoscerla poiché nell'ambito delle misure sono molto utilizzate per abbattere i rumori. Gli ADC sono dotati di un sistema di auto calibrazione che utilizzeremo prima di usarli poiché vanno calibrati prima di eseguire qualunque tipo di operazione. Negli ADC è possibile andare a selezionare un tempo di sample per ciascun canale. Che cos'è il tempo di sample? (Se cerchi su Wikipedia "Sample and Hold" lo trovi) Questo valore dipende dal segnale e dall'applicazione che si vuole.realizzare ed è il tempo necessario per caricare ilcondensatore. Non deve essere né troppo breve (condensatore non carico) e ne troppo lungo(frequenza persa), ma la sua scelta è davvero difficile tanto da essere argomento di molti trattati.Anche ADC può lavorare con DBA.La conversione può essere dettata sia via software e sia via hardware (dai trigger output dei timerper dettare il tempo di campionamento).Il segnale di inizio invece deve essere dato esclusivamente via software.Un ADC è fatto in questo modo: I canali degli ADC non sonoconfigurabili, ovvero non possoscegliere un qualunque pin da collegaread un canale, sono già fissati.Come faccio a capire quale pin ècollegato ad un determinato canale?Nel manuale DataSheet delmicrocontrollore, NON in quello dellascheda.Il generatore di tensione di riferimento (ADVREGEN) va abilitato quando l’ADC è disabilitato,almeno 10 microsecondi prima che sia eseguita qualunque

altra operazione sull'ADC. Esiste una sequenza per abilitarlo in maniera tale da essere certi di voler abilitare questo generatore. La sequenza consiste nel far cambiare 2 volte i bit di abilitazione. Si passa dal valore di default 10 (disabilitato), al valore 00 (reset) e infine a 01 (abilitato). Viceversa per disabilitarlo.

Sempre con ADC disabilitato va configurata la modalità di input (single ended o differenziale). Ciascun ADC fornisce una procedura di calibrazione che va fatta dopo aver abilitato il generatore e aver abilitato il clock. Se non si imposta prima il clock la calibrazione non funziona perché non ha un clock su cui lavorare. Prima di abilitare la calibrazione va comunicata attraverso il bit ADCALDIF la modalità di input (0 single-ended e 1 differential).

Per abilitare la calibrazione pongo il bit ADCAL pari a 1. Come faccio a sapere quando ha finito la calibrazione? Il bit ADCAL quando è finita la calibrazione viene resettato ritornando a 0.

Una volta

che tipo di conversione effettuare, se singola o continua, e impostare eventuali altre opzioni come la modalità di trigger o la risoluzione della conversione. Per selezionare un canale, devo impostare il valore corrispondente nel registro ADC_SQR1 per i canali veloci o nel registro ADC_SQR3 per i canali lenti. Inoltre, devo abilitare il canale tramite il registro ADC_CHSELR. Una volta selezionato il canale, posso avviare la conversione impostando il bit ADSTART a 1 nel registro ADC_CR. Durante la conversione, posso monitorare lo stato dell'ADC tramite il bit EOC nel registro ADC_ISR, che viene settato a 1 quando la conversione è completata. Una volta ottenuto il risultato della conversione, posso leggerlo dal registro ADC_DR. Infine, per disabilitare l'ADC, devo impostare il bit ADDIS a 1 nel registro ADC_CR.è il tempo di sample, per ogni canale ci sono 3 bit che in base alla configurazione di questi bit variano i colpi di clock. Il tempo totale di conversione è pari a: Il 50% del ADC clock cycles nasce dal fatto che ci sono dei ritardi all'interno delle circuiterie e di cui vatenuto conto. Nella modalità di conversione singola devo porre il bit CONT = 0. Nella modalità di conversione continua devo porre il bit CONT = 1. Per scegliere la sorgente del trigger esterno devo settare i 4 bit di EXTSEL. Queste le varie possibilità: Per scegliere invece il fronte di salita o discesa devo settare i 2 bit di EXTEN: Andremo quindi a utilizzare in coppia un timer e un ADC dove l'ADC sarà impostato per lavorare con il trigger hardware e in particolare la sorgente sarà proprio quel timer. (Questa è una cosa che faremo sempre). Ci sono poi dei bit all'interno del registro di configurazione che ci consente di scegliere quale deve
Dettagli
Publisher
A.A. 2021-2022
61 pagine
4 download
SSD Ingegneria industriale e dell'informazione ING-INF/07 Misure elettriche e elettroniche

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher fabiown di informazioni apprese con la frequenza delle lezioni di Laboratorio di Misure e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Tocchi Alessandro.