5 votos

STM32 PCB personalizado: microcontrolador no responde al depurador, consume demasiada corriente, se calienta

Para un proyecto escolar, he diseñado un PCB en KiCAD alrededor de STM32F401RBT6. El diseño se basa en lo que diseñé antes y en las notas de la aplicación. Se alimenta a través del puerto USB y debería ser programable a través de SWD, pero no lo es. Estoy utilizando un ST-Link V2 y la aplicación STM32Programmer para comunicarme con el microcontrolador, pero la aplicación no lo encuentra. El PCB fue solicitado a JLCPCB con los componentes pasivos ya ensamblados. Estoy soldando a mano el microcontrolador usando el método de arrastre de soldadura (temperatura del soldador de 320C). Limpio el exceso de soldadura usando flux y una mecha de soldadura. Tan pronto como sueldo el microcontrolador en el PCB y lo enciendo, la fuente de alimentación me muestra que el consumo de corriente es de aproximadamente 160mA. Verifiqué observando el PCB con una cámara térmica y al desoldar el microcontrolador que definitivamente es el microcontrolador el que está disipando todo el calor. Lo interesante es que he intentado ajustar todo tipo de cosas y siempre es el mismo síntoma y casi exactamente la misma cantidad de corriente (dentro de +-5mA). Cosas que he intentado:

  • Dejar todos los componentes irrelevantes desarmados, dejando solo el conector SWD y el LDO (5V a 3V3)
  • Probar con microcontroladores nuevos (ya he dañado 9 de ellos). Esto me lleva a creer que no es un problema de cortocircuito.
  • Limpiar el flux de soldadura a fondo con alcohol isopropílico y un cepillo de dientes
  • Observar las conexiones bajo el microscopio y verificar que no hay cortocircuitos (aunque soy consciente de que podría haber un cortocircuito, dado que siempre es el mismo consumo de corriente y que el paquete del microcontrolador se calienta, concluyo que el error está dentro)
  • Resistencias de pullup en SWIO y SWCLK
  • Verificar la orientación
  • el depurador funciona, veo los pulsos en el osciloscopio
  • No hay sobretensión, ya que estoy alimentando la placa con un LDO. También he observado el riel 3V3 durante el encendido y parece que no supera los 3V3.
  • reemplazar el IC de protección ESD en SWD
  • NRST normalmente alto, y es asertado por el depurador
  • BOOT0 no está flotando.
  • Revisar el check DRC de KiCAD
  • el cableado es correcto (comparado con la hoja de datos y STM32CubeMX)
  • Aumentar la corriente lentamente
  • Todos los capacitores VDD y VDDA son según lo recomendado en la nota de aplicación. Lo mismo ocurre con VCAP
  • Estoy utilizando este adaptador (https://www.olimex.com/Products/ARM/JTAG/ARM-JTAG-20-10/) Estoy seguro de que el cableado es correcto
  • La tensión en el riel 3V3 parece ser correcta

página esquemática del microcontrolador Puertos USB y SWD LDO a 3V3 U302 es el microcontrolador. Las resistencias en serie son de 22 ohmios La placa ensamblada

Estoy completamente atascado y sin ideas en este punto. ¿Alguien tiene una idea de lo que está pasando? ¿Alguien ha tenido el mismo problema antes?

3voto

Lisa Puntos 67

ACTUALIZACIÓN Pude resolver el problema. Mientras medía los voltajes en los pines, noté que el multímetro me indicaba que había un cortocircuito entre las dos almohadillas del capacitor VCAP. Luego noté que en lugar de un capacitor en VCAP, coloqué un inductor. De todos modos, colocar un capacitor de 4u7 en VCAP resolvió el problema.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X