Je fais actuellement un système composé d'un boîtier en plastique qui contient un MCU parlant à 7 ADC utilisant un SPI de 2 MHz sur des fils d'environ 5 cm de long.
Le problème est que je suis préoccupé par EMI. Tout ce que j'ai lu suggère que tout type de signal numérique qui n'est pas en toute sécurité sur un PCB dans un châssis métallique mis à la terre rayonnera trop pour passer les tests EMI. Je suppose que cela inclurait également I2C.
Est-ce susceptible d'échouer aux tests EMI? Que puis-je faire à ce sujet?
Je cherche toutes sortes de réponses, y compris "Utiliser un bus / ADC différent", mais pas les réponses qui impliquent des changements mécaniques comme: "Mettez tous les ADC sur le même PCB" ou "Mettez le tout dans une boîte métallique" . Je suis particulièrement intéressé par les alternatives Low-EMI à SPI, y compris les bus différentiels.
Voici quelques informations pertinentes sur l'application. Veuillez me faire savoir si vous avez besoin de savoir plus de choses:
- 6 fils vont à chaque carte ADC (Power, GND, CS, CLK, MOSI, MISO).
- Les ADC sont actuellement MCP3208 (Microchip 8 canaux, 12 bits)
- Je travaille dans une application qui manque désespérément d' espace, donc ajouter un blindage aux fils n'est pas vraiment une option.
- Ce serait bien d'utiliser une sorte de bus différentiel (une ou deux paires uniquement), mais les seuls ADC avec communication différentielle semblent être des types LVDS multi-MSPS.
- Le CAN est probablement trop lent et aussi assez volumineux pour une telle application à espace limité.
- Fréquence d'échantillonnage: j'ai besoin d'échantillonner chaque canal à 1 kHz.
Ajoutée:
Juste pour donner une idée des contraintes d'espace:
Ici, vous pouvez voir l'un des PCB ADC. Celui-ci a en fait un MCP3202 au lieu d'un MCP3208, mais il est compatible (ish). C'est dans un package TSSOP 8. Le PCB mesure 11 mm x 13 mm. Le câble noir a un diamètre de 2 mm. Comme vous pouvez le voir, il n'y a même pas d'espace pour un connecteur et les fils sont soudés directement au PCB, puis mis en pot. L'absence de connecteur est due aux contraintes d'espace environnantes plutôt qu'aux contraintes d'espace PCB.
Réponses:
Les câbles SPI 2 MHz sur 5 cm ne sont pas énormes. Je fais beaucoup de 30 MHz SPI sur des câbles de 10 cm, en passant FCC Classe B et l'équivalent CE. L'essentiel est de s'assurer que vous disposez d'un bon câble (contrôlant le mieux possible la zone de boucle) et de terminer correctement vos signaux.
Vous contrôlez la zone de boucle en plaçant les signaux d'alimentation / GND quelque part au milieu du câble: les deux au milieu du connecteur, mais aussi au milieu du faisceau de fils. Normalement, vous auriez une puissance ou un GND par signal, mais comme il s'agit rarement d'une solution pratique, vous devez faire de votre mieux avec ce que vous avez. Assurez-vous également de placer un ou deux bouchons de découplage sur les PCB aux deux extrémités du câble.
Terminer correctement les signaux va être un peu délicat car vous n'avez pas d'impédance contrôlée sur votre câble. Ce que je ferais, c'est de mettre un filtre RC sur le PCB aux deux extrémités du câble. Le filtre RC aurait le C côté câble et le R côté puce. Au niveau du pilote de signal, je commencerais par un R d'environ 75 ohms et un C d'environ 1 nF. Au niveau du récepteur, le R serait d'environ 10 ohms et C toujours 1 nF. Une fois les prototypes construits, vous devez essayer différentes valeurs. Essentiellement, vous voulez des valeurs plus élevées pour R et C, mais pas si élevées que la chose cesse de fonctionner ou que les niveaux du signal sont trop atténués. Les bords de vos signaux devraient être très arrondis, mais il ne devrait pas y avoir de sonnerie et les horloges devraient être agréables dans la bande de transition du signal (généralement de 0,8 à 2,0 volts).
Une valeur limite d'au moins 3 nF est idéale pour la protection contre les décharges électrostatiques, mais cela pourrait ne pas être un problème dans votre application.
la source
CAN est presque certainement votre meilleur pari dans ce type d'application. C'est différentiel et devrait en fait réduire le nombre de fils allant à chaque carte. Si vous échantillonnez sept puces, huit canaux par puce, douze bits par canal, cela représente 672 bits de données par temps d'échantillonnage. À des échantillons de 1 kHz, un taux de transfert de 1 Mbit, c'est 1000 bits par temps d'échantillonnage. Cela ne vous laisse pas beaucoup de place pour les frais généraux, vous pouvez donc envisager d'utiliser un microcontrôleur doté de deux contrôleurs CANbus distincts. (Microchip en fait plusieurs, j'utilise le dsPIC 30F6012a.) Divisez vos A / D en deux bus, avec votre microcontrôleur central sur les deux, et vous devriez avoir beaucoup de bande passante.
À l'autre extrémité, vous pourriez envisager de remplacer les convertisseurs A / N par des microcontrôleurs. dsPIC 30F4013 pourrait être un bon choix là-bas. 13 canaux A / N 12 bits, plus CANbus.
Alternativement, je pense que vous pouvez convertir SPI vers / depuis des protocoles de tension différentielle comme RS-485. Mais je n'en saurais pas assez pour commenter intelligemment.
la source