Dubbio sui Pin Analogici

Buonasera a tutti, vi illustro il mio problema: considerando il circuito nel link figura1 — ImgBB utilizzo MATLAB per trovare la corrente e la potenza dissipata.
Qui però mi sorge il dubbio: i pin analogici A0 e A1 dissipano potenza? Inizialmente ho pensato di considerarli come un circuito aperto, ma dalle osservazioni fatte con MATLAB ho notato che, se è giusto il ragionamento adottato, i pin A0 e A1 assorbono corrente non trascurabile rispetto a quella che circola nel circuito.
È giusto il ragionamento che ho adottato per calcolare la potenza dissipata dai due pin o ci sono errori?
Questo è lo Script MATLAB:

clear all;
close all;
clc;

%Avvia la connessione con Arduino

a = arduino ('/dev/cu.usbmodem1411','Uno');

%Calcola la corrente nel circuito

v_in = 5; %V
r2 = 10000; %Ohm
r4 = 10000; %Ohm
v1 = readVoltage(a,'A0'); %V
v2 = v_in - v1; %V
v3 = readVoltage(a,'A1'); %V
v4 = v_in - v3; %V
r1 = r2 * v1 / v2; %Ohm
r3 = r4 * v3 / v4; %Ohm
i_a0 = (v1 / r1) * 1000; %mA
i_a1 = (v3 / r3) * 1000; %mA
r12 = r1 + r2; %Ohm
r34 = r3 + r4; %Ohm
r_t = r12 * r34 / (r12 + r34);
i = (v_in / r_t) * 1000; %mA
p_t = (i/1000) * v_in; %V
p_a0 = (i_a0/1000) * v2; %V
p_a1 = (i_a1/1000) * v4; %V
fprintf (1, '\nLa corrente nel circuito è di %13.10f mA.\n\n', i)
fprintf (1, '\nLa corrente entrante in A0 è di %13.10f mA.\n\n', i_a0)
fprintf (1, '\nLa corrente entrante in A1 è di %13.10f mA.\n\n', i_a1)
fprintf (1, '\nLa potenza in A0 è di %13.10f W.\n\n', p_a0)
fprintf (1, '\nLa potenza in A1 è di %13.10f W.\n\n', p_a1)
fprintf (1, '\nLa potenza totale è di %13.10f W.\n\n', p_t)

Vi ringrazio in anticipo!

Il ragionamento non l'ho capito. Per dire quanto assorbono i pin bisogna conoscere la loro resistenza (e quindi I=V/R e P=V2/R). Stando a quanto dicono qui si parla di svariati megaohm quindi assimilabili ad un circuito aperto. Quello che conta è dare il tempo alla capacità interna di caricarsi, il workaround presentato per letture da sorgenti ad elevata impedenza è quello della doppia lettura dopo un certo tempo scartando la prima, ma non mi sembra il caso del circuito in esame.

Le entrate analogiche hanno un condensatore Sample and Hold che deve essere caricato prima di ogni misura perché durante la conversione AD che avviene in diversi passi la tensione deve essere costante.
Il condensatore é molto piccolo ma anche il tempo di carica é piccolo percui il circuito deve poter erogare per brevi istanti ca 500µA ( impedenza sotitutiva della entrata analogica é ca 10kOhm)

Se il circuito non puó erogare tale corrente il condensatore interno non si caricherá alla tensione che é aplicata al entrata analogica e percui non misura giusto.

Risoluzione:

  1. mettere un condensatore da 0,1µF tra entrata analogica e massa
    oppure
  2. fare piú misure dello stesso pin e considerare solo l' ultima misura
    oppure
  3. mettere un amplificatore operazionale in configurazioen inseguitore di tensione.

Ognuna di queste tre soluzioni ha dei svantaggi.

Ciao Uwe

Claudio_FF:
Il ragionamento non l'ho capito. Per dire quanto assorbono i pin bisogna conoscere la loro resistenza (e quindi I=V/R e P=V2/R). Stando a quanto dicono qui si parla di svariati megaohm quindi assimilabili ad un circuito aperto. Quello che conta è dare il tempo alla capacità interna di caricarsi, il workaround presentato per letture da sorgenti ad elevata impedenza è quello della doppia lettura dopo un certo tempo scartando la prima, ma non mi sembra il caso del circuito in esame.

Prendo in esame il pin A0 (per A1 il ragionamento è analogo): non conoscendo la resistenza del pin stesso, ho trovato la corrente entrante in A0, che è esattamente quella uscente dal fotoresistore. Conosco anche il potenziale di questo tratto di circuito per cui ho calcolato la potenza come p = v * i. Ho cercato dei documenti che spiegassero bene come è costituito dal punto di vista elettronico il pin analogico ma non ne ho trovati.

uwefed:
Le entrate analogiche hanno un condensatore Sample and Hold che deve essere caricato prima di ogni misura perché durante la conversione AD che avviene in diversi passi la tensione deve essere costante.
Il condensatore é molto piccolo ma anche il tempo di carica é piccolo percui il circuito deve poter erogare per brevi istanti ca 500µA ( impedenza sotitutiva della entrata analogica é ca 10kOhm)

Se il circuito non puó erogare tale corrente il condensatore interno non si caricherá alla tensione che é aplicata al entrata analogica e percui non misura giusto.

Risoluzione:

  1. mettere un condensatore da 0,1µF tra entrata analogica e massa
    oppure
  2. fare piú misure dello stesso pin e considerare solo l' ultima misura
    oppure
  3. mettere un amplificatore operazionale in configurazioen inseguitore di tensione.

Ognuna di queste tre soluzioni ha dei svantaggi.

Ciao Uwe

Non ho ben capito.
Vi ringrazio entrambi per la risposta!

arnest96:
... Ho cercato dei documenti che spiegassero bene come è costituito dal punto di vista elettronico il pin analogico ma non ne ho trovati ...

Tutto quello che e' disponibile e' qui (pagina 98)

Comunque, fondamentalmente, l'impedenza interna dei pin analogici, quando settati come ingressi analogici ovviamente, e' sui 500 megaohm, quindi la corrente che loro "consumano", per cosi dire, e' dell'ordine dei nanoampere ...

Diverso e' il discorso della corrente di cui "hanno bisogno" per funzionare correttamente, cioe' per caricare in tempi utili il condensatore interno dei circuiti di conversione A/D ... quella e' di almeno 500uA (anche se per brevi periodi), quindi e' necessario che il circuito ESTERNO collegato al pin analogico abbia un'impedenza non superiore a 10K ... ad esempio, se ci devi leggere una tensione tramite un partitore resistivo, farlo con un paio di resistenze da 5K o simile e' ok, farlo con un paio di resistenze da 50K o 100K non e' OK, perche' la lettura delle variazioni non sarebbe precisa, o comunque non sufficentemente veloce ...

arnest96:
non conoscendo la resistenza del pin stesso, ho trovato la corrente entrante in A0, che è esattamente quella uscente dal fotoresistore.

E perché mai? La corrente che passa nel fotoresistore R1 si suddivide nel parallelo tra la resistenza di ingresso del pin A0 (decine/centinaia di megaohm in condizioni statiche, cioè quando il condensatore interno si è caricato) e la resistenza esterna R2. Alla fine praticamente tutta la corrente fluisce in R2, il pin "interferisce" per meno di un decimillesimo di essa.

Per non leggere valori alterati dal tempo di carica del condensatore interno, su ogni pin fai due letture intervallate da qualche millisecondo e tieni buona la seconda.

Claudio_FF:
E perché mai? La corrente che passa nel fotoresistore R1 si suddivide nel parallelo tra la resistenza di ingresso del pin A0 (decine/centinaia di megaohm in condizioni statiche, cioè quando il condensatore interno si è caricato) e la resistenza esterna R2. Alla fine praticamente tutta la corrente fluisce in R2, il pin "interferisce" per meno di un decimillesimo di essa.

Per non leggere valori alterati dal tempo di carica del condensatore interno, su ogni pin fai due letture intervallate da qualche millisecondo e tieni buona la seconda.

Si giusto sono in parallelo, errore mio, piuttosto grossolano. Sto iniziando a capire molto meglio il funzionamento, ma non ancora mi è chiaro perché si ha la resistenza in megaohm quando il condensatore interno si è caricato.. Cosa è questo condensatore interno e perché deve caricarsi affinché si abbia la resistenza in Megaohm? Inoltre mi pare di aver capito che, affinché si carichi, necessiti di una corrente in entrata di circa 500µA per brevi istanti, da come dice uwefed.
Grazie a tutti, davvero!

Se guardi alla pagina che ti ho indicato, vedi che non c'e' alcun condensatore interno "collegato direttamente al pin" ... il condensatore in questione fa parte della circuiteria "sample/hold" del convertitore A/D, quindi influisce per alcuni microsecondi (circa 15, se non ricordo male, ma potrei sbagliarmi) quando effettui la lettura in analogico (e conseguente conversione digitale interna) ... durante il resto del tempo non influisce sull'impedenza interna del pin in se' ...

Non e' il pin che "consuma" corrente, e' l'azione di carica del condensatore interno durante il ciclo di lettura (e solo durante quel ciclo) ... per il resto, se ci attacchi 5V, il consumo in corrente del pin in se e' circa 0.000000001A, cioe' circa 1 nanoAmpere ... basso a sufficenza ? :smiley:

Etemenanki:
Se guardi alla pagina che ti ho indicato, vedi che non c'e' alcun condensatore interno "collegato direttamente al pin" ... il condensatore in questione fa parte della circuiteria "sample/hold" del convertitore A/D, quindi influisce per alcuni microsecondi (circa 15, se non ricordo male, ma potrei sbagliarmi) quando effettui la lettura in analogico (e conseguente conversione digitale interna) ... durante il resto del tempo non influisce sull'impedenza interna del pin in se' ...

Non e' il pin che "consuma" corrente, e' l'azione di carica del condensatore interno durante il ciclo di lettura (e solo durante quel ciclo) ... per il resto, se ci attacchi 5V, il consumo in corrente del pin in se e' circa 0.000000001A, cioe' circa 1 nanoAmpere ... basso a sufficenza ? :smiley:

Il convertitore A/D è interno al Microcontrollore ed è necessario affinché sia possibile registrare i dati in input, che sono analogici? Questo mi pare di aver capito, o sbaglio?
Inoltre i risultati che hai menzionato (mi riferisco al valore del consumo in corrente del pin) come li hai svolti?! Non che non mi fida, anzi, ma vorrei poterli riprodurre per capire meglio e per giustificare, nella relazione che dovrò fare, ciò di cui stiamo discutendo. Grazie ancora, a tutti, siete molto gentili! :smiley:

Per il consumo istantaneo del circuito di conversione, mi sono basato su quello che dichiara il datasheet fra le varie caratteristiche necessarie (in genere non c'e' altro modo, dato che i circuiti interni non sono accessibili, che quello di fidarsi di quanto dichiarano i costruttori dei chip ... comunque qui, anche vedendo che lo stesso datasheet richiede un'impedenza di uscita di massimo 10K collegata ai pin analogici per effettuare correttamente la misura, si calcola che 5V su 10000 ohm fanno 500uA, quindi corrente minima richiesta da fornire all'ingresso per i pochi microsecondi necessari a caricare correttamente quel condensatore interno e' per forza quella, anche se nulla vieta di fornirne un po di piu ;)) ... per il consumo del pin in se, senza che esegua operazioni, e' semplice legge di ohm I=V/R, 5V su 500 megaohm danno 1 nanoAmpere :wink:

Si, i circuiti di campionamento sono interni al micro, fanno parte della sua struttura.

Etemenanki:
Per il consumo istantaneo del circuito di conversione, mi sono basato su quello che dichiara il datasheet fra le varie caratteristiche necessarie (in genere non c'e' altro modo, dato che i circuiti interni non sono accessibili, che quello di fidarsi di quanto dichiarano i costruttori dei chip ... comunque qui, anche vedendo che lo stesso datasheet richiede un'impedenza di uscita di massimo 10K collegata ai pin analogici per effettuare correttamente la misura, si calcola che 5V su 10000 ohm fanno 500uA, quindi corrente minima richiesta da fornire all'ingresso per i pochi microsecondi necessari a caricare correttamente quel condensatore interno e' per forza quella, anche se nulla vieta di fornirne un po di piu ;)) ... per il consumo del pin in se, senza che esegua operazioni, e' semplice legge di ohm I=V/R, 5V su 500 megaohm danno 1 nanoAmpere :wink:

Si, i circuiti di campionamento sono interni al micro, fanno parte della sua struttura.

Grazie mille, davvero! :wink:

Etemenanki:
per i pochi microsecondi necessari a caricare correttamente quel condensatore interno e' per forza quella

Una piccola nota, il condensatore usato per il S&H degli AVR è da 14 pf, con 10k in serie il tempo per carica/scarica da 0V-5V, 5V-0V, è pari a ~7*RC ovvero 0.98us, la corrente è al valore massimo di 500 uA per meno di 10 ns, poi scende a zero seguendo la classica curva dei circuiti RC.
Il resto del tempo fino a 13 us, tempo minimo per il completamento del ciclo di conversione ADC, è utilizzato dal convertitore SAR per trovare il valore numerico della tensione campionata.
Altro dettaglio, l'impedenza d'ingresso del ADC, quando non viene effettuata la conversione, ha come valore tipico 100 Mohm, ovvero con 5V al massimo assorbe 50 nA.
Quando si dimensiona l'input al ADC degli AVR è necessario tenere conto che l'impedenza d'uscita, della circuiteria su cui si effettua la misura, deve essere "Z <= 10k", nel caso del classico partitore resistivo come unica condizione minima basta che la R equivalente, applicando Thévenin ovvero il parallelo delle due R, del partitore resistivo sia pari a 10k, per essere sicuri di non sbagliare basta imporre la R tra ingresso ADC e GND pari a 10k, in questo modo c'è la certezza matematica che la Z vista dal ADC è sempre minore di 10k.

astrobeed:
... 100 Mohm ...

... pensavo piu verso i 500 ...

Rimane comunque una corrente abbastanza bassina :smiley: ...

Etemenanki:
... pensavo piu verso i 500 ...

Rimane comunque una corrente abbastanza bassina :smiley: ...

Infatti sfogliando il documento che mi hai suggerito, non ho trovato i 500 MΩ, ma 100.. comunque grazie! Sembra tutto molto facile visto da fuori, ma osservando nel particolare si capisce bene la complessità.. Che dire, figata assurda! ahahah :smiley: