Arduino Diecimila

Información general.

La Arduino Diecimila es una placa microcontroladora basada en el chip ATmega168 (datasheet). Tiene 14 E/S digitales (6 de las cuales se puedes utilizar como salidas PWM), 6 entradas analógicas, un cristal de 16MHz, conexión USB y botón de reseteo. Contiene todo lo necesario para el soporte del microcontrolador; simplemente conectala a un ordenador con un cable USB o alimentala con un adaptador AC/DC o una batería y comenzará a funcionar.

"Diecimila" significa "diez mil" en italiano y fue un nombrada de este modo para celebrar el hecho de que mas de 10.000 placas Arduino han sido ya fabricadas. La Diecimila es la última de la serie de placas USB; para compararla con versiones anteriores puedes consultar el índice de placas Arduino.

Características.

MicrocontroladorATmega168
Voltaje de funcionamiento5V
Voltaje de entrada (recomendado)7-12 V
Voltaje de entrada (limites)6-20 V
Pines E/S Digitales14 (de ellos 6 son salidas PWM)
Pines de entrada Analógica6
Intensidad por pin de E/S40 mA
Intensidad por pin de 3.3V50 mA
Memoria Flash16 KB (2 KB reservados para el gestor de arranque)
SRAM1 KB
EEPROM512 bytes
Velocidad del reloj16 MHz

Componentes.

Esquemas y referencias de diseño.

Ficheros EAGLE: arduino-diecimila-reference-design.zip

Esquema: Arduino-Diecimila-schematic.pdf

Nótese que R2 no se monta y que R3 a sido reemplazada por un condensador de 100 nano-faradios.

Alimentación.

La Arduino Diecimila puede ser alimentada directamente por el cable USB de conexión o por una fuente de alimentación externa. El cambio entre una u otra forma se hace por medio de un jumper: para alimentar la placa desde el cable USB se situa el jumper entre los dos pines mas próximos a dicho conector, para seleccionar al fuente de alimentación externa situar el jumper entre los dos pines mas cercanos al conector de alimentación externa.

La alimentación externa puede proceder indistintamente de un cargador de pared o de una batería. La alimentación también puede ser introducida directamente a los pines GND y Vin en el conector de alimentación. Un regulador de voltaje se encarga de que la placa sea alimentada de forma eficiente.

La placa puede funcionar con una fuente de alimentación externa que le proporcione un voltaje de entre 6v y 20v. Si el voltaje cae por debajo de 7v, el pin de 5v puede dar un voltaje inferior a 5v, por lo que la placa se vuelve inestable. Si usas más de 12v el regulador de voltaje puede sufrir de calentamiento y producir daños en la placa. El rango de voltaje de entrada recomendado es de 7v a 12v.

Los pines de alimentación son los siguientes:

  • VIN. La entrada de voltaje de la placa Arduino cuando se utiliza una fuente de alimentación exterior (en lugar de los 5v del cable USB u otra fuente de alimentación regulada). Puedes suministrar voltaje a través de este pin o, si el suministro de corriente se hace a través del conector de alimentación, sacarlo de él.

  • 5v. La alimentación regulada que se utiliza para alimentar el microcontrolador y los demás componentes de la placa. Esta puede llegar de la entrada Vin, a través del regulador de voltaje integrado, o ser suministrado por un cable USB o cualquier otra fuente de alimentación regulada.

  • 3V3. Un suministro de 3.3v generados por el chip FTDI integrado en la placa. La máxima corriente que soporta es de 50mA.

  • GND. Masa, tierra o negativo.

Memoria.

El ATmega168 tiene 16KB de memoria para el almacenamiento de sketches (de los cuales 2KB están reservados para el gestor de arranque). También tiene 1KB de SRAM y 512 bytes de EEPROM en los cuales se puede leer y escribir mediante la librería EEPROM).

Entradas y Salidas.

Cada uno de los 14 pines de digitales de la Diecimila puede ser configurado tanto como entrada o como salida usando las funciones pinMode(), digitalWrite() y digitalRead(). Estos pines operan a 5v. Cada pin puede suministrar o recibir una corriente máxima de 40mA y tienen resistencias pull-up internas (desconectadas por defecto) de 20 a 50 KOhms. Además algunos de los pines tienen funciones especiales:

  • Serie: 0 (RX) y 1 (TX). Usados para recibir (RX) y transmitir (TX) datos serie TTL. Estos pines están conectados con correspondientes pines del chip FTDI de conversión USB a Serie-TTL.

  • Interrupciones Externas: 2 y 3. Estos pines pueden ser configurados para actuar como disparadores de interrupciones en caso de que cambien a estado bajo, un pico de subida o bajada o simplemente en un cambio de estado. Ver la función attachInterrupt() para más detalles.

  • PWM: 3, 5, 6, 9, 10 y 11. Generan una señal PWM de salida de 8 bits con la función analogWrite().

  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estos pines soportan comunicación SPI, la cual no está, de momento, incluida en el lenguaje de programación de Arduino.

  • LED: 13. Hay un LED integrado en la placa conectado al pin 13. Cuando este pin se pone en estado HIGH el LED se enciende, cuando el pin cambia a estado LOW el LED se apaga.

La Diecimila tiene 6 entradas analógicas, cada una tiene una resolución de 10 bits (esto son 1024 valores). La medida de los valores analógicos se hace entre VCC y GND, aunque es posible cambiar el límite superior del rango de medición utilizando el pin AREF y algo de código de bajo nivel. Adicionalmente algunos de los pines de entrada analógicos tienen una función especializada:

  • I2C: 4 (SDA) y 5 (SCL). Forman un bus I2C (TWI) para comunicación con otros dispositivos utilizando la librería Wire (más ducumentación en la página web de Wiring).

Hay unos cuantos pines más en la placa:

  • AREF. Voltaje de referencia para las entrada analógicas. Se utiliza con analogReference().

  • Reset. Cuando este pin se pone en estado LOW resetea el microcontrolador. Normalmente se utiliza cuando el botón de reseteo se hace inaccesible por que el uso de un shield lo oculta.

Puedes ver también la correspondencia de pines entre ATmega168/328 y Arduino.

Comunicación.

La Arduino Diecimila puede comunicarse con tu ordenador, con otra Arduino o con otros microcontroladores. El ATmega168 tiene implementada comunicación serie UART TTL en sus pines 0 (RX) y 1 (TX). Un chip FTDI FT232RL integrado en la placa convierte esta comunicación Serie en USB mediante los drivers FTDI (incluidos en el software de Arduino) para proporcionarnos un puerto COM virtual para comunicarnos con el ordenador. El shoftware de Arduino incluye un monitor serie que permite que datos sencillos puedan ser enviados y recibidos desde la placa por medio de la conexión USB. Los LEDs TX y RX de la placa parpaderán mientras los datos están siendo transmitidos a por el chip FTDI y la conexión USB al ordenador (pero no por los pines de comunicación Serie 0 y 1).

La librería SoftwareSerial permite la comunicación Serie en cualquiera de los pines digitales de la Diecimila.

El ATmega168 también soporta comunicación I2C (TWI) y SPI. El programa Arduino incluye la librería Wire para simplificar el uso del bus I2C, vea la referencia para más detalles. Si se desea utilizar la comunicación SPI hay que echar un vistazo a la hoja de características (datasheet) del ATmega168.

Cargando sketches.

La Arduino Diecimila puede ser programada con el software Arduino (descarga). Para más detalles ver la página de referencia y los tutoriales.

El ATmega168 en la Arduino Diecimila viene precargado con un gestor de arranque que nos permite la carga de nuevo código sin el uso de un programador externo. Este se comunica usando el protocolo STK500 original (referencia, archivos de cabecera en C).

También se puede prescindir del gestor de arranque y cargar los sketches en el ATmega168 con un ICSP (programador externo), para ello ver estas instrucciones más detalladas.

Reseteo automático por Software.

En lugar de utilizar el pulsador de reseteo antes de cargar un nuevo sketch la Arduino Diecimila ha sido diseñada de modo que permite el reseteo automático por el software instalado en nuestro ordenador. Una de las lineas de control (DTR) del FT232RL está conectado con la linea de reseteo del ATmega168 mediante un condensador de 100 nanofaradios. Cuando esta línea se pone en estado LOW el chip se reinicia. El software de Arduino (a partir de la versión 0009) tiene la capacidad de cargar código en la placa simplemente presionando el botón de "upload" en el Arduino IDE. Esto significa que el gestor de arranque tarda menos tiempo en ejecutarse, pues la linea de reseteo está perfectamente coordinada con el inicio de la descarga.

Esta configuración tiene otras implicaciones. Cuando una Diecimila se conecta a un ordenador por el que corre un MAC OS X o un Linux, esta se resetea cada vez que se establece la conexión por USB. Durante el siguiente medio segundo el gestor de arranque se ejecuta en la Diecimila, mientras que ha sido programado para ignorar datos nulos (por ejemplo cualquier cosa durante la carga de un nuevo sketch). Este interceptará los primeros bytes de datos enviados a la placa después de que la conexión sea establecida. Si un sketch que se está ejecutando en la placa recibe una configuración de arranque u otros datos cuando se ejecuta por primera vez, asegúrate de que el software con el que se comunica espera un segundo después de abrir la conexión y antes de enviar estos datos.

Protección del USB en caso de sobrecarga.

La Arduino Diecimila tiene un fusible reseteable que protege el puerto USB de tu ordenador en caso de sobre-tensiones y cortocircuitos. Aunque la mayoría de los ordenadores tienen su propia protección interna este fusible nos da una protección extra. Si mas de 500mA llegan al puerto USB dicho fusible, automáticamente, corta la conexión hasta que el cortocircuito o la sobre-tensión terminen.

Características físicas.

La longitud y anchura máxima del PCB de la Diecimila son 6.8cm y 5.3cm respectivamente, con el conector USB y el conector de alimentación sobresaliendo ligeramente de los bordes. 3 perforaciones para tornillos permiten la fijación de la placa sobre una superficie o una caja. La distancia entre los pines 7 y 8 es de 4mm, no como los demás pines, que están separados por 2.5mm (separación normalizada entre pines).

Share