BeagleBoard – O cachorrinho open-source

- por Sergio Prado

Categorias: Beagleboard-xM, Hardware Tags: , ,

A BeagleBoard é um projeto desenvolvido pela Texas Instruments em conjunto com a Digi-Key com os objetivos de demonstrar o uso do system-on-a-chip OMAP3530 e servir de plataforma de aprendizado em sistemas embarcados através do modelo de desenvolvimento open source. Enquanto que a TI é a responsável pelo projeto, a Digi-key seria a responsável pela distribuição.

A plataforma é totalmente aberta, liberada sob a licença Creative Commons SharedAlike. Com já mais de 2 anos de existência, ela tem cumprido bem seu objetivo de ensinar open hardware e open software no mundo inteiro. A página do projeto pode ser encontrada em http://beagleboard.org/.

Enquanto escrevo este artigo, existem cerca de 210 projetos desenvolvidos pela comunidade! Estes projetos incluem alguns portes do sistema operacional Android, controlador de câmera digital, sistema de segurança residencial, sistema multimedia para veículos, streaming de video, media center, diversos tipos de robôs, etc. Mais um indicativo das mudanças sociais e econômicas trazidas pelo movimento open source. Uma lista com todos os projetos pode ser acessada em http://beagleboard.org/project. Alguns vídeos com projetos interessantes podem ser encontrados aqui e aqui.

Das palavras de um dos responsáveis pelo projeto, Jason Kridner:

“The Beagle Board is intended for those wanting to learn about building embedded systems and [who] don’t need all of the support or costs associated with the typical development platform. Once you are done experimenting and need a silicon evaluation platform that will help you make a product, platforms with software compatibility are available.”

HARDWARE

A placa é pequena, medindo aproximadamente 7,5 x 7,5 cm, e já passou por algumas revisões desde seu lançamento. A que tenho em mãos é a Rev C4. 


Conforme já mencionei, a BeagleBoard é baseada no system-on-a-chip OMAP3530 da TI, um dos primeiros SOCs baseados no núcleo ARM Cortex-A8. Trabalhando a 720MHz, ainda possui integrado um DSP de 430MHz e um acelerador gráfico 2D/3D, que junto com uma placa gráfica onboard que provê saídas DVI e S-Video, transforma o kit em uma plataforma ideal para aplicações multimedia, com capacidade para reproduzir vídeos em HD a 720p.

Esta revisão possui 256MB de memória flash NAND e 256MB de DDR SDRAM, que junto com o OMAP3530, são montados na placa usando a técnica de Package-on-Package, onde um chip é montado sob o outro:


Interfaces de I/O também não faltam: RS232, USB 2.0 e USB On-the-go, cartão de memória SD/MMC, Audio In/Out (Stereo), JTAG, LEDs e botões, além de um conector para usar um display LCD e outro para placas de expansão com diversas interfaces disponíveis como GPIO, PWM, I2C, I2S, SPI e SD/MMC. A alimentação pode ser feita por uma entrada de 5V ou pela porta USB. Uma referência completa do hardware pode ser encontrada aqui. São 180 páginas de muita informação!

COMPARANDO COM A MINI2440

Quem acompanha meu blog sabe que gosto bastante do kit FriendlyARM mini2440 como ferramenta de aprendizado, principalmente para aprender sobre Linux embarcado. Mas qual é melhor, a Beagleboard ou a mini2440? A resposta: depende!

Sob o ponto de vista do hardware, a Beagleboard é muito mais poderosa. Sua capacidade de vídeo e a existência de um DSP tornam possiveis aplicações multimedia que não seriam possíveis na mini2440. Por outro lado, a minha revisão da Beagle Rev C4 não possui interface Ethernet. Se eu precisar de uma interface Ethernet, precisarei usar um dongle USB. Já na mini2440 temos uma porta Ethernet por padrão. Esta deficiência da BeagleBoard é resolvida na sua última revisão, a BeagleBoard-xM, que além da interface Ethernet, trabalha a 1GHz!

Outra desvantagem da Beagle com relação ao hardware é a ausência de um display LCD. A idéia aqui é usar as saídas DVI ou S-Video e plugá-la diretamente em um monitor ou televisor. Mas nada impede você de comprar um display LCD e conectar nos pinos de I/O disponíveis na Beagle. Já existem alguns projetos que fazem isso. Você só precisará comprar o display separadamente.

Por outro lado, a BeagleBoard, por apostar no formato open source, foi muito mais competente em documentar o projeto e montar uma comunidade onde as pessoas publicam seus projetos e compartilham informações.

De qualquer forma, os dois kits suprem bem a necessidade de uma ferramenta para aprendizado em sistemas embarcados. Escolha o que melhor couber no seu bolso.

ONDE COMPRAR

A BeagleBoard pode ser adquirida em alguns sites na internet, incluindo a Digi-Key e a Mouser. No site do projeto tem uma lista completa de distribuidores. Na Special Computing você também consegue comprar, além da placa, os cabos, fontes e até um case de acrílico para colocar a placa enquanto estuda ou desenvolve seu protótipo.

O preço atual é de $125.00, mais frete e impostos. Mas esse valor é só pela placa. Você vai precisar de um cabo adaptador serial IDC10 -> DB9 macho igual este aqui para a console. Pode precisar também de um cabo HDMI tipo A -> DVI, se quiser ligar a placa em um monitor, e de uma fonte de 5V se precisar ligar muitos periféricos na placa e achar que a alimentação via USB não será suficiente para “aguentar o tranco”.

PRIMEIROS SINAIS DE VIDA

Estes são os primeiros sinais de vida da BeagleBoard, que podemos visualizar na console:

Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)
Loading u-boot.bin from nand
 
U-Boot 2009.11-rc1-00601-g3aa4b51 (Jan 05 2010 - 20:56:38)
 
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz
OMAP3 Beagle board + LPDDR/NAND
I2C:   ready
DRAM:  256 MB
NAND:  256 MiB
*** Warning - bad CRC or NAND, using default environment
 
In:    serial
Out:   serial
Err:   serial
Board revision C4
Die ID #7e1c000400000000040398da1402400e
Hit any key to stop autoboot:  0
No MMC card found
Booting from nand ...
 
NAND read: device 0 offset 0x280000, size 0x400000
 4194304 bytes read: OK
Wrong Image Format for bootm command
ERROR: can't get kernel image!
OMAP3 beagleboard.org #

Ela vem de fábrica com o X-Loader e o U-Boot instalados na NAND. O processo de boot acontece em 3 estágios:

  • 1o. estágio: Software residente em ROM
  • 2o. estágio: X-Loader
  • 3o. estágio: U-Boot

No fim, o U-Boot tentar carregar o kernel do Linux, e como não encontra a imagem, cai no prompt. Vamos tentar listar as partições da NAND:

OMAP3 beagleboard.org # mtdparts
mtdparts variable not set, see 'help mtdparts'
no partitions defined
 
defaults:
mtdids  : nand0=nand
mtdparts: mtdpart' - try 'help'loader),1920k(u-boot),128k(u-boot-env),4m(kernel),-(fs)

Veja que a tabela de partições encontra-se inicialmente vazia. Podemos configurar as partições padrão com o comando abaixo:

OMAP3 beagleboard.org # mtdparts default

E então podemos ver as partições:

OMAP3 beagleboard.org # mtdparts
 
device nand0 , # parts = 5
 #: name                size            offset          mask_flags
 0: x-loader            0x00080000      0x00000000      0
 1: u-boot              0x001e0000      0x00080000      0
 2: u-boot-env          0x00020000      0x00260000      0
 3: kernel              0x00400000      0x00280000      0
 4: fs                  0x0f980000      0x00680000      0
 
active partition: nand0,0 - (x-loader) 0x00080000 @ 0x00000000

 

Agora a NAND esta pronta para gravarmos o kernel e o rootfs. Que tal um pouco de Android no próximo post? Até lá!

Abraços,

Sergio Prado

Navegue
Creative Commons Este trabalho de Sergio Prado é licenciado pelo
Creative Commons BY-NC-SA 3.0.