Ir al contenido principal

Entradas

Mostrando entradas de 2016

Placa de desarrollo Altera Cyclone II EP2C5T144 FPGA Mini

En un artículo anterior ya analizamos una placa de desarrollo FPGA con un precio muy interesante. Hoy os traigo otra, que aunque es de gama baja, es algo más potente (es una Cyclone II, concretamente una EP2C5T144C8N).  La placa de desarrollo Altera Cyclone II EP2C5T144 FPGA Mini puede encontrarse en Internet a unos 20 Euros o incluso menos. Esta FPGA tiene 4068 elementos lógicos, así que con ella podremos acometer proyectos de una envergadura media (no está nada mal para el precio). Algunas características reseñables son: Dispone de un regulador de tensión de 1,2V para el core de la FPGA y otro de 3,3V para los puertos de entrada/salida. La placa se alimenta con 5V. Oscilador a 50Mhz (la FPGA soporta hasta 300Mhz). Dispone de dos PLLs. Varios bloques de RAM de 4Ks (total: 119.898 bits). Una EEPROM EPCS4 de 4Mbit (sólo programable a través del puerto AS). Todos los pines de E/S están conectados a las cabeceras y están bien identificados en el PCB. En ...

Digispark Attiny USB (un Arduino en miniatura)

El microcontrolador Attiny85 no es muy potente ni demasiado versátil a la vista de los pocos puertos de entrada y salida que tiene, pero es muy pequeño y muy fácil de usar, además de tener un consumo muy bajo y ser muy barato, lo que lo hace perfecto para pequeños proyectos. Cuando un compañero de trabajo me habló de él no pude esperar a conseguir uno, ya que me encajaba perfectamente para un par de ideas que tenía en la cabeza. Este pequeño microcontrolador de 8 bits sólo tiene 8 patillas: las dos de alimentación y 6 para entrada/salida. Además, lleva un oscilador interno de hasta 20Mhz (si se alimenta a 5,5V), con lo que no es necesario añadir ningún oscilador externo. Para un primer contacto he usado una pequeña placa de Digispark. Se trata de la Digispark USB development board . Es muy cómoda de usar ya que puede conectarse directamente al puerto USB, tanto para programarla como para alimentarla. También puede alimentarse externamente a través de los tres pines laterales...

GPIO en Raspberry Pi Zero

Aunque antes ya había estado "jugando" con la Raspberry, hacía tiempo que quería probar este modelo en concreto: se trata de la Raspberry Pi Zero. Lo cierto es que este modelo sorprende por concentrar potencia y versatilidad en una placa realmente pequeña. Es prácticamente un ordenador en miniatura capaz de correr Linux o Windows 10 (obviamente versiones adaptadas) y con una buena cantidad de pines de entrada/salida (GPIO) a nuestra disposición, y todo por 5$. Las características de la Raspberry Pi Zero son las siguientes. CPU: Broadcom BCM2835, velocidad de reloj hasta 1GHz. RAM: 512MB Alimentación: 5V, a través del puerto micro USB (160mA). Dimensiones: 65mm x 30mm x 5mm Video & Audio: Vídeo a 1080P HD y salida de audio a través de puerto mini-HDMI. Almacenamiento: MicroSD. Otras entradas/salidas: Puerto micro USB (otro además del de alimentación), GPIO del 40 pines. Sistemas operativos: Linux (varios sabores), Windows 10, RISC OS. A diferencia de...

¿Qué son las resistencias pull-up?

Los componentes digitales, como las puertas lógicas o las entradas y salidas de los microcontroladores, deben estar en uno de dos estados, llamados nivel alto y nivel bajo. El nivel alto se corresponde con la tensión VCC positiva (normalmente 5V o 3,3V) y el nivel bajo es aquel que conectaría el puerto a GND. Además, dependiendo de la tecnología subyacente, el puerto se puede considerar activo cuando está a nivel bajo, o en otras ocasiones, cuando está a nivel alto. Por ejemplo, el procesador Atmega328 (Arduino) tiene un puerto RESET que es activo a nivel bajo, es decir, que cuando se conecta a GND, se produce el reseteo del microcontrolador. Otro escenario posible es aquél en el que un puerto de salida (por ejemplo, una puerta lógica o la salida de otro microcontrolador), necesita poner un valor en el puerto de otro elemento digital en el circuito. Para gestionar estas situaciones se utilizan resistencias pull-up ( pull-up resistors en inglés). Lo mejor será comenzar con un...

Regulador de tensión L7805CV para alimentar un Atmega328 (Arduino)

El 7805 es el regulador de voltaje por excelencia, seguramente el más usado en sistemas empotrados, aunque poco a poco estos sistemas van adoptando 3.3V como tensión de trabajo, el 7805 es perfecto para usarlo con el Atmega328, que se alimenta con 5V. En el artículo anterior vimos como usar este microcontrolador de forma independiente de la placa Arduino, pero pasamos muy de puntillas por el tema de la alimentación. En este artículo vamos a aprender a usar el 7805 para alimentar nuestros circuitos basados en el Atmega328. En electrónica digital es importante que las tensiones que alimentan el circuito se mantengan constantes y a un nivel conocido y estable. El microcontrolador Atmega328 usa 5V para funcionar. A no ser que usemos una fuente estabilizada, la cosa se puede complicar. La tensión que ofrece una pila no es lo suficientemente estable. Pensarás que con usar un adaptador de corriente de esos que venden en los bazares, todo solucionado ¿no? Pues no. Estos transformadores no...

Atmega328P independiente de Arduino (Arduino standalone)

Recuerdo mi primer contacto en la facultad con un microcontrolador (de Texas Instrumens, no recuerdo el modelo). Había que usar complejos y caros programadores para volcar el código, y para volver a usarlos había que borrar sus EPROM con luz ultravioleta. Hoy están mucho más accesibles, y la plataforma Arduino, basada en el microcontrolador Atmega328P, tiene bastante culpa de ello (aunque no son los únicos, claro). Hoy cualquiera con un PC y ganas puede adquirir un Arduino por muy pocos euros y empezar a jugar con él. Ni siquiera es necesario programar en ensamblador ya que el entorno de desarrollo permite programarlos en un lenguaje de alto nivel. El prototipado es, hoy en día, mucho más sencillo y barato gracias a estas nuevas plataformas, pero en algún momento hay que pasar del prototipo al circuito final (o al menos, a un prototipo ya sin la placa de Arduino a cuestas). Vamos a ver cómo usar el microcontrolador Atmega328P en un circuito real e independiente de la placa de Ardui...

Placa de desarrollo FPGA EP1C3T144 (III)

Para finalizar la serie de tres artículos sobre esta placa de desarrollo vamos a ver como está conectada la cabecera de pines de entrada y salida, sin la que la FPGA no podría comunicarse con el mundo exterior. Para ello vamos a aprovechar el mismo circuito semisumador que ya hicimos en la primera parte y, en vez de usar los botones y los leds de la placa, vamos a montarlos en una protoboard.  La asignación de pines entre la FPGA y la cabecera de E/S es la siguiente. PIN FPGA Conector E/S PIN FPGA PIN 7 - 01 02 - PIN 6 PIN 5 - 03 04 - PIN 4 PIN 3 - 05 06 - PIN 2 PIN 1 - 07 08 - PIN 144 PIN 143 - 09 10 - PIN 142 PIN 141 - 11 12 - PIN 140 PIN 139 - 13 14 - PIN 134 PIN 133 - 15 16 - PIN 132 PIN 131 - 17 18 - PIN 130 PIN 129 - 19 20 - PIN 128 PIN 127 - 21 22 - PIN 126 PIN 125 - 23 24 - PIN 124 PIN 123 - 25 26 - PIN 122 PIN 121 - 27 28 - PIN 120 Vamos a conectar los LEDs a los pines 27 (PIN 121 de la FPGA) y...

Placa de desarrollo FPGA EP1C3T144 (II)

Seguimos indagando en las posibilidades de esta placa de desarrollo, y en esta ocasión vamos a ver cómo están conectados el cuádruple display de siete segmentos (bueno, 8 segmentos con el punto decimal) y los dos bancos de switches. El display es un 3461B (de ánodo común). Al igual que un 7 segmentos normal, este display tiene las 8 entradas para cada uno de los leds, y además, otras cuatro para seleccionar el led a iluminar en cada momento (refrescando los displays consecutivamente pueden usarse los cuatro a la vez). Estos son los pines de la FPGA asociados a cada pin del display. Pin display Pin FPGA Segmento A (pin 14) PIN 74 Segmento B (pin 16) PIN 77 Segmento C (pin 13) PIN 78 Segmento D (pin 3) PIN 79 Segmento E (pin 5) PIN 75 Segmento F (pin 11) PIN 82 Segmento G (pin 15) PIN 73 Punto decimal (pin 7) PIN 76 Dígito 1 (pin 1) PIN 83 Dígito 2 (pin 2) PIN 84 Dígito 3 (pin 6) PIN 85 Dígito 4 (pin 8) PIN 91 Las cuatro señale...

Robot controlado con Arduino

Una de las formas más divertidas de aprender a usar microcontroladores es diseñar y montar tu propio robot. Lo bueno es que te permite jugar con el control de motores, la gestión de sensores, la entrada y salida desde el controlador, etc. Gracias a la plataforma Arduino podemos crear un robot basado en el microcontrolador atmega328 sin necesidad de andar montando osciladores de cuarzo, reguladores de tensión y todo aquello que rodea al microcontrolador. Como ejemplo, os describo a continuación un robot que construí hace ya algún tiempo. Primero la lista de componentes: Chasis para el robot (se localizan fácilmente en Amazon, Ebay, etc.). El que yo he usado ya trae los motores y las ruedas montadas, así que eso que nos ahorramos. Protoboard pequeña (la he usado para distribuir más cómodamente el cableado). Driver de motores L298N (Es muy versátil. Soporta motores de continua como los usado en este robot, o también motores paso a paso). Un servo (por ejemplo un TowerPro SG9...