[NXP]/LPC1k2011. 8. 14. 23:57

[LPC1K EVM] Captuer 이용 IR 리모콘 테스트

[LPC1K EVM] Captuer 이용 IR 리모콘 테스트



Capture를 이용하면 펄스폭을 쉽게 측정할 수 있고 IR 리모콘 코드 분석이 가능하다. CAP32B0 입력핀인 PIO1_5에 IR 출력핀을 연결하였다.



IR포멧은 가장 많이 사용되는 NEC포멧으로 처리 할수 있도록 했다.
전체 구조는 108ms동안 시작을 알리는 리드신호와 데이터 신호를 전송한다.




좀더 자세히 보면 13ms의 리드 코드(이 길이는 제조사 마다 조금씩 차이가 있으므로 가변할 수 있도록 하면 된다.)가 시작 신호를 나타낸다. 그 뒤로 32비트의 코드가 출력된다.



데이터 비트는 펄스폭이 1.125ms이면 '0'을 2.25ms이면 '1'을 나타낸다.




실제 IR모듈의 출력은 반전된 데이터를 출력하므로 Captur입력에서 폴링일때 인터럽트가 걸리도록 해서 인식하면 된다.
void InitTimer32B0(uint32_t TimerInterval)
{
    LPC_SYSCON->SYSAHBCLKCTRL |= (1<<9);

    LPC_TMR32B0->MR0 = TimerInterval;

    LPC_IOCON->PIO1_5 &= ~0x07; /*  Timer0_32 I/O config */
    LPC_IOCON->PIO1_5 |= 0x02; /* Timer0_32 CAP0 */
    
   // Capture 0 폴링모드 인터럽트 설정
   LPC_TMR32B0->CCR = (0x1<<1)|(0x1<<2);
   
    LPC_TMR32B0->MCR = 0;   /* Interrupt and Reset on MR0 */   
    /* Enable the TIMER0 Interrupt */
    NVIC_EnableIRQ(TIMER_32_0_IRQn);
   
    //타이머 Enalbe
    LPC_TMR32B0->TCR = 1;  




모콘 테스트 동영상
리모콘 데이터가 수신되면 코드를 인식해서 LCD에 출력하는 예제




LPC1113 Capture - IR 리모콘 테스트 코드
#include "system.h"
#include "serial.h"
#include "ir_decoder.h"

extern volatile uint8_t  gIrCode, gIrCmd, gIrRead;
//-----------------------------------------------------------------------------
//Capture interrupt handler
void CT32B0_IRQHandler(void)
{
  if ( LPC_TMR32B0->IR & (0x1<<4) )
  { 
 LPC_TMR32B0->IR = 0x1<<4;
   
    //capture값을 읽어와 펄스폭 계산  
    gNewCap = LPC_TMR32B0->CR0;
    gPulseWidth = gNewCap - gOldCap;
   
    gOldCap = gNewCap; 
   
 //IR 코드 처리
 IrDecoder(gPulseWidth);
  } 
}
//-----------------------------------------------------------------------------


int main()
{
    int i = 0;
    unsigned char buf[20];
    SystemInit();

    Led1Init();
    Led1Off();
   
    Led2Init();
    Led2Off();

    U0_Init(BAUD_115200);
    LCD_Display("LPC1K IR Test\r\n");
   
    //Capture 설정   
    InitTimer32B0(SystemAHBFrequency/10000 - 1);
   
    while(1)
    {
       if(gIrRead ==1)
      {
         Led1Toggle();
            
         sprintf(buf, "A:%02X C:%02X\n", gIrCode, gIrCmd);
         LCD_Display(buf);
         gIrRead = 0;
      }       
    }
    return 0;
}



Posted by nexp

댓글을 달아 주세요

[MODULE]/Remocon2005. 9. 21. 01:29

리모콘 송/수신 IR 모듈 제작

리모콘 송/수신  IR 모듈 제작

사용자 삽입 이미지


로봇 컨트롤러에 연결되는 적외선 IR 송수신 모듈을 제작 했다.
간단한 데이터 전송 용도로 만들었고 실제 2400bps 정도로 잘 동작한다.
Posted by nexp
TAG 리모콘

댓글을 달아 주세요

  1. 비밀댓글입니다

    2009.04.22 00:36 [ ADDR : EDIT/ DEL : REPLY ]

[MODULE]/Remocon2004. 1. 21. 12:55

AVR + IR 송수신 모듈 제작

AVR + IR 송수신 모듈 제작




AVR ATtiny26 과 리모콘 수신 모듈, 적외선 송신 까지 가능한 테스트 모듈(AtTiny26 EVM)을 제작했다.
기본적으로 모든 포트가 빠져 있고 보드에는 리모콘 IR송수신 가능하다.







Posted by nexp
TAG 리모콘

댓글을 달아 주세요

[MODULE]/Remocon2003. 2. 19. 22:34

리모콘 송신 모듈 제작

리모콘 송신 모듈 제작

공기청정기 프로젝트에 적용할 리모콘을 프로토타입 형태로 만들었다.
모든 키값 테스트 할 수 있도록 크게 만들었고, 추후 다른 용도로 쓸 수 있을것 같아 모든 기능을 다 포함했다.







리모콘 프로토 보드제작



리모콘 밧데리 케이스

Posted by nexp
TAG 리모콘

댓글을 달아 주세요