본문 바로가기

[NXP]

(51)
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..
LPC1313 성능 테스트 LPC1313 성능 테스트 LPC1313은 Cortex-M3코어에 72Mhz로 동작한다. 가격은 1$ 정도로 저렴해서 가격이 민감한 어플리케이션에 좋을것 같다. LPC1114 의 GPIO 제어 속도와 비교해교 해면 좋을것 같다.결론적으로는 3Mhz -> 4.5Mhz 로 좋아진것 같다. GPIO On/Off만 했을때 16Mhz로 측정된다. 디폴트로 외부 12Mhz 클럭으로 설정되어 있기 때문에 PLL을 이용하여 72Mhz로 설정해 주었다.#define CLOCK_SETUP 1#define SYSCLK_SETUP 1#define SYSOSC_SETUP 1#define SYSOSCCTRL_Val 0x00000000#define WDTOSC_SETUP 0#define WDTOSCCTRL_Val 0x000000A..
LPC13xx IAR 개발 환경 설정 LPC13xx IAR 개발 환경 설정 기존 LPC1K EVM에서는 IAR5.4 버전을 이용하고 있었는데 LPC1313 IAR 6.x 버전을 이용해야 한다. 무엇보다 기존 IAR 5.4 버전 예제는 IAR 6.x대에서컴파일이 되지 않는 문제를 해결해기 위해 새롭게 테스트 해보았다. IAR 6.x 버전에서는 LPC1313 을 지원한다. 개발환경 설정은 상당히 간단하다. NXP사에서 제공하는 startup_LPC13xx.s, system_LPC13xx.c 파일을 추가 하고 필요에 따라 Drivers 폴더에 있는 파일을 Lib 파일을 추가 해 주면 된다. 헤더파일 패스 설정 IAR 6.x 버전을 사용하면 무엇보다 JTAG를 이용하여 디버깅 가능하다. LPC1313 을 IAR개발 환경으로 셋업 완료후 기존 LPC..
[LPC1313 EVM] 테스트 보드 제작 [LPC1313 EVM] 테스트 보드 제작 Cortex--m3 코어 72mhz로 구동되는 NXP사의 LPC13xx 시리즈를 테스트 해 보았다Cortex-m0 코어의 LPC1K 와 핀맵핑이 동일 하기 때문에 기존 PCB에서 테스트 가능하다.가격도 저렴하다. 테스트시에는 고성능의 LPC13XX 로 개발하고 양산시에 LPC11XX로 변경해도 좋을것 같다 Cortex-M3코어지만 페리스펙은 상당히 빈약하다. 저렴한 가격에 72Mhz 속도에 만족 해야 할것 같다. SM-Type EVM 형태의 표준 핀맵으로 제작해서 기존 확장보드에 연결하여 쉽게 테스트 가능하다. LPC1313 EVM 회로도기존 LPC1K 회로와 동일하며 JTAG(SDW) 커넥터가 추가되어 디버깅 쉽게 가능하도록 했다.
LPC812 EVM - 16bit ADC ADS8320 테스트 LPC812 EVM - 16bit ADC ADS8320 테스트 LPC800 시리즈에는 ADC가 없기 때문에 아쉬운 점이 있어 별도의 소형 16bit ADC (ADS8320) 칩을 실장 할 수 있도록 설계 했다. LPC812 ADS8320 드리아버 코드//-----------------------------------------------------------------------------//ADS8320 Driver#define AD8320_CS_INIT()GPIOSetDir( 0, 7, 1 );\AD8320_CS0_DEASSERT(); #define AD8320_CS0_ASSERT()cbi(PORT0, BIT7)#define AD8320_CS0_DEASSERT()sbi(PORT0, BIT7)#defi..
LPC812 EVM - SPI 테스트 (6축 자이로 가속도 센서 SD746) LPC812 EVM - SPI 테스트 (6축 자이로 가속도 센서 SD746) LPC812 확장보드에서 SPI타입의 자이로, 가속도 센서는 CS핀이 P0.3에 연결되어 있다. CS가 JTAG핀에 할당되어 있기 때문에 GPIO로 설정해 줘야 하는데 설정이후 JTAG으로 접근 불가능해서 불편한데, SW3을 누른 상태에서 리셋을 하면 시리얼 부트 모드로 진입하고 이 부트모드에서는 P0.3이 다시 JTAG모드로 되기 때문에 JTAG로 접근할 수 있다. LPC812 EVM 보드의 자이로 가속도 센서 드라이버 코드#define MY_SD746_SPI_MODE1 #define ACCEL_CS_BITBIT3#define ACCEL_CS_PORTPORT0 #define ACCEL_CS_INIT() GPIOSetDir( 0..
LPC812 EVM - SPI 테스트 LPC812 EVM - SPI 테스트LPC812는 2개의 SPI를 내장하고 있다. 저가격 소형 칩이라도 기능은 막강하다. 특히 SWITCH MATRIX 방식으로 SPI 핀맵을 원하는 형태로 할당 할 수 있기 때문에 상상히 유연성이 좋은것 같다.SPI의 최대 클럭 속도는 메인클럭인 30Mhz까지 출력 가능하다. LPC812 SPI 블록도 LPC812 EVM 에서 SPI 핀맵할당LPC812 EVM에서 SPI핀맵은 아래와같이 할당 했고 Switch Matrix Tool을 이용하여 코드 생성을 쉽게 할 수 있다. LPC812 SPI 초기화 함수void SPI0_Init(void){ /* Enable SWM clock */ LPC_SYSCON->SYSAHBCLKCTRL |= (1PINASSIGN4 = 0xffff..
LPC812 EVM - UART 테스트 LPC812 EVM - UART 테스트 LPC812 는 3채널의 UART가 있다. 20핀 소형 페키지 임에도 불구하고 3개의 UART가 있어 유용하게 사용될곳이 많을것 같다.그리고 스위치 메트릭스라는 기능을 이용하여 UART핀을 자유롭게 맵핑할 수 있는것도 상당히 마음에 든다. 아래 그림은 LPC812의 UART 블록도 이다. LPC812 UART 핀맵핑 #if 1 /* connect the UART0 TXD abd RXD sigals to port pins(P0.4-P0.0)*/regVal = LPC_SWM->PINASSIGN0 & ~( 0xFF PINASSIGN0 = regVal | ( 4 PINASSIGN0 & ~( 0xFF PINASSIGN0 = regVal | ( 0 PINASSIGN0 & ~(..