Gast
#5245567
Hallo, der Kunde möchte ein Mess-System, welches die Messdaten mit einem Clock-Stamp in einem RAM-Ringbuffer abspeichert. Das Messsystem (STM32F05) soll eine SPI-Slave Schnittstelle haben, wo der SPI-Master (Raspberry-PI3) die Daten als einen Block (bis 5KB) rauslesen kann. Dabei soll es möglich sein, dass der Master mit hoher Frequenz kleine Blöcke abholt, oder mit kleiner Häufigkeit große Blöcke. Das Protokoll ist ganz einfach: Master sendet eine CMD (1 Byte), danach antwortet der Slave mit der aktuellen Buffer-Länge. Dann schickt der Master eine andere CMD-ID, worauf der Slave den kompletten Buffer ausgibt. Mit DMA ist das schwierig: der Buffer ist nicht an einem Stück, sondern als Ringbuffer angelegt. D.h. bei der obersten Adresse müsste der DMA stoppen und von ganz vorne beginnen, während der Master den Slave mit 500kHz taktet. Frage: kennt jemand irgendwelche Vorlagen für solche Übertragungen? Ich persönlich würde lieber einen Doppelbuffer verwenden mit fester Größe, und diese abwechselnd übertragen.