Überblick:
Ich kommuniziere zwischen 3 benutzerdefinierten Leiterplatten mit dspic33 über SPI. Ich habe einen Master und 2 Slaves, aber ich sende beiden Slaves die gleichen Daten (und lasse sie auswählen, worauf sie achten sollen).
Hardware-Setup:
Die beiden Slaves haben BLDC-Motorsteuerungen eingebaut, und der Master steuert diese Motorsteuerungen über SPI. Die Drähte verlaufen ungefähr 3 Fuß vom Master zu jedem Slave und die Header sind typische SAMTECH-Header mit einem Abstand von 0,1 Zoll. Jeder Motorcontroller verfügt über einen eigenen 3,3-Volt-Regler, der die dsPIC / LV-Elektronik betreibt. Ich verwende einen Motorcontroller-Regler (Nennen wir ihn A), um auch den SPI-Master-DSPIC mit Strom zu versorgen. Zum anderen Motorcontroller (nennen wir ihn B), führe ich nur die SPI-Leitungen und die Masse vom Master aus. Der SPI-Clk läuft mit 100 kHz
Auf den Punkt kommen (endlich):
Wenn keine Motoren laufen, funktioniert dies einwandfrei. Alle Daten werden wie erwartet an beide Slaves weitergeleitet. Wenn ich jedoch die Motoren starte, erhält Bslave nicht mehr die richtigen Daten. Er nimmt entweder zusätzliche Uhren auf oder lässt sie fallen, ich nehme an, dass er das zusätzliche Geräusch verursacht. In jedem Fall schlagen seine Prüfsummen fehl. Aslave arbeitet wie ein Champion, egal was passiert.
1) Würden Sie erwarten, dass alle diese Geräte mit derselben 3,3-Volt-Quelle betrieben werden müssen? Wenn ja, können Sie mich überzeugen, indem Sie über die längere Induktivitätsschleife und solche schwarze Magie sprechen.
2) Haben Sie eine Faustregel, wie schnell ich erwarten kann, dass ich den SPI-CLK ausführen und mit einem Hardware-Setup wie dem oben genannten erfolgreich sein kann?