El microcontrolador STM se quema cada vez

Tengo algo de experiencia trabajando con stm32, pero solo los usé en placas de desarrollo.

Recientemente intenté soldar stm32 y stm8 en una placa de conexión simple y programarlos con mi clon st-linkv2.stm32 soldado en placa de ruptura

En el primer encendido, la mcu hace algunos ruidos como si se quemara después de unos segundos, y 2 minutos más tarde consume 100 mA y echa humo.

Creo que hay algunos detalles importantes que me estoy perdiendo. ¿Qué podría salir mal en una configuración simple como esta? (solo vdd,vss, tapa de desacoplamiento y st-link)

Probé más de 20 veces con stm8 y stm32.

Acerqué lo más posible la tapa de desacoplamiento y les suministré 3.3v.

Algunas veces pude programar y verificar el flash, pero mostró un comportamiento extraño * y nuevamente se convirtió en humo unos minutos más tarde.

Probé soldadura por arrastre, soldadura normal con punta smd y temperatura tan baja como 260C y tiempo de enfriamiento después de cada pad. También probé la pistola de aire caliente en 270C y estoy casi seguro de que el problema no es la soldadura.

También probé con NRST pull-up y BOOT0 pull-down.

*comportamiento extraño: "aleatorio" como el tiempo en un simple parpadeo LED o una señal pwm que solo baja a alrededor de 2.8v en lugar de 0v. en general, funciona 'algo', pero solo durante 1 minuto.

** el problema no es st-link. está parpadeando bien la placa de desarrollo

EDIT 1: Aquí está el esquema (para stm32) (Conexiones a ST-Link marcadas con etiquetas):

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

no hay nada debajo. solo otra huella (despoblada) conectada a pines.

EDICIÓN 2: prueba de continuidad: sin cortocircuitos, todos los contactos de los pines están bien

EDIT 3: conectó VDDA y VDD y agregó otros 4.7uF en VDD. todavía frito. VDD medido directamente en el dispositivo: 3.36v

EDICIÓN 4: comportamiento de consumo actual: en todos los casos, cuando el chip se fríe, consume alrededor de 20-40 mA y, a veces, de repente sube a 100-240 mA durante algunos segundos y luego se pone a cero (menos de 10 mA). y permanece en cero durante algún tiempo antes de empezar de nuevo.

ACTUALIZACIÓN: soldé otro STM8S003F3P6,1uF en VCAP y 2x100nF y 10uF en VDD. y usé una batería como fuente e hice un pequeño multiplicador de capacitancia y seguidor de emisor para hacer los 3.3v con muchas tapas de cerámica y baja ESR, y un límite de corriente establecido en 15mA. el voltaje tenía menos de 30mV de ruido sobre 50MHz. luego conecté la MCU (recién soldada). el consumo de corriente fue inferior a 4 mA y el voltaje fue estable. lo dejé ser después de uno o dos minutos, de repente comenzó a superar el límite de 15 mA y activó el PDR. y ahora comienza a hacerlo de inmediato (incluso con el NRST afirmado). parece que este también se ha ido...

¿No hay rastros en la parte inferior de esa placa de circuito impreso?
Si mide la continuidad/resistencia entre los pines de la placa de circuito impreso desnuda , ¿no hay conexiones ocultas? (Mida el pin 1 contra 2...20, el pin 2 contra 3...20, etc.)
¿Puedes agregar un esquema?
Mi mejor suposición es que aplica el voltaje de suministro al lugar equivocado en su microcontrolador.
¿Qué podría salir mal en una configuración simple como esta? Solo necesito 2 conexiones y una fuente de alimentación (incluso algunas baterías servirán) para volar casi CUALQUIER IC. Simplemente enciéndalo en reversa (+ / - intercambiado) y la protección ESD freirá todo el IC. Simple no significa infalible.
¿Qué voltaje es el LF33?
medir VDD directamente en el controlador.
@Huisman PCB está bien. Hice la prueba de continuidad.
@Bimpelrekkie lo intentó más de 20 veces, no debería ser el caso... verifiqué el último y la potencia es correcta
@StainlessSteelRat que yo sepa, "LF33" significa 3,3 voltios y no tiene otros voltajes, ¿verdad? de todos modos medí y es 3.36
@Mike es 3.36 en el dispositivo. tanto VDD como VDDA
Muéstranos fotos de tu configuración de cableado.
Entonces, ¿qué está conectado a PF0-OSC_IN? Pin 2. ¿Tiene condensadores de desacoplamiento?
Creo que es hora de probar una placa de ruptura diferente.
Con la cantidad absurda de fichas que has perdido, hay algo fundamentalmente mal aquí. Pruebe con una fuente de alimentación completamente diferente, como tomar prestado el 3v3 de la placa de desarrollo.
¿Cómo estás conectando todo hasta estas placas de conexión? Sería útil publicar una foto. Si es una protoboard, ¿está dañada o defectuosa? Para confirmar que no tiene un lote de chips defectuoso o falsificado, puede reemplazar el chip en su placa de desarrollo con uno de estos y ver si funciona allí.
@Chris Stratton: Estoy completamente de acuerdo, especialmente. en "absurdo". OP debería haber notado después de unos 5 dispositivos que debe haber algo totalmente mal, en lugar de quemar otros 15 o más. // Niko: Sin embargo: rápidamente revisé la hoja de datos y descubrí que el voltaje de suministro es de 2.4V a 3.6V. Entonces, ¿por qué no usas 2 pilas AA?
Solo para asegurarte, estás usando un dispositivo diferente cada vez, ¿verdad? ¿Como si no estuvieras reutilizando el mismo microcontrolador después de que ya está quemado?
Por casualidad, ¿está suministrando energía dos veces? (Una vez desde el ST-Link, una vez por su batería/lo que sea)?

Respuestas (10)

V DDA no está conectado.

Nota de aplicación AN4325 Primeros pasos con el desarrollo de hardware de las series STM32F030xx y STM32F070xx dice:

La alimentación de V DDA puede ser igual o superior a V DD . Esto permite que V DD se mantenga bajo y al mismo tiempo proporcione el máximo rendimiento para los bloques analógicos.

Cuando se utiliza un solo suministro, V DDA debe conectarse externamente a V DD .

Por lo tanto, conecte el pin 5 al pin 16 antes de volver a intentarlo.

Observé esto en esa nota de aplicación: "El nivel de voltaje de VDDA siempre debe ser mayor o igual que el nivel de voltaje de VDD y debe proporcionarse primero".
Simplemente conectarlos funciona bien.
@berendi no estaba al tanto de esta necesidad. Muchas gracias. pero até VDDA y VDD juntos y sucedió lo mismo. ¿VDDA realmente necesita llegar "antes" de VDD? el documento dice que se pueden unir
@Niko. Lo he visto funcionar con ambos pines de alimentación simplemente conectados entre sí. Preste atención a los requisitos de capacitancia señalados en otras respuestas.

¿Ha mirado la forma de onda de su fuente de alimentación con un osciloscopio?

El regulador de voltaje lineal de caída baja LF33 que parece estar usando requiere un mínimo de 2 µF de capacitancia de salida adicional para la estabilidad, su esquema solo muestra 100 nF. Además, no veo ninguna capacitancia de entrada antes del regulador.

Si el regulador está oscilando, podría estar aplicando intermitentemente los 5 V completos a los pines de alimentación de su MCU. Eso excedería la clasificación máxima de 4V para el STM32.

SI no está al tanto del "efecto de enganche SCR enterrado" de CMOS con efectos de daño por calor de disparo de suministro de entradas que aumentan más que el voltaje de suministro en 0.3V, nunca lo olvidará ahora.

Esto es lo mismo que aplicar señales analógicas antes de conectar VddA.

La nota de aplicación p11 establece claramente lo que se debe hacer, pero no el motivo.

"• El POR monitorea solo la tensión de alimentación VDD. Durante la fase de arranque, VDDA debe llegar primero y ser mayor o igual que VDD. •
El PDR monitorea tanto las tensiones de alimentación VDD como VDDA
. deshabilitarse (mediante la programación de un bit de opción dedicado VDDA_MONITOR) para reducir el consumo de energía si el diseño de la aplicación garantiza que VDDA sea mayor o igual que VDD"

yo no estaba, gracias!. pero ¿qué señales vienen antes de VDDA? en mi secuencia de potencia, estoy conectando VDD y VDDA (unidos) a 3.3, luego conecto ST-Link. la nota de la aplicación dice que puede unir VDD y VDDA.
OK, entonces ESD es otra causa de esto
ver Edición 4. ¿Este tipo de comportamiento de extracción actual se debe a un chip dañado bloqueado?
¿Depende de qué tan caliente se pone> ​​200'C por> 10 s? pero 1W lo dudo... Causa desconocida

En mi experiencia profesional, he encontrado el STM32 extremadamente sensible a los voltajes transitorios en los rieles de alimentación y GPIO. Asegúrese de que sus fuentes de alimentación no se sobrecarguen en el arranque. Lo que puede hacer para mitigar esto es agregar entre 10uF y 100uF en la salida de su regulador de voltaje. Buena suerte y haznos saber como va eso.

Echemos un vistazo a la hoja de datos de LF33: https://www.st.com/resource/en/datasheet/cd00000546.pdf

Output bypass capacitance:
ESR = 0.1 to 10 Ω
Io = 0 to 500 mA
Minimum: 2μF, Typical: 10μF

La capacitancia de 100nF, lejos de LDO no funcionará. Intente comprobar la línea de alimentación con el osciloscopio. Y no freír la próxima MCU sin agregar un condensador electrolítico LOW ESR de 10-47uF cerca de los pines LF33.

¿Dónde tienes el uC? ¿Son genuinos?

He trabajado con un montón de stmf1 y no tuve problemas con esd ni soldadura a alta temperatura

¿Has probado a no flashear el dispositivo? Solo déjalo actuar por un tiempo.

¿De dónde obtienes energía para 5v? Tal vez sea alguna fuga de eso. Intente alimentarlo desde USB desde la misma PC que está usando el flasher. Intente obtener un convertidor ftdi para la depuración en serie y enciéndalo directamente con la salida 3v3

Por lo que obtuve, su prueba simple es un led parpadeante. ¿Bien? Que corriente estas usando? ¿El pasador está fijado en el lado superior o inferior? Intente usar un fet npn o similar en el lado inferior para alternar este led. Tal vez la corriente lo esté dañando. Aunque lo he visto quemar IO, no dispositivo como este.

Su escuela no muestra vdda, no estoy seguro si alimenta algo más que adc, pero tampoco debería grabar el dispositivo.

Mi mejor suposición es la referencia de diferentes dispositivos como fuente de alimentación y USB

uCs eran genuinos. Intenté no hacer parpadear el dispositivo (última edición de la publicación) Los LED estaban conectados con 1K de lado bajo

Consulte la hoja de datos para conocer la corriente máxima que consumirá el F030 y establezca el límite de corriente en el suministro de su banco para entregar un poco menos de esa cantidad para proteger el micro. No he revisado la hoja de datos de su LDO (LF33), pero para la estabilidad necesitará un condensador a granel en el lado de la fuente y un condensador de menor valor en el lado del micro. Este último no debe confundirse con la tapa de desacoplamiento para VDDD y VDDA en el micro. Finalmente, alguien más ya ha mencionado el suministro del esquema de la placa. Muchas de estas placas de terceros asumen energía y conexión a tierra en los pines de las esquinas. Ese no es el caso aquí. También se beneficiará al usar el STM32CubeMx gratuito para ayudar a establecer sus pines y generar el código de configuración.

La estabilidad del regulador es el truco aquí. Las cargas ligeras son más difíciles de mantener estables, sin capacitancia adicional.

Una vez me sucedió algo similar con un LM317. El voltaje en ese circuito fue hacia 12v. El control de la serie puede salir mal.

Trabajé con procesadores NXP Arm7 que tenían un problema de bloqueo de encendido en los pines de E/S. Sin embargo, sospecho que su problema es la estabilidad, no el cierre.

Finalmente encontré lo que estaba causando todo esto. Parece que tuve algunos problemas en mi circuito de conexión a tierra y apareció algo de CA de alto voltaje en el dispositivo durante la soldadura y el encendido y no había una tierra común presente. Aunque la ruta tenía una impedancia bastante alta, aparentemente causó mucho daño... ¡Tengo un STM8 parpadeando un LED durante más de 5 minutos! (Qué logro :)) pero tampoco usé fundente de soldadura en esta placa, ya que sospechaba que los residuos de fundente también estaban causando algunos problemas...

Actualización: el problema se solucionó durante bastante tiempo y puedo decir que la causa principal fue el residuo de flujo. el uso de fundente de buena calidad y la limpieza adecuada de la placa antes del primer encendido resuelven el problema por completo. Utilizo limpiadores líquidos y una pistola de aire caliente con una temperatura mínima (150 'C) y una presión de aire máxima a través de una punta angosta para "aire caliente" el líquido lejos del chip y entre los pines, después de que disuelva el residuo de fundente. aunque usar líquido en chips "horneados" no es la mejor idea, parece resolver el problema por ahora. si estás en la misma situación, espero que este hilo te ayude lo suficiente... gracias a todos. Agradezco el tiempo que dedicas :)

Mikołaj Tutak golpeó esto en la cabeza. Sólo un par de notas.

La ESR requerida se cumplirá con casi cualquier límite. Lance un par de electrolíticos baratos de 10uF o 4.7uF en paralelo en la salida y estará bien. La hoja de datos solo requiere 2.2uF, pero extra no hará daño.

He usado este MCU exacto (y el K6 y CC para el caso) en al menos 4 diseños diferentes. Nunca frito uno. Utilicé tapas MLCC baratas para el bypass, pero en mi entrada tenía tapas AL sólidas de 10 uf a 22 uF; excepto en un caso, tenía 10 uF de tantalio en lugar de AL. Todos estos diseños eran de una sola capa sobre un plano de tierra. Sin regulador a bordo.

En todas mis pruebas, mi fuente de alimentación era idéntica, 13,8 V (de una radio PS) -> un conmutador de 12 V a 5 V (tripas de un dongle de alimentación USB barato, nada menos que de una tienda de dólar) -> 3,3 V PS usando un LM1084 . Alrededor de 120uF en total en la salida. Barato 47uF x 2 y 10uF x 2.