본문 바로가기

LPC1000

(15)
LPC1113 / LPC1114 UART 인터럽트 테스트 LPC1113 / LPC1114 UART 인터럽트 테스트 LPC1114 UART 인터럽트 초기화 함수void U0_SetInt(void){ NVIC_EnableIRQ(UART_IRQn); LPC_UART->IER = IER_RBR | IER_RLS;/* Enable UART interrupt */} LPC1114 인터럽트 핸들러 함수 1234567891011121314151617181920212223242526272829303132//-----------------------------------------------------------------------------#pragma diag_suppress=Pa082void UART_IRQHandler(void){ uint8_t IIRValue, LSR..
LPC1113 내부클럭 사용하기 LPC1113 내부클럭 사용하기LPC1K의 클럭은 외부 X-TAL 및 내부 RC OSC로 구동 가능하다. 정밀 클럭이 필요없는 시스템에서 저렴하게 보드 구성할때 사용하면 좋을것 같다. 내부 클럭으로 설정하고 UART통신 잘되는것을 확인했다. LPC1K 클럭 시스템 블록도SYSPLLCLKSEL 레지스터를 이용하여 내부클럭 외부 클럭을 설정할 수 있다. MAINCLKSEL 레지스터에서 PLL 설정 여부를 선택할수 있다. config.h 파일에서 클럭을 설정할수 있도록 수정했다.#define SEL_IRC 0 #define SEL_XTAL 1 #define SYSPLLCLKSEL_Val SEL_IRC system.c 파일도 수정이 좀 필요하다.void SystemInit(void){_SystemInit(); ..
[LPC1K-SM EVM] VS1033 을이용한 MP3 출력 테스트 [LPC1K-SM EVM] VS1033 을이용한 MP3 출력 테스트 VS1033 MP3 디코드모률을 이용하면 LPC1100과 같은 저가형 MCU에서 쉽게 MP3출력이 가능하다. [EXP-DSP EVM] 보드는 VS1033모듈을 쉽게 연결하여 테스트 할 수 있다. VS1033 모듈 핀맵 SPI를 위한 3개핀과 아래 제어핀 4개가 필요하다. LPC1111을 사용할 때는 아래 두 핀은 점퍼로 할당이 필요하다. DREQ -> P_A3(P1.11) MP3_CS -> P_A4(P0.10)
[LPC1K EVM] LPC1100 TFT LCD테스트 (LCD_IF_P Board) [LPC1K EVM] LPC1100 TFT LCD테스트 (LCD_IF_P Board) 소형에 저렴한 (현재 쇼핑몰에서 1000원대에 판매하고 있다. 링크) MCU에도 불구 하고 기능이 좋아 여러곳에 사용기 좋은것 같다. SD Card의 이미지 파일을 TFT LCD에 출력하는 테스트를 해 보았다. [LPC1113 EVM] TFT-LCD 테스트 동영상 보드 특성상 Data가 0~7의 순서로 되어 있지 않아 추가적인 비트 조작이 필요 하고 SPI클럭이 최대 12Mhz이기 때문에 속도는 조금 느려 보이는데 가격대비 성능비로는 아주 만족할만하다. LPC1100에서 일부 핀들은 디폴트가 JTAG으로 할당되어 있기 때문에 GPIO로 설정할 필요가 있다. LPC_IOCON->JTAG_TDO_PIO1_1 &= ~0x07..
[LPC1111 EVM] W5200 TCP/IP 테스트 [LPC1111 EVM] W5200 TCP/IP 테스트 하드웨어 TCP/IP W5200모듈을 NET-EXP보드에서 테스트 했다. LPC1100 Cortex-M0코어의 저렴한 LPC1113의 SPI최대 속도가 12Mhz이고 W5200 TCP전송 속도는 1.5Mbps정도 나온다. [1] iInChip Send: 1.5744 Mbps(3966014 bytes, 19.2184 sec) iInChip Recv: 1.5546 Mbps(3966014 bytes, 19.4632 sec) ------------------------------------------------------------ [2] iInChip Send: 1.5687 Mbps(3966014 bytes, 19.2887 sec) iInChip Recv..
[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입력에서 폴링일때 인터..
[LPC1K EVM] Capture 테스트 - PWM 펄스폭 측정하기 [LPC1K EVM] Capture 테스트 - PWM 펄스폭 측정하기 LPC1113의 타이머는 4개의 Capture 입력을 받을 수 각각 입력에 대한 이벤트를 받을 수 있다. 테스트는 TIMER32_B1의 PWM출력을 TIMER32_B0의 CAP0입력으로 연결하여 PWM의 펄스폭을 측정하도록 했다. Timer32B0 Capture 초기화 함수 void InitTimer32B0(uint32_t TimerInterval) { LPC_SYSCON->SYSAHBCLKCTRL |= (1PIO1_5 &= ~0x07; /* Timer0_32 I/O config */ LPC_IOCON->PIO1_5 |= 0x02; /* Timer0_32 CAP0 */ //Capture 0 on both edge, interrupt e..
[LPC1K EVM] LPC1114 타이머 테스트 - 1초 만들기 [LPC1K EVM] LPC1114 타이머 테스트 - 1초 만들기 CortexM0의 SysTick Timer 를 이용하여 1ms마다 인터럽트 발생하게 하여 1초간격으로 구동할 수 있다. SysTick Timer는 24bit down counter타이머로 아래와 같은 구조를 가지고 있다. 인터럽트 핸들러(SysTick_Handler) 정의 해 주고 SysTick_Config()함수로 주기를 설정하면 된다. 여기서는 메인 클럭이 48Mhz이므로 1ms로 설정하기 위해 4800/48000000 = 0.001, 1ms로 설정 할 수 있다. SysTick 타이머 초기화 SysTick_Config 함수는 core_cm0.h 에 정의되어 있다. static __INLINE uint32_t SysTick_Config(..