Skip to content

Señal de control Remoto modelo LG - LPC1114 -MCUXpresso IDE

Notifications You must be signed in to change notification settings

AngieSiles/TesteoIR-CortexM0-LG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Placa de Control Cortex M0 para Aire Acondicionado LG

Este proyecto documenta el desarrollo de una placa de control basada en el microcontrolador ARM Cortex M0, diseñada para interactuar con el protocolo de comunicación por infrarrojos (IR) de un modelo específico de aire acondicionado LG. Su propósito principal es controlar las señales para el testeo automatizado de la unidad (JIG de testeo).


Programación del Microcontrolador

Para cargar el firmware en el Cortex M0, se utiliza el programador de depuración Black Magic Probe (BMP).

Configuración del Programador

Se utilizó una implementación del Black Magic Probe basada en un módulo ESP8266 para crear una sonda GDB Wi-Fi.

Componente Modelo
Placa Base ESP8266
Visualización Módulo LCD Deek-Robot

Los archivos binarios (.bin) del firmware a programar se encuentran en la carpeta del repositorio.

Comandos de consola 
cd C:\nxp\MCUXpressoIDE_25.6.136\ide\tools\bin
.\arm-none-eabi-gdb.exe "C:\Users\Admin\Documents\MCUXpressoIDE_25.6.136\prueba\proyectoNS\Debug\proyectoNS.axf"
(gdb)  target extended-remote 192.168.4.1:2022
Remote debugging using 192.168.4.1:2022
(gdb) monitor swdp_scan
Target voltage: 2989mV
Available Targets:
No. Att Driver
 1      LPC11xx M0
(gdb) attach 1
(gdb) load
Loading section .text, size 0x398 lma 0x0
Start address 0x0000014c, load size 920
Transfer rate: 3 KB/sec, 920 bytes/write.
(gdb)kill
(gdb)quit

Conexiones de Programación (SWD)

La conexión entre el ESP8266 (Programador) y la placa Cortex M0 (Target) se realiza mediante la interfaz Serial Wire Debug (SWD), utilizando los siguientes pines:

ESP8266 Señal SWD Cortex M0 (Target) salida
GND VSS pinOut 3-5
D3 SWDIO PinOut 4
TSDA SWCLK PinOut 2
3V3 VDD PinOut 1

Recursos y Referencias


Análisis del Protocolo IR de LG

El protocolo de comunicación IR de LG requiere una señal modulada de $38 \text{kHz} \pm 1 \text{kHz}$. El paquete de datos sigue una estructura general: Tiempo de Ráfaga ON + Tiempo de Ráfaga OFF + Bits de Datos (ON/OFF). El protocolo de este modelo de control LG maneja aproximadamente 29 bits de datos.

Tiempos Característicos de la Señal

Mediante el análisis de las señales con un osciloscopio, se obtuvieron los tiempos críticos para la codificación:

1. Ráfaga de Inicio (Header)

De estas imágenes se obtiene que el tiempo inicial del paquete de ráfaga es de $3.2 \text{ms}$ ON y $9.8 \text{ms}$ OFF.

Fase Tiempo Medido
Ráfaga ON $3.2 \text{ms}$
Ráfaga OFF $9.8 \text{ms}$
Captura de osciloscopio para el tiempo de ráfaga ON (3.2ms) Captura de osciloscopio para el tiempo de ráfaga OFF (9.8ms)

Capturas del tiempo de Ráfaga ON y OFF.

2. Codificación de Bits de Datos

De estas imágenes se obtiene que:

  • El valor binario 1 es $500 \mu\text{s}$ ON y $1.55 \text{ms}$ OFF.
  • El valor binario 0 es $500 \mu\text{s}$ ON y $500 \mu\text{s}$ OFF.
Bit Ráfaga ON (Carrier 38kHz) Ráfaga OFF
1 (Valor Binario Alto) $500 \mu\text{s}$ $1.55 \text{ms}$
0 (Valor Binario Bajo) $500 \mu\text{s}$ $500 \mu\text{s}$
Captura de osciloscopio para el tiempo de dato (500us ON y 1.55ms OFF para el 1) Captura de osciloscopio para el tiempo de dato (500us ON y 500us OFF para el 0)

Capturas del tiempo de dato para la codificación binaria.

---

Firmware y Lógica de Control

Este proyecto fue diseñado para controlar el testeo de aire acondicionado. La lógica se basa en la selección de entradas (IN1-2-3-4) por un PLC, que dispara un flanco para activar la operación deseada (calor, frío máx/mín).

Configuración del Temporizador y Salida

La Board está configurada con un clocking de $12,000,000 \text{UL}$ (12 MHz). Se debe controlar el Timer para generar pulsos personalizados con una frecuencia portadora de $38 \text{kHz}$. Cuando se detecta la entrada ON del PLC, la salida Led1 (LED IR) debe disparar la secuencia de ráfagas correspondiente.

Códigos de Control IR Analizados

Estas son las secuencias de 29 bits que el Cortex M0 debe transmitir. Todas las secuencias deben ser precedidas por la Ráfaga ON-OFF ($3.2 \text{ms}$ ON / $9.8 \text{ms}$ OFF).

Función de Testeo (Disparo por PLC) Secuencia de Bits de Datos (29 bits)
Apagado $10001000110000000000010100010$
30°C Calor $10001000000011001111101001010$
18°C Frío con FAN Máx $100010000000100000110100111110$
18°C Frío con FAN Mín $10001000000010000011000010110$
Encendido $10001000000000000011000000110$
// Leer entradas
    	     uint32_t curr_pio3_5 = (LPC_GPIO3->DATA >> 5) & 0x1;
    	     uint32_t curr_pio0_6 = (LPC_GPIO0->DATA >> 6) & 0x1;
    	     uint32_t curr_pio0_7 = (LPC_GPIO0->DATA >> 7) & 0x1;
    	     uint32_t curr_pio2_9 = (LPC_GPIO2->DATA >> 9) & 0x1;
    	     if (prev_pio3_5 == 0 && curr_pio3_5 == 1) {
    	    	 LPC_GPIO1->MASKED_ACCESS[1 << 1] = 1 << 1;
    	    	 delay_ms(100);
    	    	 LPC_GPIO1->MASKED_ACCESS[1 << 1] = 0;      
    	    	 delay_ms(100);
    	    	 portadora();
    	    	 transmit("10001000110000000000010100010");
    	    	 delay_ms(100);
    	      }
    	     if (prev_pio0_6 == 0 && curr_pio0_6 == 1) {
    	    	LPC_GPIO1->MASKED_ACCESS[1 << 1] = 1 << 1; 
    	    	delay_ms(100);
    	    	LPC_GPIO1->MASKED_ACCESS[1 << 1] = 0;      
    	    	delay_ms(100);
    	    	portadora();
    	    	transmit("10001000000011001111101001010");
    	    	delay_ms(100);
    	     }
    	     if (prev_pio0_7 == 0 && curr_pio0_7 == 1) {
    	    	 LPC_GPIO1->MASKED_ACCESS[1 << 1] = 1 << 1; 
    	    	 delay_ms(100);
    	    	 LPC_GPIO1->MASKED_ACCESS[1 << 1] = 0;      
    	    	 delay_ms(100);
    	    	 portadora();
    	    	 transmit("10001000000010000011000010110");
    	    	 delay_ms(100);
    	     }
    	     if (prev_pio2_9 == 0 && curr_pio2_9 == 1) {
    	    	 LPC_GPIO1->MASKED_ACCESS[1 << 1] = 1 << 1; 
    	    	 delay_ms(100);
    	    	 LPC_GPIO1->MASKED_ACCESS[1 << 1] = 0;      
    	    	 delay_ms(100);
    	    	 portadora();
    	    	 transmit("100010000000100000110100111110");
    	    	 delay_ms(100);
    	     }

About

Señal de control Remoto modelo LG - LPC1114 -MCUXpresso IDE

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors