STM32F4 Nucleo: ¿cómo establecer pines bajos al cargar el firmware?

1

Estoy ocupado tratando de escribir algunos firmware para un sistema con una gran cantidad de componentes hidráulicos controlados digitalmente, y es un sistema complejo, por lo que hay muchos ajustes en el algoritmo y la depuración.

Tengo un problema porque cuando compilo el código y lo subo a la placa a través de ST-Link, todos los pines flotan / suben, lo que hace que todo el sistema se vuelva loco (las bombas se encienden y las válvulas se abren - erráticamente) , y también estoy desperdiciando mucha agua / otros líquidos.

Estoy utilizando el IDE de System Workbenh. ¿Hay alguna configuración que pueda cambiar para establecer todos los pines bajos durante la carga del firmware?

Estoy cansado de olvidarme de mover el interruptor de encendido a todos los sistemas hidráulicos antes de cargar.

    
pregunta makepeace

1 respuesta

3

Conceptualmente, desea detener el tablero, poner todos los pines en un estado seguro escribiendo en los registros GPIO sobre JTAG / SWD, y luego reescribir el flash. El valor predeterminado que está viendo es, probablemente, detener el tablero en un estado arbitrario y luego volver a flashearlo o reiniciarlo y detenerlo antes de volver a flashearlo, ninguno de los cuales le otorga ningún control sobre los pines.

Con algo como OpenOCD , puede escribirlo con tcl para escribir en los registros de GPIO después del reinicio pero antes de volver a imprimir. No estoy seguro de qué personalización puede hacer con un ST-Link a través de las herramientas de ST / System Workbench, pero OpenOCD también se puede usar con el hardware de ST-Link.

También puede escribir su propio cargador de arranque para controlar el proceso, lo que también le permitiría asegurarse de que los pines permanezcan en un estado seguro hasta que se cargue el nuevo firmware.

    
respondido por el Devan

Lea otras preguntas en las etiquetas