Programación USB STM32F102

1

Actualmente estoy diseñando una placa para un chip STM32F102 que necesita poder usar el bus USB para transferir datos mientras el chip se está ejecutando. Sin embargo, también quiero poder programar el chip a través de usb mientras se desarrolla el software.

Quiero asegurarme de que, al diseñar el tablero, no haré nada que haga esto más adelante, así que estoy pidiendo algunas aclaraciones sobre algunas cosas.

En primer lugar, de acuerdo con el estándar USB, porque el STM32F1 es compatible con usb a toda velocidad, tengo una resistencia de pull-up en la línea D +.

Ahora, para arrancar desde el flash principal, el pin boot0 debe ser lógico 0, así que lo conectaré a una resistencia desplegable en la placa. Para usar el gestor de arranque incluido (que creo que es lo que necesito para programar a través de usb), el pin boot0 debe ser lógico 1 y el pin boot1 (que es una gpio, sin embargo, es una entrada en restablecimiento) debe ser lógico 0.

Suponiendo que estoy entendiendo 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 establecer 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, estaré encantado de ayudarle a comprender lo que necesito o le estoy pidiendo algo mejor.

    
pregunta Nick

1 respuesta

0

Tengo algunas 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, incluyendo:

  1. Utilice el cargador de arranque UART, posiblemente con un IC de puente UART USB como el FT232.
  2. Proporcione su propio cargador de arranque USB que carga a través de algún otro mecanismo.
  3. Use un programador JTAG / SWD como el STLinkV2 (son muy baratos, pero bastante lentos en lo que respecta a JTAG). Esta es su mejor opción porque significa que puede depurar al codificar.
respondido por el markt

Lea otras preguntas en las etiquetas