Recientemente he conseguido dos módulos de desarrollo Maple Mini. Estos módulos constituyen una alternativa interesante a los clásicos Arduino. De hecho, vienen preparados para programarlos y utilizarlos de una forma muy similar a los modelos de Arduino. En mi opinión, su principal ventaja consiste en la mayor cantidad de memoria tanto flash como RAM que permite realizar aplicaciones más complejas, así como su funcionamiento a 3.3V que facilita su alimentación con baterías LiPO y la conexión directa con dispositivos como tarjetas SD que trabajan a esta misma tensión.
Por otro lado, el mayor inconveniente que veo a estos módulos es la falta de documentación. Son relativamente recientes y la compañía LeafLab que los desarrolló parece haber abandonado su mantenimiento. Sin embargo, al ser un diseño abierto, han aparecido numerosos clónicos en el mercado chino que permiten adquirir microcontroladores con una potencia superior a los Atmel de Arduino a un precio hasta cuatro veces inferior a estos.
Los módulos que he probado son, en primer lugar, un Maple Mini basado en el microcontrolador STM32F103C8T6 ARM. Podemos ver este módulo en la primera figura. Aunque la publicidad indica que funciona con un reloj a 72MHz la realidad es que viene con un cristal a 8MHz. Siendo la anterior la velocidad máxima que puede alcanzar este microcontrolador.
El otro módulo es también un Maple Mini pero esta vez basado en el hermano mayor de la familia: el STM32F103CBT6. Con nada menos que 128Kb de memoria. Al igual que el otro con un reloj a 8MHz.
Vamos a describir como programar estos microcontroladores utilizando Linux Debian 8 64bits. Empezando en primer lugar por la instalación y configuración del IDE y el compilador para programarlos.
Existen dos opciones para programar estos controladores. La primera es utilizar el IDE de LeafLab y la segunda una adaptación para el IDE de Arduino. La primera de ella la podemos descargar del página de LeafLab en la siguiente dirección:
Los pasos para hacerla funcionar son:
1. Descomprimir el fichero descargado maple-ide-0.0.12-linux64.tgz
tar xvzf maple-ide-0.0.12-linux64.tgz
2. Instalamos sudo ya que será necesario para la configuración (nos pedirá la contraseña de administrador)
su
apt-get install sudo
y a continuación permitimos privilegios de superusuario a nuestro usuario siguiendo las instrucciones que encontrareis aquí http://www.esdebian.org/wiki/habilitar-sudo-debian-7. Con esto ya se tendrán los permisos necesarios para configurar el sistema e instalar el IDE.
3. Aunque se supone que el IDE es para 64 bits, los compiladores que trae instalador son para 32, por lo que tenemos que habilitar la ejecución de aplicaciones de 32 bits en nuestro linux. Para ello, ejecutamos los siguientes comandos:
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libstdc++6:i386
4. En estos momentos ya podríamos probar a compilar un programa utilizando el IDE. Sin embargo, aún no podríamos cargarlo al microcontrador. Para ello tenemos que configurar el dispostivo USB. Esto se realiza ejecutanto el siguiente script que trae el IDE de Maple
cd maple-ide-v0.0.12
sudo install-udev-rules.sh
sudo /etc/init.d/udev restart
A estas alturas ya es posible ver como se reconoce el dispositivo al enchufarlo por USB. Si ponemos el Maple en BootLoader Perpetuo deberíamos ver un dispositivo con ID 1eaf:0004 al ejecutar lsusb. Además debería aparecer el dispositivo /dev/maple.
Pero aún queda un problema por resolver para poder cargar un programa al microcontrolador. La versión de dfu-util que trae el IDE de LeafLab no es compatible con Linux Debian 8. La solución consiste en instalar este programa de los repositorios Debian y utilizar un script para ejecutarlo desde el IDE. Para ello seguimos los siguientes pasos:
1. Instalar el programa dfu-util
sudo apt-get install dfu-util
2. En la carpeta maple-ide-v0.0.12/hardware/tools/arm/bin borrar el fichero llamado dfu-util
cd maple-ide-v0.0.12/hardware/tools/arm/bin
rm dfu-util
3. Crear un fichero de texto llamado dfu-util en esta carpeta y escribir el siguiente contenido en el mismo:
#!/bin/bash
if [[ $1 == -l ]]; then
salida=$(dfu-util -l)
echo "${salida}" | sed -r 's/DFU: \[/DFU: \[0x/'
#echo "Found DFU: [0x1eaf:0003"
else
dfu-util $@
fi
4. Establecer permiso de ejecución para este script:
chmod +x dfu-util
Y con esto ya tenemos nuestro entorno configurado. Ya solo queda ejecutar el IDE:
cd maple-ide-v0.0.12
./maple-ide
Seleccionamos como Board a Leaf Lab Maple Mini Rev 2 to Flash y ya podemos escribir y subir nuestro primer programa.
Para cargar un programa hay que poner el microcontrolador en modo Bootloader Perpetuo. Esto se realiza pulsando el botón de reset y, antes de que el led termine de parpadear rápido, pulsar y mantener el botón 1 de la placa pulsado hasta que el led comienza a parpadear lentamente. En este momento podemos pulsar el botón de carga del programa que hay en el IDE y el proceso de carga comenzará. Al finalizar el proceso de carga es necesario pulsar de nuevo el botón de reset del microcontrolador. Según LeafLab esto se realiza automáticamente. Sin embargo, no he conseguido que esto ocurra y es necesario un reset manual.
Desgraciadamente este IDE parece estar abandonado por LeafLab. Siendo la última versión de marzo de 2013. Y solo parece compatible con el módulo basado en el microcontrolador STM32F103CBT6. En una próxima entrada describiré como instalar y configurar un IDE de Arduino junto con un conjunto de bibliotecas para programar módulos Maple.


No hay comentarios:
Publicar un comentario