stm32 ADC DMA_PeripheralBaseAddr

Gast #2246670
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?.
#2246692
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.
Gast #2246761
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren