Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
A/D seconda parte
2
Conversione A/D La conversione da segnale analogico a digitale è importante per due motivi: Il segnale digitale è più preciso di quello analogico, nel senso che è meno sensibile ai disturbi esterni Ogni microcontrollore che si interfaccia ai segnali, lavora in digitale Come detto nella prima parte, prima di trasformare un segnale da analogico a digitale bisogna campionarlo Il teorema di Shanon ci da indicazioni sulla frequenza di campionamento fc>=2fmax
3
Teorema di Fourier Un qualsiasi segnale periodico, può essere ottenuto mediante la somma di un termine costante e di infinite funzioni sinusoidali e cosinusoidali, le cui frequenze sono multipli interi di quella del segnale
4
Caratteristiche Errore di quantizzazione:
Dove FS è la tensione di fondoscala, n è il numero di bit Risoluzione: variazione minima del segnale di ingresso in grado di determinare la variazione del codice digitale in uscita Accuratezza: differenza tra valore analogico in ingresso e il valore analogico in uscita Tempo di conversione tc Parametro fondamentale Importante è la seguente relazione
5
Esempio Determinare il valore massimo di frequenza di un segnale analogico sinusoidale che può essere convertito direttamente da un ADC a 8 bit con FS=10V e tempo di conversione 100s Dalla relazione della slide precedente si ricava che fmax<=12,4 Hz
6
A/D Alcuni microcontrollori sono dotati di convertitori A/D altri non sono dotati Per poter acquisire grandezze analogiche è necessario quindi, collegare un convertitore A/D esterno Il convertitore preso in considerazione è MCP3008 oppure MCP3208 I convertitori MCP300x e MCP320X sono dotati di x canali; nel nostro caso ci sono 8 canali MCP300X è un convertitore a 10 bit; MCP320X è un convertitore a 12 bit La comunicazione tra Raspberry e l’integrato MCP3Y0X avviene attraverso il bus SPI Serial Peripheral Interface Bus La comunicazione SPI è utilizzata per piccole distanze ed è full duplex ed è stato sviluppato dalla Motorola. Utilizza una architettura master-slave con un solo master e più slave
7
MCP300X-MCP320X
8
Pin per la comunicazione SPI
MOSI (Master Output Slave Input) - uscita dei dati dal micro verso la periferica MISO (Master Input, Slave output) - usato dalla periferica per trasmettere dati al micro SCLK - clock, generato dal micro CS: Chip Select
9
SPI La comunicazione SPI è abbastanza veloce, può raggiungere 10 Mbps
La lettura e la scrittura di un dato avviene sul fronte di salita o di discesa del clock. Ciò rende immune dal rumore. Si possono collegare più slave
10
SPI Un dispositivo SPI possiede due bit di configurazione detti CPOL Clock POLarity e CPHA Clock PHAse. CPOL determina lo stato idle del segnale di sincronismo CPOL=0 - segnale di clock è considerato idle quando è a livello logico basso. CPHA determina su quale fronte del segnale di clock vengono letti i dati CPHA=0 i dati in uscita dal Master vengono letti in corrispondenza del fronte di discesa e i dati in uscita dagli Slave vengono letti in corrispondenza del fronte di salita del segnale di clock.
11
SPI
12
SPI
13
MCP3004 ed MCP3008 MCP3208 è un convertitore A/D a 12 bit e 8 canali
MCP3008 è un convertitore meno recente a 10 bit e 8 canali. MCP3004 è un convertitore a 4 canali e a 10 bit Per aumentare il numero di canali, si possono collegare più device in parallelo Schema di conversione per MCP3008 o 3004 a 10 bit
14
MCP3204/MCP3208 Per il convertitore MCP300x è previsto uno shift dei bit diverso da quello del convertitore MCP320X; lo si può notare dal confronto tra questo schema e quello precedente Schema di conversione per MCP3008 o 3004 a 10 bit
15
MCP3008
16
MCP3204
17
MCP3208
18
MCP320X Liv 0 Liv 1 Liv 2 Liv 3 --------------------------------
bit0 bit 1 bit 2 bit 3 bit 4091 bit 4092 bit 4093 bit 4094 bit 4095 3.3 V L’integrato MCP3208 è a 12 bit, è quindi formato da 212=4096 livelli. La tensione di riferimento 3.3 V viene diviso per 4095 livelli; la risoluzione è quindi 3.3 V/4095= V
19
MCP300X Liv 0 Liv 1 2 3 ……………………………………………………………………………………………… Liv 1019 Liv 1020 Liv 1021 Liv 1022 Liv 1023 3.3 V L’integrato MCP3008 è a 12 bit, è quindi formato da 210=1024 livelli. La tensione di riferimento 3.3 V viene diviso per 1024 livelli; La risoluzione è quindi 3.3 V/1023= V
20
OUT 1 2 3 4 5 6 7 8 ch0 ch1 out adc[1]&11 adc[2]
21
CS, MOSI, MISO CS MOSI MISO canale D2 D1 D0 1 2 3 4 5 6 7 1 S D2 D1 D0
1 S D2 D1 D0 x ? B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 Dati inviati dal master MOSI Dati inviati dallo slave MISO canale D2 D1 D0 1 2 3 4 5 6 7
22
ADC0809/ADC0808
23
ADC0809/ADC0808 convertitore AD a 8 bit di uscita D0-D7 (e dunque 28=256 livelli di quantizzazione) e 8 canali di ingresso IN0-IN7 multiplexati internamente. Tabella degli indirizzi:
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.