Descripción general:
Me estoy comunicando entre 3 placas pcb personalizadas con dspic33 en ellas usando SPI. Tengo un maestro y dos esclavos, pero les envío los mismos datos a ambos esclavos (y les dejo elegir a qué prestar atención).
Configuración de hardware:
Los dos esclavos han incorporado controladores de motor BLDC y el Maestro está controlando estos controladores de motor a través de SPI. Los cables se extienden aproximadamente a 3 pies del maestro a cada esclavo y los encabezados son típicos .1 "paso a través de los encabezados SAMTECH. Cada controlador de motor tiene su propio regulador de 3.3 voltios que funciona con la electrónica dsPIC / LV. Uso un controlador de motor regulador (Llamémosle A) para alimentar también el SPI maestro DSPIC. Para el otro controlador de motor (Llamémosle B), solo ejecuto las líneas SPI y tierra desde el maestro. El SPI clk está funcionando a 100KHz
Cómo llegar al punto (Finalmente):
Sin motores funcionando, todo funciona bien, todos los datos se envían como se espera a ambos esclavos. Sin embargo, cuando arranco los motores, Bslave ya no obtiene los datos correctos. Él está recogiendo relojes adicionales o soltándolos, supongo que debo hacerlo por el ruido adicional. En cualquier caso, sus sumas de comprobación comienzan a fallar. Aslave trabaja como un campeón sin importar qué.
1) ¿Esperaría que todos estos dispositivos deban funcionar con la misma fuente de 3.3 voltios? Si es así, ¿puedes convencerme hablando sobre el bucle de inductancia más largo y la magia negra como esa?
2) ¿Tiene algún tipo de regla general sobre qué tan rápido puedo esperar para poder ejecutar el SPI clk y tener éxito con una configuración de hardware como la anterior?