Kit de desenvolvimento LPC3250 da Embedded Artists
- por Sergio Prado
O kit de desenvolvimento LPC3250 da Embedded Artists vem equipado com o microcontrolador LPC3250 da NXP, e pode ser uma boa escolha se você quer boa performance, alto nível de integração de periféricos e baixo consumo.
Se sua aplicação precisa de uma capacidade de processamento maior do que a oferecida pelas CPUs ARM Cortex-M3, com necessidades de display gráfico e conectividade, mas não quer uma solução tão high-end como as linhas i.MX da Freescale ou Sitara da TI, talvez o LPC3250 seja o que você procura.
O kit é composto basicamente por uma placa com CPU e memória RAM/Flash (LPC3250 OEM Board) conectada à uma placa-base (QVGA Base Board), com o display e um conjunto de periféricos para acesso.
O microcontrolador LPC3250 é um ARM9 rodando à 266MHz com 256kB de SRAM, interface para flash NAND e barramento para SDRAM, Ethernet MAC e um controlador de display LCD integrados, além de diversas interfaces de comunicação como USB, UART, I2C, SPI, I2S, PWM, ADC, etc.
O kit vêm com 128MB de flash NAND, 4MB de flash NOR e 64MB de SDRAM. Pode ser alimentado por USB ou uma fonte externa de 9-15V. Possui interfaces Ethernet, USB host/OTG, cartão SD/MMC, display LCD de 3.2", JTAG, RS232, IrDA, acelerômetro, E2PROM, botões, leds e conectores para expansão de I/O.
O manual do usuário pode ser baixado aqui e o datasheet aqui.
O kit pode ser adquirido no site da Embedded Artists por $340 FOB (no momento em que escrevo este artigo), ou em um de seus distribuidores como a Digi-Key, a Future Electronics e a Mouser. No Brasil, a Microgenios é a distribuidora oficial da Embedded Artists.
LINUX
Com MMU e boa capacidade de memória (Flash e RAM), conectividade e interface com displays gráficos, o kit é uma boa plataforma para se trabalhar com Linux.
A comunidade Linux para os microcontroladores da NXP gira em torno do site http://www.lpclinux.com, com seções de download, tutoriais, blogs, forums, etc.
PROCESSO DE BOOT
O microcontrolador LPC3250 possui uma ROM interna de 32K com um código de boot que é executado sempre que você liga o equipamento. Este código de boot procura por um bootloader em 4 diferentes fontes: UART, SPI, NOR e NAND.
Quando você liga o equipamento, este código de boot em ROM verifica a entrada SERVICE (GPI_1) do microcontrolador. Se esta entrada estiver em nível baixo, o codigo de boot inicia um processo de recuperação para baixar um programa pela UART e carregá-lo para a SRAM. Se esta entrada estiver em nível alto, ele irá procurar por um bootloader nas seguintes interfaces, nesta ordem: SPI, NOR e NAND. Se ele encontrar, irá carregar os primeiros 54kB para a SRAM.
Este código carregado para a SRAM é o bootloader de 1o. estágio, chamado de Kickstarter, responsável basicamente por carregar e iniciar um bootloader de 2o. estágio, o S1L. Este bootloader de 2o. estágio é o responsável por inicializar o hardware (GPIO, clock, SDRAM, etc) e carregar o bootloader de 3o. estágio, o U-Boot. Ufa!
Daí é o processo normal de qualquer sistema Linux embarcado, o U-Boot carrega o kernel e então temos nosso sistema Linux rodando no kit.
USANDO O KIT
Para usar o kit, basta alimentá-lo com o cabo USB, conforme figura abaixo:
Você só vai precisar de uma fonte externa se for ligar dispositivos de consumo alto no barramento USB.
Como a placa possui o chip FT232 da FTDI, ao mesmo tempo que o cabo USB serve para alimentar o kit, ele será sua conexão serial (console) com o equipamento!
Configure seu programa de comunicação serial preferido com 115200-8N1, ligue o kit na sua máquina de desenvolvimento pelo cabo USB, e veja o menu do bootloader de 2o. estágio (S1L):
Embedded Artist 3250 Board (S1L 2.0) Build date: Nov 23 2010 13:21:19 EA3250# |
Com este bootloader você é capaz de bootar do cartão SD, da UART ou da NAND Flash. Mas é claro que você vai querer bootar o Linux, não é verdade? Então você vai precisar gravar o U-Boot na flash NAND.
Você pode baixar o u-boot daqui, renomeá-lo para u-boot.bin e salvá-lo em um cartão SD.
Coloque o cartão SD no kit, reinicie-o e na linha de comandos do bootloader S1L, carregue o U-Boot do cartão SD para a RAM:
EA3250# load blk u-boot.bin raw 0x83fa0000 |
Salve na flash:
EA3250# nsave |
E configure o bootloader S1L para automaticamente carregar o U-Boot no boot do equipamento:
EA3250# aboot flash raw 0x83fa0000 |
Configure também um delay de 2 segundos no boot do S1L:
EA3250# prompt EA3250# 2 |
Reinicie e pronto! Você receberá o prompt do U-Boot no terminal:
Embedded Artist 3250 Board (S1L 2.0) Build date: Nov 23 2010 13:21:19 Autoboot in progress, press any key to stop U-Boot 2009.03-rc1 (Sep 28 2009 - 09:38:20) DRAM: 64 MB NAND: 128 MiB *** Warning - bad CRC or NAND, using default environment In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 uboot# |
TREINAMENTO
Este é o kit que utilizarei nas minhas primeiras seções do treinamento de Linux embarcado. Os kits foram gentilmente cedidos pela NXP para a realização do treinamento.
Busquei desenvolver uma metodologia de ensino de forma que as atividades de laboratório fossem independentes de hardware. Nada de receitas de bolo. O que você aprender com este kit, poderá aplicar em qualquer outro hardware com suporte à Linux. Mas espero que possamos nos divertir bastante com este kit, desenvolver alguns projetos legais durante (e depois) do treinamento, e claro, aprender Linux embarcado!
Para quem já se inscreveu, vejo vocês lá!
Um abraço!
Sergio Prado