www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STM32-F103 AD-Wandler DMA RAM OVERFLOW


Autor: Mikro111 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Für eine AD-Wandlung möchte ich mit meinem STM32-F103 den DMA Kanal 
wählen. Das mein Bus zu langsam ist möchte ich Werte mit der höchsten 
Abtastrate einlesen und in einem Feld hinterlegen. Das Feld welches ich 
anlege und als Puffer übergebe kann jedoch nur 3000 Werte umfassen. 
ansonsten kommt der im Anhang befindliche Fehler.

Mir würden 100000 oder 1 Mio Werte vorschweben. Das feld soll nach einer 
Abtastung dann über den langsamen Bus übertragen werden.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dir ist aber schon klar, dass dein Controller für 1 Mio Werte nicht 
annähernd genug RAM drin hat? Du also bei dieser Verfahrensweise auf 
externes RAM zurückgreifen musst.

Autor: Mike R. (thesealion)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du solltest dir mal überlegen, wie viel Speicher (RAM) dein Controller 
hat, und wie viel du dann mit deiner Tabelle belegen willst.

Wenn ich hier sehe, das du 1.000.000 Werte a 4 Byte speichern willst, 
dann gibt es keinen ST Controller, der das könnte.

Autor: Mikro111 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann man das dann nicht in einen anderen Speicher übertragen? Flash 
ram???

Autor: Mike R. (thesealion)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Natürlich kann du das, schließ einfach genügend externen RAM an und das 
ganze funktioniert. Die M3 Controller können ingesammt 4GB Speicher 
adressieren (Flash, RAM, Peripherie)

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der effektive Adressraum realer CM3 ist etwas kleiner als 4GB. Aber es 
kommt ein kleiner Haken dazu: Die STM32 haben bei externem RAM gewisse 
Probleme mit DMA. Beitrag "Re: STM32 DMA und externes RAM"

Autor: Mikro111 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine andere möglichkeit ausser nen schnelleren Bus gäb es so nicht oder?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt m.W. keinen Mikrocontoller mit 4MB internem RAM. Also ist 
externes RAM unvermeidlich. Und dann wär's besser, einen Controller zu 
verwenden, der bei externem RAM und DMA nicht über die eigenen Füsse 
stolpert.

Alternativ kann man versuchen, das interne RAM als FIFO-Puffer zu 
verwenden, d.h. die Daten noch in der Samplephase auch wieder 
loszuwerden, nicht erst komplett zu puffern.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.