-
1. Data: 2011-11-08 09:16:36
Temat: STM32 - problem z ADC
Od: SM <b...@k...com.pl>
Witam,
Czy ktoś tu z obecnych bawił się ADC w procesorkach STM32
i mógłby coś potwierdzić/sprawdzić u siebie?
Mam układ na STM32F103RBT6 i wykorzystuję 4 kanały ADC1
(regular channels) na PA0..PA3.
Problem jest taki że mam spory szum z przetwarzania - tak
jakby na zadawane przeze mnie napięcie do wejścia ADC coś
się nakładało. Nie mogłem tego zwalczyć, więc zająłem się
testowaniem ADC na pojedynczym wejściu.
Podpiąłem wejście ADC (pin PA0) do źródła zasilania przez
rezystor 10kOhm i dalej mam szum. Podpiąłem się więc z
oscyloskopem i co widzę? W momencie startu przetwarzania
przez ADC mam szpilkę napięciową na 100mV z wyjścia!
Zgodnie z dokumentacją wewnętrznie do PA0 powinien być
dołączony klucz (oporność około 1k) i kondensator
kilka pF jako układ pamiętający (sample and hold).
Efekt jest taki jakbym każdorazowo po starcie ADC miał
ten wewnętrzny kondensator naładowany i musiał go nie
ładować moim zewnętrznym, mierzonym napięciem, ale rozła-
dowywać! Zmodyfikowałem układ aby "mocno" sterować wejściem
dla ADC - wtórnik na wzm.operacyjnym. Trochę pomogło ale
nie za wiele - ładunek jest na tyle duży że nawet operacyjny
ma problem - układ zaczyna "dzwonić" i mam oscylacje.
Mam więc pytanie - czy ktoś spotkał się z tym problemem
w STM32? Czy one tak mają, czy też trafiłem na jakiś
odrzut/podróbę?
SM
P.S.
Ktoś chyba miał podobny problem
http://www.elektroda.pl/rtvforum/topic2087721.html#9
921288
Nie jest to jednak efekt pamięciowy, bo występuje on także
przy przetwarzaniu tylko jednego kanału (nie jest to więc
"pozostałość" napięcia na wspólnym kondensatorze od S&H
z pomiaru z innego kanału).
-
2. Data: 2011-11-08 16:04:37
Temat: Re: STM32 - problem z ADC
Od: Michał Baszyński <m...@g...ze.ta.pl>
W dniu 2011-11-08 10:16, SM pisze:
> Zgodnie z dokumentacją wewnętrznie do PA0 powinien być
> dołączony klucz (oporność około 1k) i kondensator
> kilka pF jako układ pamiętający (sample and hold).
>
> Efekt jest taki jakbym każdorazowo po starcie ADC miał
> ten wewnętrzny kondensator naładowany i musiał go nie
> ładować moim zewnętrznym, mierzonym napięciem, ale rozła-
> dowywać! Zmodyfikowałem układ aby "mocno" sterować wejściem
> dla ADC - wtórnik na wzm.operacyjnym. Trochę pomogło ale
> nie za wiele - ładunek jest na tyle duży że nawet operacyjny
> ma problem - układ zaczyna "dzwonić" i mam oscylacje.
na wejściu ADC powinieneś mieć zewnętrzny kondensator odpowiedniej
pojemności (IMHO foliowy 10nF ew. ceramiczny - ale koniecznie NP0). Aby
wzm. operacyjny przy takim obciążeniu Ci nie dzwonił odseparuj wyjście
wzmacniacza od kondensatora opornikiem niewielkiej wartości (tak z
50-100 omów), sprzężenie zwrotne weź z kondensatora. I powinno być OK.
--
Pozdr.
Michał
-
3. Data: 2011-11-08 16:17:40
Temat: Re: STM32 - problem z ADC
Od: SM <b...@k...com.pl>
> na wejściu ADC powinieneś mieć zewnętrzny kondensator odpowiedniej
> pojemności (IMHO foliowy 10nF ew. ceramiczny - ale koniecznie NP0). Aby
> wzm. operacyjny przy takim obciążeniu Ci nie dzwonił odseparuj wyjście
> wzmacniacza od kondensatora opornikiem niewielkiej wartości (tak z
> 50-100 omów), sprzężenie zwrotne weź z kondensatora. I powinno być OK.
>
Jutro sprawdzę czy ten 10nF wystarczy aby "połknąć" wypływający
z wejścia ładunek na tyle, żeby podbicie na nim napięcia
nie było zbyt duże. I czy ten rezystor sprawdzi się aby
wzm.oper. nie dzwonił.
Wcześniej robiłem inny test. Sądziłem że to te zakłócenia to szum
i dałem filtr RC między wzm.oper. a wejściem ADC. Stała czasowa
bardzo mocno za duża (specjalnie do testów). Przy niewielkich
napięciach tylko pogorszyło to sprawę - zadziałało "odwrotnie"
- jak układ różniczkujący.
SM
-
4. Data: 2011-11-08 16:24:36
Temat: Re: STM32 - problem z ADC
Od: Zbych <z...@o...pl>
On 08.11.2011 17:04, Michał Baszyński wrote:
> W dniu 2011-11-08 10:16, SM pisze:
>
>> Zgodnie z dokumentacją wewnętrznie do PA0 powinien być
>> dołączony klucz (oporność około 1k) i kondensator
>> kilka pF jako układ pamiętający (sample and hold).
>>
>> Efekt jest taki jakbym każdorazowo po starcie ADC miał
>> ten wewnętrzny kondensator naładowany i musiał go nie
>> ładować moim zewnętrznym, mierzonym napięciem, ale rozła-
>> dowywać! Zmodyfikowałem układ aby "mocno" sterować wejściem
>> dla ADC - wtórnik na wzm.operacyjnym. Trochę pomogło ale
>> nie za wiele - ładunek jest na tyle duży że nawet operacyjny
>> ma problem - układ zaczyna "dzwonić" i mam oscylacje.
>
> na wejściu ADC powinieneś mieć zewnętrzny kondensator odpowiedniej
> pojemności (IMHO foliowy 10nF ew. ceramiczny - ale koniecznie NP0)
Czemu koniecznie NP0? Wartość pojemności nie jest krytyczna.
> wzm. operacyjny przy takim obciążeniu Ci nie dzwonił odseparuj wyjście
> wzmacniacza od kondensatora opornikiem niewielkiej wartości (tak z
> 50-100 omów), sprzężenie zwrotne weź z kondensatora. I powinno być OK.
Podłączanie sprzężenia w taki sposób to proszenie się o oscylacje.
-
5. Data: 2011-11-08 17:21:00
Temat: Re: STM32 - problem z ADC
Od: Michał Baszyński <m...@g...ze.ta.pl>
W dniu 2011-11-08 17:24, Zbych pisze:
>> na wejściu ADC powinieneś mieć zewnętrzny kondensator odpowiedniej
>> pojemności (IMHO foliowy 10nF ew. ceramiczny - ale koniecznie NP0)
>
> Czemu koniecznie NP0? Wartość pojemności nie jest krytyczna.
absorbcja dielektryczna. Wartość nie jest krytyczna
--
Pozdr.
Michał
-
6. Data: 2011-11-08 21:05:21
Temat: Re: STM32 - problem z ADC
Od: Zbych <z...@o...pl>
On 08.11.2011 18:21, Michał Baszyński wrote:
> W dniu 2011-11-08 17:24, Zbych pisze:
>
>>> na wejściu ADC powinieneś mieć zewnętrzny kondensator odpowiedniej
>>> pojemności (IMHO foliowy 10nF ew. ceramiczny - ale koniecznie NP0)
>>
>> Czemu koniecznie NP0? Wartość pojemności nie jest krytyczna.
>
> absorbcja dielektryczna. Wartość nie jest krytyczna
To by miało znaczenie w układnie próbkująco-pamiętającym. Tutaj masz
kondensator na wyjściu wtórnika.
-
7. Data: 2011-11-09 14:17:01
Temat: Re: STM32 - problem z ADC
Od: Michał Baszyński <m...@g...ze.ta.pl>
W dniu 2011-11-08 22:05, Zbych pisze:
> To by miało znaczenie w układnie próbkująco-pamiętającym. Tutaj masz
> kondensator na wyjściu wtórnika.
przy 10-12 bitach wbudowanych w uC to cokolwiek by nie dał i tak będzie
dobrze.
Ale przy dokładniejszych to inżynierowie Texasa na seminarium "Precision
Analog Applications" parę lat temu zalecali jednak NP0
O, chyba znalazłem (strona 22):
http://www.ti.com/lit/ml/slyp166/slyp166.pdf
Sugerują mikowe albo NP0/C0G z powodu nieliniowości ceramiki o dużej
stałej K.
Natomiast pisząc o braniu sprzężenia zwrotnego z kondensatora, a nie
sprzed opornika, zasugerowałem się rys. 44 z będącego jakiś czas temu u
mnie na tapecie PCM1804. Zapomniałem jednak o "drobiazgu" w postaci
jednak dość sporego kondensatora w sprzężeniu zwrotnym bezpośrednio
pomiędzy wyjściem i wejściem odwracającym :-(
Tak więc z tym masz w dużej części rację - stałoprądowe (decydujące o
dokładności) jest brane z kondensatora, natomiast dołożone jest
dodatkowe zmiennoprądowe dla zachowania stabilności.
Tu zalecają jednak foliowe (str. 29) na wejściu ADC.
--
Pozdr.
Michał
-
8. Data: 2011-11-09 15:14:16
Temat: Re: STM32 - problem z ADC
Od: Zbych <a...@o...pl>
W dniu 2011-11-09 15:17, Michał Baszyński pisze:
> W dniu 2011-11-08 22:05, Zbych pisze:
>
>> To by miało znaczenie w układnie próbkująco-pamiętającym. Tutaj masz
>> kondensator na wyjściu wtórnika.
>
> przy 10-12 bitach wbudowanych w uC to cokolwiek by nie dał i tak będzie
> dobrze.
> Ale przy dokładniejszych to inżynierowie Texasa na seminarium "Precision
> Analog Applications" parę lat temu zalecali jednak NP0
> O, chyba znalazłem (strona 22):
> http://www.ti.com/lit/ml/slyp166/slyp166.pdf
Dzięki za podanie linka.
> Sugerują mikowe albo NP0/C0G z powodu nieliniowości ceramiki o dużej
> stałej K.
Czyli problem wynika z nieliniowości pojemności w funkcji napięcia i ma
znaczenie tylko przy pomiarze napięć zmiennych. Według wykresów z pdfa
nie ma się co martwić o typ dielektryka przy częstotliwościach do 1kHz.
> Natomiast pisząc o braniu sprzężenia zwrotnego z kondensatora, a nie
> sprzed opornika, zasugerowałem się rys. 44 z będącego jakiś czas temu u
> mnie na tapecie PCM1804. Zapomniałem jednak o "drobiazgu" w postaci
> jednak dość sporego kondensatora w sprzężeniu zwrotnym bezpośrednio
> pomiędzy wyjściem i wejściem odwracającym :-(
> Tak więc z tym masz w dużej części rację - stałoprądowe (decydujące o
> dokładności) jest brane z kondensatora, natomiast dołożone jest
> dodatkowe zmiennoprądowe dla zachowania stabilności.
> Tu zalecają jednak foliowe (str. 29) na wejściu ADC.
>
-
9. Data: 2011-11-09 15:16:55
Temat: Re: STM32 - problem z ADC
Od: Zbych <a...@o...pl>
W dniu 2011-11-08 10:16, SM pisze:
> Witam,
>
> Czy ktoś tu z obecnych bawił się ADC w procesorkach STM32
> i mógłby coś potwierdzić/sprawdzić u siebie?
>
> Mam układ na STM32F103RBT6 i wykorzystuję 4 kanały ADC1
> (regular channels) na PA0..PA3.
>
> Problem jest taki że mam spory szum z przetwarzania - tak
> jakby na zadawane przeze mnie napięcie do wejścia ADC coś
> się nakładało. Nie mogłem tego zwalczyć, więc zająłem się
> testowaniem ADC na pojedynczym wejściu.
>
> Podpiąłem wejście ADC (pin PA0) do źródła zasilania przez
> rezystor 10kOhm i dalej mam szum. Podpiąłem się więc z
> oscyloskopem i co widzę? W momencie startu przetwarzania
> przez ADC mam szpilkę napięciową na 100mV z wyjścia!
Sprawdź erraty, zwłaszcza rozdział:
"Voltage glitch on ADC input 0"
-
10. Data: 2011-11-09 16:30:50
Temat: Re: STM32 - problem z ADC
Od: SM <b...@k...com.pl>
W tej chwili na szybko dodałem na drucikach
zewnętrzny ADC 10bit po SPI (MCP3008).
Żadnego szumu, szpilek, czy też innych
problemów - pomiar z dokładnością 1 LSB.
Nie mniej jednak procka jeszcze przetestuję
bo zawsze to trochę szkoda nie korzystać
z jego ADC.
I jeszcze jedna uwaga. Układ zrobiłem tak,
że odczyt analoga robię z częstotliwością 5kHz
, wybieram największą wartość jaka wystąpi w
jednej sekundzie i zapisywał ją na kartę SD.
W ten sposób testowałem problemy z ADC. Paskudne
było to, że te szpilki wyłaziły czasem co kilka
sekund. Tak jakby start przetwarzania ADC lekko
przesuwał się w czasie - raz wypadało to na
maksimum szpilki, raz nie. Ciekawe było to że
raz trafiał procek w wartości pośrednie
(widoczne jako szum), innym razem albo nie rejestrował
piku, albo raz na kilka sekund zarejestrował
max. skok 100mV (bez wartości pośrednich).
Wszystko zależało od wartości napięcia na danym
kanale czy też innych kanałach - ciężko
było ustalić jakąś zależność.
SM