Gast
#6883217
Hallo, ich habe an meinem STM32F407 2 DAC Kanäle in Benutzung und würde dort gerne eine Sinus-Waveform mit variabler Phasenbeziehung ausgeben. Sprich die Waveform ist für beide Kanäle die selbe, die Phase soll gerampt werden um einen Kondensatormotor zum Anlaufen zu bewegen. Im Moment nutze ich TIM2 als Trigger um mittels circular DMA (2 DACs, 2 DMA-Kanäle) die Werte aus einer LUT zum jeweiligen DAC-Kanal zu bringen. Das funktioniert auch sehr gut. Die Frequenz lässt sich über den TIM2-reload-value ARR verstellen. Die Zielfrequenz liegt irgendwo zwischen 1 und 1kHz.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
Nun würde ich gerne die Phasenbeziehung zwischen DAC1 und DAC2 im Betrieb veränderbar haben. Konkret soll die Phase später über eine Rampenfunktion geführt werden. Nun stellt sich mir die Frage wie ich am elegantesten die Phase der LUT verändere (wenn möglich ohne eine der beiden LUTs für jede Phasenbeziehung neu zu berechnen). - Dazu fällt mir spontan ein: Start-Adresse des DMA verändern -> geht das, wenn ja wie (circular)? - Welche anderen Möglichkeiten seht ihr? (Asynchroner Start? Wenn ja wie?) Danke