Visão geral:
Estou me comunicando entre 3 placas PCB personalizadas com dspic33 nelas usando SPI. Eu tenho um mestre e dois escravos, mas estou enviando os mesmos dados para os dois escravos (e deixando que eles escolham no que prestar atenção).
Configuração de hardware:
Os dois escravos construíram controladores de motor BLDC e o Mestre está controlando esses controladores por SPI. Os fios são executados a cerca de um metro do mestre para cada escravo e os cabeçalhos são típicos cabeçalhos SAMTECH de passo de 0,1 ". Cada controlador de motor possui seu próprio regulador de 3,3 volts que executa a eletrônica dsPIC / LV. Eu uso um regulador de controlador de motor (vamos chamá-lo de A) para também ligar o SPI master DSPIC. Para o outro controlador de motor (vamos chamá-lo de B), eu apenas corro as linhas e o terra do SPI do mestre. O clk do SPI está funcionando a 100KHz
Chegando ao ponto (finalmente):
Sem motores funcionando, tudo funciona bem, todos os dados são transmitidos conforme o esperado para os dois escravos. No entanto, quando eu ligo os motores, o Bslave não obtém mais os dados corretos. Ele está pegando relógios extras ou largando-os, suponho que isso aconteça com o barulho extra. De qualquer forma, suas somas de verificação começam a falhar. O Aslave funciona como um campeão, não importa o quê.
1) Você esperaria que todos esses dispositivos precisassem funcionar com a mesma fonte de 3,3 volts? Nesse caso, você pode me convencer falando sobre o laço de indutância mais longo e a magia negra como essa.
2) Você tem algum tipo de regra geral sobre a rapidez com que posso esperar executar o SPI clk e ter sucesso com uma configuração de hardware como a acima?