Ich bin dabei, eine Quantencomputer-Simulation mit Raspberry Pi Picos aufzubauen. Jeder Pico stellt dabei ein Quantengatter dar. Allerdings muss beim CNOT-Gatter ein Pico mit 4 anderen Picos kommunizieren (2 Eingänge, 2 Ausgänge). Ich möchte die Kommunikation möglichst mit UART vornehmen. Allerdings gibt es beim Pico nur 2 UART-Kanäle. Wäre es möglich, diese für die beiden Eingänge zu nutzen, und für die Ausgabe dann ebenfalls die 2 UART-Kanäle auf anderen GPIO-Pins zu benutzen, da die Verarbeitung sequentiell erfolgt? Oder welche andere Möglichkeit wäre empfehlenswert (auch außerhalb von UART), möglichst ohne zusätzliche Hardware?
I2C ist ein Bus, der viele Teilnehmer, sogar mehrere Master verträgt. Wenn die UARTs nicht parallel betrieben werden, reichen Multiplexer, um einen UART auf mehrere Empfänger/Sender umzuschalten. Oder man nutzt Soft-UARTs, dafür ist der RP2040 locker schnell genug, erst recht, wenn man die PIOs nutzt. Beitrag "8 UART's mit asm_pio PIO DMA / Micropython auf dem PI PICO"
Vielen Dank für die schnelle Antwort! An I2C hatte ich zuerst auch gedacht, allerdings sind die Quantengatter (= Picos) nacheinander angeordnet und beliebig kombinierbar, anhand der I2C-Adresse weiß ich nicht, wie ich die Position des Picos in der Kette herausfinde.
Muss jeder Node mit jedem der drei anderen Node immer direkt kommunizieren können? Wenn auch mal ein Node "Transit" machen darf, würde sich eventuell auch eine "Daisy chain" anbieten. Mit UART kannst du da eine beliebig lange Kette aufbauen, dauert dann halt einen Moment bis die Nachricht ankommt. - https://de.wikipedia.org/wiki/Daisy_Chain
Wilko S. schrieb: > Allerdings gibt es beim Pico nur 2 UART-Kanäle. Ich halte es hier nicht für sinnvoll einen ultraschnellen Controller zu verwenden und dann "zeitaufwendig" an den Schnittstellen zu pfriemeln um auf eine Erhöhung der Schnittstellenzahl zu kommen. Das macht nur Ärger und Rechenaufwand. Da die Kommunikation zwischen den einzelnen Nodes sowieso viel langsamer ist als die internen Rechenoperationen wird es sinnvoll sein einen Controller zu verwenden der von Haus aus mit der ausreichenden Anzahl an UART-Kanälen austestattet ist und wenn nötig auf ein paar MIPS zu verzichten. So gross wird der Performance- Unterschied zwischen einem (z.B.) STM32Hxxx oder STM32Fxxx zu einem Raspberry Pi Pico nicht sein. Ja ích weiss, der Pico kommt fertig au der Box, bei STM kommt man vielleicht nicht so einfach in die Gänge. Dafür wird das Gebastele an den Picos wegen der UARTs dann aufwendig.
Man kann mit den prorgrammierbaren PIOs des Pico einiges anstellen, siehe hier: Beitrag "8 UART's mit asm_pio PIO DMA / Micropython auf dem PI PICO"
Siehe Abbildung. Die Simulation läuft von links nach rechts. Jedes der blauen Module wird durch einen Raspberry Pi Pico repräsentiert. Als Verbindung zwischen den Modulen habe ich ein Kabel mit 4 Leitungen: VSYS GP-PIN 1 GP-PIN 2 GROUND Die GP-PINs der Schnittstellen (max. 4 beim CNOT-Modul) sind wie folgt verknüpft: GP2 - In 1 Lesen (RX) GP3 - IN 1 Senden (TX) GP6 - Out 2: Senden (TX) GP7 - Out 2: Lesen (RX) GP10 - in 2 Lesen (RX) Gp11 - in 2 Senden (TX) GP14 - Out 2 Senden (TX) GP15 - Out 2 Lesen (RX) Ich schließe bisher eine Spannungsquelle über USB-Port an (ganz links - am Sample-Modul). Der Sample-Button ist hier mit dem Modul "QUBIT_1" über das Kabel verbunden, sodass SAMPLE => QUBIT_1 VSYS => VSYS GP6 - Out 2: Senden (TX) => GP2 - In 1 Lesen (RX) GP7 - Out 2: Lesen (RX) => GP3 - IN 1 Senden (TX) GROUND => GROUND Wenn ich den Sample-Button ganz links drücke, soll eine 8-Bit-Information von SAMPLE über die Schnittstelle OUT1 an IN1 von QUBIT_1 übertragen werden. Dort wird sie dann von QUBIT_1 weiterarbeitet und nach dem gleichen Prinzip an das nächste Modul (HADAMARD_1) übergeben, usw. Ich habe die Übertragung mit PIO-UART erst einmal für 2 Module geprüft. Eine Reaktion auf Empfängerseite scheint nur zu funktionieren, wenn ich hier eine 2. Stromquelle per USB hinzufüge, obwohl die Module über VSYS und GROUND verbunden sind. Am besten, ich stelle mal ein Foto vom bisherigen Versuchsaufbau herein. Sollte ich vielleicht von VSYS auf VBUS zur Stromweiterleitung umsteigen? Oder die Pico-Module (max. 15 werden insgesamt für die komplexeste Simulation benötigt).
Das Foto zeigt solch eine Kette mit 4 Raspberry Pi Picos. Die Spannungsversorgung findet über USB beim linken Pico statt. Leider funktioniert die Informationsweitergabe von links nach rechts nicht, obwohl sie über VSYS, GROUND und 2 GP-Pins verbunden sind (s. o.). Ein Statuswechsel des IN-Pins beim nächsten Empfänger findet anscheinend nur dann statt, wenn dieser Pico mit einer eigenen Spannungsquelle verbunden ist, obwohl alle Picos erst einmal mit der Versorgung von der einen USB-Spannungsquelle funktionieren.
Du solltest die Spannungsversorgung (VSYS/GND) nicht in Reihe schalten, sondern komplett getrennt von Deinen seriellen Verbindungen betrachten. Die Spannungsversorgungsanschlüsse sollten sternförmig mit dem Netzteil verbunden werden.
Vielen Dank! DAs ist wohl der Fehler bei mir: die Spannungsversorgung der einzelnen Picos (VSYS + GROUND) in Reihe zu schalten und einen davon dann per USB mit Strom zu versorgen. Hat jemand vielleicht Erfahrung mit der Spannungsversorgung von max. 15 Picos über eine Stromquelle? Ich habe ausgerechnet, dass ich dafür ein 25-W-Netzteil benötigen würde. Wenn ich ein USB-Netzteil benutze, würde ich dafür (theoretisch) ein Hub mit 15 USB-Anschlüssen benötigen, sodass die Spannungsversorgung für jeden Pico getrennt ist?
Wilko S. schrieb: > Ich habe ausgerechnet, dass ich dafür ein 25-W-Netzteil benötigen würde. Wie kommst Du auf diese bizarre Idee? Welche Leistungsaufnahme soll denn Deiner Ansicht nach ein einzelner RP2040 haben? Oder betreibst Du noch irgendwelche ungenannte stromhungrige Peripherie?
Überhaupt nicht. Es werden nur insgesamt 3 zusätzliche LEDs neben den 15 Pico-Modulen. Irgendwo hatte ich gelesen, dass man beim Pico mit 300 mA Stromaufnahme rechnen sollte.
Wilko S. schrieb: > Überhaupt nicht. Es werden nur insgesamt 3 zusätzliche LEDs neben den 15 > Pico-Modulen. Irgendwo hatte ich gelesen, dass man beim Pico mit 300 mA > Stromaufnahme rechnen sollte. Viel zuviel, erst Recht, wenn da nix weiter dran hängt. Im RP2040 Datenblatt gibt es eine Tabelle zur Orientierung.
Falk B. schrieb: > Wilko S. schrieb: >> Überhaupt nicht. Es werden nur insgesamt 3 zusätzliche LEDs neben den 15 >> Pico-Modulen. Irgendwo hatte ich gelesen, dass man beim Pico mit 300 mA >> Stromaufnahme rechnen sollte. > > Viel zuviel, erst Recht, wenn da nix weiter dran hängt. Im RP2040 > Datenblatt gibt es eine Tabelle zur Orientierung. Also ich messe eher um die 20mA, gelegentlich mal 50mA - das ist eher selten.
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.