EL BLOG SE HA MUDADO, TODA LA INFORMACION SE ENCUENTRA AHORA EN palmacas.com.
Mostrando las entradas con la etiqueta ARM. Mostrar todas las entradas
Mostrando las entradas con la etiqueta ARM. Mostrar todas las entradas

octubre 05, 2011

Armando la Coconut Board

Luego de que pasara le emoción de al fin tener en casa las tarjetas llego el momento de ponerme manos a la obra y encarar la construcción de una de las placas para saber si la espera valió la pena.


Luego de alistar los componentes y limpiar la tarjeta con un paño húmedo me dispuse a soldar el microcontrolador (LQFP64). Comience aplicando un poco de soldadura a todos los pads donde iba el microcontrolador, con la ayuda de una pinza ubiqué el microcontrolador y soldé los pads de los extremos para asegurar el chip, luego de revisar que estaban bien ubicados soldé el resto de los pads y probé continuidad entre los pads cercanos para revisar posibles puentes.


Una vez realizado el paso mas difícil lo que me restaba era soldar los condensadores, las resistencias, los led, el cristal de 16MHz, los reguladores y el conector MiniUSB; en ese momento hice la primera conexión a voltaje alimentando la tarjeta desde el puerto USB, todo ando bien. Me quedaba soldar los pulsadores, el conector USB Host, el jack de alimentación y los conectores de los GPIOs.

Cuando termine de soldar todos los componentes llegó el momento de probar el microcontrolador, para eso utilicé la aplicación LM Flash Programmer de Texas Instruments que me permite programar el ARM usando un puerto serial y el bootloader que viene de fabrica en el microcontrolador, utilice un conversor USB-Serial y luego de arreglar un problema con un cable pude cargar un programa básico al microcontrolador.


Cabe indicar que no soldé el cristal de 32.768KHz y el conector MicroSD porque en este momento no los voy a utilizar.

Mas info:
Coconut Board (ARM Cortex-M3).
Stellaris® Flash Programmer, GUI and command line.

Si tienes alguna inquietud no dudes en comentar.

agosto 13, 2011

Coconut Board - ARM Cortex-M3

Recientemente he estado trabajando con los microcontroladores ARM como el de la LPCXpresso LPC1114, en estos días he querido avanzar un poco mas y aprovechando que en mi universidad han creado un grupo de investigación en microelectrónica del cual yo soy miembro he propuesto la creación de una tarjeta de desarrollo basada en un microcontrolador ARM, luego de presentar la idea esta fue aprobada y llegaron días de arduo trabajo.

Para comenzar se debía seleccionar un microcontrolador que fuera mas potente que un LPC1114 (Cortex-M0) y económico, así que apele a uno de los mejores amigos que tiene un estudiante cuando necesita un chip gratis, Texas Instruments. Estuve buscando un rato entre la cantidad de microcontroladores ARM que fabrica Texas y encontré los de la gama 3000 y 5000, vi que los de la gama S3000 no estaban en el programa de muestras de Texas pero los de la S5000 si. Estuve revisando algunos chips y luego de descartar algunos (por no estar en el programa de muestras o por tener un encapsulado difícil de soldar a mano) la elección fue el LM3S5732, habían algunos otros pero este me convenció por sus prestaciones en memoria.


Ahora venia el diseño de una PCB en donde montar el chip para comenzar a sacarle el jugo, para saber que tipo de PCB se debía diseñar era necesario recordar las características de el microcontrolador, estas son:

- Procesador ARM Cortex-M3 a 50MHz.
- Debug via JTAG.
- Memoria Flash de 128Kb.
- Memoria SRAM de 64Kb.
- Memoria ROM con Bootloader y StellarisWare Software.
- 33 GPIOs.
- Timers de 32bits.
- ADC de 10bits.
- 2 Puertos UART con soporte IrDa.
- Puerto SSI (SPI).
- 2 Puertos I²C, velocidad estándar de 100Kbps y máxima de 400Kbps.
- Puerto CAN 2.0, velocidad superior a 1Mps.
- Puerto USB 2.0, velocidad entre 1.5Mbps y 12Mbps, host USB.

Viendo esto se sabe que no puede ser cualquier placa, debe estar diseñada de manera que sin muchas modificaciones se pueda aprovechar todo el potencial de este chip. Luego de unos días de trabajo nació "Coconut Board" (Diseñada por Palma).


La tarjeta tiene:

- Conector Jack-DC, para alimentacion externa.
- Conector Mini-USB (Modo Device).
- Conector USB-A (Modo Host).
- Reguladores de voltaje a 5V y 3.3V de 800mA cada uno.
- Jumper para selección de la fuente de alimentación.
- Pulsadores Reset, Wake y de usuario.
- Leds de encendido, hibernación y de usuario.
- Conector de voltajes.
- Conector JTAG.
- Conector para los GPIOs.
- Conector de puertos análogos.
- Conector para tarjeta MicroSD.

Esta semana el grupo envió el diseño a Seeed Studio, así que en unos 20 días las PCBs estarán llegando a mi casa. Luego del ensamble y las primeras pruebas liberaremos el esquema, un pequeño manual y un programa básico para probar el funcionamiento de la tarjeta.

Mas info:
Coconut Board (ARM Cortex-M3).

Si tienes alguna inquietud no dudes en comentar.

marzo 05, 2011

Hello World con la LPC1114 LPCXpresso Board


Luego de haber desempacado el LPCXpresso vamos a ver como la configuramos para hacerla andar y lograr el famoso "Hello World" que en este caso será encender un LED. Como primer paso debemos instalar el IDE para poder desarrollar nuestros programas, este se puede descargar desde la pagina de Code Red luego de ingresar algunos datos y registrarnos.


Cuando conectamos la placa se inicia un programa que esta precargado en el LPC1114, este programa enciende y apaga un LED durante determinado tiempo. Al mismo tiempo el sistema nos informa sobre un nuevo dispositivo detectado y tendremos que hacer la instalación de los drivers que se encuentran en la carpeta de instalacion del IDE. Luego abrimos el IDE e importamos uno de los proyectos de ejemplo.


En este caso abriremos el proyecto "blinky", que no es mas que un programa que hace parpadear un led, la idea de abrir este proyecto es con el fin de probar la placa; asi que modificaremos el trozo de codigo que genera el retardo en el estado del LED, luego cargaremos el programa nuevamente en el LPC1114, con la herramienta "Debug" podremos controlar la ejecucion del programa y veremos como se cargan los diversos registros del LPC1114, o simplemente podemos arrancar el programa y veremos como cambió la frecuencia de encendido del LED.


Se puede desarrollar un programa que modifique la frecuencia de encendido del LED basado en una lectura analogica con alguno de los canales del LPC1114, pero eso será mas adelante.

Si tienes alguna inquietud no dudes en comentar.

marzo 02, 2011

LPC1114 LPCXpresso Board


Hace un tiempo la gente de NXP realizó un concurso el cual consistía en mostrar de que manera nos podiamos deshacer de los microcontroladores de 8 y 16 bits para poder adquirir una placa de desarrollo de 32-bits, en este concurso muchas personas agregaron fotos y videos en los que pasaban por fuego, cortaban, trituraban o simplente tiraban al bote de la basura algunas placas de desarrollo como el Arduino, el MSP430 LaunchPad, entre otros. Yo me inscribi y envie una foto con algunas placas de mis proyectos (sin llegar a destruirlas), la foto fue aceptada y luego de esperar unos días, hoy ha llegado a mi casa la LPC1114 LPCXpresso Board, que es la mas básica de las tres placas de la linea LPCXpresso.


Las características de la LPC1114 LPCXpresso Board son las siguientes:

- Procesador : Microcontrolador NXP's Cortex-M0 LPC1114 en encapsulado LQFP48
- Flash: 32 kB
- SRAM: 8 kB
- Cristal:12.000 MHz
- Dimensiones: 35 x 140 mm
- Alimentación: Externa de 3.15V-3.3V, o desde el LPC-LINK
- Connectores: Todos los pines del LPC1114 están disponibles en un conector de expansión de 27 pines
- Otros:
Embedded JTAG (LPC-LINK) soportado por el LPCXpresso IDE
El LPC-LINK puede ser conectado a un procesador externo después de hacer algunas modificaciones a la placa
LED en PIO0_7

Y las características del microcontrolador LPC1114 son:

- Procesador: Núcleo ARM Cortex-M0 con velocidad superior a 50 MHz
- Flash: 32 kB
- SRAM: 8 kB
- Timers:
Dos Timers de 32 bits
Dos Timers de 16 bits
Un Watchdog timer
- PWM: 13 Usando los timers
- ADC: De 10 bits con muplexor de entradas
- Interfaz serial: 1xUART, 1xI2C, 2xSSP
- Otros:
Serial Wire Debug
PMU integrado para reducir el consumo de energía
Tres modos de reducción de consumo: Sleep, Deep-sleep, y Deep power-down
Code Read Protection (CRP) con diferentes niveles de seguridad

La programación se realiza en C++, con un IDE que se puede descargar de la pagina de LPCXpresso



Ahora solo queda instalar el IDE y comenzar a experimentar con esta gran herramienta, en la entrada Hello World con la LPC1114 LPCXpresso hablare sobre los pasos de instalación de software y hardware; y les presentare mi primer programa desde 32 bits.

Mas Info: NXP Semiconductors - Microcontrollers [LPCXpresso - LPC1114].

febrero 17, 2011

Concurso FREE LPCXpresso!


La empresa NXP esta realizando un concurso en el que invita a los aficionados a la electrónica a ganarse una placa de desarrollo LPCXpresso con el fin de dar a conocer sus microcontroladores basados en ARM Cortex-3 de 32 bits, el concurso pide que se muestre la forma en que el concursante de desharía de sus herramientas de desarrollo de 8 bits y 16 bits con el fin de iniciarse en el mundo de los 32 bits.


Esta es la pagina del concurso Video and Photo Gallery - Receive your free NXP LPCXpresso board.