¿Por qué tocar el capacitor en mi regulador reductor hace que mi microcontrolador comience a ejecutar código?

Tengo una placa de microcontrolador alimentada por CA. Uso un módulo CUI (VSK-S15-48U) para generar 48 V CC desde la pared. Esos 48 V se reducen a 3,3 V para alimentar un micro (atmega328-mmh) y algunos otros periféricos (los 48 V se usan para otras cosas). Mi conexión de alimentación es bastante fea: tomé un cable de extensión de dos puntas, corté el extremo hembra y engarcé un conector, que se acopla a mi placa (lea que la conexión es probablemente fea y definitivamente recibo algunos transitorios cuando lo conecto ). Las fuentes de alimentación (48 V y 3,3 V) se ven muy bien/limpias y no hay oscilaciones.

Para simplificar/crear prototipos, estoy usando el IDE de arduino. Modifiqué el archivo avrdude.conf de modo que estoy utilizando el oscilador RC interno a 8 MHz. Puedo programar la placa sin problemas. Sin embargo, estoy notando que cuando inicialmente conecto la placa a la pared, el microcontrolador parece estar bloqueado: un LED de prueba no parpadea ni se enciende, otro uso de E/S parece estar alto en alguna parte y mis líneas I2C parecen estar triestablecidos (están elevados, así que leo un alto voltaje). Intenté reiniciar manualmente el micro usando un botón, pero parece que no tiene ningún efecto. Inicialmente, parecía que comenzaría a funcionar "al azar" y el FW se ejecutaría como se esperaba. Después de eso, la reprogramación/restablecimiento del micro funcionó como se esperaba hasta que lo desconecté y lo volví a conectar de la pared.

Inicialmente sospeché que se trataba de una junta de soldadura fría; al tocar la tapa, la conecté eléctricamente. Resoldar no hizo el truco.

Mirando con un alcance, el 3.3V se ve bien después de conectar el dispositivo a la pared; no veo nada que sospeche que tiene algún problema. La buena salida de potencia del regulador reductor indica que los 3,3 V están bien. Cuando toco la tapa de derivación, puedo ver que los 3,3 V bajan a ~2,2 V durante ~40 mS. La buena salida de potencia cae en consecuencia y luego, a veces, el micro se despierta y decide ejecutar el código (ocasionalmente se requieren algunos toques).

Pensé que tal vez la tasa de pendiente de vcc de alguna manera estaba causando que el micro se volviera loco. El 48V sube en 10 mS y el 3,3 en aproximadamente 2,5 mS. La hoja de datos requiere entre 0,01 y 10 V/mS, así que no tengo dudas.

Todavía tengo que depurar un poco más, pero en este punto no puedo encontrar una explicación lógica de por qué el micro no se enciende inicialmente y por qué tocar el límite de retroalimentación (y por lo tanto hacer que la salida del dólar se hunda un poco) ) pone el micro en marcha.

Editar:

Pensé que podría ser beneficioso reiniciar el micro manteniendo presionado el botón y soltándolo después del complemento; no hay diferencia.

Esquema del micro/buck:

ingrese la descripción de la imagen aquí

¿Qué tipo de transitorios recibes al enchufar la placa? Suena como algo similar a un pestillo. Sin embargo, si al tocar su placa se reduce tanto el voltaje de suministro, es probable que también haya otro problema.
Casi ninguno sobre los raíles. Medido en un rango de un par de milivoltios en el riel 3.3. No he mirado cuidadosamente el 48V, pero en general eso también se ve bien. El dólar está destinado a suministrar muy poca corriente. Supongo que si mi cuerpo está interfiriendo de alguna manera con la red de retroalimentación, el macho podría responder en consecuencia.
Intente agregar una resistencia de carga a la salida de suministro de 3V3. Hágalo de manera que consuma aproximadamente la mitad del exceso de capacidad actual después de todas las cargas deseadas. Entonces, si tiene un suministro de 150 mA, necesita 20 mA para sus cosas, coloque una carga de 65 mA de aproximadamente 50 ohmios y medio vatio. Esto debería hacer que el conmutador se regule correctamente si su carga es demasiado liviana.

Respuestas (2)

Antes de hacer una gran cantidad de depuración, pruebe también todos los demás lugares de soldadura. Creo que tal vez en otro lugar podría tener problemas de conexión.

Tal vez ponga un límite adicional de aproximadamente 100nF después de su inversión. Es mejor tener también uno con un pequeño esr. Tocar la tapa no debería reducir el voltaje a 2.2V, supongo que esto podría ser un problema.

Cuando no haya encontrado nada en el hw, es posible que haya un estado de espera para el encendido. ¿Has desenchufado tu depurador y programado el chip? Tal vez esté manteniendo el chip en estado de reinicio hasta que baje el voltaje.

Utilice siempre el circuito de reinicio de encendido si se trata de una fuente de alimentación no tan buena. Bastará con un transistor PNP simple (en su caso, divisor resistivo de 0,75/3,3, base al punto medio, emisor a +3,3, colector a GND a través de una resistencia de 1-10k, reinicio de MCU al colector).

PDF útil: http://www.st.com/web/en/resource/technical/document/application_note/CD00003839.pdf

No estoy en desacuerdo con lo que dices, pero no creo que sea relevante aquí. Como se mencionó, los rieles se ven súper limpios y el micro tiene un POR incorporado. ¿Quizás puedas elaborar?
Los POR incorporados pueden ser inadecuados, potencialmente.
@Doov Miré sus esquemas y aún sugeriría agregar al menos un límite de 0.1 uf de RESET a GND y ver si ayuda.
@Doov El límite proporcionará un pequeño retraso, suficiente para que la fuente de alimentación se estabilice por completo.
En principio, estoy de acuerdo en que una gorra no duele, pero eso no está relacionado con el problema que estoy observando a bordo. El raíl de 3,3 V tiene muy poco ruido y sube a su valor nominal en 2,5 mS. En otras palabras, no parece que la PSU necesite tiempo para "establecerse". Además, si observa el esquema del arduino uno, también se vinculan con el reinicio alto con un pullup. No digo que sea una gran práctica de diseño, pero han enviado cientos de miles (¿millones?) de placas con esta configuración micro y reiniciada.
@Doov Entiendo su frustración con mi consejo: ¿por qué sigo insistiendo en cosas redundantes? Se enviaron millones de arduinos sin POR adicionales, tapas, etc., y funcionan perfectamente. Pero adivine qué, su situación es anormal, y no somos psíquicos aquí para ver a través de su situación; si insiste en que el poder está bien, entonces las únicas cosas que puedo pensar son: 1) Algo de física nueva (materia oscura, etc.) 2) MCU roto 3) POR que funciona incorrectamente. Simplemente agregar una tapa puede ayudar a arrojar algo de luz sobre esto.
No pretendo sugerir que estoy frustrado por su consejo, definitivamente aprecio la ayuda. Creo que es una sugerencia razonable poner un límite allí y probablemente debería estar allí en general. Dicho esto, no pude encontrar una explicación convincente de por qué la ausencia de un límite causaría los problemas que estoy viendo. En cualquier caso, agregué un pequeño límite a la línea de reinicio y no resolvió este problema.
@Doov Entonces es el cierre: en.wikipedia.org/wiki/Latch-up . Mencionaste que tienes segundo voltaje. Si entra en el dispositivo por alguno de los pines, puede provocarlo. Verifique si hay alguna capacitancia parásita desde el riel de mayor voltaje a los pines. En general, hay diodos dentro de la MCU para evitarlo, pero aún así.