El arranque del motor corrompe la pantalla de 7 segmentos impulsada por SPI

Conduzco seis pantallas de 7 segmentos con SPI usando MAX7219 y ATmega128. Esto es para mostrar varios parámetros del motor como rpm, presión de aceite, etc. para motores diesel marinos grandes (>100 kW). El sistema funciona con 24 V CC a partir de baterías de plomo ácido (tipo automotriz) reducidas a 5 V con la ayuda del convertidor CC-CC de Mornsun (URB2405 - Convertidor CC-CC aislado).

El sistema funciona bien cuando el motor funciona sin problemas (aprox. >900 rpm) y se probó recientemente en un banco de pruebas durante 2,5 horas sin problemas. Sin embargo, la pantalla funciona mal por completo y es muy poco confiable cuando el motor está arrancando.

Después de depurar esto durante muchos días y corregir muchos errores estúpidos (¡me olvidé de agregar diodos flyback para algunos relés integrados!) Todavía tengo una confiabilidad de pantalla muy baja durante el arranque. Cuando la pantalla no funciona bien, se muestra basura en los 7 segmentos, o todos los segmentos se encienden o se queda en blanco.

He agregado un capacitor de 1000uF/63V y un MOV antes del convertidor DC-DC para reducir las fluctuaciones de suministro durante el arranque. Sin embargo, sigue siendo muy poco fiable. Siento que el controlador funciona bien durante el arranque y es solo la pantalla la que funciona mal.

Estoy buscando algunas sugerencias para la estabilidad de la fuente de alimentación durante el arranque o grandes transitorios. He probado algunas cosas y estoy a punto de probar si lo siguiente mejora la situación:

  1. Use cables blindados que conecten la PCB de la pantalla a la placa del controlador para evitar que el ruido corrompa el SPI
  2. Aísle los cables que transportan alta corriente (bobina del relé del motor de arranque, bobina del relé del solenoide de parada, etc.) de los cables de señal con blindaje y entréguelos de manera diferente dentro del gabinete.
  3. Agregue un límite de 0.1uF (104) entre las 2 tierras del convertidor DC-DC para reducir el ruido en el lado de 5V
  4. Alimente todo desde una fuente de alimentación para automóvil lista para usar que proporciona todas las protecciones estándar. Alguna sugerencia ? (Entrada 24V, Salida 5V, 600 mA máx 3W)
  5. Reduzca la longitud del cable para mejorar la confiabilidad de SPI (aunque actualmente la longitud total: pista + cable es inferior a 1 pie, por lo que no es tan esperanzador que esto haga alguna diferencia)
  6. Aumente el límite de desacoplamiento para cada MAX7219 de 10uF a 470uF
  7. Use un capacitor muy grande para mantener el voltaje mientras arranca

Todavía siento que me estoy perdiendo la razón crucial por la que la pantalla no funciona correctamente. La caída de voltaje no debería ser realmente un problema, ya que el convertidor CC-CC está clasificado para proporcionar 5 V uniformes para un amplio rango de entrada de 9-36 V. Incluso si la batería está descargada, dudo que el voltaje caiga de 24 V a menos de 9 V, por lo que es un misterio por qué la pantalla se queda en blanco o muestra basura.

¿Ha mirado sus rieles y líneas de señal durante el arranque con un visor?
Si está alimentando el microcontrolador desde la batería de arranque, intente alimentarlo desde una fuente de alimentación independiente.
Agregar una tapa grande es una buena idea, pero también debe agregar un diodo entre la fuente de alimentación y la tapa. Si no hace esto, cuando arranque y baje la potencia, la tapa simplemente intentará ayudar en el proceso de arranque. Agregue un diodo para evitar que se descargue.
Además, el límite de 1000uF puede no ser suficiente dependiendo de qué tan brillantes sean los 7 segmentos. Secundo la vista del alcance en el suministro de 5V. Eso lo ayudará a aislar el problema de la fuente de alimentación o no. Además, ¿cuánto tiempo de cables está ejecutando SPI? Finalmente, también puede querer una serie R o L frente a su fuente de alimentación y MOV, de esa manera cuando el MOV se activa, no está tratando de reducir el voltaje en todo el sistema de batería / motor de arranque.
Es un esfuerzo locamente fuera de lugar agregar la mayor parte de estas cosas sin poner un visor en el riel de 24 V y arrancar el motor. No tiene sentido preocuparse por los cables apantallados, etc., si el suministro cae a 8 V mientras está arrancando. Alguien más ya ha señalado por qué el límite de 1000uF estaba condenado al fracaso.
Su suposición de que el voltaje de la batería está por debajo del umbral de entrada más bajo de Mornsun DCDC es solo eso, una suposición, debe medirse; Sospecho que lo es. Secundo la adición de un diodo de WhatRoughBeast, bastante crucial, sin él, incluso las tapas del filtro en el Mornsun DCDC se secarán más rápido de lo que cabría esperar. No pierda su tiempo en el blindaje, ni en límites de desacoplamiento tan grandes en los MAX, hasta que tenga una idea de lo que realmente está haciendo la entrada.

Respuestas (2)

  • Coloque una perla de ferrita de 100 ohmios a 100 MHz entre la salida de la fuente de alimentación y la entrada de voltaje del circuito digital.

  • En la línea SPI, coloque una perla de ferrita de 100 ohmios a 100 MHz entre el Atmega y el MAX, puede ayudar a que se acople algo de ruido en su PCB.

  • Condensadores de 100nF (X5R o X7R) en todas partes de su PCB, para un proyecto como este no puede prescindir de ellos o su circuito puede actuar "extraño".

¿Es posible publicar una impresión de su PCB? Tal vez necesite algunos ajustes, puede estar acoplando el ruido.

Todos los componentes electrónicos hechos para un automóvil o todo lo que implica mucho ruido necesita perlas y una buena protección contra el ruido, solo una fuente de alimentación aislada no funcionará.

¿Cómo ver el ruido? Simple. Obtenga un cable de cobre #18, alrededor de una lata de refresco haga un bucle con 3 ~ 4 vueltas, introdúzcalo en el osciloscopio, si lo mueve alrededor del motor del automóvil con cuidado, puede ver cuánto EMI produce.

Un solo MOV y un límite de 1000uF no ofrecen mucha protección contra el ruido de RF emitido durante el encendido. Para empezar, agregaría un B32529C104K189 en paralelo con el MOV. También asegúrese de separar sus tierras de RF y digitales, de modo que cada una tenga diferentes rutas de regreso al límite de 1000uF.

También dijo que podría aumentar el límite de desacoplamiento MAX7219 de 10uF a 470uF. Recomendaría no aumentar el límite de desacoplamiento sino agregar un segundo y un tercer límite de desacoplamiento. Deje los 10uF y agregue 470uF, así como también agregue una cerámica de baja esr de 0.1uF.

Esto también debe hacerse en el ATmega128 si aún no lo ha hecho. Cada pin Vcc en el ATmega128 necesita un límite de desacoplamiento de 0.1uF y se debe usar un segundo límite de 0.01 cerca.

Aquí hay un PDF que recomienda un filtro RC de 50 ns justo en línea con el SPI para tratar de mitigar la interferencia de RF, así como usar una perla de ferrita para aislar aún más la potencia del MAX7219 individual:

http://www.latticesemi.com/~/media/LatticeSemi/Documents/WhitePapers/HM/ImprovingNoiseImmunityforSerialInterface.pdf?document_id_50728

Gracias por las sugerencias. Ya he implementado la mayoría de ellos. No estoy seguro de poder responder a mi propia pregunta, pero el problema se ha resuelto. Probé varias cosas hoy y descubrí que el ruido de los grandes cables que transportaban corriente (relé del motor de arranque, relé de parada) estaba corrompiendo el SPI. Después de implementar los primeros 2 puntos que escribí en mi publicación original, el problema desapareció por completo.
¡Impresionante! El ruido es algo difícil de manejar, me alegro de que te haya resultado,