¿Está bien este circuito de bus CAN basado en STM32F?

Así que esta es la primera vez que me alejo de los proyectos basados ​​en Arduino y ahora estoy planeando un proyecto usando el STM32F105RBT6.

Es un analizador de bus CAN simple con algunos leds. Puedo agregar algunas E/S adicionales en el futuro.

En cuanto a la fuente de alimentación, planeo tenerla alimentada desde una entrada de 8-30v o el puerto USB. Creo que el circuito de suministro de energía adjunto debería funcionar.

He usado partes de esquemas de ejemplo y los esquemas de placas de desarrollo y evaluación que he encontrado en línea.

¿Funcionará el circuito adjunto? Me preocupa principalmente el circuito STM32 junto con la alimentación y el usb.

ingrese la descripción de la imagen aquí

¿Qué genera el voltaje VDD?
Tal vez. No necesita conectar JTAG completo, ya que SWDCLK y SWDIO, NRST y una forma de monitorear VDD son suficientes, dejando su placa más simple y más E/S para otras cosas. Definitivamente lleve un UART a un encabezado, ya que es posible que lo necesite para la salida mientras hace que el USB funcione.
Ahora lo he editado con el circuito de la fuente de alimentación. Gracias
¿Podría dar nombres de partes en esas partes de la fuente de alimentación?
Todavía no estoy seguro de cuál es la parte después del conector USB, pero no veo por qué sería necesario. Conecta el USB directamente al micro. También tengo problemas para encontrar el mic4608bm. También creo que es posible que desee un poco de aislamiento de energía. Lo que prima, puerto USB o Vin. Por lo general, trato de evitar el retroceso eligiendo uno sobre el otro y luego aislándolo con un PFET dual.
¡Mi error! Ahora he editado la imagen, es MIC4680BM. ¿Qué recomendaría con respecto al aislamiento de energía? VIN tendría prioridad, pero no creo que realmente importe, el circuito no debería usar más corriente de la que puede proporcionar un puerto USB.
@TerryGould El conmutador se ve bien. Y ahora que lo pienso, probablemente podría ser inteligente al detectar la conexión de datos USB y usarla para alternar el pin SHDN en el conmutador. Entonces el USB tendría prioridad. Lo que realmente quiero decir es que puede tener un PFET de VIN al conmutador y cuando tiene alimentación USB, apaga el FET.
No sé cuál es ese componente después del conector USB. Si se trata de un protector ESD habitual con diodos TVS como este ( onsemi.com/pub_link/Collateral/CM1224-D.PDF ), entonces no debe conectarse en serie con el chip.

Respuestas (2)

Primero, deberá colocar un regulador de voltaje, impulsado desde el pin de 5V del USB o tener un regulador externo de 3.3V. Podría usar un regulador lineal de caída baja, pero en mi diseño usé un TPS563200. Tienes que hacer esto, ya que el voltaje máximo está establecido en 4.0V.

El pin STM32s BOOT0 no es un pin lógico normal. Desea conectar BOOT0 a través de una resistencia de 10K antes de conectar el otro extremo a GND o VDD.

Debe verificar dos veces con las hojas de datos, pero creo que necesita conectar PA9 (OTG_FS_VBUS) al pin de 5 V del USB, y para admitir/detectar USB OTG también necesitará conectar PA10 (OTG_FS_ID). También parece que ha conectado el protector USB directamente a tierra. Hay muchas recomendaciones, pero la que yo uso es conectar GND a SHIELD con una resistencia de 1Mohm en paralelo con un capacitor de 0.1uF.

Por lo general, el interruptor de reinicio debe estar en paralelo con un capacitor. Sin embargo, me gusta usar un chip dedicado para esto, por ejemplo, el APX823.

Finalmente, eche un vistazo al diseño de referencia ( http://www.st.com/web/en/resource/technical/document/application_note/CD00164185.pdf ).

Gracias por tu ayuda. He editado la pregunta con mi circuito de suministro de energía planificado. ¿Necesito agregar una resistencia 100R entre BOOT0 y la resistencia desplegable?
@Terry Gould, creo que puedes vincular BOOT0. También debe hacer lo mismo para BOOT1 en PB2
Para NRST, necesita una tapa de desacoplamiento a tierra y tal vez un filtro RC. No hay necesidad de atarlo alto.
¿Alguna vez necesitaría alternar cualquiera de los pines BOOT?
@Terry Gould Si desea flashear a través de UART sobre un cargador de arranque, entonces necesita BOOT1. Boot0 le dice si está escribiendo firmware en el flash principal, lo que parece, para que pueda mantenerlo bajo.
AFAIK, los pines de arranque de STM no deben dejarse flotando y, según los ejemplos que he visto, siempre deben tener una resistencia vinculada a VCC o GND. Para mí, indica que no hay pull-up/pull-down interno en estos pines. He visto resistencias de 10K y resistencias de 47K.
@Pål-KristianEngstad Completamente de acuerdo. Olvidé poner la cantidad. Bajar con 10k está bien. Y GND es lo que quiere aquí para que no siempre active los diferentes métodos de arranque.
Nunca flashearé sobre UART solo a través de USB o SWD/JTAG. Entonces, ¿qué debo hacer con los pasadores de arranque? ¿Se pueden atar permanentemente o tendré que cambiarlos alguna vez? Con respecto al USB VBUS, si conecto el USB 5+ a (OTG_FS_VBUS), ¿cómo puedo evitar que se vuelva alto cuando la placa solo se alimenta desde VIN?
Si nunca cambiará el modo de arranque, ate BOOT0 --- 10K ---- GND. Para OTG_FS_VBUS, un diodo debería ser suficiente.
El manual de referencia de STM muestra ejemplos usando su interruptor STMPS2141STR.

A su diseño de oscilador le falta la resistencia en serie entre OSC_OUT y X1.
Eche un vistazo a la sección de diseño de referencia 2.1 fig. 7ingrese la descripción de la imagen aquí