Proyecto

General

Perfil

Programción placa main

Añadido por José Izquierdo hace 10 meses

Advertencia: Hemos detectado que el procedimiento descrito no ha funcionado correctamente en algunos entornos. Es posible que el problema se deba a incompatibilidades introducidas a partir de ciertas versiones de arduino-cli.

Como solución provisional, recomendamos:

Cargar primero el bootloader en la placa.

Posteriormente, cargar el programa utilizando el Arduino IDE versión 1.X, seleccionando la board de OpenCM.

La board puede instalarse desde el siguiente enlace de configuración del gestor de tarjetas:
https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCM9.04/master/arduino/opencm_release/package_opencm9.04_index.json

Material necesario y requisitos

- 2 jumpers

- 1 o 2 cables micro USB (dependiendo de la versión de la placa)

- Programador STLink V2 (y cables dupont hembra-hembra) o V3 (dependiendo de la versión de la placa)

- Tener descargado Arduino CLI (link)

- Tener descargado STM32 Cube Programmer (link)

Pasos a seguir

1. Conectar los jumpers del conector P1 (o en el esquemático de Altium J16) en las posiciones 4-6 y 3-5, para que la alimentación de 5V y 3,3V vengan del USB de la placa.


2. Conectar el programador STLink:

  • Si es Rev3:

        - Conectar STLink V3 al conector J14 sabiendo que el cable rojo es 3,3V para colocarlo de esa manera.

        - Conectar cable micro USB para alimentar la placa ya que el STLink V3 no da alimentación.

  • Si es anterior a Rev3:

        - Conectar el STLink V2 al conector J11 en las posiciones que correspondan mediante cables dupont hembra-hembra.

Para los siguientes pasos es igual para todas las revisiones de placas:

3. Abrir el programa STM32 Cube Programmer y dejar todo por defecto.


4. Seleccionar a la derecha ST-LINK y darle en "Serial number" al botón de actualizar si no detecta el programador.

5. Una vez detectado, darle a "Open File" situado arriba al lado de "Device Memory" y abrir el bootloader para la tarjeta OpenCM 9.04 que está situado en \\172.28.5.2\proy\0001_TSR\0006_INGENIERIA\2-Tareas\070_Cerberus\210\2. Hardware electrónica\C210_Elec_Rev3\6. Documentación Específica\Bootloaders & Co\Firmware\bootloader_0x08000000. El archivo se llama "OpenCM9.04_BOOTLOADER_2_6_FIRMWARE_20140327". Copiarlo en el escritorio. También se debe buscar el programa del robot en .bin que queramos cargar, que está en el FTP.


6. Darle al botón "Connect" arriba a la derecha. Si sale un mensaje de error "Error: Data read failed" darle a aceptar e irse a la parte izquierda en los iconos del margen y pulsar en el icono "OB" (Option Bytes).


7. En el apartado "Read Out Protection", quitar el tick en "Value" y darle a Apply.

8. En el apartado "Write Protection", poner marcar las casillas "Value" de todas, en este caso, faltan por marcar la "WRP0", "WRP1" Y "WRP2" y darle a Apply. Debería salir en mensaje de "Successfully Programmed", en caso de salir un error, volver a dar a Apply.


9. Seleccionamos la pestaña del archivos del bootloader y le damos a "Download". Debería salir un mensaje de "File download complete"



10. Abrir el Windows PowerShell después de instalarse Arduino CLI.

11. Para mostrar los diferentes comandos que necesitamos y mayor información, visitar la página de gitlab: link.

12. 

  • Para Rev3:

        - Desconectar el STLink V3 para programar con Arduino CLI por el micro USB.

  • Para anteriores a Rev3:

        - Conectar el micro USB a la placa y desconectar el STLink V2 para programar con Arduino CLI por el micro USB.

13. Poner el comando " arduino-cli board list " y ver el puerto COM en el que está conectado el USB.


14. Poner el comando " arduino-cli board listall " para ver el fqbn de la OpenCM 9.04, que será "OpenCM904:OpenCM904:OpenCM904".

15. Poner el comando "arduino-cli upload --port COM8 --fqbn OpenCM904:OpenCM904:OpenCM904 -i C:\Users\jizquierdo\Desktop\C210_Main_Rev2.ino.bin". En COM deberás poner tu puerto y al final del todo, la ubicación del programa que vayas a cargar a la placa. Deberá salir algo como lo siguiente:


16. El robot queda programado para las pruebas que requiera para verificar el programa.