Hallo, ich habe derzeit nur // GPIO_Digital_Input(@GPIOA_BASE, _GPIO_PINMASK_0); GPIO_Analog_Input(@GPIOA_BASE, _GPIO_PINMASK_0); Muss ich die PULL UP/DOWN Widerstädne auch noch ansteuern, oder sollte die per Default disabled sein?
Ich schalte sie vorsichtshalber auf NOPULL, das sollte aber nicht relevant sein, sobald du auf die Alternate Function umschaltest. Schwankende ADC Werte sind entweder ein Zeichen für eine zu hochohmige Quelle oder unsauberer Versorgung/AREF. Wenn dein Chip keinen eigenen AREF Eingang hat, bleibt dir nur die saubere Abblockung des MC und das Studium der STM32 Errata. Ist ein bekanntes Problem bei den internen ADC.
Thomas schrieb: > Hallo, > ich habe derzeit nur > > // GPIO_Digital_Input(@GPIOA_BASE, _GPIO_PINMASK_0); > GPIO_Analog_Input(@GPIOA_BASE, _GPIO_PINMASK_0); > > Muss ich die PULL UP/DOWN Widerstädne auch noch ansteuern, oder sollte > die per Default disabled sein? Falls du mit einem Discovery Board testest, vergiss es. Ich hatte das vor geraumer Zeit mal etwas intensiver untersucht und das Ergebnis war erschreckend: von den eingekauften 12 Bits waren im Durchschnitt 9-10 stabil. Ohne Moving-Average Filter sahen die Meßwerte aus als wenn man einen Zitteral streichelt.
Norbert schrieb: > Ergebnis war erschreckend: von den eingekauften 12 Bits waren im > Durchschnitt 9-10 stabil. Ohne Moving-Average Filter sahen die Meßwerte > aus als wenn man einen Zitteral streichelt. Da bist Du leider genau da, was man beim F4 erwarten darf. Es gibt dann noch Tipps vom Hersteller, wie man das verbessern kann. Hintergrund: auf dem Chip ist Logik, die gelegentlich pulsweise viel Strom zieht und damit den Messwert verbiegt. Da hilft auch die äußere Beschaltung und das Layout nicht viel bis garnichts. Der Hersteller empfiehlt, die Messwerte auf Ausreißer zu untersuchen und diese wegzuwerfen. Das ist kein Problem, falls man DC misst. Das eine MegaSample/s gibt es aber ohne Nachbearbeitung nur mit 8..9bit. Siehe AN4073. Unter diesem Problem leiden viele Mixed-Signal-Chips. Beim AVR wird z.B. empfohlen die CPU während der Wandlung in den Sleep zu schicken - und das schon bei 10bit und ein paar KiloSamples/s. Mein Lieblingsbeispiel - weil ich damals ein Dutzend Siliziumrevisionen mitgemacht und einige Einträge im Errata Sheet mit verursacht habe - ist der TMS320F2812. Da haben wir im 12bit Wandler bis zu 200 LSB Offset gesehen. 200/4096 :) War zum Glück kein Beinbruch, weil wir beim Sonar eine KKF mit einer mittelwertfreien Funktion gemacht haben. Fazit: bei vielen Mikrocontrollern muss für schnelle,präzise Messungen ein externer ADC rangeschraubt werden. Beim STM32F4 dank DMA, SPI, FSMC etc. kein Problem, kostet "nur".
von wieviel Schwankungen reden wir denn hier ?!?! Mit dem ATMEGA UND XMEGA hatte ich hier nie nennenswerte Probleme... Ich setze den STM32F205 ein. Mit den größeren F4 hatte ich keine Probleme..daher hoffte ich bisslang das es mein Fehler ist,. Beim Atmega lag ich bei 1-2 Digit, was ich super finde
Ist das Problem mit Porta0 aDc beim STM32F205 auch existent? Ich finde im errata nichts genau dazu..nur ADC allgemein. Das errata vom XMega war leer!!
Marcus H. schrieb: > Norbert schrieb: > >> Ergebnis war erschreckend: von den eingekauften 12 Bits waren im >> Durchschnitt 9-10 stabil. Ohne Moving-Average Filter sahen die Meßwerte >> aus als wenn man einen Zitteral streichelt. > Da bist Du leider genau da, was man beim F4 erwarten darf. > Es gibt dann noch Tipps vom Hersteller, wie man das verbessern kann. STM32F205/7 und STM32F405/7 sind da sehr problematisch. F401/F411/F42x/F43x/F446 sind da deutlich besser, wenn man den Hinweisen der App-Not folgte. Auf einem F401 laeuft gerade eine Messung von einem 510 Ohm Widerstand in Serie mit 1000 Ohm. Der 510 Ohm Widerstand simuliert einen PT1000 und entsprechend ausgewertet(*) ergibt es folgendes: 2 -123.120 7 -123.119 11 -123.118 49 -123.117 70 -123.116 164 -123.115 383 -123.114 455 -123.113 832 -123.112 1121 -123.111 1289 -123.110 1034 -123.109 1307 -123.108 1084 -123.107 856 -123.106 468 -123.105 433 -123.104 217 -123.103 129 -123.102 80 -123.101 38 -123.100 15 -123.099 4 -123.098 2 -123.097 1 -123.096 So sehr sieht das nicht nach Zitterall aus... Auswertung: Die Reihenschaltung wird fuer 200 us an VDDA gelegt, dann werden 8 Messungen der Spannung am Messwiderstand gemacht und die Spannung an der Serienschaltung dann wieder abgeschaltet. Das ganze wird 32 mal pro Sekunde gemacht und aufsummiert und dann zuerst nach Rx und dann nach TX ausgewertet.
Uwe Bonnes schrieb: > Auf einem F401 laeuft gerade eine Messung von einem > 510 Ohm Widerstand in Serie mit 1000 Ohm. Das ist aber auch schön niederohmig und reduziert zumindest die Einflüsse der internen digitalen Störungen auf den S&H Teil. Um mal ein bisschen mit Audio rumzuspielen, habe ich ein paar Opamp Ausgänge eines Mischpultes über 100 Ohm auf 2 Kanäle des F407 geschickt und auch das klingt gar nicht so schlecht, allerdings 'sirrt' der MC doch hörbar auf den ADC durch. Als Ausgabe den CS43L22 des DiscoF407 Boards und auch einen TDA1543 auf I2S2. Ich nehme nun den CS5331 für Audio Input. Nicht umsonst empfiehlt STM ja ein Averaging - sie sind sich der Problematik der Mixed Signal Chips durchaus bewusst. Viele Bits und störarm geht nur mit externen ADC.
Es geht mir jetzt nicht um 1-3 Digits..ich habe hier ca 30-60 die schaukeln..daher eher so allgemein gefragt..ob der STM32F205 an PortA0 hier auch von dem problem betroffen ist.
Hallo Thomas, danke für die Mitteilung, dass Du einen F2 (welchen?) verwendest. Ich habe bisher keinen F2/F3 verwendet. Aber die bereits erwähnte AN4073 bezieht sich auf F2/F4. Mal reingeschaut? Der interne RC-Oszillator hat üblicherweise einen größeren Frequenzfehler und Jitter als Quarz-Oszillatoren. Wenn das für Dich kein Problem ist, ist das für den ADC wohl auch kein zusätzliches Problem. Siehe F2-Datenblatt. Grüße, marcus
Auf dem F4 Discovery brauchst kannst du die ADC messung eh vergessen, die Spannung für VDDA und VRef wird aus einem 3.3V Spannungsregler mit nachgeschalteter Diode versorgt, hat also zwischen 2.9V und 3.0V, da muss es die Schwankungen geben
selbst wenn ich den Eigang aug GND Lege zeigt er 0-23 an
habe kein Discovery, eine eifnache selbstentwiceklte Platine... Warum schwang es bei VCC?!? Wenn VCC gleichzeitig REF ist ist doch die DIFF 0?!
Martina schrieb: > von wieviel Schwankungen reden wir denn hier ?!?! > Mit dem ATMEGA UND XMEGA hatte ich hier nie nennenswerte Probleme... > Ich setze den STM32F205 ein. > Mit den größeren F4 hatte ich keine Probleme..daher hoffte ich bisslang > das es mein Fehler ist,. > Beim Atmega lag ich bei 1-2 Digit, was ich super finde Hier noch der Link auf meine Versuchsreihe in 2013: Beitrag "STM32 ADC Verhalten eigentümlich"
Habe gerade nochmal ein anderes Projekt rausgekramt..hier habe ich einen STM32F205V verbaut... Hier wackelt nicht ein einziges Digit?!? auch intern 16MHz ext REf an VCC angeklemt..kann also nicht am STM32F2 allgemein liegen :-(
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.