Automatisk gain utifrån ratio mellan max input och volt ref?

Övriga diskussioner relaterade till komponenter. Exempelvis radiorör, A/D, kontaktdon eller sensorer.
monteclaro
Inlägg: 13
Blev medlem: 24 april 2016, 09:36:15

Automatisk gain utifrån ratio mellan max input och volt ref?

Inlägg av monteclaro »

Hej, jag håller på och designar en krets som ska förstärka en sensors output till att matcha en A/D omvandlares totala input range.
Sensorn har en range på mellan c:a 0.66V - 1.1V. A/D omvandlaren (intern i atmega328p) är satt med extern voltreferens på 2.5V.
Jag har redan löst detta med en RRIO op amp som justerar offset och förstärker så att 0.66V-1.1V ger 0V-2.5V....men ;-) ...

...det jag nu försöker mig på är att inte definiera en fast och bestämd förstärkning/gain (motstånden i op-amp feedbackloop).

Eftersom jag vet att sensorns peak output är 1.1V och att jag vill mappa det mot 2.5V så har jag en magkänsla att det "analogt" borde gå att definiera förstärkarens gain baserat på ration mellan 1.1 och 2.5.

Nån som har nån idé?
Användarvisningsbild
Icecap
Inlägg: 26105
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Automatisk gain utifrån ratio mellan max input och volt

Inlägg av Icecap »

Du menar att du vill bygga en AGC?

Det känns lite oklart vad du vill uppnå men min tanke är att det såklart går - men vad ska du med det?
Med automatisk gain-reglering kan du inte veta vad A/D-omvandlaren egentligen mäter utan att mäta förstärkningsindex - och då är du tillbaka till att du likaväl kan förstärka med lite offset - och sedan är det klart med det.

Det är såklart möjligt att reglera förstärkningen medelst en (eller fler) analog(a) switch(ar) på ett digitalt sätt och den vägen veta att man mäter ett specifikt signal - men då är det ju vida bättre att ta en bättre A/D-omvandlare och återgå till fast förstärkning.
monteclaro
Inlägg: 13
Blev medlem: 24 april 2016, 09:36:15

Re: Automatisk gain utifrån ratio mellan max input och volt

Inlägg av monteclaro »

Njae, har ingen erfarenhet av AGC, men har halkat in på ämnet när jag googlat och vad jag förstår ger den samma förstärkta output oavsätt input?

Det jag vill uppnå är en mappning mellan 0.66V-1.1V till 0V-2.5V, tar vi bort offset på input är det kanske lättare att förklara, så säg istället att jag vill förstärka en variabel input mellan 0V- 0.44V till 0V - 2.5V dvs en gain på c:a 5.68 gånger (2.5/0.44).
Så om jag tex ger en input på 0.22V så vill jag ha 1.25V ut.

Detta kan jag göra, och har redan gjort, med en non-inverting op amp krets och två motstånd som sätter den önskade gain'en.

Men, inte för att jag behöver, utan för att jag vill förstå och lära mig ;-) så vill jag försöka bygga en krets som istället för dom två fasta motstånden och därmed fixed gain, få kretsen själv att "räkna ut" gain'en med hjälp av den matematiska ration ovan, 0.44 = känd max input och 2.5 önskad max output.

Har försökt mig på lite olika konfigurationer av differential och instrumentation op amp kretsar, olika voltage dividers, olika virtual grounds baserat på dessa två max värden etc... utan att komma nånstans (btw jag slänger mig med lite begrepp som jag är nybörjare inom ;-)

Försöker helt enkelt lära mig och förstå styrkan av att använda op amps, så helst vill jag inte använda nån specifik IC för ändamålet, om det går.

Blev det tydligare ;-) ?
Användarvisningsbild
Icecap
Inlägg: 26105
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Automatisk gain utifrån ratio mellan max input och volt

Inlägg av Icecap »

Det du söker är ett variabelt motstånd.

Eller en trans-konduktans op-amp... där kan man styra förstärkningen med ett spänningssignal - sådan lite ungefär. Inte helt enkelt att förstå men ung. så är det.
monteclaro
Inlägg: 13
Blev medlem: 24 april 2016, 09:36:15

Re: Automatisk gain utifrån ratio mellan max input och volt

Inlägg av monteclaro »

Okej!

Så det finns ingen fiffig konfiguration av en eller flera "vanliga" op amps + ev. andra passiva komponenter som kan lösa detta?

Ang. variabelt motstånd läste jag något om digital vridpot som drevs av en klockpuls etc och kunde göra nåt sånt, är det också ett alternativ som komplement till en vanlig op amp?

Men som sagt så hoppades jag på att jag inte kunde tillräckligt om op amps och att det fanns ett sätt utan att skaffa dedikerad IC.
Användarvisningsbild
Icecap
Inlägg: 26105
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Automatisk gain utifrån ratio mellan max input och volt

Inlägg av Icecap »

Ett digitalt potentiometer är såklart en möjlighet. Men ju fler halvledare som blandas in i signalvägen, ju mer brus och temperaturkänslighet får man. Det är såklart en avvägning av vad man kan behöver och vad som är viktigt.

Men om du vill ha bättre upplösning: byt till bättre A/D-omvandlare!
Om du vill ha bättre upplösning i de låga nivåer: skapa 2 eller fler olika förstärkningar som leds till var sin A/D-ingång. Mjukvaran kan då välja "bästa" värdet att använda.

En AGC fungerar bäst vid att vara "mycket" trög i förhållande till signalen som ska regleras. Och man har samma problem som jag nämnd tidigare: man vet inte vad man mäter.

Men om vi antar att signalen du vill omvandla mest är intressant för variationerna och inte absolutvärden kan man rimligt enkelt fixa en AGC med en FET-transistor som variabelt element. Den kan - inom ett "smalt" arbetsområde - fungera som ett spänningsstyrd motstånd.

Det kräver ett noga design men kan sedan fungera riktigt bra.
monteclaro
Inlägg: 13
Blev medlem: 24 april 2016, 09:36:15

Re: Automatisk gain utifrån ratio mellan max input och volt

Inlägg av monteclaro »

Oj vilka bra tips!

Förslaget med flera förstärkningar med olika a/d ingångar är verkligen smart, och självklart när du säger det ;-)

Jag försöker dock lösa så mycket som möjligt på den "analoga" sidan för att lära mig, innan det kommer in i microcontrollern. Jag jobbar som utvecklare, så för mig är kod är den enkla och tråkiga lösningen ;-) Dessutom känns det snyggt att avlasta cpu'n och hantera så mycket som möjligt analogt innan det blir digitalt.

Jag kan ju förklara lite närmre vad jag mäter/bygger. Det är en "färddator" till en gammal veteran-folkabuss ;-) där jag tänker läsa in bland annat bensinmängd, oljetryck och olje-temp. Dessa tre analoga/mekaniska "sensorer" har alla ett inbyggt fysiskt/elektriskt varierande motstånd beroende på aktuellt "värde". Alla har dock olika "motstånds"-range, 0-100 ohm, 0-180 ohm respektive 0-150 ohm. Ex. 50 ohm motstånd på tankmätaren = halv tank.

Jag försöker alltså bygga en krets som jag kan upprepa 3 ggr på samma kretskort men då med olika gain för respektive sensor.
Så som sagt, enkelt och redan löst med tre op amps med olika gain i feedback-loopen.

Som det är löst nu så har jag en voltage divider...
Vcc -> 1K -|-> diod -> (sensor -> jord)
...där op amp'ens input sitter mellan 1K och diod.

Samma voltage divider tänker jag att jag kan duplicera och byta ut sensorn mot tex 100 ohm och då få en till divider som ger mig en max volt referens för just den sensorn.

Så det kändes på nåt sätt så rimligt och möjligt att skapa 3 olika voltreferenser med hjälp av 3 fasta motstånd i min krets som matchar respektive sensors maximala ohm, 100, 180 och 150 och på nåt sätt använda det i relation till a/d voltref'en på 2.5V ;-)

Kanske jag som svävar iväg och tänker snett och onödigt? Jag behöver ju ändå 3 olika motstånd för att definiera referens och kanske då lika gärna ha 3 olika motstånd/pottar på respektive op amp för gain? ;-)
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14818
Blev medlem: 16 april 2006, 17:04:10

Re: Automatisk gain utifrån ratio mellan max input och volt

Inlägg av mrfrenzy »

Självklart går detta att lösa med en opamp och några motstånd!

Jag tror Icecap missförstod att du ville ha automatisk gain control.

Som jag förstår vill du anpassa en signal som kan variera mellan i förväg kända värden till din ADC.

Fyll i dina spänningar från första inlägget i denna kalkylator, klicka sedan på rätt case i tabellen nedan och fyll i dina värden igen:
(Delvis trasig länk) http://earmark.net/gesr/opamp/gain_offset.htm

EDIT: Tyvärr är vissa sidor ur funktion just nu, under tiden kan du läsa beskrivningen direkt hos TI http://www.ti.com/lit/an/sloa097/sloa097.pdf
monteclaro
Inlägg: 13
Blev medlem: 24 april 2016, 09:36:15

Re: Automatisk gain utifrån ratio mellan max input och volt

Inlägg av monteclaro »

Tack, men jag tror faktiskt att Icecap förstod mig ändå ganska rätt ;-)

Jag vet alltså hur, och har redan löst det, med offset och gain med en op amp.
Det jag försöker förstå är om det går att med någon annan konfiguration av en eller flera op amp's uppnå den fasta totala gain'en utan att räkna ut motstånden i förväg, som tex i länken du skickade. Utan istället via annan typ av feedback(?) och kanske i samband med dividers(?) styra det med ytterligare två signaler/volt input max och output max. Så att jag m.a.o har tre signaler in i "förstärknings-kretsen"; sensor volt, max input volt och max output volt.

Tar det med exempel:
Sensor output range 0V-0.44V
Önskad förstärkt range 0V - 2.5V
Frågan är om det går att designa en krets som i sin helhet har 3 inputs (1 variabel sensor, 0.44V respektive 2.5V fast) och ger önskad förstärkt variabel output?

Så naivt tänkt en krets som har samma inputs och output som matematiskt uträknat: output = input * 2.5 / 0.44

Går helt på magkänsla här ;-)
Senast redigerad av monteclaro 13 mars 2018, 20:54:27, redigerad totalt 1 gång.
Användarvisningsbild
Klas-Kenny
Inlägg: 11292
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Automatisk gain utifrån ratio mellan max input och volt

Inlägg av Klas-Kenny »

Jag förstår inte riktigt, hur menar du att kretsen "magiskt" ska veta vilket spänningsintervall som sensorn/givaren ger ut?

Annars om du bygger för ett visst intervall, vad gör du då annat än att designa med viss bestämd förstärkning och offset? :humm:
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14818
Blev medlem: 16 april 2006, 17:04:10

Re: Automatisk gain utifrån ratio mellan max input och volt

Inlägg av mrfrenzy »

Ja det går att designa en sån krets med typ fyra opamps, och en massa motstånd som man switchar.
Eller så kan man köpa den färdig för 10kr och styra via i2c.
monteclaro
Inlägg: 13
Blev medlem: 24 april 2016, 09:36:15

Re: Automatisk gain utifrån ratio mellan max input och volt

Inlägg av monteclaro »

Klas-Kenny skrev:Jag förstår inte riktigt, hur menar du att kretsen "magiskt" ska veta vilket spänningsintervall som sensorn/givaren ger ut?

Annars om du bygger för ett visst intervall, vad gör du då annat än att designa med viss bestämd förstärkning och offset? :humm:
Jag tänker att en av kretsens input är maximal sensor output, så inte magiskt ;-)

Och ja, det stämmer att det är på samma sätt designat med en viss bestämd förstärkning och offset, men till skillnad att det styrs utifrån två bestämda volt-referenser; max input och max output.

I inlägget ovan beskriver jag att mina sensorer är variabla motstånd, så jag tänker att det vore trevligt att helt enkelt generera en max-input-volt-referensen med ett ända fast vanligt motstånd som motsvarar samma motstånd som sensorn har i maxläge.
Senast redigerad av monteclaro 13 mars 2018, 21:03:49, redigerad totalt 1 gång.
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14818
Blev medlem: 16 april 2006, 17:04:10

Re: Automatisk gain utifrån ratio mellan max input och volt

Inlägg av mrfrenzy »

Tänk såhär istället så blir det lättare att designa:

Du vill från din µC kunna styra följande parametrar på op-ampen:
Förstärkning
Offset voltage

Sedan får du i mjukvara (eller med en fördefinierad tabell med tio områden) räkna ut vad dom ska vara utifrån vilken sensordata användaren matat in.

eller

Är det så att du vill att användaren ska "programmera" området på sensorn genom att byta referensmotstånd? Då kanske du ska bygga någon variant på en wheatstonebrygga som matar din ADC https://en.wikipedia.org/wiki/Wheatstone_bridge
monteclaro
Inlägg: 13
Blev medlem: 24 april 2016, 09:36:15

Re: Automatisk gain utifrån ratio mellan max input och volt

Inlägg av monteclaro »

Med mjukvara i µC har jag redan löst det med att läsa av den "råa" output'en från sensorn och mappat i mjukvara mot min/max "värde". Men eftersom sensorn ger 0.66-1.1V och a/d referensen är 5V (ska ändra till 2.5) så utnyttjar jag bara en bråkdel av a/d potentiella range och tappar upplösning. Därför vill jag med offset och gain få full precision som µC kan ge.
monteclaro
Inlägg: 13
Blev medlem: 24 april 2016, 09:36:15

Re: Automatisk gain utifrån ratio mellan max input och volt

Inlägg av monteclaro »

mrfrenzy skrev:Tänk såhär istället så blir det lättare att designa:

Du vill från din µC kunna styra följande parametrar på op-ampen:
Förstärkning
Offset voltage

Sedan får du i mjukvara (eller med en fördefinierad tabell med tio områden) räkna ut vad dom ska vara utifrån vilken sensordata användaren matat in.

eller

Är det så att du vill att användaren ska "programmera" området på sensorn genom att byta referensmotstånd? Då kanske du ska bygga någon variant på en wheatstonebrygga som matar din ADC https://en.wikipedia.org/wiki/Wheatstone_bridge
Precis så tänker jag ;-) där jag såklart helst skulle vilja att referensmotståndet har samma värde som sensorns maxresistens.
Wheatstonebryggan ser intressant ut! Fungerar den på det sättet? Kan jag isåfall använda den i kombo med op amp som i mitt senaste inlägg för att få max upplösning i µC A/D?
Skriv svar