Bienvenido: Ingresar
location: Diferencias para "LabElectronica/RoMAAFirmware21"
Diferencias entre las revisiones 1 y 5 (abarca 4 versiones)
Versión 1 con fecha 2011-12-05 20:58:22
Tamaño: 2952
Editor: localhost
Comentario:
Versión 5 con fecha 2011-12-05 22:13:31
Tamaño: 2928
Editor: localhost
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 3: Línea 3:
Línea 5: Línea 4:
Línea 9: Línea 7:
La versión actual se encuentra en el repositorio [[http://proyectos.ciii.frc.utn.edu.ar/romaa_firmware|romaa_firmware]]. Y se puede descargar del servidor con
{{{hg clone https://proyectos.ciii.frc.utn.edu.ar/hg/romaa_firmware}}}
La versión actual se encuentra en el repositorio [[http://proyectos.ciii.frc.utn.edu.ar/romaa_firmware|romaa_firmware]]. Y se puede descargar del servidor con  {{{hg clone https://proyectos.ciii.frc.utn.edu.ar/hg/romaa_firmware}}}
Línea 15: Línea 12:
{{attachment:romaa_freertos_structure.png||height="137px",width="489px"}} {{attachment:romaa_firmware_structure.png}}
Línea 17: Línea 14:
Las librerías CIIIEmbLibs se incluyen dentro del proyecto porque son una versión anterior a la revisión 0 (la más antigua disponible en los [[http://proyectos.ciii.frc.utn.edu.ar/ciiiemblibs|repositorios]]) y esto significa que contiene implementaciones incompatibles con las librerías que tienen mantenimiento hoy en día.

El principal cambio que habría que llevar a cabo para actualizar el proyecto a las nuevas CIIIEmbLibs es modificar las interrupciones para que utilicen callbacks.
Las librerías CIIIEmbLibs se incluyen dentro del proyecto para comodidad en la compilación, y corresponden a la versión 1.0 revisada por Jeremías Pablo De la Cruz y Guillermo Hernán Bustos.
Línea 51: Línea 46:
El comando grabar_u está configurado para utilizar por defecto el dispositivo /dev/ttyUSB0. Si el dispositivo USB se encuentra en una ubicación diferente, se debe agregar la opción USB. Por ejemplo, para grabar utilizando /dev/ttyUSB1:

{{{
romaa_freertos/app$ make grabar_u USB=/dev/ttyUSB1
}}}
Línea 55: Línea 55:
Temporalmente se puede descargar de esta página el firmware v2.0 del RoMAA-II (con FreeRTOS), con dos diferentes configuraciones de encoders y reducción de velocidad Temporalmente se puede descargar de esta página el firmware v2.1 del RoMAA-II (con FreeRTOS), con dos diferentes configuraciones de encoders y reducción de velocidad:
Línea 57: Línea 57:
 * versión para el [[attachment:romaaii_firware_chaco.hex|RoMAA-II del Chaco]] ([[attachment:romaaii_firmware_chaco_20100414.hex|con inversión de encoders]])
 * versión para el [[attachment:romaaii_firware_cba.hex|RoMAA de Córdoba]]
 * versión para el [[attachment:romaaii.hex|RoMAA-II]]
 * versión para el [[attachment:romaaii_firware_chaco.hex|RoMAA-II del Chaco]] (con inversión de encoders)
 * versión para el [[attachment:romaaii_firware_cba.hex|RoMAA de Córdoba]]

Firmware del controlador embebido del robot móvil RoMAA-II

Firmware con kernel en tiempo real

El código que actualmente se utiliza tanto en el RoMAA II como en el RoMAA original esta basado en el desarrollado para el proyecto "Hardware de Control de Plataforma Robótica Móvil con Arquitectura ARM7 y RTOS embebido. Caracterización". Tesis de grado para obtener el título de Ing. en electrónica de Santiago Pérez y Martín Baudino Ir.

La versión actual se encuentra en el repositorio romaa_firmware. Y se puede descargar del servidor con hg clone https://proyectos.ciii.frc.utn.edu.ar/hg/romaa_firmware

Organización del Código

La estructura de directorios es la siguiente:

romaa_firmware_structure.png

Las librerías CIIIEmbLibs se incluyen dentro del proyecto para comodidad en la compilación, y corresponden a la versión 1.0 revisada por Jeremías Pablo De la Cruz y Guillermo Hernán Bustos.

Compilación

Para compilar el proyecto es necesario ubicarse en la carpeta "app" y ejecutar:

romaa_freertos/app$ ./rom_arm.sh

(este script debe tener permisos de ejecución)

Este script define una serie de variables de entornos para que el código sea generado en modo ARM, sin optimización, y preparado para ser grabado en memoria flash.

Para limpiar el proyecto es necesario ejecutar:

romaa_freertos/app$ make clean

De esta forma se borran todos los objetos generados en toda la estructura de directorios.

Grabación del Firmware:

Luego de una compilación exitosa, se generará un archivo llamado "romaii.hex", que es donde se encuentra el programa compilado y linkeado. Dependiendo del cable utilizado, hay dos formas de grabar el firmware en el microcontrolador:

  • Cable RS232:

romaa_freertos/app$ make grabar_s
  • Cable USB:

romaa_freertos/app$ make grabar_u

El comando grabar_u está configurado para utilizar por defecto el dispositivo /dev/ttyUSB0. Si el dispositivo USB se encuentra en una ubicación diferente, se debe agregar la opción USB. Por ejemplo, para grabar utilizando /dev/ttyUSB1:

romaa_freertos/app$ make grabar_u USB=/dev/ttyUSB1

Nota:

Esta información también está presente en la el archivo LEAME.txt, dentro de la carpeta app.


Temporalmente se puede descargar de esta página el firmware v2.1 del RoMAA-II (con FreeRTOS), con dos diferentes configuraciones de encoders y reducción de velocidad:

None: LabElectronica/RoMAAFirmware21 (última edición 2012-05-28 20:10:00 efectuada por SantiagoPerez)