Gast
#5536343
Hallo zusammen, ich würde gerne mit dem Nucleo-F303RE simultan Strom und Spannung mit dem ADC1 & 2 (nur jeweils Channel1) abtasten und per DMA in zwei separaten Arrays ablegen. Dazu würde ich nach AN4195 den Dual regular simultaneous mode mit zwei separaten DMAs nutzen. Kann mir jemand sagen, mit welcher HAL-Funktion ich dann die ADCs bzw. DMAs starten soll? In der Note von HAL_ADC_START_DMA() steht „This function is for single-ADC mode only. For multimode, use the dedicated MultimodeStart function.“ Wenn ich also die HAL_ADCEx_MultiModeStart_DMA() nutze, dann kann ich damit lediglich die beiden ADCs mit einer gemeinsamen DMA (32 bit-Werte: 16 bit Spannung, 16 bit Strom) aus dem ADC1_2 common data register lesen und in gemeinsames Array schreiben, was so auch bei mir funktioniert hat. Die MultiDMA wäre demnach aber nicht das, was ich benötige um zwei getrennte Arrays zu füttern, oder? Zu guter Letzt gäbe es dann noch die Möglichkeit einfach die HAL_ADC_START() zu benutzen, in der Note steht dazu: „Case of multimode enabled (for devices with several ADCs): if ADC is slave, ADC is enabled only (conversion is not started). if ADC is master, ADC is enabled and multimode conversion is started.“, was ja dem entspricht, was ich eigentlich tun möchte. Nur wird dabei keine DMA gestartet, ich komme also nicht an die Daten ran… In der Konfiguration vom Multimode habe ich den DMAAccesMode auf ADC_DMAACCESSMODE_DISABLED gestellt, was laut HAL-reference „DMA multimode disabled: each ADC will use its own DMA channel“ bedeutet. Ich bin über jede Hilfe zur Thematik dankbar, die Aufgabe sollte an sich eigentlich nicht sonderlich schwer zu lösen sein, bin trotzdem schon seit einer Woche am verzweifeln… Anbei der Code der main.c. Es grüßt ein blutiger STM32-Einsteiger