Skip to content

Firmware v2 r0.2.0

Latest
Compare
Choose a tag to compare
@epernia epernia released this 13 Feb 22:12
· 27 commits to master since this release

Se agregaron nuevos ejemplos y se actualizaron los proyectos anteriores.

Están todos funcionando, probados sobre la EDU-CIAA-NXP funcionando correctamente, la mayoría comprobados por varias personas con sus respectivas placas EDU-CIAA-NXP, placas de periféricos y PCs independientes.

Actualmente contamos con los siguientes, todos probados con la EDU-CIAA-NXP:

Ejemplos Bare-metal con biblioteca sAPI

  • GPIO:
    • gpio_01_switches_leds: teclas y leds de la EDU-CIAA-NXP.
    • gpio_02_blinky: led destellando de la EDU-CIAA-NXP.
    • gpio_03_blinky_switch: ejemplo de destello de led y manejo de tecla con destello utilizando delay no bloqueante.
    • gpio_04_led_sequences: ejemplo de secuencias de leds.
    • keypad_7segment_01: Manejo de teclado matricial y display 7 segmentos.
    • lcd_01: Manejo de display LCD.
  • UART:
    • uart_01_echo: Eco de por UART, la EDU-CIAA-NXP responde lo que le transmito desde la PC.
    • uart_02_receive_string_blocking: Espera a recibir cierta cadena patrón por UART o sale por timeout (funciona de manera bloqueante).
    • uart_03_receive_string: Espera a recibir cierta cadena patrón por UART o sale por timeout (funciona de manera no bloqueante mediante una FSM).
  • Printf
    • stdio_01_printf_sprintf: Ejemplo de uso de printf() y similares de la biblioteca de C estándar.
  • ADC, DAC:
    • adc_dac_01: Utilización de los periféricos ADC y DAC de la EDU-CIAA-NXP.
  • TIMER, RTC:
    • cycles_counter_01: Funciones de conteo de ciclos de reloj, funciona únicamente en modo debug y permite tener trazabilidad de tiempos de ejecución.
    • tick_01_tickHook: Función de tick periódico y como ejecutar periódicamente una función callback desde dicha interrupción.
    • rtc_01: Periférico RTC para reloj de fecha/hora.
    • pwm_01: Ejemplo de PWM aplicado a los LEDs de la EDU-CIAA-NXP.
    • pwm_02_rgb_controller_uart: Control de LED RGB para formar cualquier color.
    • servo_01: Ejemplo de Servomotor conectado a la EDU-CIAA-NXP.
  • Periféricos externos:
    • Magnetómetros I2C. Puede venir cualquiera de ellos en el módulo GY-273, son compatibles en cuanto a disposición y tamaño de pines pero con diferente mapa de registros. Para diferenciarlos revise el chip con una lupa:
      • i2c_01_hmc5883l: Ejemplo de magnetómetro HMC5883L.
      • i2c_02_qmc5883l: Ejemplo de magnetómetro QMC5883L.
    • dht11_01: Sensor de humedad y temperatura.
    • ultrasonicSensor_HCSR04_01: Sensor ultrasónico de distancia HC-SR04.
    • spi_01_sdCard_fatFileSystem: Ejemplo de logueo de valores del ADC en tarjeta SD (conectada a la EDU-CIAA-NXP por SPI) utilizando un sistema de archivos FAT (ChanFS).
    • Módulo WiFi ESP01 (ESP8266):
      • 01_uart_bridge: Conexión directa con módulo ESP01 para enviar comandos AT al mismo.
      • 02_http_server: Servidor embebido en la EDU-CIAA-NXP para ver datos de la misma.
      • 03_thingspeak: Envío de datos a un dashboard en thingspeak para visualización de datos por internet.

Ejemplos con sistemas operativos y biblioteca sAPI

  • S.O. Cooperativos (de M.J. Pont, ver )
    • scheduler_01_seos: Introducción al sistema operativo cooperativo.
    • scheduler_02_seos_background_foreground: Sistema operativo cooperativo, variante foreground-background.
    • seos_Pont2014_01: Sistema operativo cooperativo completo de M.J. Pont.
    • seos_pont_02_microwave: Sistema operativo cooperativo completo de M.J. Pont, ejemplo de microondas.
  • FreeOSEK
    • freeOSEK_01_blinky: Ejemplo de Led destellando con freeOSEK.
  • FreeRTOS
    • freeRTOS_01_blinky: Ejemplo deLed destellando con freeRTOS.
    • freeRTOS_02_Queue: Ejemplo de utilización de colas en freeRTOS.
    • freeRTOS_03_ChanFatFS_SPI_SdCard_ADC_log: Ejemplo de logueo de valores del ADC en tarjeta SD (conectada a la EDU-CIAA-NXP por SPI) utilizando un sistema de archivos FAT (ChanFS) y freeRTOS.
    • freeRTOS_book: Ejemplos del libro de Richard Barry con FreeRTOS y sAPI. Estos son:
      • EXAMPLE001: Creating tasks
      • EXAMPLE002: Using the task parameter
      • EXAMPLE003: Experimenting with priorities
      • EXAMPLE004: Using the Blocked state to create delay
      • EXAMPLE005: Converting the example tasks to use vTaskDelayUntil()
      • EXAMPLE006: Combining blocking and non-blocking tasks
      • EXAMPLE007: Defining an idle task hook function
      • EXAMPLE008: Changing task priorities
      • EXAMPLE009: Deleting tasks
      • EXAMPLE010: Blocking when receiving from a queue
      • EXAMPLE011: Blocking when sending to a queue or sending structures on a queue
      • EXAMPLE012: Using a queue set
      • EXAMPLE013: Creating one-shot and auto-reload timers
      • EXAMPLE014: Using the callback function parameter and the software timer ID
      • EXAMPLE015: Resetting a software timer
      • EXAMPLE016: Using a binary semaphore to synchronize a task with an interrupt
      • EXAMPLE017: Using a counting semaphore to synchronize a task with an interrupt
      • EXAMPLE018: Centralized deferred interrupt processing
      • EXAMPLE019: Sending and receiving on a queue from within an interrupt
      • EXAMPLE020: Re-writing vPrintString() to use a semaphore
      • EXAMPLE021: Re-writing vPrintString() to use a gatekeeper task
      • EXAMPLE022: Experimenting with event groups
      • EXAMPLE023: Synchronizing tasks
      • EXAMPLE024: Using a task notification in place of a semaphore, method 1
      • EXAMPLE025: Using a task notification in place of a semaphore, method 2

Ejemplos sin biblioteca sAPI

  • LPC4337:
    • adc_fir_dac
    • asm
    • blinky
    • blinky_ram
    • blinky_rit
    • boot: LPCBootloader example
    • mpu
    • start_m0
    • trilat
    • i2c
    • pwm
    • sd_spi
    • usb_cdc
    • usb_msc_host
    • usb_rom_cdc
    • statechart
    • tcpecho
  • LPC4337 RTOS:
    • freertos_blinky
    • blinky_osek
    • multicore

Esta release contiene colaboraciones de:

  • Eric Pernia.
  • Martin Ribelotta.
  • Juan Manuel Cruz.
  • Pablo Ridolfi.
  • Agustin Bassi.
  • Pablo Gómez.
  • Alejandro Permingeat.
  • Danilo Zecchin.
  • Sebastian Bedin.
  • Rodrigo Furlani.
  • Marcelo Vieytes.