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.
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.
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.
Kann man das dann nicht in einen anderen Speicher übertragen? Flash ram???
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)
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"
Eine andere möglichkeit ausser nen schnelleren Bus gäb es so nicht oder?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.