Forum: Mikrocontroller und Digitale Elektronik ADC mit PWM synchronizieren STM32


von Bert S. (kautschuck)


Angehängte Dateien:

Lesenswert?

Hi,

Ich habe momentan ziemliche Probleme den ADC mit center-aligned PWM auf 
einem STM32F303x6 zu synchronizieren. Ich verwende CubeMX mit den HAL 
Libraries. Mein Ziel ist es die PWM gemäss Bild 1 (links) zu 
implementieren, also mit dem ADC trigger. Dazu habe ich aber nur Timer 2 
zur verfügung. Meine Einstellungen in CubeMX des ADC's sind oben 
angehängt. Jemand eine Idee ob das stimmt?

Datenblatt: 
http://www.st.com/content/ccc/resource/technical/document/reference_manual/4a/19/6e/18/9d/92/43/32/DM00043574.pdf/files/DM00043574.pdf/jcr:content/translations/en.DM00043574.pdf

von Bert S. (kautschuck)


Angehängte Dateien:

Lesenswert?

Ich habe jetzt mal den dual regular simultaneous mode aktiviert, dieser 
sollte eigentlich der richtige sein. Nun funktioniert aber das ganze 
noch nicht. Den DMA habe ich in CubeMX für beide ADC's aktiviert, doch 
was genau muss ich noch initialisieren?

Momentan habe ich folgendes für die Initialisierung:
1
uint32_t adc_array_1[ADC_SIZE_1];
2
uint32_t adc_array_2[ADC_SIZE_2];
3
4
...
5
6
//ADC DMA
7
  HAL_ADCEx_Calibration_Start(&hadc1,ADC_SINGLE_ENDED);
8
  HAL_ADCEx_Calibration_Start(&hadc2,ADC_SINGLE_ENDED);
9
10
  HAL_ADCEx_MultiModeStart_DMA(&hadc1, (uint32_t *)adc_array_1, ADC_SIZE_1);
11
  HAL_ADCEx_MultiModeStart_DMA(&hadc2, (uint32_t *)adc_array_2, ADC_SIZE_2);

Dann sollte ich doch die adc_array_i auslesen können? Der Timer compare 
funktioniert und daher auch der Trigger. Muss ich noch etwas hinzufügen?

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
Noch kein Account? Hier anmelden.