Info
Galileo é uma placa microcontrolada baseada no Intel® Quark SoC X1000 Application Processor, um processador 32-bit Intel Pentium em um chip. Esta é a primeira placa baseada na arquitetura Intel® destinada a ser compatível tanto em hardware/software quanto com a pinagem do Arduino e Shields UNO R3. Pinos digitais 0 a 13(e os adjacentes AREF e GND) entradas analógicas 0 a 5, alimentação, ICSP e porta UART (pinos 0 e 1) estão todos na mesma posição.
Galileo foi desenvolvida para dar suporte a Shields que operem tanto em 3.3V ou 5V, a voltagem de operação do processador do Galileo é 3.3V. No entanto, um jumper na placa permite a transição de voltagem para 5V e para os pinos de I/O permitindo a perfeita operação dos Shields.
Além do mais é um projeto totalmente open-source, ou seja, detalhes da placa e esquemas eletrônicos disponíveis pra download
Alguns detalhes mecânicos e de hardware da Galileo
Sobre os detalhes mecânicos da placa, ela possui as seguintes dimensões: 10,7 por 7,2 cm. Também possui quatro furos para fixação da placa.
A especificação completa do que a placa Galileo pode oferecer está abaixo:
- Processador de 400 MHz de 32 bits single core, compativel com o instruction set Pentium e com 16 KB de L1 cache (Intel® Quark SoC X1000), encapsulamento FCBGA393;
- 512 KBytes de SRAM contruída no mesmo chip (SoC) ;
- 256 MByte de SDRAM externa DDR3 ( 2x Micron MT41K128M8);
- 11 KByte EEPROM I2C, acessada utilizando as libs de Arduino;
- 8 MB de Flash SPI (Winbond W25Q64FV), que é onde é armazenado o firmware do último programa enviado do Arduino.
Além de possuir compatibilidade total de software e hardware Arduino padrão UNO R3, esse computador embarcado também tem diversas interfaces de comunicação com o mundo real:
-
ACPI (Advanced Configuration and Power Interface);
-
Slot Mini PCI Express (mPCIe) 2.0;
-
Comunicação Ethernet (10/100 Mbps);
-
Cartão micro SD, que suporta partições FAT32 com, no máximo, partições de 32 GB, FAT;
-
USB 2.0 host e client (permite USB CDC ou para upload de diferentes softwares criados no ambiente Arduino);
-
Comunicação UART;
-
RTC integrado - Existe um header na placa que permite a conexão de uma bateria externa de 3V;
-
JTAG para debug
A Galileo não dispõe de saída de vídeo ou de áudio de qualquer forma.
Para alimentar a placa é necessária uma fonte bem regulada de 5V. Na caixa da Galileo, além da placa, vem uma fonte regulada de 5V@2A com diversos plugs AC para diferentes regiões do mundo. Para comunicação com o PC, um cabo micro USB é suficiente para comunicação. Ao se conectar algo à alimentação de 5V da placa, por exemplo em seu pino de shield Arduino que consegue fornecer essa tensão, a máxima corrente permitida para fornecimento é de 800 mA. O mesmo valor de corrente caso a placa alimente um shield ou circuito externo em 3V3.
Os pinos de entrada e saída são compatíveis com 3V3 ou 5V. Conversores de nível Texas InstrumentsTPS2051 tomam conta disso. Existe um jumper na placa que permite que a placa seja compatível com 5V. Isso faz com que os shields Arduino, que servem no UNO R3, funcionem perfeitamente na Galileo.
Também pode ser escolhida a posição do jumper para suportar 3V3. Os Shields Arduino de 3V3 nessa configuração e que não utilizem o header extra, com o do Arduino XMEGA ou do Arduino DUE, podem ser utilizados também com sucesso. Os Jumpers estão destacados na figura abaixo.
Cada um dos I/Os dos 14 digitais do barramento Arduino podem fornecer 10 mA. de corrente ou receber 25 mA. Todos possuem resistor interno de pull up de 5.6K ou 10K que pode ou não ser habilitados por software. O máximo de corrente que pode ser fornecida, no entanto, é de 80 mA - é bom ficar de olho nessa especificação para não danificar a placa Galileo. Algumas experiências já foram feitas com IOs para determinar o máximo da velocidade que se conseguiria mudar seus estados. Até 2,93 MHz foi conseguido nos IO2 e IO3 (Estes são os dois únicos pinos da placa que podem conseguir chegar a tal velocidade. Com digitalWrite() é possível clock até 477 kHz, fastGpioDigitalWrite() 680 kHz e com o comando fastGpioDigitalWriteDestructive() é possível chegar aos 2,93 MHz ). Como em todos os sistemas baseados em sistemas operacionais de uso genérico (não RTOS), a determinação exata dos tempos não é precisa ou garantida. A reação ou atendimento a qualquer evento é função das tarefas que o processador tem para executar. O jitter pode ser uma preocupação para um sistema que, além de controlar ou monitorar algo crítico, também precise realizar algum processamento no momento do evento. Esse efeito pode ser, também, consequência do overhead causado pelo kernel do sistema operacional, rodando em background, mas sob responsabilidade do mesmo processador.
veja um vídeo com mais informações pela turma do NewEgg.