TL; DR
Viene presentato un circuito basato su una topologia di regolatore, stabile in qualsiasi carico capacitivo, che include un diodo in serie con la corrente di uscita. La tensione sviluppata attraverso questo diodo è nominalmente il log della corrente, che consente di misurare un intervallo molto ampio di corrente con un singolo intervallo di tensione. Eccellente stabilità dinamica è stata dimostrata in simulazione.
A bassa corrente, il circuito è rumoroso e lento (nessuna grande sorpresa). I risultati attuali mostrano circa il +/- 5% di rumore efficace a basse correnti, per tempi di assestamento di 10 uS per correnti di 1 uA e superiori, aumentando a 1 secondo tempo di assestamento per correnti fino a 1 nA.
/ TL; DR
Sospetto che non ti serva un'alta precisione. Pensi solo di farlo a causa dell'enorme gamma da nA a 500mA. Ovviamente +/- 1nA a 500mA richiederebbe un'accuratezza collossale. Sospetto che sarebbe utile +/- 10% a 500mA contemporaneamente con +/- 10% a pochi nA e un singolo intervallo per coprire entrambi senza commutazione.
Il pensiero iniziale, che inizialmente ho lanciato come suggerimento, è mostrato in fondo al post come riferimento.
Sfortunatamente ha un difetto fatale. Mentre può indicare 1nA abbastanza bene, poiché la corrente aumenta improvvisamente, l'uscita opamp inizialmente non si sposta, a causa sia della sua compensazione interna che di C1. Di conseguenza, la tensione di uscita scende di oltre 1v (necessaria per far fluire la corrente attraverso Q1 e D1) per un momento, il che metterebbe gravemente in imbarazzo qualsiasi MCU fornita da quella linea.
La "soluzione" consiste nell'incorporare la capacità di disaccoppiamento della rotaia MCU nell'analisi. Tuttavia, la C in più sulla linea MCU provoca instabilità, poiché è in derivazione con l'ingresso di inversione opamp e praticamente non compensabile su una vasta gamma che vogliamo.
Quindi il pensiero successivo fu "questo è fondamentalmente un amplificatore di transimpedenza, sebbene con un resistore di feedback molto non lineare, come sono stabili?" Una rapida ricerca di quelli che mi hanno portato all'articolo di Bob Pease (RAP di Nat Semi, Bob Pease - deve leggere per qualsiasi designer analogico. Se non prendi nient'altro da questa risposta, scava e leggi alcune delle sue cose!)
Fu presto evidente che la presunta capacità sul nodo di inversione dell'amplificatore operazionale, sebbene grande rispetto a pF, era molto piccola rispetto ai 10uF che potremmo trovare su una linea VCC, e il tweaking ad alta velocità assumeva un resistore di feedback costante, quindi questa topologia è stata una non-partenza.
Quindi ho pensato che se non avessimo dato il via alla MCU quando la corrente cambia, deve comportarsi come un regolatore. Ho ricordato il tantalio contro i problemi dei condensatori di uscita in ceramica degli LDO. Le architetture che si basano sul mezzo ESR di un tantalio per essere stabili non sono stabili con la ceramica. Quando la topologia viene modificata per tollerare lo zero ESR della ceramica, possono tollerare qualsiasi valore elevato al di sopra del minimo specificato.
Per far fronte a un grande condensatore di uscita, è progettato per essere il polo dominante, con una sorgente di corrente in uscita che lo trasforma in un integratore, mantenendo il resto della catena di controllo con uno sfasamento inferiore a 45 gradi. Una volta fatto questo capovolgimento, il condensatore di uscita può essere di qualsiasi dimensione più grande e LDO sarà comunque stabile. Il condensatore di uscita del regolatore fornisce tutta la tensione trattenuta durante un evento di cambiamento di corrente.
Ora ho cercato le note dell'app LDO. Questo è il nuovo design come risultato. È sostanzialmente simile a quello originale nel concetto DC, ma è costruito attorno al condensatore di uscita e utilizza i trucchi impiegati dagli LDO progettati per la ceramica, per ottenere una stabilità sufficiente.
Analisi
Q2 è il dispositivo PNP passa serie, configurato con R2 per essere corrente. Quel particolare tipo è 1 Amp, 200 hfe 150, 50v, 400MHz ft parte abbastanza di qualità culinaria che era nella libreria LTSpice. I1 lo sottopone a un valore nominale di 10 mA, per ridurre il delta V richiesto quando improvvisamente richiesto per aumentare la corrente da zero e per fornire un sostanziale dissipatore di corrente per far fronte a un'improvvisa riduzione dell'uscita di corrente.
D1 è il nostro vecchio amico l'elemento non lineare attraverso il quale la corrente di uscita sviluppa la tensione di registro. Ho usato 1n4148 come era nella libreria. È unito da R1, per definire l'estremità inferiore dell'intervallo di corrente (10mV per 1nA), D3 per catturare le tensioni inverse quando la corrente diminuisce improvvisamente e C2 mentre migliora la stabilità e il superamento dell'uscita. Si noti che se 1N4148 viene sostituito da tipi 1n400x più robusti, la loro capacità più elevata sarà completamente assorbita da C2, quindi sono sufficientemente modellati per la stabilità.
Avrei modellato un TL071. Prima ho provato un LTC1150 che aveva un GBW di 1,5 MHz, ma ho lottato per ottenere una stabilità ragionevole. Sono quindi passato all'LT1022 mostrato. Questo è un po 'più veloce a 8MHz GBW, ma ci sono molte parti molto più veloci in giro.
La rete attorno ad essa include R3 per rilevare 0v, C3 per stabilità e R4 per aggiungere uno zero a C3, come suggerito nelle note dell'app LDO. Con questi valori, raggiunti da Hope'n'Poke, non è già male. Sono sicuro che potrebbe essere meglio con un po 'di analisi adeguata. Piuttosto che usare un amplificatore stabile con guadagno unitario ancora più veloce, dovrebbe essere meglio usarne uno scompensato.
Sembra certamente abbastanza stabile per lo scopo. Chiunque costruisca questo circuito per usarlo con rabbia può trovare alcuni parassiti non modellati che riducono la stabilità, ma suggerirei che iniziano con un amplificatore ancora più veloce per darsi un po 'più di spazio per il gomito.
I2 fornisce il caricamento corrente dipendente dal tempo per la demo. Come si può vedere dalla stringa del parametro, sta oscillando da 100pA a 100mA con risetime di 100nS (quindi cambiando corrente in un ciclo di 10MHz) e viceversa. Il diodo D2 fornisce un modo conveniente per la simulazione di mostrare la corrente di log e non fa parte del circuito target.
Quando faccio simulazioni, preferisco avere tutta l '"azione" intorno a 0v, quindi per le rotaie di -5, 0v e + 5v mostrate qui, leggi rispettivamente 0v, + 5v e + 10v per l'applicazione del PO.
Questa è la trama transitoria complessiva
Il valore DC iniziale della tensione di uscita è 0,5 mV per 100 pA, e quando vado da 1 nA, è di circa 5 mV, quindi abbiamo una discreta discriminazione a livello e al di sotto del livello di 1 nA.
C'è un leggero superamento del valore di misurazione quando la corrente aumenta.
La rotazione raggiunge i limiti del diodo quando la corrente diminuisce. C'è anche una coda di lettura di 20mS quando si passa da 100mA a 100pA, non so come migliorarlo, forse qualcuno ha un suggerimento. La coda è ancora presente quando si passa a 10nA, ma quando si scende a 100nA o più, la coda è assente. Per questa applicazione, immagino che vada bene.
Nei prossimi tre grafici, esamineremo l'importante stabilità della tensione della guida di uscita.
In aumento da 100pA a 100mA
Il transiente ferroviario in salita è solo 12mV e dead beat. Non troverai molti LDO commerciali che offrono quel tipo di prestazioni per un cambiamento di corrente così violento.
e sulla via del ritorno di nuovo a 100pA
Senza D3 per fornire una conduzione inversa, Vmeas oscillerebbe sulla rotaia -ve per un po 'anziché a -0,6v.
Anche il transiente ferroviario in discesa è limitato a 12 mV. È possibile vedere la rotazione verso il basso limitata dalla velocità che è il risultato del sink di corrente I1.
Non dirò che è una prova di principio, ma penso che sia un'ottima prova di plausibilità. La simulazione include molti parassiti, Q2 Miller C, la compensazione dell'opamp, e con le prestazioni che competono con un LDO, penso che sia una base abbastanza buona da cui iniziare a sviluppare qualcosa che può alimentare un MCU, a diverse correnti, leggendo su un grande gamma.
Questo mostra Vmeas come output. Come indicato nel post originale, l'accuratezza termica sarà migliorata se misurata rispetto a un altro diodo alla stessa temperatura. Vmeas è un'uscita a bassa impedenza, quindi questo è molto semplice da fare con un semplice amplificatore differenziale.
Come in precedenza, la sostituzione di R1 con un resistore di valore inferiore fornirà un'uscita di intervallo lineare più accurata, per tensioni per le quali D1 non conduce.
Problemi di rumore
Ora che è stato sviluppato un circuito stabile, possiamo iniziare a guardare il rumore. Il grafico seguente mostra il guadagno dall'ingresso dell'amplificatore operazionale, con un condensatore da 1nF montato su C2. Le curve coprono da 100pA a 100mA. Le curve 100pA e 1nA sono indistinguibili in blu brillante e molto vicine alla curva rossa 10nA. 1uA è rosa, 1mA è blu scuro, la curva 100mA è più bassa del viola.
L'uso della simulazione .noise di LTSpice e l'uso di .measure per integrare il rumore di uscita su una larghezza di banda da 10mHz a 10MHz, usando un condensatore da 33nF per C2, hanno prodotto un rumore relativamente costante di 2mV rms per correnti da 1nA a 100uA, con il rumore che cade all'aumentare delle correnti fino a circa 100 uV rms a 100 mA.
La penalità dell'aumento del valore di C3 è stata il tempo di assestamento aumentato a seguito di una riduzione graduale della corrente. Il tempo entro 1mV del valore finale era approssimativamente da 10mS a 1uA, da 60mS a 100nA, da 500mS a 10nA e da 900mS a 1nA.
Il presente amplificatore operazionale, LT1022, rivendica diversi 10s di nV a 1kHz. L'articolo dell'amplificatore di transimpedenza di Bob Pease menzionato in precedenza suggerisce che 3nV è fattibile con un ingresso FET a bassa corrente, utilizzando FET discreti a basso rumore come front-end per un amplificatore composito. L'uso di un opamp così migliorato dovrebbe ridurre i livelli di rumore di un ordine di grandezza.
Questo è il suggerimento originale, per riferimento.
simula questo circuito - Schema creato usando CircuitLab
L'opamp servo la corrente attraverso Q1 e D1 per mantenere la tensione di uscita a 5 v, quindi la tua MCU vede sempre la sua corretta tensione di funzionamento.
La tensione misurata tra i due diodi è proporzionale al registro del rapporto tra corrente D1 e corrente D2. Mentre puoi lavorare con la tensione solo su D1, dipende dalla temperatura. Questo metodo utilizza D2 per compensare tale dipendenza.