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
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?