[NXP]/LPC1k (26) 썸네일형 리스트형 [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(.. [LPC1K EVM] SPI 테스트 - 가속도 센서 테스트 [LPC1K EVM] SPI 테스트 - 가속도 센서 테스트 LCP1K SPI 특징 - Maximum SPI speed of 25 Mbit/s (master) or 4.17 Mbit/s (slave) (in SSP mode) - Compatible with Motorola SPI, 4-wire Texas Instruments SSI, and National Semiconductor Microwire buses - Synchronous serial communication - Master or slave operation - 8-frame FIFOs for both transmit and receive - 4-bit to 16-bit frame SPI SLK핀은 P0.10, 2.11, P0.6포트에 리맵이 .. [LPC1K-SM EVM] LPC1113 ADC테스트 [LPC1K-SM EVM] LPC1113 ADC테스트 LPC1K는 10비트 ADC(Sample time 2.44 μs)가 있다. VR을 이용하여 ADC값을 그래프로 출력하는 테스트 예제를 작성해 보았다. LPC1113 ADC초기화 void AdcInit(unsigned int AD_Chan) { unsigned long reg; unsigned char CLKDIV; LPC_SYSCON->SYSAHBCLKCTRL |= (1CR |= (1 DR[port] >> 6)); } LPC1113 ADC테스트 예제 코드 int main() { unsigned int adc_value = 0; SystemInit(); U0_Init(BAUD_115200); DebugPrint("LPC1K ADC Test\r\n"); .. [LPC1K-SM EVM] 시리얼 포트 테스트 [LPC1K-SM EVM] 시리얼 포트 테스트 LPC1K UART의 특징으로 저렴한 MCU임에도 불구하고 16byte의 FIFO가 있어 UART통신에 있어 편리하고 고속으로 처리할 수 있다. 그리고 RS-485/EIA-485 9-bit모드를 지원하고 하드웨어 흐름제어도 지원한다고 한다. LPC1113 UART초기화 함수 //------------------------------------------------------------------------------ // Serial Prot0 Utility Fuction Routine void U0_Init(unsigned long baud) { NVIC_DisableIRQ(UART_IRQn); //UART 클럭 초기화 LPC_SYSCON->SYSAHBCL.. [LPC1K-SM EVM] LPC1113 실행속도 측정 테스트 [LPC1K-SM EVM] LPC1113 실행속도 측정 테스트 LPC1113은 저렴한 가격에 50Mhz로 동작가능 하다. 12Mhz 클럭을 PLL을 이용해 48Mhz로 설정하고 속도 측정을 해 보았다. LPC1111/12/13/14의 GPIO특징으로 AHB클럭을 페리 클럭으로 사용하기 때문에 GPIO속도가 빠르다고 한다. 간단히 GPIO 토글을 했을때 3Mhz가 출력되는것을 확인할 수 있다. #define Led1Toggle() (LED1_PORT ^= LED1_BIT) 15 while(1) 16 { 17 Led1Toggle(); \ ??main_1: \ 00000030 2168 LDR R1,[R4, #+0] \ 00000032 4140 EORS R1,R1,R0 \ 00000034 2160 STR R1,.. [LPC1K-SM EVM] 보드 제작 - 1$대 ARM Cortex-M0 LPC1113 [LPC1K-SM EVM] 보드 제작 - 1$대 ARM Cortex-M0 LPC1113 1$대 저렴한 ARM Cortex-M0코어 NXP사의 LPC1K (LPC1111, LPC1112, LPC1113) 호환 테스트 보드를 제작했다. 아무래도 소형에 저렴함을 자랑으로 하는 LCP1000시리즈는 간단한 프로젝트에는 적용하기 좋을것 같다. SM-Type으로 USB2UART, Bluetooth, Zigbee 모듈을 연결가능하다. LCP1K의 경우 시리얼 포트를 이용하여 플래시 라이트가 가능하기 때문에 특별한 개발장비 없이 프로그램을 다운로드 할 수 있다. 확장 테스트 보드 LCP1K 보드 회로도 LPC1113, LPC1100 개발환경 설정 - IAR을 이용한 무료 컴파일 환경 설정 LPC1113, LPC1100 개발환경 설정 - IAR을 이용한 무료 컴파일 환경 설정 IAR 5.4이상 부터 Cortex-M0를 지원한다. LPC1113은 24K Flash를 가지고 있으므로 IAR무료 버전(32k 제한)을 이용하면 무료 컴파일러를 사용할 수 있다. IAR홈페이지에서 무료버전을 다운 받아 설치하고 실해행하여 새로운 Workspace를 생성한다. 워크스페이스가 생성되면 새로운 프로젝트 만든다. General Options 에서 Core 옵션을 Cortex-M0로 선택한다. (아직 초기 버전이라 디바이스 리스트에는 없는것 같다.) 라이브러리를 "FULL" 선택한다. (꼭 필요한것은 아니지만 printf나 C기본 함수를 사용하려면 필요하다.) C/C++ Compiler 옵션에서 옵티마이즈를 .. LCP1100 ISP프로그램 LCP1100 ISP프로그램 LCP11xx 는 부트플래시가 내장되어 있어 시리얼 포트로 프로그램을 다운로드 할수 있다. JTAG없이 간단히 프로그램 다운로드 해서 테스트 하기에 좋다. NXP에서 제공하는 FlashMagic(http://www.flashmagictool.com/)을 이용하면 쉽게 다운로드 가능하다. 리셋시 P0_1 포트가 0이면 ISP모드 진입한다고 한다.(A LOW level on this pin during reset starts the ISP command handler.) [LPC1K EVM] 보드에서는 SW3을 누른체 리셋 하거나 J4(2-3)으로 부트모드로 설정할 수 있다. 이전 1 2 3 4 다음