Forum: Mikrocontroller und Digitale Elektronik stm32 ADC DMA_PeripheralBaseAddr


von Mark (Gast)


Lesenswert?

Hallo, ich möchte gern mit dem STM32 einen ADC Wert über DAC 
verarbeiten. Nun muss man dafür unter anderem die Konfiguration 
DMA_PeripheralBaseAddr treffen. Man ließt hier in Beispielen häufig die 
Definition ADC1_DR_Address. Diese wird aber oben mit dem Wert 
((uint32_t)0x4001244C) definiert. Woher kommt dieser Wert? Ich hatte mir 
im Datenblatt RM0008 S.279 angeschaut, bin aber wohl zu blöd den 
Zusammenhang zu begreifen, laut Offset müsste ich scheinbar ohnehin 
irgendwo auf Seite 268 suchen. Kann mir bitte jemand erklären wie das 
zusammen hängt. Ich denke diese Grundlagen werden ich ja auch später 
wieder benötigen bei anderen Funktionen?.

von Mike R. (thesealion)


Lesenswert?

Das ist eine Kombination  aus dem Referenz Manual (das von dir erwähnte 
RM0008) und dem Datenblatt deines verwendeten Controllers.

Ich RefManual steht der Offset 0x4C für das Datenregister des ADC.
Wenn du jetzt im Datenblatt nachsiehst, findest du eine MemoryMap die 
die Position der einzelnen Speicherbereiche angibt. Hier findet sich der
ADC1 beim STM32F102RB z.B. ab Adresse 0x4001 2400.

Wenn man beide Adressen kombiniert, ergibt sich die oben definierte 
Adresse.

von Mark (Gast)


Lesenswert?

Achso ich glaube jetzt hab ichs verstanden Danke. Übrigens hatte ich 
mich vorhin verschrieben ich meinte anstelle der Seite 268 die Seite 
242. Die Memory Map aus dem Datenblatt (bei mir ein 107VC) wird also im 
Bereich von 0x4001 2400 bis 0x4002 03FF beschrieben werden, wobei ich 
nur die erste nutze.Jetzt addiert man einfach nur den Offset auf die 
niederwertigen Stellen. Ich dachte bisher der Offset wäre auf die 
höherwertigen Stellen zu addieren.

Besten Dank noch mal.

von Mark (Gast)


Lesenswert?

ähm 27FF nicht 03FF sry

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.