Entradas

Mostrando las entradas con la etiqueta ARM

Instalar GNU ARM Embedded Toolchain y usarla en PSoC Creator

Imagen
PSoC Creator viene con una toolchain por defecto, en la versión 4.0 de PSoC Creator la version del GNU ARM Embedded Toolchain es 4.9. En caso de que necesitemos usar una versión más reciente debemos de instalarla y señalarle a PSoC Creator el path de instalación. Los siguientes pasos los realice en Windows 10 (recordar que Creator solo funciona en Windows 😐 ). 1. Bajamos la versión del GNU ARM Embedded Toolchain que necesitamos de la siguiente página: GNU ARM Embedded Toolchain . (es bueno leer los cambios que tiene esta versión con respecto a versiones anteriores). 2. Lo instalamos como cualquier programa en windows. En mi caso NO lo agregue a las variables de entorno. 3. Abrimos PSoC Creator, vamos al menú Tools , elegimos la opción Options . Abrirá la siguiente ventana: Expandimos la opción Project Management y damos clic en ARM Toolchains, podemos ver la opción por defecto y en la caja de ARM GCC Generic damos clic en los tres puntos, debemos elegir el path de insta...

Proyectos con FreeRTOS y STM32F4Discovery

Snippets de proyectos con FreeRTOS y la STM32F4Discovery. Todos los proyectos se van a realizar utilizando OpenSTM32 como IDE y la versión de FreeRTOS que tiene integrada (8.2). ☺ En este proyecto se usa el parametro pvParameter para indicarle a la tarea que LED togglear. Solo se tiene una tarea, y dos instancias de ella, diferenciándose por el pvParameter a la hora de crear las dos instancias. Aquí el código fuente (después lo organizare y subiré a github): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 #include <stdint.h> #include <stddef.h> #include "stm32f4xx.h" #include "FreeRTOS.h" #include "task.h" static void GPIOinit ( void ); static void vTaskToggleLED ( void * pvParameters); static const uint8_t toogleGreenLED = ...

PSoC 4S - CapSense ADC

Imagen
Los PSoC 4S no cuentan con un ADC per se, pero los ingenieros encontrarón una forma de utilizar los componentes que forman el bloque de CapSense como ADC, aunque es un tanto limitado, resolución de 8 o 10 bits, y corre hasta los ~11.6 ksps (kilo samples per second / miles de muestras por segundo) maximo. El primer problema que encontré es que para que funcione el CapSense ADC se tiene que añadir por lo menos un widget de CapSense (boton, slider, etc., acá perdemos un pin). Al principio trataba de usar este periférico sin crear widgets pero el programa se detenía al llamar la función _Start(), y este error se soluciona creando el widget. Otro problema que encontré es que en la versión 3.3 de PSoC Creator no esta incluida la documentación de las funciones del bloque ADC en el Datasheet del CapSense_ADC, hay que bajarlas de este link. Si como yo estas trabajando en PSoC Creator 4 este error ya fue corregido. El proyecto ejemplo será sencillo, el CapSense_ADC y una UART para imp...

Actualizar PPA de arm-none-eabi-* en Ubuntu

Me di cuenta que el PPA de arm-none-eabi mantenido por Terry Guo no se actualizaba, siempre se quedó en la versión 4.9, en el AUR de Arch ya andaban por el 6, y en Ubuntu algunas personas tenían del 5.4. Investigando solo un poco encontré esta página: GNU ARM Embedded Toolchain , que es donde ahora se mantiene el PPA. Ahora el PPA que hay que instalar (si quieres dejar el 4.9 y pasar a > 5) es: team- gcc-arm- embedded/ ppa. Los pasos para actualizar están descritos en el siguiente post:  New PPA repository . Los dejo aqui debajo por si no quieren abrir otra pestaña para verlos: Paso 1: En la terminal de Ubuntu:               "sudo add-apt-repository ppa:team- gcc-arm- embedded/ ppa"               para agregar el nuevo PPA Paso 2: Después ejecutamos el siguiente comando "sudo add-apt-repository -r ppa:terry. guo/gcc- arm-embedded" ...

PSoC 4M DMA Periferico a Periferico Ej. 1

Imagen
Recien me llego una tarjeta de desarrollo de Cypress, la  CY8CKIT-043 que trae un PSoC 4200M. Lo primero que hice fue actualizar la versión de KitProg que trae de fabrica, esto se hace con el PSoC Programmer. Despues cree un proyecto nuevo, elegi el dispositivo que trae la placa, que es el CY8C4247ZI-M485. Este proyecto lee una entrada analogica con el ADC , y manda el resultado al compare value de un bloque PWM , ya lo habia  hecho con un PSoC 5LP, pero el componente DMA es muy diferente entre estas dos familias. Primero implemento el esquematico: Esquematico El ADC esta configurado con resolución de 8bits, sampleo continuo, rango Vss - Vdda (0 - 5V), el sample rate lo deje en 1000 que es lo más bajo que acepta el componente, terminal single y no differential, la configuración completa se puede ver en la siguiente imagen. Configuración 1 del ADC El ADC es de 12bits de resolución, pero se puede cambiar a 8bits o 10bits (indicado en la opción Alternate res...

PoC - Controlar un AMux con la señal EoS del SAR ADC PSoC5LP

Imagen
El proposito de este proyecto es controlar las entradas del AMuxHw empleando solamente señales generadas por el hardware interno del PSoC5LP. En este caso lo hice usando una señal que veo poco en los foros de Cypress, es el EoS (End of Sample), cuando esta señal presenta un flanco de subida nos indica que el canal del ADC fue sampleado, pero ¿Por que no usar la señal EoC (End of Convertion)?, como su nombre lo indica, el EoC presenta un flanco de subida cuando la conversion fue terminada, es decir el valor analogo presente en el pin del ADC fue convertido a su valor binario equivalente. Entonces ¿Por que usar el EoS?, como ya vimos la señal EoS presenta un flanco de subida cuando termino el sampleo del canal del ADC, es decir, la diferencia entre la señal EoC y EoS es el tiempo que tarda el ADC en la conversión de analogo a binario, con esto en mente, podemos cambiar la entrada del AMuxHw tenemos la señal EoS, esta entra a trabajar funcionando como clock para un BasicCounter q...

nRF51 Blink | mbed | OpenOCD | ST-Link

Imagen
Otra forma de programar el modulo nRF51 es usando la plataforma de prototipado mbed. Podemos registrar una plataforma de Nordic, ya sea la nRF51822 mKIT o el nRF51 DK, incluso el Dongle, en lo particular no he usado mucho mbed pero para hacer pruebas rapidas viene bien. nRF51822 mKIT Como vemos este tiene dos LEDs: LED1 en P0.18 y LED2 en P0.19, además tiene dos botones de usuario, BTN1 en P0.16 y BTN2 en P0.17. Tambien cuenta con perifericos ya mapeados en pines, como el SPI, I2C, entradas analogicas en P0.1 hasta P0.6. nRF51-DK Este DK tiene cuatro LEDs, LED1 en P0.21, LED2 en P0.22, LED3 en P0.23 y LED4 en P0.24, este ultimo comparte pin con el Slave Select del SPI0, cuenta con cuatro botones, BTN1 en P0.17, BTN2 en P0.18, BTN3 en P0.19 y BTN4 en P0.20, tambien tiene las mismas entradas analogicas de P0.1 hasta P0.06. nRF51 Dongle Este tiene solo un LED RGB, el LED rojo en P0.21, LED verde en P0.22 y LED azul en P0.23 y seis I/O disponibles en uno de los costado...

Blink nRF51 | Keil | St Link

Imagen
Siguiendo la tradición hice que un LED haga el famoso blink. La primer prueba la hice con Keil 5, ya que tiene muchos ejemplos para el nRF51422 que viene en el DK oficial, lo único que tiene diferente al nRF51822 es que el primero soporta el protocolo ANT+. Abrimos Keil y presionamos sobre  el Pack Installer: Y nos aparecerá la siguiente ventana: En la parte izquierda abrimos la pestaña de All Devices -> Nordic Semiconductor -> nRF51 Series -> nRF51822_xxAA , esta es la versión del micro que tengo. El código completo del chip es: nRF51822 QFAAH0 1517DE que con ayuda de esta tabla sabemos que revisión es el chip: En mi caso es un nRF51822, empaquetado QFN48 6mm x 6mm, 256 kB de Flash y 16 kB de RAM, y fue fabricado la semana 17 del año 2015. Del lado derecho baje todos los drivers para tenerlos a la mano, y en la pestaña de examples escogí el blink blank PCA10028, esto quiere decir que el ejemplo no depende de un SoftDevice (blank) y qu...

nRF51

Imagen
Esta semana llegaron dos modulos del nRF51822 que compré en Ebay . Tardarón exactamente un mes en llegar a México. Hasta el dia de hoy pude checarlos, no tenian ningún cortocircuito, ni fallas en la soldadura :). Por casualidad encontré el que parece ser la Wiki del fabricante de este Core51822 , solo me sirvió para descargar el pdf del esquematico.   No esperaba mucho, solo confirmar que tiene los dos XTALs necesarios. Los unicos pines que no estan mapeados son los P0.26 y P0.27. porque es donde esta conectado el XTAL de 37.768 kHz. Como pueden ver en las etiquetas NC del lado izquierdo de la board es donde deberian estar los pines P0.26 y P0.27 (esto lo digo porque en la parte trasera de la placa estan marcados todos los pines en el silkscreen y ahi están anotados). Para grabar el nRF51 voy a utilizar el ST Link que viene incorporado en una STM32F4 Discovery, aquí las conexiones: !!!Importante recordar que el nRF51822 solo soporta hasta 3.3 V...

PSoC 5LP y nRF24L01+

Despues de muchos errores de programación pude comunicar dos de estos modulos (al parecer xD) Code sooooon...

The first ARM processor in the world with Sophie Wilson

Imagen