Gobernar un microcontrolador desde la beagle board xm

23
2011 www.AquiHayApuntes.com Biblioman GOBERNAR UN MICROCONTROLADOR DESDE LA BEAGLEBOARD-XM Conexión y control de un Microcontrolador (PIC) desde la BeagleBoard…

Transcript of Gobernar un microcontrolador desde la beagle board xm

Page 1: Gobernar un microcontrolador desde la beagle board xm

2011 www.AquiHayApuntes.com

Biblioman

GOBERNAR UN MICROCONTROLADOR DESDE LA BEAGLEBOARD-XM Conexión y control de un Microcontrolador (PIC) desde la BeagleBoard…

Page 2: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 2

Introducción

En algunas ocasiones necesitamos crear una aplicación de escritorio que haga de

interfaz entre un PC y un Microcontrolador para enviarle o recibir datos a través de un

canal de comunicaciones. En este artículo vamos a ver como se puede sustituir la

Computadora Personal (PC) por una placa de desarrollo embebido como la

BeagleBoard-XM, la gran ventaja de este tipo de placas es que son lo suficientemente

potentes en cuanto a memoria y velocidad de procesamiento para permitir la

instalación de un Sistema Operativo y acceder al control de su hardware a través de él.

Veremos las características de esta placa, así como los pasos que hay que seguir para

la instalación de diferentes sistemas operativos en ella como Linux, Android o

Windows, por último crearemos una aplicación de escritorio que se comunique con el

Microcontrolador para enviar o recibir datos desde BeagleBoard .

Comencemos….

Características hardware de la BeagleBoard-XM

Page 3: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 3

Procesador DM3730 basado en un núcleo ARM Cortex–A8, frecuencia de

trabajo 1GHz. Capacidad de vídeo en HD (Texas Instruments C64x + Procesador

DSP).

512 MB de memoria RAM DDR.

Puertos de comunicaciones: I2C, I2S, SPI, 4 puertos Host USB y 1 USB 2.0 HS

OTG, 1 puerto serie RS-232, 1 JTAG para depuración, 1 Conexión 10/100

Ethernet (a través de USB).

Señal de audio estéreo de entrada y salida para altavoces y micrófono.

Salida de vídeo: DVI-D y S-vídeo.

Conector de expansión para LCD.

Conector para cámara digital.

Slot para tarjetas de memoria micro-SD.

Conector para fuente de alimentación externa a 5V cc con protección ante

sobre voltajes.

La BeagleBoard es un proyecto de Hardware libre por lo que desde la página oficial:

http://beagleboard.org/hardware-xM

Se pueden descargar los esquemas así como el manual de referencia (en inglés).

Page 4: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 4

La BeagleBoard viene tal y como se muestra en la figura de abajo:

Sin cables y con una tarjeta micro SD de 4GB con adaptador para SD, la memoria lleva

pre-instalado una versión reducida (sin entorno gráfico y sin sistema de ficheros) del

Sistema Operativo Anström, pero que permite establecer un rlogin (login remoto) a

través de la interfaz serie RS-232 y un programa como el Hyperterminal o el GtkTerm

utilizado en Linux, instalado en un PC que hace de anfitrión y que nos servirá para

chequear todo el proceso de arranque de la BeagleBoard. La configuración de la

conexión serie en el ordenador que hace de anfitrión debe de ser la siguiente:

Baudios: 115.200

8 bits de datos

Sin Paridad

1 bit de parada

No control de flujo

La conexión se realiza con un cable serie directo (sin cruzar) ya que la BeagleBoard

hace de equipo de comunicación de datos (DCE) y el PC de equipo terminal de datos

(DTE).

Page 5: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 5

Instalación de diferentes Sistemas Operativos

Una buena opción de empezar a trabajar con la BeagleBoard es instalar y probar

diferentes sistemas operativos embebidos.

Anström: una vez que hemos chequeado la placa con la versión reducida

podemos instalar una versión más completa que incluya entorno gráfico y un

sistema de ficheros. Lo primero que tenemos que hacer es preparar la tarjeta

de memoria micro SD que albergará el Sistema Operativo. Cuando se utiliza un

procesador ARM la geometría física del disco es diferente a la de un PC. Los

parámetros que definen la geometría física de un disco son: Nº de cabezas, Nº

de sectores y Nº de cilindros. Para ARM esos parámetros deben de ser:

o head → 255

o sectores → 63

o los cilindros hay que calcularlos en función del tamaño en bytes de la

tarjeta que usemos por medio de la siguiente fórmula:

C(cilindros )= Tamaño en Bytes de la Memoria / Nº de Cabezas / Nº de Sectores / byte

por sector

La tarjeta que vamos a utilizar es de 4 GB de capacidad y la herramienta que

utilizaremos para preparar la tarjeta será fdisk incluida en todas las

distribuciones de Linux (yo he utilizado Ubuntu 10.10).

Los pasos a seguir son los siguientes:

1. Nos aseguramos de cuál es la partición de la tarjeta:

sudo fdisk -l

Muy importante este paso para no equivocarnos con las particiones que

tenga el disco duro de nuestro ordenador y perder los datos guardados en

ella.

2. Utilizaremos el siguiente comando para trabajar con el disco:

sudo fdisk /dev/sdb

Donde sdb es el nombre de dispositivo que mi ordenador le ha dado a la

tarjeta micro-SD en tú caso puede ser sdc u otro diferente.

Page 6: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 6

3. Limpiamos la tabla de particiones: (opción o)

Command (m for help): o Building a new DOS disklabel. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

4. Mostramos la información del dispositivo (opción p)

Command (m for help): p Disco /dev/sdb: 3965 MB, 3965190144 bytes 122 cabezas, 62 sectores/pista, 1023 cilindros Unidades = cilindros de 7564 * 512 = 3872768 bytes Tamaño de sector (lógico / físico): 512 bytes / 512 bytes Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes Identificador de disco: 0xe50a4022 ....

De esta información nos interesa el tamaño en bytes: 3965190144 correspondiente a una

tarjeta de 4 GB que es la que vamos a utilizar.

5. Entro en modo experto para establecer la geometría del disco (opcion X)

La geometría de la tarjeta como se ha comentado arriba debe de ser la siguiente:

h (cabezas)= 255

s (sectores)=63

Para el cálculo de los cilindros utilizamos la formula:

c(cilindros)= Tamaño en Bytes de la Memoria / Nº de Cabezas / Nº de Sectores/ bytes

por sector = 3965190144 /255/63/512= 482,073576097

Lógicamente hay que redondear a la baja, por tanto: c(cilindros)=482

Page 7: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 7

Ejecutamos las opciones del comando para establecer la geometría anteriormente

descrita:

Orden avanzada (m para obtener ayuda): h

Número de cabezas (1-256, valor predeterminado 122): 255

Orden avanzada (m para obtener ayuda): s

Número de sectores (1-63, valor predeterminado 62): 63

Atención: estableciendo desplazamiento de sector para compatibilidad con DOS

Orden avanzada (m para obtener ayuda): c

Número de cilindros (1-1048576, valor predeterminado 1023): 482

6. Volvemos al modo principal para crear las particiones (opción r)

Orden avanzada (m para obtener ayuda): r

Orden (m para obtener ayuda):

7. Creamos la primera partición donde se alojaran los archivos de

arranque del sistema operativo.

Orden (m para obtener ayuda): n

Acción de la orden

e Partición extendida

p Partición primaria (1-4)

p

Número de partición (1-4): 1

Primer cilindro (1-482, valor predeterminado 1): 1

Último cilindro, +cilindros o +tamaño{K,M,G} (1-482, valor predeterminado

482): 9

Page 8: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 8

Con 9 cilindros (equivale aproximadamente a 70 MB de espacio) es suficiente para los

archivos de arranque.

8. Creamos la segunda partición donde se alojarán los archivos del

sistema.

Orden (m para obtener ayuda): n

Acción de la orden

e Partición extendida

p Partición primaria (1-4)

p

Número de partición (1-4): 2

Primer cilindro (10-482, valor predeterminado 10): 10

Último cilindro, +cilindros o +tamaño{K,M,G} (10-482, valor predeterminado 482):

482

9. Hacemos que la partición 1 sea bootable (opción a)

Orden (m para obtener ayuda): a

Número de partición (1-4): 1

10. Introducimos la (opción p) para ver cómo nos quedarían las particiones

(hasta que no guardamos no se ejecutan las sentencias).

Orden (m para obtener ayuda): p

Disco /dev/sdb: 3965 MB, 3965190144 bytes

255 cabezas, 63 sectores/pista, 482 cilindros

Unidades = cilindros de 16065 * 512 = 8225280 bytes

Tamaño de sector (lógico / físico): 512 bytes / 512 bytes

Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes

Identificador de disco: 0x8f1b93c7

Page 9: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 9

Disposit. Inicio Comienzo Fin Bloques Id Sistema

/dev/sdb1 * 1 9 401593+ 83 Linux

/dev/sdb2 10 482 8032+ 83 Linux

El sistema de archivos para cada partición debe de ser la siguiente: para la primera

partición que albergará los archivos de arranque del sistema operativo FAT 32 y para la

segunda partición donde guardaremos los archivos del sistema ext3

Como vemos arriba la partición 1 esta para un sistema Linux y tiene que ser Fat 32.

11. Para cambiar eso introducimos la (opción t) seguido del número de

partición que queremos cambiar en este caso la Nº 1

Orden (m para obtener ayuda): t

Número de partición (1-4): 1

Código hexadecimal (escriba L para ver los códigos): l

0 Vacía 24 NEC DOS 81 Minix / old Lin bf Solaris

1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-

2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-

3 XENIX usr 40 Venix 80286 84 Unidad C: ocult c6 DRDOS/sec (FAT-

4 FAT16 <32M 41 PPC PReP Boot 85 Linux extendida c7 Syrinx

5 Extendida 42 SFS 86 Conjunto de vol da Datos sin SF

6 FAT16 4d QNX4.x 87 Conjunto de vol db CP/M / CTOS / .

7 HPFS/NTFS 4e QNX4.x segunda 88 Linux plaintext de Utilidad Dell

8 AIX 4f QNX4.x tercera 8e Linux LVM df BootIt

9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access

a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O

b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor

c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 Hibernación de eb BeOS fs

e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT

f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/

Page 10: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 10

10 OPUS 56 Golden Bow a7 NeXTSTEP f0 inicio Linux/PA

11 FAT12 oculta 5c Priam Edisk a8 UFS de Darwin f1 SpeedStor

12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor

14 FAT16 oculta <3 63 GNU HURD o SysV ab arranque de Dar f2 DOS secondary

16 FAT16 oculta 64 Novell Netware af HFS / HFS+ fb VMware VMFS

17 HPFS/NTFS ocult 65 Novell Netware b7 BSDI fs fc VMware VMKCORE

18 SmartSleep de A 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto

1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep

1c Hidden W95 FAT3 80 Old Minix be arranque de Sol ff BBT

1e Hidden W95 FAT1

Como se ve arriba si pulsamos l nos salen las opciones disponibles, tenemos que

seleccionar la c

12. Seleccionamos otra vez la (opción p) para comprobar que todo este

correcto antes de guardar los cambios:

Orden (m para obtener ayuda): p

Disco /dev/sdb: 3965 MB, 3965190144 bytes

255 cabezas, 63 sectores/pista, 482 cilindros

Unidades = cilindros de 16065 * 512 = 8225280 bytes

Tamaño de sector (lógico / físico): 512 bytes / 512 bytes

Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes

Identificador de disco: 0x8f1b93c7

Disposit. Inicio Comienzo Fin Bloques Id Sistema

/dev/sdb1 * 1 9 401593+ c W95 FAT32 (LBA)

/dev/sdb2 10 482 8032+ 83 Linux

13. Guardamos los cambios con la opción w

14. Ahora nos queda formatear las particiones: antes comprobamos que no se

ha montado ninguna partición automáticamente.

Page 11: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 11

Para desmontar las particiones se utiliza el comando umount y gráficamente también lo

podemos hacer desde Gparted:

sudo umount /dev/sdb1

sudo umount /dev/sdb2

Los comandos que tenemos que utilizar para formatear las particiones son los

siguientes:

sudo mkfs.vfat -F 32 /dev/sdb1

sudo mkfs.ext3 /dev/sdb2

Como hemos comentado ya la primera partición en FAT32 y la segunda en el sistema

de ficheros de Linux ext3.

15. Ahora creamos dos carpetas (Angstrom y boot) en el directorio /media

Que será donde montemos las dos particiones de la tarjeta para poder acceder a ella y

guardar los archivos pertinentes:

sudo mkdir –p /media/boot

sudo mkdir /media/Angstrom

16. Ahora montamos las particiones en ambas carpetas para poder acceder

a ellas ( si es que no lo ha hecho el sistema ya automáticamente):

sudo mount /dev/sdb1 /media/boot

sudo mount /dev/sdb2 /media/Angstrom

Page 12: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 12

En el escritorio nos deben de aparecen las dos particiones ya montadas:

17. Nos descargamos los siguientes archivos de la página:

http://www.angstrom-distribution.org/demo/beagleboard/

Angstrom-Beagleboard-demo-image-glibc-ipk-2011.1-

beagleboard.rootfs.tar.bz2

MLO

u-boot.bin

uImage

md5sums

El md5sums es la suma de verificación para comprobar que los archivos se han

descargado correctamente.

Se comprueban de la siguiente forma:

md5sum MLO

El sistema mostrará esto:

biblioman@biblioman-desktop:~/Distribucion Angstrom$ md5sum MLO

571d5b229f7995aba3752004f6119118 MLO

Que cotejaremos con el archivo md5sums.txt.

18. Copiamos los archivos del sistema a la partición sdb2

sudo tar -xjv -C /media/Angstrom -f

/home/biblioman/Distribucion_Angstrom/Angstrom-Beagleboard-demo-image-glibc-

ipk-2011.1-beagleboard.rootfs.tar.bz2

Cuando todos los archivos se hayan copiado sincronizamos los archivos y desmontamos

la partición.

sync

sudo umount /dev/sdb2

Page 13: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 13

19. Ahora copiamos los archivos en boot para el arranque en este orden:

para ello abrimos una terminal donde están los archivos a copiar y

escribimos lo siguiente:

sudo cp MLO /media/boot

sudo cp u-boot.bin /media/boot

sudo cp uImage /media/boot

Al igual que antes una vez copiados los archivos sincronizamos y desmontamos la

partición:

sync

sudo umount /dev/sdb1

Con estos pasos ya tenemos nuestra tarjeta preparada, ahora solo queda conectarla a la

Beagleboard.

La conexión del monitor viene por defecto para HDMI a través de un cable convertidor

de DVI-D (BeagleBoard) a HDMI (Monitor).

Nota: conectar el cable primero antes de dar alimentación a la tarjeta.

Luego solo queda conectar el cable Ethernet al conector RJ-45, y el teclado y el ratón a

los puertos USB, si dejamos conectado el cable serie podremos monitorizar el arranque

desde otro ordenador con el hyperterminal u otro programa similar.

Page 14: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 14

Un pequeño vídeo de Angstrom corriendo sobre la BeagleBoard-XM:

http://www.youtube.com/watch?v=DbrxwbrCtm0

Ubuntu: El siguiente operativo que vamos a instalar es Ubuntu 10.10 Maverick

en su versión para ARM. Su instalación es muy sencilla ya que viene pre

instalado en una imagen a la que podemos acceder para su descarga desde la

wiki de Ubuntu:

https://wiki.ubuntu.com/ARM/OMAPMaverickInstall

Nos descargamos la versión Maverick -> release-> Texas Instruments OMAP3

preinstalled netbook image

Para restaurar la imagen sobre la tarjeta micro-SD simplemente seguimos los

siguientes pasos:

1) Conectamos la tarjeta al PC

2) Comprobamos que la tarjeta de memoria no se monte (utilizar el comando

umount para desmontarla si es necesario).

3) Identificar correctamente el dispositivo antes de seguir adelante (en mi

caso /dev/sdb).Ejecutamos el siguiente comando en la terminal:

sudo sh -c 'zcat ./ubuntu-netbook-10.10-preinstalled-netbook-armel+<omap

image>.img.gz >/dev/<device name>'

Y listo!!. Ya podemos conectar la tarjeta a la BeagleBoard-XM y probarlo.

Page 15: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 15

http://www.youtube.com/watch?v=PSX94u223gg

Windows Embedded Compact 7

Para poder desarrollar y crear tus propias aplicaciones sobre esta plataforma se

necesitan las siguientes herramientas de Microsoft:

Visual Studio 2008 Professional, no vale la versión express aunque la versión trial dura 90 días.

Microsoft Expression Blend 3 + SketchFlow, para poder crear componentes gráficos para nuestras aplicaciones como botones.

Windows Embedded

Los enlaces y los pasos para instalar los diferentes componentes están aquí:

http://www.microsoft.com/windowsembedded/en-us/downloads/download-

windows-embedded-compact-ce.aspx

Varias empresas facilitan imágenes demo para probar gratuitamente, yo he utilizado la

que nos facilita la empresa Adeneo

Te tienes que registrar y te envían por e-mail la dirección de un servidor FTP desde

donde se puede descargar la imagen así como la documentación necesaria para

restaurar la imagen sobre la tarjeta micro-SD.

Page 16: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 16

http://www.youtube.com/watch?v=mVs9t1YyK4U

Android: Un Sistema Operativo que se utiliza mucho en dispositivos móviles es

sin duda Android basado en Linux y que también hay varios proyectos que lo

han portado a dispositivos embebidos basados en ARM como rowbot

Page 17: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 17

La instalación también es sencilla:

1) Nos bajamos la imagen del sistema operativo desde la página de Texas

Instruments.

http://software-

dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/02_00_00/index_FDS.html

Concretamente la imagen pre-compilada para la BeagleBoard-XM

2) Como en los casos anteriores conectamos la micro-SD al PC y averiguamos

el nombre que el sistema operativo le ha dado al dispositivo utilizando el

comando:

sudo fdisk -l

3) Descomprimimos el archivo con la imagen descargada que incluye un script

que al ejecutarse crea tres particiones en la tarjeta llamadas: boot, rootfs y

data. El script también se encarga de copiar los archivos necesarios en cada

una de las particiones creadas.

4) Ejecutamos el script para ello tenemos tres formas de hacerlo (mirar el

archivo Readme.txt que se incluye en la documentación), una de ellas es

ejecutar en la terminal el siguiente comando:

sudo ./mkmmc-android.sh <device> Ejemplo: sudo ./mkmmc-android.sh /dev/sdb

5) Nos aseguramos que las particiones creadas están desmontadas. 6) Insertamos la tarjeta en la BeagleBoard y probamos..

Page 18: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 18

http://www.youtube.com/watch?v=EeAglb22LL4

Las posibilidades de desarrollo que nos ofrece la BeagleBoard-XM son muy amplias y

limitada en la mayoría de los casos solo por la imaginación del que la usa. Mi idea

principal era utilizarla junto a los microcontroladores como herramienta de desarrollo.

De los diferentes sistemas operativos probados me he decidido por Ubuntu (cuestión

de gustos, los demás son igualmente válidos).

La siguiente cuestión a determinar es elegir el lenguaje y entorno de programación en

el que desarrollaremos la aplicación que una vez cargada en la BeagleBoard se pueda

comunicar con el microcontrolador a través de alguna interfaz como por ejemplo el

puerto serie RS-232. El ejecutable creado desde un PC con arquitectura x86 no

funciona en la BeagleBoard con arquitectura ARM, para solucionar este problema

tenemos dos opciones la primera es utilizar un compilador cruzado

Esta opción es perfectamente válida, pero se requiere un PC para crear y compilar el

código, mi idea era prescindir por completo del PC y hacerlo todo desde la

BeagleBoard, por tanto no queda otra que compilar el código desde la propia placa,

entre los compiladores disponibles para esta plataforma he decidido utilizar C++ bajo

el IDE QtCreator

http://qt.nokia.com/products/developer-tools/

La ventaja que le veo es que ya lo he utilizado anteriormente en un PC y al ser

multiplataforma puedo reutilizar el código, además está incluido en los repositorios de

Ubuntu para Netbook por lo que su instalación es sencilla.

Page 19: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 19

sudo apt-get install qtcreator

Nota: En Linux cada aplicación que se instala se integra y utiliza librerías y

componentes ya instalados y que utilizan otras aplicaciones (el equivalente a las dll en

Windows) la ventaja que tiene esto es que los programas no tienen un tamaño

excesivamente grande ya que muchas de las librería que necesita el programa ya están

instaladas y por tanto no se vuelven a instalar, como desventaja tenemos los

problemas de dependencias, es decir, puede que instalemos qtcreator y alguna librería

necesaria para su funcionamiento no esté instalada, esto se agrava más en los sistemas

operativos embebidos donde todo se intenta reducir a la mínima expresión para que el

total ocupe poco espacio. Si tenéis problemas al compilar comprobar la ventana de

mensajes de salida del compilador, si hay algún error de dependencias nos aparecerá

allí, en ese caso deberemos buscar la librería que falta e instalarla. Hace tiempo el

problema de las dependencias era una autentica pesadilla pero hoy en día los gestores

de paquetes suelen resolver bastante bien este problema, por lo que cualquier

instalación que esté incluida en los repositorios oficiales se instala completamente y de

forma transparente para el usuario.

Como ejemplo de aplicación utilizaremos un programa que se comunique con el PIC

(16F628) a través del puerto serie.

Page 20: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 20

Un par de fotos del circuito montado:

Page 21: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 21

Consideraciones:

El puerto serie en la BeagleBoard utiliza la USART Nº3 por tanto en la aplicación

de escritorio habrá que conectarse al puero ttyS2.

Para adaptar los niveles de tensión a TTL requeridos por el PIC se utiliza el

clásico MAX232

Importante: anteriormente se ha comentado que para conectar la BeagleBoard

al PC a través del puerto serie hay que utilizar un cable directo ya que la

BeagleBoard hacía de equipo de comunicación de datos (DCE) y el PC de equipo

terminal de datos (DTE). En este caso estamos conectando la BeagleBoard al

convertidor de niveles que hace de equipo de comunicación de datos (DCE)

también, por lo que el cable tiene que ser un cable cruzado (Null módem)

¡Ojo! Si nos equivocamos y ponemos un cable directo nos podemos ”freír” el

convertidor de niveles.

Page 22: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 22

Un vídeo del ejemplo funcionando:

http://www.youtube.com/watch?v=9F5yuSu0rmU

Este es un primer ejemplo de comunicación entre la BeagleBoard-XM y un

Microcontrolador PIC a través del puerto serie, mi intención es crear otras

aplicaciones que se comuniquen con el PIC a través de las otras interfaces de las que

dispone la placa, como USB, I2C, SPI, etc. Puedes seguir todo el desarrollo de este

proyecto en este hilo del foro de AquiHayApuntes.com

Fuentes de Información

http://beagleboard.org/hardware-xM

http://groups.google.com/group/beagleboard

http://processors.wiki.ti.com/index.php/MMC_Boot_Format

http://www.angstrom-distribution.org/node?page=1

https://wiki.ubuntu.com/ARM/OMAPMaverickInstall

http://www.adeneo-embedded.com/en/Products/Board-Support-Packages/BeagleBoard

+ Los enlaces a los que se hace referencia a lo largo del artículo.

Page 23: Gobernar un microcontrolador desde la beagle board xm

Gobernar un Microcontrolador desde la BeagleBoard-XM

www.aquihayapuntes.com Biblioman Página 23

Marcas registradas

Las marcas citadas en este artículo así como las imágenes procedentes de capturas de

pantallas pertenecen a sus respectivos propietarios su utilización en este artículo es con fines

divulgativos y sin ánimo de lucro.

Licencia

Autor de este artículo: Biblioman

Versión: 1.0.0

Página Web: http:\\www.aquihayapuntes.com

Email: [email protected]

Este artículo esta bajo una licencia Creative Commons: Reconocimiento-No Comercial-

Compartir bajo la misma licencia.