Share

Vamos iniciar uma série de artigos sobre a placa de desenvolvimento Raspberry PI, sendo esse o primeiro deles.

A Placa Raspberry PI

Raspberry_Pi_Photo02

Raspberry PI é uma placa de desenvolvimento de dimensões reduzidas fabricada no Reino Unido pela Fundação Raspberry PI e lançada em 2012. O objetivo principal do projeto é incentivar o ensino de ciência da computação a crianças. E para alcançar um público maior, o preço da placa precisava ser o mais baixo possível. Para isso os criadores do projeto convenceram a empresa Broadcom a vender os processadores que seriam usadas na placa a um valor menor do que o usual. De fato a Raspberry PI tem sido usada por crianças em várias partes do mundo e tem ajudando a muitas delas no aprendizado de computação.

A placa vem com um system on chip (SoC) Broadcom BCM2835 que inclui um processador ARM1176JZF-S de 700 Mhz, GPU VideoCore IV e 512 MB de memória RAM em sua revisão B. O projeto não inclui uma memória não-volátil – como uma memória flash – mas possui uma entrada de cartão SD para armazenamento de dados. Ela também possui duas portas usb 2.0, saída de vídeo HDMI e vídeo composto, Ethernet 10/100 (RJ45), conector de 26 pinos dos quais 17 são de GPIO, e roda várias distribuições Linux. Ela pode ser comprada por $35 dólares or por volta de R$200 reais no Brasil. Atualmente, a Raspberry é a placa de desenvolvimento mais vendida e usada no mundo.

O SoC BCM2835 da Broadcom

Broadcom é uma empresa norte-americana com sede em Irvine, California, sendo uma das líderes no mercado de dispositivos wireless e de multimídia. Ela também fabrica processadores voltados para aplicações de rede e de multimídia. A qualidade dos processadores da Broadcom é sem igual. Todos os aparelhos da Sky, desde muito tempo, usam processadores da Broadcom.

O BCM2835 é um processador para aplicações de multimídia com baixo custo, otimizado para dispositivos como celulares e aplicações que exigem os mais altos níveis de desempenho de multimídia. Projetado e otimizado para eficiência de energia, BCM2835 utiliza a tecnologia da Broadcom VideoCore IV ® para permitir aplicações em reprodução de mídia, imagem, câmara de vídeo, streaming de mídia, gráficos e jogos 3D.

Por isso, a Raspberry PI tem sido muito usada para construir centrais de multimidia. O VideoCore é capaz de codificar e decoficar vídeos H.264 em 1080p Full HD. E a GPU, que é integrada ao VideoCore, é compatível com OpenGL-ES 1.1/2.0. O SoC BCM2835 também conta com um Advanced Image Sensor Pipeline (ISP) para suporte a cameras de até 20-megapixel operando em até 220 megapixels por segundo.

Broadcom e Linux

Alguns open source drivers são disponíveis e incluídos no kernel Linux para a família de chips wireless 802.11b/g/a/n da Broadcom. Desde a liberação do kernel 2.6.26 alguns chips da Broadcom tinham suporte no kernel mas requeriam firmware externo.

Em 2003 a Free Software Foundation acusou a Broadcom de não está em conformidade com a General Public License porque a Broadcom distribuiu um driver GPL para seus chipsets 802.11g usados em roteadores sem tornar o código fonte público.

O chipset era adotado pela Linksys que foi comprada pela Cisco. A Cisco eventualmente publicou o código fonte para o firmware de seu roteador wireless WRT54G sob a licença GPL.

Mas as coisas mudaram na relação entre a Broadcom e a comunidade Open Source. Em 2012 a Linux Foundation listou a Broadcom como uma das companhias Top 10 contribuindo para o desenvolvimento do Kernel Linux em 2011, colocando-a no Top 5% de 226 companhias estimadas. A fundação Linux Kernel Development reportou também que, durante o curso do ano, a Broadcom submeteu 2916 patches ao kernel Linux.

Em outubro, o compromisso da Broadcom para a comunidade de software livre foi sublinhada quando as partes anteriormente fechadas do espaço de usuário do Raspberry Pi foram liberados sob uma licença BSD, tornando-se “o primeiro SoC multimídia baseado em ARM com drivers de código aberto totalmente funcionais e fornecidos pelo fabricante (em oposição a drivers parciais e derivados de engenharia reversa)” , embora esta alegação não foi aceita universalmente.

A Broadcom forneceu um driver Linux para o seu Broadcom Crystal HD, e eles também contrataram Eric Anholt, um ex-funcionário da Intel, para trabalhar em um driver gráfico que será livre e de código aberto para o seu VideoCore IV.

A Broadcom também liberou a documentação do BCM2835, usado na Raspberry PI.

Primeiros passos com Raspberry PI

Você pode fazer a instalação do Linux na Raspberry PI de várias formas. A mais fácil é baixar a imagem para iniciantes, NOOBS. Para usuários avançados estão disponíveis  imagens das distribuições Raspbian, Pidora, Arch Linux, etc.

Para a instalação do sistema é recomendado um cartão SD de pelo menos 4GB, se você for usar uma distribuição já pronta, como Raspbian.

Se optar por instalar o sistema diretamente de uma imagem, Raspbian por exemplo, basta inserir o cartão SD em um PC com Linux e digitar:

Substitua X pela letra correta que representa o cartão uSD. Isso levará certo tempo para concluir e depois de finalizado, já pode-se iniciar o sistema. Se a opção de 4M não funcionar para você, use 1M.

GPIOs da Raspberry PI

raspberry-pi-rev2-gpio-pinout

A placa dispõe de apenas 17 pinos de GPIO em um conector, para a revisão B. Nesses pinos você pode ter acesso a UART, I2C e SPI. Os pinos de GPIO suportam apenas tensões entre 0 e 3.3V, embora haja alguns pinos no conector com 5V. Mas eles são usados apenas para alimentação.

A velocidade de alteração de estado das GPIOs da Raspberry pode chegar a incrível marca de 22MHz usando driver em espaço de usuário e 7MHz usando a biblioteca wiringPi escrita por Gordon Henderson. Existem varias bibliotecas em diversas linguagens de programação para manipulação das GPIOs da Raspberry PI. Abaixo segue um exemplo usando a biblioteca wiringPi:

Para instalar a biblioteca wiringPI siga os passos descritos aqui:

http://wiringpi.com/download-and-install/

Para fazer a compilação na própria placa e o teste, salve como blink.c e digite:

Referências

http://www.broadcom.com/products/BCM2835
http://en.wikipedia.org/wiki/Broadcom
http://elinux.org/RPi_Low-level_peripherals
http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio-speed/
http://www.raspberrypi.org/downloads/
http://www.raspberrypi.org/documentation/installation/installing-images/README.md

Translate »