Panoramica:
Sto comunicando tra 3 schede PCB personalizzate con dspic33 su di loro usando SPI. Ho un master e 2 slave, ma sto inviando a entrambi gli slave gli stessi dati (e permettendo loro di scegliere a cosa prestare attenzione).
Configurazione hardware:
I due slave hanno controller del motore BLDC integrati e il Master controlla questi controller del motore tramite SPI. I fili passano a circa 3 piedi dal master ad ogni slave e le intestazioni sono tipiche intestazioni SAMTECH con foro passante da 1 ". Ogni controller di motore ha il proprio regolatore da 3,3 volt che gestisce l'elettronica dsPIC / LV. Uso un regolatore del controller del motore (chiamiamolo A) per alimentare anche il DSPIC master SPI. All'altro controller del motore (chiamiamolo B), ho appena eseguito le linee SPI e messo a terra dal master. Il clk SPI funziona a 100KHz
Arrivare al punto (finalmente):
Senza motori in funzione, tutto funziona bene, tutti i dati arrivano come previsto ad entrambi gli slave. Tuttavia, quando avvio i motori, Bslave non ottiene più i dati corretti. O sta raccogliendo orologi extra o lasciandoli cadere, suppongo che facciano rumore extra. In ogni caso i suoi checksum iniziano a fallire. Aslave funziona come un campione, qualunque cosa accada.
1) Ti aspetti che tutti questi dispositivi debbano essere alimentati dalla stessa sorgente da 3,3 volt? Se è così, puoi convincermi parlando del ciclo di induttanza più lungo e della magia nera come quella.
2) Hai qualche tipo di regola empirica su quanto velocemente posso aspettarmi di essere in grado di eseguire SPI clk e avere successo con una configurazione hardware come sopra?