Gast
#6278502
Hi, es geht um einen 32bit RGB"A" 100Hz 16³ Led Cube (Einen 5bit PWM 100Hz 16³ Led Cube habe ich bereits geschafft). Bisher habe ich den STM32F103 als Treiber für den Würfel und zur Frame-Generierung verwendet. Damit ich einiges mehr Rechenleistung und bequemer Programmieren kann, möchte ich den μC von der Frame-Generierung entbinden und auf einen "Single Board Computer" (SBC) auslagern. Der μC nimmt also nur noch Frames entgegen und zeigt diese an. Momentan grübele ich über die Kommunikation zwischen dem μC und SBC. Der μC (STM32F103) hat 20KiB RAM und kann somit ein komplettes Frame im Speicher halten (4*16³=16KiB). Zur Synchronisierung will ich das Frame in eine obere und untere Hälfte teilen. Eine Hälfte wird zur Darstellung verwendet, während die andere Hälfte verwendet wird um die nächsten Daten zu laden. Da ich den Würfel mit 100Hz laufen lassen möchte bedeutet das ich habe weniger als 5ms Zeit die Daten nachzuladen. Von der Bandbreite her ist das ja kein Problem, da das in etwa 1.31MBit/s entspricht (16*16*8*4*8Bit/0.05s). Das Problem welches ich aber sehe, ist die Realtime Anforderung, konsistent 8KiB alle 5ms zu senden. Mit PREEMPT_RT scheint man in Linux zwar näher an Realtime zu kommen, aber das reich nicht aus, da man so die Latenzen anscheinend "nur" unter 10ms drücken kann. Also kam mir die Idee zwei Buffer a 128KiB dazwischen zu schalten. Der erste Buffer wird vom SBC gefüllt während der zweite vom μC gelesen wird, hat der μC alles gelesen, wird gewechselt. So hat der SBC 80ms einen der beiden Buffer zu beschreiben. Als Baustein hatte ich ein großes Shiftregister im Sinn. Bei Reichelt bin ich aber leider nicht fündig geworden. Ich könnte mir zwar aus SRAM Bausteinen das selber zusammenbasteln, den Aufwand würde ich mir aber gerne sparen. Das beste was ich bisher gefunden habe: 256Kx8 LOW VOLTAGE, FAST SERIAL SRAM with SPI, SDI and SQI INTERFACE https://www.mouser.de/datasheet/2/198/IS62-65WVS2568GALL-BLL-1315793.pdf Die Alternative wäre natürlich einen μC zu verwenden der mehr SRAM unter der Haube hat, allerdings fände ich es schade wenn ich deswegen auf einen anderen μC umsteigen muss. Also die Frage an Euch, gibt es noch weitere Möglichkeiten die Datenübertragung vom SBC zum μC zu schaffen? Ggf. andere Bauteile die als Buffer dienen können und bei Reichelt verfügbar sind?