Etemenanki ha scritto:MCP6001 parte addirittura da 1.8V, sempre 6V massimi

Di opamp adatti per questa applicazione che ne sono centinaia

La tensione di alimentazione qui non è un problema, ho quindi tenuto l'MCP601, che ha un offset leggermente minore.
Ho deciso di alimentare anche il buffer a 5V. Non vedo in quale situazione l'opamp potrebbe andare in saturazione. Se si tratta di un transiente di accensione, questo dovrebbe essere sufficientemente breve da sparire nell'RC di uscita.
Inoltre, se davvero ci si vuole tutelare, si può alimentare tutto il circuto da un GPIO del Teensy, in modo da accenderlo quando il Teensy ha finito il suo power-up e le alimentazioni sono presenti (e quindi i diodi di protezione in ingresso pronti a fare il loro lavoro).
C'è da notare che la REF200 ha una compliance minima di 2.5V, quindi Vout non potrà mai eccedere 5 V - 2.5 V = 2.5 V questo valore.
La corrente d'eccitazione è di sole 200 uA, quindi ho cambiato i resistori, passando a 470R, lo step è quindi 94 mV invece di 100 mV.
Ho anche aggiunto una resistenza "di coda" per limitare la tensione minima a uno step (idea scroccata a
MarcoD
), c'era già "in testa", come mi ha fatto notare
GioArca67. Lascio tutti i calcoli con 25 steps, se poi sono 24 il tutto migliora.
La tensione massima è quindi 25 steps --> 2.35 V
La tensione minima è pari a quella di 1 step --> 94 mV
Nel primo caso sulla REF200 devono cadere 2.65 V, nel secondo caso 4.906 V. Ambedue i valori rientrano nelle specifiche del componente.
L'ingresso del MCP601 parte da sotto il rail negativo (quindi tutto bene) e arriva a Vdd - 1.2 V, che nel nostro caso corrisponde a 3.8 V (e anche qui tutto bene, il nostro massimo è a 2.35 V).
L'op-amp è unity gain stable, e un'altra volta va tutto bene
Volendo si potrebbe dargli un po' di gain per portare il range generato dai tasti a coprire tutto il range di ingresso del teensy. Ma se davvero abbiamo 10 bit effettivi, non serve.
Quel condensatore solitario da 1n serve solo a fornire una via di ritorno per disturbi radio (quindi tipicamente > 10 MHz) che potrebbero entrare sul cablaggio. Li vogliamo eliminare prima dell'op-amp in modo che non ci diano noie. Il cablaggio di questo condensatore deve essere corto e andare su un ground solido. Sarebbe bene avere un PCB e metterlo abbastanza vicino all'ingresso dell'opamp.
Dopo l'op-amp c'è un RC d'uscita i cui valori sono ancora un po' in dubbio.
Dipende molto dalla caratteristiche dell'ADC del teensy.
C aiuta ad assorbire il già citato kickback del circuito di ingresso dell'ADC.
R isola l'uscita dell'opamp da questo condensatore (è un buffer con guadagno unitario, non apprezza carichi capacitivi!).
Assieme formano un RC che spiana un po' i rimbalzi dei tasti. Il debouncing però lo farei in software!
È possibile che servano un paio di tentativi prima di ottenere il valore giusto qui, ma tanto non è difficile: si tratta di sostuire due componenti.
La scelta è caduta sulla REF200 (e su resistori 1% con 100 ppm di tempco) per raggiungere un obbiettivo che secondo me è essenziale in un progetto del genere: nessun bisogno di calibrare o di giocare con trimmer. I valori sono giusti
by design. È un circuito semplice e questo obbiettivo è comodamente raggiungibile senza spendere una fortuna e senza esercizi circuitali esotici.
Worst-case 1: mercatino natalizio a Tromsø, -25°C (al di sotto smettono di funzionare le dita, quindi non c'è problema).
REF200 out: 2x 99.89 uA
Nessuna nota suonata, tutte le resistenze in conduzione, drift e errore nella stessa direzione.
Resistenza della catena: 11574 ohm
Vout: 2.31 V
Worst-case 2: furgoncino pittato nero opaco in colonna in autostrada a ferragosto, gruppo di hippies medievali che suonano la ghironda al suo interno, 50° C
REF200 out: 2x 99.95 uA
Nessuna nota suonata, tutte le resistenze in conduzione, drift e errore nella stessa direzione.
Resistenza della catena: 11897 ohm
Vout: 2.37 V
Abbiamo un'escursione di 60 mV in condizioni davvero estreme.
L'intervallo di uno step è, come detto 94 mV.
In software si può fare qualcosa del genere:
Tutti i valori al di fuori di un rettangolo colorato sono da considerarsi non validi.
Il nostro circuito (se non ho fatto errori, per favore dateci un'occhiata) è piuttosto solido, e lo possiamo ulteriormente cementare usando
resistori da 50 ppm, che come visto costano uguale.
Quello che bisogna chiedersi ora è "cosa fa l'ADC del Teensy a -25° C e a +50° C?".
La risposta probabilmente è "Schifo. Fa schifo"

Ma allora si può guardare quale intervallo di temperature coprirebbe, forse dobbiamo limitarci a Stoccolma ed evitare Tromsø

Oppure c'è la possibilità di fare una misura raziometrica. Oppure possiamo dargli in pasto una referenza esterna (e a quel punto possiamo anche passare dal REF200 ad un opamp duale e realizzare la nostra referenza di corrente, con blackjack e squillo di lusso (citazione)). O usare un ADC esterno che contiene la sua sorgente di corrente (come l'impressionante
ADS1120 di TI). Anzi no, l'ADS1120 è probabilmente la soluzione migliore in ogni caso, anche da un punto di vista finanziario perché sostituisce sia la REF200 che l'MCP601.
Quindi,
tzenobite, dicci di preciso che ADC usi. Vedo che ci sono diversi modelli di Teensy, noi non sappiamo quale tu stia usando.
Boiler