제경우 AVR시리즈는 써봤는데 ARM은 처음입니다.
이제부터 ARM의 8,16bit MCU 대체품으로 설계된 32bit Cortex-M0코어가 적용된 NXP사의 LPC1114 공부를 시작하려합니다.

LPCXpresso 라고 불리는 본 개발플래폼은  3개의 회사(NXP, Embedded ARtist, CodeRed)가 파트너가되어 만들었는데요,
무슨, 삼총사인가요?  아마도 유럽 쪽 회사들끼리 뭉친것 같습니다.

정리하면,  NXP사에서 칩을,
Embedded Artist사는 테스트 보드를,
CodeRed사는 개발 IDE를 맡았습니다.

몇가지 정리해 보면,

1. LPCXpresso EVB(Evaluation Board)
약 4만원짜리(해외에선 '$30이하'라고 광고하더군요) 평가보드를 구입하면,  JTAG/SWD 인터페이스 디버깅 장비( LPC3154 칩 내장)와  테스트용 MUC만 달랑 달린 테스트 보드 일체형의 보드가 생깁니다. 정말 좋은건, 필요시 반을 뚜욱~ 잘라서 디버깅 전용장비로 사용할 수 있다는 점과, MCU보드측에는 외부 확장 보드 없이도 약간의 프로토타입 회로를 추가할 수 있는 부분을 제공하는 여백의 미까지 갖쳤다는 것입니다.

JTAG 디버거(LPC Link라고 불림)는 현재 아래와 같은 칩들을 지원합니다.
LPC11xx: All products supported
LPC13xx: All products supported
LPC17xx: LPC1751 LPC1752 LPC1754 LPC17561 LPC17581 LPC1764 LPC17651 LPC17661 LPC17671 LPC17681
LPC2xxx: LPC2109 LPC2134 LPC2142 LPC2362 LPC2929
LPC3xxx: LPC3130 LPC3250


사진1. JTAG 디버거 및 평가보드 일체형 개발보드


그림1. 테스트보드 여러 이용법


개발을 하려면 칩(개발보드)과 더불어 개발환경(컴파일러 , IDE 등)이 필요한데요, 위의 삼총사님들이 다 준비해 놨습니다.  128KB이내의 작은 코드만 필요하신경우 무료로 모든 기능의 사용이 가능한 개발환경이 그냥 생깁니다.
(참고로, 조금 큰 용량이 필요하신분들도 256KB까지는 256$, 512KB까지는 512$만 투자하면 된답니다.)


1. LPCXpresso IDE 개발환경 설치

CodeRed 사의 LPCXPresso 개발환경을 설치합니다.
이때 USB드라이버 및 디버깅 보드 드라이버 등등도 함께 설치됩니다.
CodeRed사에 등록하고  128KB내에서 자유로운 사용이 가능한 라이센스를 받았습니다.
조금 번거롭지만, 용량제한말고는 제약이 없고, JTAG 디버깅 기능까지 지원하므로 기분좋습니다.

2. NXP 포럼가입
AVR과 달리 카페나 국내 기술자료가 거의 없는것 같습니다.
다른 회사 제품들은 M3급 이상의 제품이 많이 나와서 카페도 있고 왕성한 커뮤니티가 이뤄지고 있는데요
NXP제품은 전무;;; 하네요..  좋은 사이트 있으면 알려주시길
따라서, 방법은 한가지뿐이네요  NXP사 포럼에 가입하여 안되는 영어지만 눈팅이라도 하면서 배우는 수밖에 없는듯 합니다.
물론 비장의 무기인 유저 메뉴얼이 있으니, 레지스터만 섭렵하면 되지 않을까 하는 생각이 듭니다.  아닐까요?

하지만, 평가보드 구입후 개발환경 설치하면서 처음시작하는 사람을 위한 안내 자료가 있는데요
정작 가장 중요하다고 생각되는 User Manual이 잘 안보이네요.. 
(후기.알고보니 IDE 우측 하단에 링크버튼을 누르면 자료모음링크에 나오네요)
레지스터 섭렵을 하려면 필수 자료아닐까합니다.  열심히 찾아서 아래에 첨부합니다.


첨부자료:

LPCXpresso 플래폼 소개 자료 ( 테스트보드, 개발환경 등)


LPC11xx 기술문서 요약형


LPC11xx 수백페이지짜리 진짜 기술문서(User Manual)







Cortex-M0는 ARM의 가장작은 Cortex processor입니다.
12,000여 게이트로 이뤄져 있으며, 기존의 8,16bit 프로세서들의 대체를 목표하고 있습니다.  가령, 터치스크린 제어기로 8051을 사용해온 고객들이 대화면 및 멀티터치의 적용시 한계에 다다른 상황을 대체할 수 있다고 합니다.








성능 및 사양 비교


ARM 프로젝터 메니져 왈:
M3가 1.25Dmips/MHz, ARM7TDMI가 0.7Dmips/MHz인것에 비해
M0가 0.9Dmips/MHz 성능을 갖고있답니다.

전력소비도 적어져서,
M3가 210uW/MHz,180nm공정의 M0는 85uW/MHz 를 소비하고,
효율은 M3:6Dmips/mW에 비해 10Dmips/mW을 갖습니다.

ARM의 첫번째 범용 MCU인 Cortex-M3보다 간단한 코어로 이뤄졌으며,
두 코어를 구체적으로 비교하면 43,000게이트를 12,000게이트로 줄였고,
하바드 구조대신 폰노이만 구조를 갖고있으며
240개의 인터럽트를 32개로, 256가지 인터럽트 우선순위를 4단계로 줄였답니다.
명령어셋은 32bit instrunction체계를 16bit instruction 쌍으로 변경하여
코드크기도 대폭 축소하였답니다.

개발툴
파트너사인 CodeRed는 GNU tools 활용으로 저렴한 개발환경을 기획하여
현재는 128K 용량제한내에서 무료사용이 가능한 개발환경을 배포한 상태입니다.


이상, 아래의 링크 기사를 요약 소개드렸고요
참고기사: http://www.electronicsweekly.com/Articles/2009/03/04/45584/arms-cortex-m0-processor-how-it-works.htm


저도 어제 처음으로 NXP사의 ARM Cortex-M0 용 평가 보드인 LPCXpresso 를 구하여 테스트를 시작하고 있습니다. 관련글
LPC1114가 들어있는 보드로 구했는데요, AVR대체품으로 적당하다는 생각이 드네요,
하지만 AVR과 ARM사이의 장벽을 넘는일은 그리 녹녹치 않아보입니다;;

기술자료: http://infocenter.arm.com/help/index.jsp


추가내용(DEC.15)
링크1: 저의 LPCXpresso 간단 사용기
링크2: BR님의 NXP의 ARM Cortex-M0 코어 칩 LPC1000시리즈와 LPC 평가보드 사용기:  $1대의 ARM Cortex-M0 MCU, NXP LPC1000 시리즈 2 ? LPCxpresso 데모 보드 사용기


+ Recent posts