Cortex-M/INFINEON2013. 11. 23. 21:46

XMC1300 EVM - 성능측정 GPIO토글 테스트

[XMC1300 EVM] - 성능측정 GPIO토글 테스트


Infineon사의 저렴한 Cortex-M0 XMC1302를 이용하여 간단히 성능 테스트를 해 보았다. 물론 요즘에 출시되는 MCU들은 각각의 용도별 특징이 있기 때문에 절대 성능을 측정하기는 무리가 있지만 기록해 두면 여러모로 쓸모는 있을것 같다.


XMC1300은 다른 Cortex시즈와 달리 GPIO 셋, 클리어, 토글레지스터가 따로 없고 OMR(Output Modification Register)레지스트라고하는 출력 상태를 변경하는 레지스터에서 토글이나 셋, 클리어 가능하다.

이렇게 레지스터가 하나로 되면 하드웨어적으로는 간단해 지지만 소프트웨어적으로는 한번의 연산이 더 필요기 때문에 코드상에서는 불리한것 같다.



XMC1300 GPIO 블록도

아래 그림은 XMC1300의 GPIO 구조도 이다.




우선 최대 32Mhz로 구동하고 GPIO출력 레지스터를 토글해 보니 1.25Mhz정도 된다. 


1.25Mhz

              while(1)

                   {

               

                       PORT0->OUT ^=  BIT13;

   \   00000036   0x6821             LDR      R1,[R4, #+0]

   \   00000038   0x4041             EORS     R1,R1,R0

   \   0000003A   0xE7FB             B        ??main_1

   \                     ??main_0:

   \   0000003C   0x40040000         DC32     0x40040000

   \   00000040   0xFFFFEFFF         DC32     0xffffefff

                  }



GPIO상태 변경 레지스터를 이용해 보면 좀더 빨라지지만 다른 MCU들의 성능 측정 결과와 비교하면 만족할 만한 수준은 아닌것 같다.

2.9Mhz

                   while(1)

                   {

                       PORT0->OMR = (0x00010001UL << 13);

   \                     ??main_1: (+1)

   \   00000038   0x6060             STR      R0,[R4, #+4]

   \   0000003A   0xE7FD             B        ??main_1

   \                     ??main_0:

   \   0000003C   0x40040000         DC32     0x40040000

   \   00000040   0xFFFFEFFF         DC32     0xffffefff

   \   00000044   0x20002000         DC32     0x20002000

                   }


Posted by nexp

댓글을 달아 주세요

Cortex-M/INFINEON2013. 11. 23. 20:30

XMC1300 EVM - 개발환경설정 IAR 셋업하기

[XMC1300 EVM] - 개발환경설정 IAR 셋업하기

XMC1300은 Cortex-M0코어 이기 때문에 IAR컴파일러를 이용하면 쉽게 개발환경을 설정할 수 있다.


최신 IAR 컴파일러에서 XMC1302 디바이스를 설정할 수 있다





컴파일 PATH 설정



$PROJ_DIR$\

$PROJ_DIR$\..\

$PROJ_DIR$\..\..\01_drv

$PROJ_DIR$\..\..\..\XMC_LIB\Header

$PROJ_DIR$\..\..\..\CMSIS\XMC1300_series\Include




JATG 설정




$PROJ_DIR$\XMC1300_Flash.icf

Posted by nexp

댓글을 달아 주세요

Cortex-M/INFINEON2013. 11. 23. 18:00

XMC1300 EVM - Infineon Cortex-M0 XMC1302 EVM 보드 제작

XMC1300 EVM - Infineon Cortex-M0 XMC1302 EVM 보드 제작



Infineon사의 Cortex-M0코어를 가진 XMC1302 를 테스트할 수 있는 보드를 SM-Type EVM형태로 제작 했다.

32Mhz로 동작하고 8~200Kbyte플래시 메모리를 가지고 있다. 차량용 제품을 만들어 오던 업체라 IEC 60730 class B compliant 를 지원한다. 그리고 무엇보다 저렴하다는 장점이 있다. 또다른 특이점으로 64MHz MATH Co-processor가 있어 모터 제어 쪽에도 많이 사용한다고 한다.




SM-Type EVM 형태로 제작해서 여러 확장보드에 호환하여 테스트 가능하다.












XMC1300 EVM 회로도










Posted by nexp

댓글을 달아 주세요

Cortex-M/INFINEON2013. 11. 21. 23:00

XMC1000 - 하드웨어 제작시 주의사항 (부트모드 설정)

XMC1000 - 하드웨어 제작시 주의사항 (부트모드 설정)


XMC 를 처음 접하고 있는데... 당혹스러운 일이 발생했다.

기존 다른 Cortex 시리즈와 다르게 칩 출하시 시리얼 부트모드가 디폴트이고 JTAG가 Disable되어 있다.

보드 제작하고 JTAG연결이 안되서 하드웨어 제작에 문제 인것으로 오인해 고생을 했다. 

왜 이렇게 밖에 못하지?

물론 문서를 꼼꼼하게 읽으면 되지만 데이터 시트에 있는 내용이 아니리 레프런스 시트에 있고 좀서 쉽게 설명되어 있는 문서는 부트로더 쪽을 봐야 한다.


아무튼 XMC1000 시리즈를 처음 접할때 주의해야 할 사항인것 같아 정리해 본다.


XMC1000_TG_v1_0.pdf




XMC1000 부트모드

XMC의 부트모드는 7가지 이고 공장 출하시 시리얼 부트 모드 이며 JATG는 Disable 되어 있다.


초기 시리얼 포트는 P0.14(RXD), P0.15(TXD)또는 P1.3(RXD), P1.2(TXD)에 연결할 수 있다.

(보드 설계시 이 포는 반드시 빼 두어야 한다는 것이다.)






부트모드 설정

부트모드는 MEMTOOL 이라 부르는 프로그램이나 DAVE툴 에서 시리얼 포트를 이용하여 설정할수 있다



MEMTOOL 다운로드






결론
초기에 JTAG를 사용할 수 없다는것이 아주 황당하긴 한데...
어떻게 생각해 보면 시리얼 포트로 프로그램 다운로드 하거나 보안을 할 수 있어 소규모 업체의 양산용으로는 더 적합하지 않을까 하는 생각이 든다. (JTAG 구매 필요 없이 시리얼 포트로 생산관리 할수 있으므로)

아무튼 후발 주자 이긴 하지만 바로  필드에 적용하기에 편리한 점들이 많이 있는것 같다.




GPIO 설정 주의 사항

다른 Cotex MCU들과 다르게 P2.2~P2.9 는 입력만 가능한 핀이다. 

왜 이렇게 했을까? 황당하다.(기존 보드를 대체 하려고 했는데...)


아무튼 GPIO로 사용할 경우 주의가 필요하다.








Posted by nexp

댓글을 달아 주세요

Cortex-M/INFINEON2013. 7. 11. 00:59

XMC1000 - Infinieon사의 XMC1000 시리즈세미나 참관기




MCU시장은 ARM사의 Cortex 시리즈가 평정을 한것 같다. 기존에 자체 코어를 가지고 있는 회사들이나 8051 코어를 가진 대부분의 회사들이 Cortex시리즈로 MPU를 출시하고 있다.

 

Infinieon사의 XMC1000 시리즈는 8비트 제품을 대체할 솔루션으로 32bit Cortex-M0 코어이다. 이번에 저가의 Cortex-M0 XMC1000 시리즈 세미나에 참석하고 왔다.


XMC1000은 최대 200KB의 플래시 메모리 외에도 고성능 PWM 타이머, 12bit A/D 컨버터, 프로그램 가능한 시리얼 통신 인터페이스 등을 제공한다. 

인상적인 사항으로는 터치 제어 및 LED 디스플레이를 위한 모듈, LED의 디밍 및 색상 제어를 위한 주변장치 유닛(BCCU(Brightness and Colour Control Unit)), 모터 드라이브 제어를 위한 연산 코프로세서 등이 있다. 

조명쪽 솔루션을로 적용하면 좋을것 같다.


그리고 안전성에 대해 기술하고 있는 표준 IEC60730 Class B를 충족하고, 하드웨어 ECC(error correction)와 이에 상응하는 메모리 테스트 등을 제공한다고 한다. 한층 더 독창적인 기능으로는 비용에 민감한 애플리케이션에서 특히 중요한, 설계 엔지니어의 중요한 소프트웨어 IP에 대해 향상된 보호 기능을 지원하는 128비트AES 액셀러레이터를 제공하는 플래시 로더(flash loader)가 있다. 


XMC1100 엔트리 시리즈는 다양한 산업용 애플리케이션을 위한 XMC1000제품군 중 가장 저렴하다. 이 시리즈의 제품들은 최대 1.88MSPS(mega sample per second)로 동작하는 6개의 12bit A/D 컨버터 채널, CCU4(capture/compare unit 4) 내의 4개의 16비트 타이머, 1.8V에서 5.5V 사이의 넓은 전압 허용 공차 등을 제공한다. 이들 기능들은 다양한 애플리케이션을 지원한다. 


XMC1200 피처시리즈는 정전용량성 터치 감지 유닛, LED 디스플레이 제어, BCCU 등 애플리케이션에 특화된 기능들을 통합하고 있다. BCCU는 프로세서에 전혀 부담을 주지 않으면서 LED에 대해 플리커 현상이 없는 디밍과 컬러 제어 기능을 지원한다. 이 시리즈의 또 다른 제품들은 -40°C~ 105°C까지 확장 온도 범위를 지원한다. 




DAVE™를 통한 8비트에서 32비트로의 간편한 전환 

XMC1000 제품군은 XMC4000제품군과 동일한 무료 통합 개발 플랫폼을 사용한다. DAVE라고 하는 이 플랫폼은 애플리케이션-지향 소프트웨어 개발을 사용자에게 친숙하게 만들고 XMC1000과 XMC4000 제품군 간 전환을 간편화시킨다. DAVE apps를 통해 그래픽 개발 환경 내에서 소프트웨어 컴포넌트들을 통합 및 구성하고 이를 가용 마이크로컨트롤러 리소스에 자동으로 맵핑하여 C 코드와 소프트웨어 문서들을 자동으로 생성할 수 있다. DAVE는 무료 GNU 컴파일러와 디버거를 통합하고 있다. 뿐만 아니라, 인피니언은 컴파일러, 디버거, 소프트웨어 분석, 플래시 프로그래머 등은 물론 XMC1000제품군을 위한 임베디드 소프트웨어 솔루션, 교육, 기술지원 등을 제공하는 다양한 개발 협력업체들과 협력하고 있다. 

XMC1100, XMC1200, XMC1300, 그리고 개발 키트의 공급 시기 

XMC1000 제품군은 현재 16, 28, 38핀 TSSOP 패키지로 제공되는 23개 제품으로 구성되어 있다. 현재 XMC1000 시리즈의 샘플과 XMC1000을 위한 DAVE 개발 환경이 제공되고 있으며, 양산은 2013년 4분기로 예정되어 있다. 

쉽고 비용 효율적인 평가를 위해 LED, 터치패널, 모터 드라이브 애플리케이션을 위한 포괄적인 애플리케이션 키트와 북키트가 제공된다. Arduino™용 XMC1000 북키트는 Arduino™ 쉴드로 수정 가능한데 광범위한 애플리케이션을 위해 다양한 애드온 보드를 사용할 수 있다.

Posted by nexp

댓글을 달아 주세요