quarta-feira, 24 de outubro de 2012

Review Arduino Mega2560 R3

Introdução:

O Arduino Mega 2560 é uma placa de microcontrolador baseada no ATmega2560 (datasheet). Ele possui 54 pinos de entradas/saídas digitais, 16 entradas analógicas,4 UARTs (portas seriais de hardware), um oscilador de cristal de 16 MHz, uma conexão USB, uma entrada de alimentação, uma conexão ICSP e um botão de reset. Ele contém tudo o que é necessário para dar suporte ao microconrolador; basta conectar a um computador com um cabo USB ou a uma fonte de alimentação e já está pronto para começar. O mega é compatível com a maioria dos shields desenhados para os Arduino Uno, Duemilanove e para o Diecimila. Possui ainda o dobro de memória do antigo Arduino Mega.


Características:

MicrocontroladorATmega2560
Voltagem de alimentação5V
Voltagem de entrada (recomendada)7-12V
Voltagem de entrada (limites)6-20V
Pinos digitais I/O54 (dos quais 14 podem ser saídas PWM)
Pinos de entrada analógica16
Corrente contínua por pino I/O40 mA
Corrente contínua para o pino 3.3V50 mA
Memória Flash256 KB of which 4 KB used by bootloader
SRAM8 KB
EEPROM4 KB
Velocidade de Clock16 MHz


Alimentação:



O Arduino Mega2560 pode ser alimentado pela conexão USB ou com uma fonte externa. A entrada de alimentação é selecionada automaticamente.
Alimentação externa (não USB) pode ser tanto de uma fonte como de baterias. A fonte pode ser conectada plugando um conector de 2,1mm, positivo no centro, na entrada de alimentação. Cabos vindos de uma bateria podem ser inseridos nos pinos terra (Gnd) e entrada de voltagem (Vin) do conector de energia.
A placa pode operar com alimentação externa entre 6 e 20 volts. No entanto, se menos de 7 volts forem fornecidos o pino de 5V pode fornecer menos de 5 volts e a placa pode ficar instável. Com mais de 12V o regulador de voltagem pode super-aquecer e danificar a placa. A faixa recomedável é de 7 a 12 volts.
O Mega2560 difere de todas as placas anteriores no sentido de que não utiliza o chip FTDI para fazer a conversão de serial para USB que foi substituído pelo ATmega8U2 programado para realizar esta mesma função.

Os pinos de alimentação são os seguintes:
  • VIN. A entrada de voltagem da placa Arduino quando se está usando alimentação externa (em oposição aos 5 volts fornecidos pela conexão USB ou outra fonte de alimentação regulada) É possível fornecer alimentação através deste pino ou acessá-la desde ai se etiver alimentando pelo conector de alimentação. 
  • 5V. Fornecimento de alimentação regulada para o microcontrolador e outros componentes da placa. 
  • 3V3. Uma alimentação de 3,3 vots gerada pelo chip FTDI. A corrente máxima é de 50 mA. 
  • GND. Pinos terra.

Memória:

O ATmega2560 tem 256 KB de memória flash para armazenamento de código(dos quais 8KB são usados pelo bootloader), 8 KB de SRAM e 4 KB de EEPROM (que poder ser lidos e escritos com a biblioteca EEPROM).

Entrada e Saída:

Cada um dos 54 pinos digitais do Mega2560 pode ser usado como entrada ou saída, usando as funções de pinMode()digitalWrite(), e digitalRead(). Eles operam a 5 volts. Cada pino pode fornecer ou receber um máximo de 40 mA e possui um resistor interno (desconectado por default) de 20-50KΩ. Em adição alguns pinos possuem funções especializadas:
  • Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX). Usados para receber (RX) e transmitir (TX) dados seriais TTL. Pinos 0 e 1 são também conectados aos pinos correspondentes do chip serial FTDI USB-to-TTL. 
  • Interruptores externos: 2 (interruptor 0), 3 (interruptor 1), 18 (interruptor 5), 19 (interruptor 4), 20 (interruptor 3), and 21 (interruptor 2). Estes pinos podem ser configurados para disparar uma interrupção por um valor baixo, um limite diminuindo ou subindo, ou uma mudança em um valor. Para mais dealhes veja a função attachInterrupt()
  • PWM: 0 a 13. Fornecem saída analógica PWM de 8-bits com a função analogWrite()
  • SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). Estes pinos dão suporte à comunicação SPI que, embora suportada pelo hardware, ainda não está incluída na linguagem Arduino. 
  • LED: 13. Há um LED connectado ao pino digital 13. Quando o pino está em HIGH o led se acende. 
  • I2C: 20 (SDA) and 21 (SCL). Fornecem suporte à comunicação I2C (TWI) usando a bibliotecaWire(documentação no site do Wiring). Note que estes pinos não estão na mesma posição que os pinos I2C pins no Duemilanove ou no Diecimila.

O Mega2560 tem 16 entradas analógicas, cada uma das quais com 10 bits de resolução (i.e. 1024 valores diferentes). Por padrão elas medem de 0 a 5 volts, embora seja possível mudar o limite superior usando o pino AREF e a função analogReference().

Há um par de pinos diferentes na placa:
  • AREF. Voltagem de referência para as entradas analógicas. Usados com analogReference(). 
  • Reset. Marque este valor como LOW para resetar o microcontrolador. Tipicamente usado para adcionar um botão de reset em shields que bloqueiam o que há na placa.


Comunicação:



O Arduino Mega2560 possui várias facilidades para se comunicar com um computador, com outro Arduino ou outros microcontroladores. O ATmega2560 fornece quatro portas de comunicação serial UARTs para TTL (5V). Um chip FTDI FT232RL direciona uma destas portas para a conexão USB e os drivers FTDI (que acompanham o software do Arduino) fornecem uma porta com virtual para softwares no computador. O software do arduino inclui um monitor serial que permite que dados simples de texto sejam enviados de e para a placa Arduino. Os LEDs RX e RT piscarão enquanto dados estiverem sendo transmitidos pelo chip FTDI e pela conexão USB ao computador (mas não para comunicação serial nos pinos 0 e 1).

Uma biblioteca SoftwareSerial permite comunicação serial em qualquer um dos pinos digitais do Mega2560.

O ATmega2560 também fornece suporte para comunicação I2C (TWI) e SPI. O software Arduino inclui uma biblioteca Wire para simplificar o uso do bus I2C; veja a documentação no site do Wiring para mais detalhes. Para usar a comunicação SPI veja o datasheet do ATmega2560.



Programação:

O Arduino Mega2560 pode ser programado com o software do Arduino (download).
O ATmega2560 no Arduino Mega2560 vem com o bootloader pré gravado possibilita o envio de novos códigos sem o uso de um programador de hardware externo. Ele se comunica usando o protocolo original STK500 (reference, C header files).


Reset Automatico (Software):



Ao invés de necessitar o pressionamento físico do botão de reset antes de um upload, o Arduino Mega2560 é desenhado de moda a permitir que o reset seja feito pelo software executado em um computador conectado. Uma das linhas dos fluxos de controle de hardware (DTR) do FT232RL é conectada diretamente à linha de reset do ATmega2560 através de um capacitor de 100 nanofarads. Quando esta linha é acessada (rebaixada), a linha de reset decai por tempo suficiente para resetar o chip. O software Aduino utiliza esta capacidade para possibilitar que novos códigos sejam enviados simplesmente clicando no botão de upload do ambiente de programação do Arduino. Isto significa que o bootloader fica fora do ar por um tempo mais curto, uma vez que o rebaixamento do DTR pode ser bem coordenado com o início do upload.

Esta montagem tem outras implicações. Quando o Mega2560 é conectado a um computador rodando Mac OS X ou Linux ele é resetado cada vez uma conexão é feita com o software (via USB). Durante o próximo meio segundo (aproximadamente) o bootloader estará rodando no Mega2560. Uma vez que ele é programado para ignorar dados mal formados (i.e. qualquer coisa que não seja um upload de novo código), ele vai interceptar os primeiros bytes de informação enviado à placa depois que uma nova conexão seja aberta. Se um programa rodando na placa recebe uma pré configuração ou outros dados assim que ele começa, certifique-se de que o software com o qual ele se comunica espera meio segundo depois que a conexão seja estabelecida antes de começar a enviar os dados.

O Mega2560 tem uma trilha que pode ser cortada para desabilitar o auto-reset. Esta trilha pode depois ser unida novamente por solda para re-habiltar esta funcionalidade.Esta trilha tem a identificação "RESET-EN" Também é possível desabilitar o autoreset conectando um um resistor de 110Ω do 5V à linha de reset.


Proteção de sobre-corrente USB:

O Arduino Mega2560 possui um fusível resetável que protege as portas USB do computador contra curto-circuitos e sobre corrente. Apesar de muitos computadores possuírem sua própria proteção interna, o fusível resetável dá um grau extra de segurança . Se mais de 500 mA forem drenados ou aplicados na porta USB , o fusível automaticamente abrirá o circuito até que o curto ou a sobrecarga sejam removidos.


Características Físicas e Compatibilidade com Shields:



As dimensões máximas de comprimento e largura da placa Mega2560 são 4,0" (101,60 mm ) e 2,1" ( 53,34 mm ) respectivamente , com o conector USB e jack de alimentação ultrapassando um pouco as dimensões da placa em si . Três furos para montagem com parafusos permitem montar a placa numa superfície ou caixa . Note que a distância entre os pinos de entrada e saída digitais no. 7 e 8 é de 160 mil ( 0,16") , não é sequer múltiplo dos 100 mil ( 0,10") do espaçamento entre os outros pinos .


O Mega2560 é projetado para ser compatível com a maioria dos shiels feitos para o Diecimila ou Duemilanove. Os pinos de entrada e saída digitais 0 a 13 , os adjacentes AREF e GND, entradas analógicas 0 a 5, o conector power e o ICSP estão todas em posições equivalentes . Além do mais, a UART principal ( porta serial ) está localizada nos mesmos pinos (0 e 1), bem com as interrupções 0 e 1 ( pinos 2 e 3 respectivamente ). SPI está disponível através do conector ICSP em ambos ( Mega2560 e Uno/Duemilanove/Diecimila ). Note que o I2C não está localizado nos mesmos pinos no Mega2560 ( 20 E 21 ) e no Duemilanove ( entradas analógicas 4 e 5 ) .

Nenhum comentário:

Postar um comentário