Actualmente estoy diseñando una placa para un chip STM32F102 que necesita poder usar el bus USB para transferir datos mientras el chip está funcionando. Sin embargo, también quiero poder programar el chip a través de USB mientras desarrollo el software.
Quiero asegurarme de que mientras diseñe la placa no haré nada que lo haga imposible más adelante, por lo que pido aclaraciones sobre algunas cosas.
En primer lugar, de acuerdo con el estándar USB, debido a que el STM32F1 admite USB de alta velocidad, tengo una resistencia pull-up en la línea D+.
Ahora, para arrancar desde el flash principal, el pin boot0 debe ser 0 lógico, así que lo conectaré a una resistencia desplegable en la placa. Para usar el cargador de arranque incluido (que creo que es lo que necesito para programar a través de USB), el pin boot0 debe ser 1 lógico y el pin boot1 (que es un gpio, sin embargo, es una entrada en el reinicio) debe ser 0 lógico.
Suponiendo que entiendo toda esta información correctamente, ¿cuál sería la mejor manera de poder programar el chip cuando se conecta un cable USB? ¿Puedo usar el usb V+ y GND para configurar los niveles lógicos necesarios en el pin de arranque? ¿O debería conectarlos a las placas V + y GND y usar un interruptor para configurar los pines de arranque en consecuencia?
Si se requiere alguna otra información, me complacerá ayudarlo a comprender mejor lo que necesito o estoy pidiendo.
Tengo malas noticias para usted: el STM32F102 (y sospecho que los dispositivos STM32F1xx en general) no tienen un cargador de arranque USB, solo un cargador de arranque UART. Necesita un STM32F2xx o STM32F4xx para cargar un cargador de arranque USB en la imagen de la ROM del sistema.
Tienes muchas alternativas, entre ellas:
Enemigo de la máquina estatal
Mella
Enemigo de la máquina estatal
Mella