[MCU]/CANTUS2009. 12. 17. 12:30

[CANTUS EVM] 개발환경 설정

[CANTUS EVM] 개발환경 설정



ADC사의 CANTUS는 국내에서 개발한 AE32000C 코어를 가진  32bit MCU이다. ADC사에서  EISC Studio 라는 컴파일러, 디버거, 에디터 기능을 하는 IDE 프로그램을 제공한다.

ADC사 홈페이지에서 최신 버전을 다운로드 받을 수 있다.

설치하고 프로그램을 실행하여 새로운 프로젝트를 생성해 보자



코어 및 프로젝트이름을 기입하고 새로운 프로젝트를 생성한다.



새로운 프로젝트를 생성하면 기본들이 생성된다. 각 폴더별로 프로젝트에 추가하면 된다.


1)Source File
 - strt.s(ADC사 제공), main.c, system.c

2)LinkerScript
-cantus.ld(ADC사 제공)
 -> 자신의 환경에 따라 약간의 수정이 필요하다. 메모리 사이즈 및 생성될 메모리 위치정도.. 제공되는 코드는 sdk\startup\ 폴더에 있는데, 예제마다 수정이 필요할 수도 있기 때문에 나는 프로젝트 폴더 내로 옮겼다.

3)Static Library Files
-libcantus.a(ADC사 제공)
-> 반드시 필요한것은 아니지만 사용하면 편리한점이 있다. 물론 오버헤드는 있다. 미리 컴파일된 라이브러리 이기 때문에 보드에 따라 수정이 필요하다. 프로젝트파일이 제공되기 때문에 수정해서 다시 컴파일 하면 된다.















Project옵션
옵션은 별다른 설정이 필요 없고 디렉토리만 설정해 주면 된다.




프로젝트 폴더 구조
ADC사에서 제공하는 폴더 구조는 용량도 크고(모든자료가 포함되어 있어 90M 가까이된다.), 기존 코드와 호환을 위해 약간의 변경이 필요하다.
프로젝트폴더 상위에 cantus폴더를 만들어서 필요한것만 복사하니 3M 정도 밖에 되지 않는다.




빌드
프로젝트 셋업이 되면 메인 코드 작성해서 컴파일 하면 에러없이 컴파일 되는것을 확인할 수 있다.
무료로 제공되는 IDE환경이지만 간단하고 깔끔하게 동작한다.
Posted by nexp
TAG CANTUS

댓글을 달아 주세요

[MCU]/CANTUS2009. 12. 12. 22:56

[CANTUS EVM] GPIO속도 측정 테스트

[CANTUS EVM] GPIO속도 측정 테스트


 
CANTUS는 96MIPS의 5단 파이프라인으로 고속이라고 한다.  GPIO토글속도 테스트로 성능측정을 해 보았다.

CANTUS의 GPIO는 GPIO Ser/Reset레지스터가 따로 존재 하므로 우선 비트 On/Off로 테스트 해본다.

150ns - 3.2Mhz가 출력된다. 96MIPS 속도라고 하기에는 페리가 너무 느리다.
int main()
{
 SystemInit();

 Led1Init();
 
 while(1)
 {
  *R_P5oHIGH |= BIT4;
  *R_P5oLOW |= BIT4;
 }
}

옵티마이즈 옵션을 주어 컴파일을 다시 해 보니
133ns - 3.5M  까지 나온다. 하지만 그렇게 빠르지는 않은것 같다.



단순 ON/OFF만 했을때는 39ns - 12.5Mhz 가 출력된다.
  *R_P5oHIGH = BIT4;
  *R_P5oLOW = BIT4;

클럭설정이 문제 인지.. RAM에 올려서 측정해야 하나? 아무튼 그리 고속이라는 느낌은 아닌데...
Posted by nexp

댓글을 달아 주세요

[MCU]/CANTUS2009. 12. 6. 19:24

[CANTUS EVM] 보드 제작

[CANTUS EVM] 보드 제작
CANTUS는 ADChip사의 32비트 AE32000코어를 탑제한 MCU이다. 5단 파이프 라인의 EISC구조라고 한다. 512K Flash, 80K RAM 에 96MIPS속도이고 가격은 저렴하니(쇼핑몰 기준 4500원) 사용해 볼만하다.
개인적으로는  한국에서 MCU코어 가진 회사가 그리 많지 않은데 계속 발전해 나갔으면 한다.



일단 샘플로 받은 CANTUS 128로 조립해 보았다. 기본 형태는 [M-Type EVM] 형태로 제작했다.



CANTUS는 기본적으로 SDIO를 지원하므로 고속으로 SD카드를 엑세스할 수 있다. 뒷면에 SDIO방식의 T-Flash를 연결할 수 있도록 했다.





CANTUS 512확장 테스트 보드 - 이더넷(W5100) 모듈 테스트



TFT LCD 확장 테스트 모듈
LCD_EXP_EVM 보드 에 연결하여 TFT LCD를 테스트 할 수 있다.

Posted by nexp

댓글을 달아 주세요

[MCU]/CANTUS2009. 11. 29. 17:09

[ CANTUS EVM ] JTAG 테스트

[ CANTUS EVM ] JTAG 테스트



[CANTUS EVM] 조립 후 테스트 진행
일단 여러가지로 열악한 환경속에서 테스트 해 보고 있는 중인데...
Parallel JTAG 연결하고 JTAG ID를 읽어 보았다. JTAG 케이블 빼면 에러가 뜨고 정상 연결하면 무언가 메시가 출력되는 것으로 보아 연결은 문제 없는듯... 하지만 각 파라미터 들의 정확한 의미는 모르겠다. 잘 된건지 이상이 있는것인지? 메뉴얼에도 없는 내용이라...



JTAG관련 설정사항

Port 0의 기능을 보면 Boot Mode , JTAG 선택 기능들이 포함되어 있다. 각 핀들은 기본적으로 High로 유지하며 Low로 설정되면 기능이 Enable된다.

ISP(In System Programming) mode and Debugger mode
다음 핀들에 의해서 ISP, OSI Debugger, JTAG Debugger 모드가 결정된다.
- nISPSEL : Low 일 경우, ISP mode로 부팅된다.
- nOSISEL : Low 일 경우, OSI Debugger mode로 부팅된다.
- nJTAGSEL : Low 일 경우, JTAG Debugger mode로 부팅된다.


nISPSEL(P0.4) : ISP mode select pin

ISP(In System Programming) mode로 선택하기 위한 핀이다.

MEMSIZ(0.5)
Normal boot mode 중 Local Memory인 SRAM_nCS0 영역으로 booting시 Memory의 data bus size를 선택하기 위한 핀이다.

nOSISEL(P0.6)
OSI debugging mode로 선택하기 위한 핀이다.

nJTAGSEL (P0.7)
JTAG debugging mode로 선택하기 위한 핀이다.

BOOTSEL[1:0] (P0.0, P0.1)
Normal boot mode 동작을 선택하기 위한 핀이다.


일단 컴파일 한 예제를 다운로드 해보자.
NOR Flash에 다운로드 중 에러 메시지가 출력된다. "Cannot run debug mode on CANTUS" 이건뭐~
CANTUS를 debug mode로 실행할 수 없다는건지? Debug Mode가 아니라는 것인지...?

Posted by nexp

댓글을 달아 주세요

[MCU]/CANTUS2009. 11. 22. 17:09

CANTUS 하드웨어 설계시 주위사항

CANTUS 하드웨어 설계시 주위사항

메모리
CANTUS에서는 Figure 3-1처럼 크게 세 종류의 Memory map이 존재한다. 이는 3가지 방식의 부팅모드가 존재하기 때문이다. 부팅모드의 기본값은 내부 NOR Flash에 의한 부팅동작이다. 나머지 부팅모드는 외부 NAND Flash에 의한 부팅모드와 외부 메모리를 통한 부팅모드이다.




Power Pins
CANTUS는 여러 종류의 전원 핀들이 있으며, 두 개의 Voltage Regulator (LDO)를 내장하고 있다. 내부 Voltage Regulator는 3.3V 단일 전원으로 시스템을 구성할 수 있게 한다.
파워 공급 핀의 종류는 다음과 같다:
 VDDIN100 pin : Main power domain의 내부 Voltage Regulator에 전원 공급을 위한 핀이다. 전압 범위는 3.0V~3.6V 이다.
 VDDOUT100 pin : Main power domain의 내부 Voltage Regulator에서 출력되는 1.8V 전원 핀이다.
 VDD33 pins : Main power domain의 IO를 위한 전원 핀이다. 3.0V~3.6V의 전원을 공급받는다.
 VDD18 pins : Main Power domain의 내부 Logic에 전원을 공급한다. 1.65V~1.95V을 공급받아야 한다. VDDOUT100 출력에 연결하면 3.3V 단일 전원으로 시스템이 구성될 수 있다.
 AVDD18 pin : PLL에 1.8V 전원을 공급하는 전원 핀이다. VDDOUT100 출력에 연결하면 3.3V 단일 전원으로 시스템이 구성될 수 있다.
 AVDD33 pin : Voice Codec에 3.3V 전원을 공급하는 핀이다.
 VDDIN50 pin : Low power domain의 내부 Voltage Regulator에 전원 공급을 위한 핀이다. 전압 범위는 3.0~3.6V 이다.
 VDDOUT50 pin : Low Power domain의 내부 Voltage Regulator에서 출력되는 1.8V전원 핀이다.
 PVDD33 pins : Low Power domain의 IO를 위한 전원 핀이다. 3.0V~3.6V의 전원을 공급받는다.
 PVDD18 pins : Low Power domain에 있는 내부 Logic에 전원을 공급한다. 1.65V~1.95V을 공급받아야 한다. 이 핀은 VDDOUT50 출력에 연결하면 3.3V 단일 전원으로 시스템이 구성될 수 있다.






JTAG관련 설정사항
Port 0의 기능을 보면 Boot Mode , JTAG 선택 기능들이 포함되어 있다. 각 핀들은 기본적으로 High로 유지하며 Low로 설정되면 기능이 Enable된다.

ISP(In System Programming) mode and Debugger mode
다음 핀들에 의해서 ISP, OSI Debugger, JTAG Debugger 모드가 결정된다.
- nISPSEL : Low 일 경우, ISP mode로 부팅된다.
- nOSISEL : Low 일 경우, OSI Debugger mode로 부팅된다.
- nJTAGSEL : Low 일 경우, JTAG Debugger mode로 부팅된다.


nISPSEL(P0.4) : ISP mode select pin

ISP(In System Programming) mode로 선택하기 위한 핀이다.

MEMSIZ(0.5)
Normal boot mode 중 Local Memory인 SRAM_nCS0 영역으로 booting시 Memory의 data bus size를 선택하기 위한 핀이다.

nOSISEL(P0.6)
OSI debugging mode로 선택하기 위한 핀이다.

nJTAGSEL (P0.7)
JTAG debugging mode로 선택하기 위한 핀이다.

BOOTSEL[1:0] (P0.0, P0.1)
Normal boot mode 동작을 선택하기 위한 핀이다.


클럭
CANTUS는 두 개의 외부 클럭 소스와 내부에 한 개의 PLL이 있다. MOSC는 Main Power 영역에 공급되어 PLL의 입력 클럭이 된다. ROSC는 Low Power 영역에 공급되어 PMU/RTC 블록에 공급 된다. Figure 4-6 은 내부 클럭 구조이다.
XIN으로 인가된 클럭은 MOSC를 거쳐 PLL에 공급되며, 동작 범위는 2MHz ~ 15MHz이다.
RTC_XIN은 ROSC를 거쳐 PMU와 RTC 블록에 공급된다. 동작 주파수는 32.768KHz이다.
PLL는 USB Device를 사용할 경우에는 48MHz 또는 96MHz 로 설정하여 USB Device에 48MHz와 12Mhz 클럭을 공급하고, USB Device를 사용하지 않을 경우에는 96MHz 이하의 어떤 클럭이라도 사용할 수 있다.




Reset
POREN/P6.4 핀으로 내부 POR의 동작을 결정할 수 있다. POREN 핀을 high level로 유지 하면 내부 POR를 사용하게 된다. POREN/P6.4 핀은 내부에 pull-up 저항이 연결되어 있어 외부 연결이 없을 때는 POR Reset이 활성화 되어있다.




Posted by nexp

댓글을 달아 주세요