Hey , vielen Dank!
Das hat mir gerade sehr geholfen! Bei mir sinds nur 4 Kanäle, ist aber
alles etwas anders als beim F1...
Ein Tipp: Du kannst die ganzen I/O mit gleichen Eigenschaften in einem
Rutsch setzen, indem die sie veroderst:
1
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;
2
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
3
4
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;// setzt vier Analog-Ins
Im Datenregister des ADC schwankt der Wert zwischen 5 und 9 Dezimal. Die
Spannung am Pin PB0 variere ich aber von 60mV bis 200mV.
Ich betriebe den ADC1 ohne DMA, vorerst:
Ich verwende allerdings nicht das Discovery Board sondern eine eigene
Hardware, die einen 24V DC Motor ansteuert und dessen Stromaufnahme
gemessen werden soll. Bild im Anhang!
nachdem du alles fertig initialisiert hast. Ansonsten sieht das richtig
aus. Normale Kanäle beziehen ihre Referenzspannung vom VREF+ Pin. So wie
ich das Referenzmanual verstehe, wird beim Temperatursensor die Referenz
aus dem VBAT Pin bezogen - gebe aber gerne zu, das ichs nicht wirklich
kapiere.
Achso, noch eines. Wenn dein Systemtakt bei 168Mhz liegt, ist ein
Prescaler von 4 grenzwertig, denn der ADC soll mit < 32 Mhz laufen.
Vielen Dank für die Hilfe!
Der ADC geht aber direkt nach der 1. Messung auf Overrun, leider immer
noch.
Ich hatte den Prescaler jetzt mit 6 gewählt. Und dann noch mit 8
versucht.
Ich habe dann auf Einzelwandlung umgestellt und in einem Thread all 10ms
eine Wandlung durchgeführt. Dies hat wunderbar funktioniert. Ist aber
nicht das, was ich will.
Vielen Dank!
MC Bu schrieb:> ADC_SampleTime angepasst von 15 480 Cycles und das StartConvStatus Bit> abgewartet.
Ah, super. Bei mir musste ich nicht aufs Statusbit warten, weil das dann
der Job des DMA Kanals ist. Für mehrere Kanäle wirds mit der DMA
einfacher als mit Polling.
hallo zusammen,
habe seit ein paar tagen ein stm32f4 und möchte photodioden messen
(quasi den strom sehr genau)
hierfür benötige ich auch einen ad wandler
ich bin allerdings neu auf dem gebiet der c programmierung kann mir
evtl. einer weiterhelfen mit einem "muster" für einen ad wandler?
damit ich mir das ganze mal anschaun kann und auf meine 4 pins auslegen
kann
wäre super danke
jojo schrieb:> habe seit ein paar tagen ein stm32f4 und möchte photodioden messen> (quasi den strom sehr genau)> hierfür benötige ich auch einen ad wandler
Das ist allerdings so gut wie keine Info. Wieviele Werte brauchst du
denn in der Sekunde? Wie genau soll das sein?
Du bist dir hoffentlich im klaren darüber, das Photodioden eine gute
Verstärkung (z.B. mit einem Transimpedanz Verstärker) benötigen, um
überhaupt ein vom AD Wandler zu verwertendes Signal zu liefern. Das
erfordert einen sorgfältigen Aufbau, der von einem Anfänger nicht mal
eben so gemacht wird.
Es gibt kleine 16-bit Wandler mit I2C oder SPI Schnittstelle, die so
etwa 100.000 Abtastungen in der Sekunde hinkriegen, z.B. der AD7680,
aber das enthebt dich nicht der Notwendigkeit, einen guten Verstärker zu
bauen.
Die im STM32F4 verbauten AD Wandler sind jedenfalls dafür mehr schlecht
als recht, da die internen Störungen doch recht hoch sind.