La radio interfiere con la comunicación del bus I2C

2

Tengo un PCB con un Microchip PIC18F97J60 y cada vez que enciendo una radio de 5 vatios que transmite a 144 Mhz junto a la placa, se reinicia el procesador. El procesador se reinicia cuando intenta comunicarse a través del bus I2C. El temporizador del perro guardián agota el tiempo de espera para el MSSP (Master Synchronous Puerto serie) indicador de interrupción para ser configurado. Esto ocurre con mayor frecuencia cuando se espera el indicador de interrupción después de que el maestro (PIC18F97J60) envíe un reinicio o un NACK.

Estoy usando resistores de 2 kOhm pull-up y ejecutando el bus a ~ 96 kHz. En el osciloscopio, parece que la interferencia en el bus es lo suficientemente mala como para bajar las líneas de SCL y SDA de 5V a 2.6 V. ¿Qué se puede hacer para proteger las señales del bus i2c de la interferencia para que el procesador no se reinicie mientras ¿Esperando una interrupción del módulo MSSP?

    
pregunta mjh2007

2 respuestas

2

Aparentemente, la interferencia de radio está estropeando la comunicación del bus IIC, de modo que el esclavo no cree que se esté dirigiendo y no hay ACK. Como Steven señaló, es un mal diseño de software tener un ACK perdido que hace que el procesador se reinicie. Esto debe solucionarse, pero su pregunta es principalmente sobre el problema de la interferencia. Tuviste suerte de que la interferencia provocara otro error oculto en tu código. Arregla eso mientras se reproduce fácilmente.

Los pullups de 2 kΩ en las líneas de IIC son tan bajos como se puede ir, por lo que no se puede hacer nada más allí. No dices qué frecuencia y nivel de potencia es esta radio que está al lado del tablero. Un cierto nivel de proximidad y potencia de salida causará un fallo. Dicho de otra manera, solo hay tantos voltios por metro que puede tomar su tablero antes de que funcione incorrectamente. Lo primero que debe preguntarse es si es razonable proteger contra el nivel de radiación que llega a la placa. Una solución podría ser "bueno, no hagas eso". Coloque el transmisor en la habitación, protéjalo adecuadamente, mueva la antena, etc.

Si necesita hacer que la placa sea menos sensible a esta RF (de nuevo, sería útil saber la frecuencia y el nivel de potencia con el que está tratando), entonces es probable que haya varias cosas que corregir. Lo más probable es que este problema se deba a una mala distribución, en particular el terreno, y la falta de atención a las corrientes de bucle de alta frecuencia. Todas las mismas cosas que usted hace para reducir las emisiones funcionan simétricamente para reducir la susceptibilidad a la radiación recibida. Dicho de otra manera, la física nos dice que todo lo que funciona como una antena transmisora funciona como una antena receptora y al revés.

Muestre el diseño, particularmente la estrategia de conexión a tierra, de su tablero. También mire cuidadosamente cualquier cosa que vaya fuera del tablero porque son antenas. Dado que está utilizando un 18F97J60 que tiene un Ethernet / MAC de Ethernet, probablemente tenga un cable de Ethernet proveniente de la placa. ¿Qué reducción de RF está en el lado de la red del transformador? ¿El transformador tiene un balun incorporado en el lado de la red? ¿El problema desaparece cuando desenchufa el cable Ethernet?

    
respondido por el Olin Lathrop
5

2 kΩ debe ser lo suficientemente bajo como para no producir mucho ruido en la señal.

Pero parece que tu problema está en otra parte. No parece que el ruido reinicie el controlador. Siempre que el controlador funcione correctamente, debe reiniciar el temporizador de vigilancia para que nunca se agote el tiempo de reinicio del controlador. Si el mensaje serie no se recibe correctamente, su protocolo debería solucionarlo. El reinicio es para emergencias, cuando el software se vuelve loco, o una perturbación de la energía bloquea el hardware. Dejar que se agote el tiempo de espera de vigilancia porque está esperando un ACK o un reinicio de la transmisión es malo.

    
respondido por el stevenvh

Lea otras preguntas en las etiquetas