Quali sono alcuni problemi di progettazione per la comunicazione SPI off board?


8

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?


La simulazione è necessaria per stimare la velocità con cui l'orologio sarà in grado di funzionare. Supponendo di avere schede a doppio o singolo strato, una buona regola empirica è quella di instradare una traccia di terra o un piano di rame rettificato (sullo strato opposto) sotto o adiacente alle linee SPI al fine di ridurre il rumore accoppiato nelle tracce.
Steinar,

Risposte:


5

Ho eseguito SPI (2MHz clock) a circa 5 m da 1 box a un altro box e non ho esitato a progettare l'orologio e i dati per un output bilanciato. Il cavo (personalizzato) tra i due utilizzava anche doppini intrecciati e schermo sia su dati che su orologio.

Ho anche inviato l'alimentazione isolata al box remoto tramite convertitori cc / cc. Non ho avuto abbastanza tempo per sbagliarmi, quindi forse la mia soluzione è stata eccessiva ma, ehi, ha funzionato. Il mio ragionamento alla base di questa decisione è che non volevo che picchi di "consumo attuale" scendessero sugli schermi della coppia intrecciata. Gli schermi non erano collegati a terra all'estremità di invio del PC. Tratta i segnali digitali come preziosi segnali analogici per ottenere le migliori prestazioni: fai sempre terminare lo schermo all'estremità di ricezione e se devi (per qualsiasi motivo) terminare a malincuore (anche) all'estremità di invio.

Era per la trasmissione di 128 canali di segnali analogici a bassa velocità a un breakout box da un PC. Sospetto che se ne avessi avuto bisogno avrei potuto farlo funzionare a 20 MHz.


Quando dici "schermo" intendi "schermo" quando ti riferisci al cavo personalizzato?
JYelton,

1
@JYelton nel Regno Unito si chiama schermo. In che paese sei?
Andy aka

Sono negli Stati Uniti Uno dei miei migliori amici è inglese, quindi spesso abbiamo discussioni insolite sulla scelta delle parole. :) Uno "schermo" per me è un display o un monitor, o il tessuto a rete che tiene le mosche fuori di casa quando la finestra è aperta.
JYelton il

@JYelton. Aha un panno a rete che tiene fuori le cose. A me sembra uno schermo LOL
Andy aka

Scelto come risposta perché è l'unica risposta a cui sono stati indirizzati sia 1) sia 2). Anche se, come molti hanno suggerito, se dovessi ridisegnare la scheda probabilmente cambierei i protocolli invece di andare differentemente segnalato. Credo che funzionerebbe comunque. In questo caso sto solo usando SPI perché era prontamente disponibile sul mio prototipo.
Matt

5

SPI non è diverso da qualsiasi altra interfaccia elettrica. Presta attenzione ai soliti problemi di integrità del segnale (schermatura, area del loop, impedenza, terminazione del segnale, ecc.) E puoi percorrerlo a una distanza ragionevole. Qual è una distanza ragionevole, dipende da cosa ci stai facendo e da quanto bene puoi controllare i vari fattori.

Riesci a correre 3 piedi? Certamente. Dovresti? Bene, ci sono cose migliori da usare. Come altri hanno sottolineato, c'è RS-4xx che potrebbe funzionare bene. Puoi anche eseguire SPI, ma usa la segnalazione differenziale sul cavo come RS-4xx. Questo utilizzerà più fili, ma quelli sono le interruzioni. Puoi anche fare il normale RS-485, usando un UART e simili.

Personalmente ho fatto passare SPI su cavi da 1 piede, all'interno di uno chassis, a velocità fino a 32 MHz senza problemi. Ho anche eseguito I2C su 4 piedi a 100 KHz in un ambiente EMI elevato e SPI è molto meglio di I2C, quindi può essere fatto. Ma se non presti attenzione ai dettagli, puoi facilmente imbatterti in problemi. Ma onestamente, è necessario prestare attenzione ai dettagli indipendentemente da ciò che si utilizza.


Molte interfacce come RS232 sono relativamente immuni a cose come lo squillo e il superamento, a condizione che tali effetti risultanti da una transizione di linea vengano risolti entro mezzo tempo. Anche se una linea non è in grado di supportare baud rate elevati, sarà utile rallentare il baud rate. Al contrario, se cose come lo squillo causano problemi con SPI a qualsiasi velocità, rallentarlo potrebbe non aiutare se non si può ridurre la pendenza delle transizioni di linea.
supercat

Questa è una buona risposta, in particolare il numero di sistemi che hai implementato. Penso che proverò resistori di serie sul lato conducente per vedere se questo aiuta. Tuttavia, temo che il rumore stia causando orologi extra ... quindi in quel caso potrebbe non essere d'aiuto.
Matt

5

Valuta attentamente il tuo schema di messa a terra. Proteggi le linee dati, se aiuta, e collega correttamente lo schermo. Non eseguire dati e clock sulla stessa coppia intrecciata. Utilizzare l'isolamento galvanico se necessario. A parte questo, non ci sono regole empiriche di cui sono a conoscenza.

SPI è stato progettato per (1) comunicazione a corto raggio, di solito all'interno di un PCB e (2) nell'ambiente con poca EMI. Forse, gli unici bus che funzionano peggio di SPI in presenza di EMI sono I 2 C e 1 filo. Esistono bus progettati per la comunicazione a lungo raggio in presenza di EMI (RS-485, CAN, Ethernet).

È possibile estendere e potenziare la SPI. Ecco una nota applicativa , che mostra un bus SPI con linee differenziali.


Proverò a proteggere le linee. Per quanto riguarda l'isolamento galvanico, quando non collego i motivi il dispositivo slave non registra mai nessuno degli orologi inviati dal master.
Matt,

1

Esistono alcuni modi per ridurre al minimo gli effetti del rumore sulle linee del segnale. Il modo più semplice è instradare un piano di rame o una traccia di rame adiacente alle tracce del segnale. Ciò riduce al minimo l'induttanza delle tracce e l'area del loop.

Ad alta frequenza alle correnti di ritorno piace percorrere un percorso di minima impedenza adiacente alle linee di segnale stesse. Presumo che tu abbia una messa a terra comune tra i tuoi circuiti, ma ciò potrebbe causare problemi per la segnalazione ad alta frequenza se la tua terra comune è semplicemente una connessione di terra "di potenza" tra i circuiti. Provocherà un'area di loop molto ampia per le correnti del segnale che può consentire molta iniezione di rumore a causa dell'accoppiamento magnetico vagante.

Se possibile, collegare una connessione di terra aggiuntiva tra i terreni adiacenti alle linee del segnale SPI oltre a mantenere un piano di terra in rame o una traccia instradata adiacente alle linee all'interno delle schede. Potrebbe fare una differenza nel modo in cui il tuo circuito è sensibile ai motori.


Non capisco la frase "tra i motivi adiacenti alle linee del segnale SPI". In particolare, la parola adiacente non mi è chiara.
Matt
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.