Alternative a SPI a causa dell'IME


24

Attualmente realizzo un sistema costituito da un involucro di plastica che contiene una MCU che comunica con 7 ADC utilizzando SPI 2MHz su cavi lunghi circa 5 cm.

MCU e ADC collegati tramite SPI

Il problema è che sono preoccupato per l'IME. Tutto ciò che ho letto suggerisce che qualsiasi tipo di segnale digitale che non è sicuro su un PCB in uno chassis di metallo con messa a terra irradierà troppo per superare i test EMI. Immagino che questo includerebbe anche I2C.

È probabile che questo non superi i test EMI? Cosa posso fare al riguardo?

Sto cercando qualsiasi tipo di risposta, incluso "Usa un bus / ADC diverso", ma non includendo le risposte che comportano cambiamenti meccanici come: "Metti tutti gli ADC sullo stesso PCB" o "Metti tutto in una scatola di metallo" . Sono particolarmente interessato alle alternative Low EMI all'SPI, compresi i bus differenziali.

Ecco alcune informazioni rilevanti sull'applicazione. Per favore fatemi sapere se avete bisogno di sapere più cose:

  • 6 fili vanno a ciascuna scheda ADC (alimentazione, GND, CS, CLK, MOSI, MISO).
  • Gli ADC sono attualmente MCP3208 (Microchip a 8 canali, 12 bit)
  • Sto lavorando in una disperata spazio vincolato applicazione, quindi l'aggiunta di schermatura per i cavi non è realmente un'opzione.
  • Sarebbe bello usare un qualche tipo di bus differenziale (solo una o due coppie), ma gli unici ADC con comunicazione differenziale sembrano essere tipi LVDS multi-MSPS.
  • CAN è probabilmente troppo lento e anche un po 'ingombrante per un'applicazione con spazio limitato.
  • Frequenza di campionamento: devo campionare ogni canale a 1kHz.

Inserito il:

Solo per dare un'idea dei vincoli di spazio:

Piccolo PCB con MCP3202

Qui puoi vedere uno dei PCB ADC. Questo in realtà ha un MCP3202 invece di un MCP3208, ma è compatibile (ish). È in un pacchetto TSSOP 8. Il PCB è di 11mm x 13mm. Il cavo nero ha un diametro di 2 mm. Come puoi vedere, non c'è nemmeno spazio per un connettore e i fili vengono saldati direttamente sul PCB, quindi in vaso. La mancanza di connettore è dovuta a vincoli di spazio circostante piuttosto che a vincoli di spazio PCB.


4
Come può essere considerata poco pratica la schermatura dei cavi ma raddoppiare il numero di fili (segnalazione differenziale) può essere considerato pratico?
Timrorr,

Scusa, avrei dovuto essere più chiaro. Intendevo qualcosa come CAN, che è un differenziale a 2 fili. Ovviamente è impossibile raddoppiare il numero di fili. Ho modificato la domanda.
Rocketmagnet,

1
In particolare, che tipo di test / certificazione stai provando a superare?
Joel B,

1
@JoelB - Mi dispiace, sono un po 'nuovo di EMI, quindi non ne sono davvero sicuro. Ma a un certo punto dovremo fare una specie di test EMI. Probabilmente una specie di test EMI a livello normale / di consumo, se esiste.
Rocketmagnet,

1
@Rocketmagnet, Ohh, non fraintendermi che stai realizzando un'antenna molto facilmente. Ci sono metodi di progettazione per questo, ci approfondisce di più, ma se il cavo non trasporta alcuna frequenza che un test EMI verifica per te andrà bene, devi assicurarti di non accoppiare il rumore di altre frequenze più alte da altri luoghi fuori (che è facile come diceva il design digitale ad alta velocità). Volevo solo un'idea migliore del tuo problema. Mi piace molto la domanda e ha già ricevuto il mio +1
Kortuk il

Risposte:


13

I cavi SPI da 2 MHz su 5 cm non sono enormi. Faccio molto SPI a 30 MHz su cavi di 10 cm, passando FCC Classe B e l'equivalente CE. La chiave è assicurarsi di avere un buon cavo (controllando il meglio che puoi per l'area del loop) e terminando correttamente i tuoi segnali.

Puoi controllare l'area del loop inserendo i segnali di alimentazione / GND da qualche parte nel mezzo del cavo: entrambi al centro del connettore, ma anche al centro del fascio di cavi. Normalmente avresti una potenza o GND per segnale, ma dal momento che raramente è una soluzione pratica devi fare il meglio con quello che hai. Inoltre, assicurarsi di inserire uno o due cappucci di disaccoppiamento sui PCB ad entrambe le estremità del cavo.

Terminare correttamente i segnali sarà un po 'complicato poiché non hai un'impedenza controllata sul cavo. Quello che vorrei fare è mettere un filtro RC sul PCB ad entrambe le estremità del cavo. Il filtro RC avrebbe la C sul lato cavo e la R sul lato chip. Al driver del segnale, inizierei con una R di circa 75 ohm e una C di circa 1 nF. Al ricevitore, la R sarebbe circa 10 ohm e C ancora 1 nF. Una volta costruiti i prototipi, dovresti provare diversi valori. In sostanza, vuoi valori più alti per R e C, ma non così alti che la cosa smetta di funzionare o i livelli del segnale sono troppo attenuati. I bordi dei segnali dovrebbero apparire molto arrotondati, ma non dovrebbero esserci squilli e gli orologi dovrebbero essere belli mentre si trovano nella banda di transizione del segnale (di solito da 0,8 a 2,0 volt).

Un valore limite di almeno 3 nF è ideale per la protezione ESD, ma potrebbe non essere un problema nella tua applicazione.


Grazie per la tua risposta. Sì, sono abbastanza sicuro che l'impedenza cambia in diversi punti mentre si sposta da pcb a connettore a cavo, ecc. Inoltre, le linee CS, CLK e MOSI sono condivise tra tutti gli ADC. Questo fa la differenza?
Rocketmagnet,

@Rocketmagnet I filtri RC stanno per terminare. Ecco perché i segnali sembreranno molto arrotondati. Questo farà diverse cose per te, il più importante è rendere l'impedenza non così critica. È necessario eseguire il rebuffing dei segnali CS, CLK e MOSI in modo che non vengano condivisi tra i cavi. A volte ciò non è possibile, quindi il secondo (distante) è utilizzare una terminazione separata per ciascun cavo e non condividere la terminazione.

2

CAN è quasi sicuramente la soluzione migliore in questo tipo di applicazione. È differenziale e dovrebbe effettivamente ridurre il numero di fili che vanno a ciascuna scheda. Se stai campionando sette chip, otto canali per chip, dodici bit per canale, sono 672 bit di dati per tempo di campionamento. A campioni da 1 kHz, velocità di trasferimento di 1 Mbit, ovvero 1000 bit per tempo di campionamento. Questo non ti lascia molto spazio per le spese generali, quindi potresti prendere in considerazione l'uso di un microcontrollore con due controller CANbus separati integrati. (Microchip ne fa diversi, io uso il dsPIC 30F6012a.) Dividi i tuoi A / D in due bus, con il tuo microcontrollore centrale su entrambi e si dovrebbe avere molta larghezza di banda.

Dall'altro lato, potresti considerare di sostituire i convertitori A / D con i microcontrollori. dsPIC 30F4013 potrebbe essere una buona scelta lì. 13 canali A / D a 12 bit, più CANbus.

In alternativa, penso che sia possibile convertire SPI in / da protocolli di tensione differenziale come RS-485. Ma non ne saprei abbastanza per commentare in modo intelligente.


Grazie per la tua risposta. Ho considerato CAN, ma alla fine non sono sicuro che ci sia abbastanza spazio per i componenti. Se fossero disponibili piccoli ricetrasmettitori CAN, potrebbe essere possibile. I più piccoli che riesco a trovare sembrano essere SOIC 8.
Rocketmagnet,

2
!! Quando dici spazio limitato, intendi! Potresti dare un'occhiata a questa risposta: electronics.stackexchange.com/a/30596/7523 Apparentemente, potresti essere in grado di cavartela senza usare un ricetrasmettitore in questa circostanza. Sarei sicuramente interessato a sapere se puoi!
Stephen Collings,

3
Eh. Controlla il nome su quella risposta a cui sei collegato.
Rocketmagnet,

1
Quindi quella cosa che ho detto di me non sapendo abbastanza per commentare in modo intelligente? Si.
Stephen Collings,
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.