¿Puedo usar mbed para STM32F103(C8T6)?

Tengo algo de experiencia con Arduino, pero para uno de los dispositivos quiero usar algo con más potencia (potencia RAM/CPU).

Ya descubrí que algunos modelos STM32F4 o STM32F7 realmente con lo que necesito, sin embargo, como no tengo experiencia, compré una placa de evaluación (muy barata) STM32F103C8TT6.

Todavía no lo tengo, pero estoy leyendo información al respecto. Encontré mbed que parece una forma muy fácil de programarlo.

Sin embargo, en la lista de placas no veo ninguna placa de evaluación, en su mayoría versiones de NUCLEO o Discovery.

¿Es posible seguir usándolo? (como al seleccionar el 'NUCLEO F103RB similar' o ¿mbed solo es compatible con NUCLEO (y muchos otros dispositivos de núcleo ARM)?

La razón es que si la placa de evaluación no es compatible con mbed, no es realmente una buena alternativa para probar si puedo usar mbed más tarde de todos modos en la versión real de STM32 que quiero.

Las definiciones de las placas MBED generalmente van un poco más allá de la propia MCU en cosas como fuentes de reloj, pero a menudo puede obtener algo parecido al trabajo esencial, y si descarga un proyecto Makefile para la construcción fuera de línea, puede personalizarlo completamente para su hardware. Sin embargo, hay algunas rarezas bastante extremas en ciertos aspectos.
@ChrisStratton Gracias por el comentario... eso significa que sería un gran esfuerzo para una placa de evaluación solo para 'comprobar' si la plataforma sería adecuada... pero tal vez pueda usarlo solo para aprender más sobre el ARM32 (ya que mi conocimiento es casi cero).

Respuestas (2)

Sí tu puedes. Puede crear un nuevo proyecto basado en NUCLEO F103RB y luego reemplazar la biblioteca precompilada con fuentes. Luego, en las fuentes, puede redefinir las asignaciones de pines para que se ajusten a su tablero específico. Tenga en cuenta que no he hecho esto para MCU STM, pero hace aproximadamente 2 años lo hice funcionar para mi placa personalizada nRF51.

La idea es que la MCU permanezca igual con todos los periféricos internos, solo tiene pines cableados de manera ligeramente diferente. Es posible que se requieran cambios adicionales si su placa tiene una fuente de reloj diferente.

Gracias... eso sería genial (no necesito la funcionalidad completa, solo para 'evaluación', pero si solo los números de pin son diferentes, no debería ser un problema (aunque todavía no los he mirado en detalle) .
No serán números de pin en general (a diferencia de Arduino, se usan los nombres GPIO reales), más algunas cosas como dónde podría estar un LED o interruptor designado de forma única. A menudo puedes ignorar eso. Es posible que no pueda ignorar los problemas de reloj: es posible que simplemente funcione, pero realmente necesita profundizar en lo que está haciendo exactamente su código.

Sí, alguien creó una biblioteca para mbed que contiene la inicialización del reloj y las definiciones de pin necesarias para el STM32F103C8. Puede encontrar información y un ejemplo de "hola mundo" aquí:

https://developer.mbed.org/users/hudakz/code/STM32F103C8T6_Hello/

Para actualizar el binario de firmware producido por el compilador en línea mbed en la placa, necesita un adaptador de USB a serie y luego usar el programa stm32flash para realizar la carga. El adaptador de USB a serie se conecta a los pines PA_9 y PA_10 (serie 1) 3V3 y GND. Luego configure el pin BOOT0 en ALTO, presione restablecer para activar el cargador de arranque en serie incorporado y comience la carga:

stm32flash -w my_firmware.bin -v -g 0x /dev/ttyUSB0

También puede usar otra placa STM con una interfaz ST-Link para actualizar el firmware, pero aún no lo he probado.

También hay un cargador de arranque que debería permitirle usar DFU, pero aún no he podido hacerlo funcionar.

¡Muchas gracias por esta información! Ya tengo un adaptador de USB a serie, así que estoy listo para comenzar (pero también quiero asistir a otras cosas primero).