August 11, 2020

디바이스마트 미디어:

[7호]CANTUS 개발 및 실습 무료 세미나 기술자료

07SCADC020CANTUS 개발 및 실습

무료 세미나 기술자료

 

자료제공 | (주)에이디칩스 기술 연구소

■ 2011년 4월 30일에 진행된 무료 세미나의 기술자료를 참석하지 못한 디바이스마트 매거진 구독자들을 위해 간단히 소개하고자 합니다.

 

1부 High Performance & Low Cost 32bit Microcontroller – CANTUS

1. 소개
(주)에이디칩스에서 개발한 CANTUS는 시스템의 다양화와 고성능화에 맞춰 8bit를 대체할 저가의 고성능 32bit 마이크로컨트롤러이다.
CANTUS는 고성능 32bit MCU로써 8bit MCU에 비해 최대 96MIPS의 빠른 속도와 고성능의 다양한 기능을 내장하면서 저렴한 가격으로 출시되어 개발자들에게는 8bit MCU의 한계를 넘어 다양하고 고성능화 되고 있는 시스템의 구현을 가능하게 하였다. 특징으로는 8채널의 넉넉한 UART와 Full-Speed USB2.0, SPI, TWI등의 다양한 통신 수단을 제공하므로 다른 주변 기기와의 통신에 강점을 지닌 동시에 음성이나 사운드(ADPCM 녹음/재생, MP3 재생) 지원이 가능한 제품이다.

또한, 내장 메모리를 128KBytes, 512KBytes 선택적으로 사용할 수 있어 사용자가 원하는 사양에 따라 시스템을 구성할 수 있으며 SRAM은 80Kbytes를 내장하여 큰 용량의 어플리케이션을 전혀 문제없이 동작시킬 수 있다. 또한 대용량의 메모리가 필요한 경우 외부에 노어플래시나 낸드플래시, SD카드등의 다양한 메모리를 지원하여 다양한 응용이 가능하다.

LCD가 필요로 하는 시스템에서는 2인치대(128×160해상도)의 TFT-LCD에 하나의 이미지파일을 디스플레이하는 시간에 30ms 이하의 속도를 낼 수 있어 Character LCD 또는 7-sement를 사용하던 시스템도 소형 TFT-LCD 적용이 가능하여 고급화, 차별화가 가능하다.(최대 220×176) 이 외에 CANTUS에는 8채널 32bit Timer / PWM / Capture가 내장되어 모터 구동, 배터리 체크, 적외선 리모콘 신호 입력 등의 용도로 사용할 수 있고 14bit Voice Codec은 음성 또는 사운드를 내보낼 수 있는 1채널 DAC와 센서 또는 아날로그 신호들의 입력을 위한 4채널 ADC로 구성되어 있으며 1채널 DMA는 빠른 메모리 액세스로 인해 데이터를 효율적으로 출력할 수 있다.

이러한 CANTUS는 하이패스단말기, GPS단말기, MP3 어학학습기, LED 컨트롤러, 경보시스템, 완구 로봇, 출입통제시스템, 디지털 가전, 로봇 청소기, 의료기기, 속도감지기, 산업용 컨트롤러 등 다양한 응용 제품에 적용할 수 있다.
이미 다양한 시스템에 적용되어 필드에서 검증되어 사용되어 지고 있으며 ㈜에이디칩스에서는 제품의 성능 뿐만 아니라 적극적인 기술지원과 안정적인 제품 공급 또한 강점으로 내세우고 있다.

2. 기능
· 32bit General Micro-Controller
- 96MHz, Internal Flash Memory & SRAM
· USB, UART, SDCard, Voice Codec, MP3 decoder(s/w)
· Operating Temp : -40oC to +85oC Industrial
· Power : 3.0V ~ 3.6V
· Package : 100pin TQFP

 

2부 CANTUS 개발 환경 소개

1. Development Flow Chart
CANTUS 개발환경은 다음과 같이 EISC Studio 3, E-CON, Target(EVM, Trip)으로 구성되어 있다. EISC Studio 3에서 Compile한 Binary는 E-CON을 통해 Target에 Download 되며, Target에 Download 된 Binary는 E-CON을 통해 EISC Studio 3에서 Debugging할 수 있다.

07SCADC020

그림1. Development Flow Chart

2. Download Page
EISC Studio 3와 같은 SW 자료 및 회로도와 메뉴얼은 (주)에이디칩스 홈페이지(www.adc.co.kr)의 자료실에서 다운받을 수 있다.

그림2. Download Page

그림2. Download Page

3. IDE : EISC Studio 3
EISC Studio 3는 통합개발환경(IDE)으로, Compiler, Editor, Debugger의 기능을 갖고 있다. 부가적으로 JTAG인 E-CON을 통해 손쉽게 Target에 Download가 가능하다.
현재 배포되는 Version은 3.2.2이다. Windows XP이상, 7 32bit, 7 64bit까지 사용 할 수 있다.

그림3. EISC Studio3

그림3. EISC Studio3

4. E-CON (JTAG I/F)
E-CON은 JTAG인터페이스로, Downloader와 Debugger의 기능을 갖고 있다. E-CON은 Console Program EConMan을 사용하여 제어된다. E-CON의 Driver와 Console Program인 EConMan은 EISC Studio 3를 설치 하면 기본 옵션을 통해 EISC Studio가 설치된 경로에 설치 된다.* (* 경로 : C:\Program Files\ADChips\EISC Studio 3\econ)

그림4. E-CON

그림4. E-CON

5. EVM
CANTUS EVM은 시스템 개발에 있어 검증을 위한 여러 Device로 구성 되어있다. Memory 관련하여 NAND Flash, SRAM, SPI Flash, TWI EEPROM, SD CARD로 구성되어 있으며, I2S Interface를 통해 외부 Audio Board로 재생, 녹음이 가능하다. 또한 Internal Voice Codec을 통한 재생, 녹음을 위한 회로가 구성되어 있다. 그리고 TFT LCD 및 USB, RS-232C와 확장 Pin이 있어 개발을 하려는 시스템에 근접하도록 구성 할 수 있다.

그림5.  CANTUS EVM

그림5. CANTUS EVM

6. SDK
CANTUS SDK는 CANTUS EVM의 여러 Device를 제어할 수 있는 예제 Project와 CANTUS의 주변장치를 사용할 수 있는 Library로 구성되어 있다. SDK의 예제를 사용하여 EVM의 Device를 원하는 대로 수정하여 개발 시간을 단축할 수 있다.

그림6. SDK 1.5Tree

그림6. SDK 1.5Tree

 

3부 개발환경 구축

CANTUS의 개발환경은 다음과 같이 구축할 수 있다.

1. 관련 자료 다운로드
개발환경의 구축에 있어 첫 번째로 관련 자료를 다운 받는다. 관련 자료는 (주)에이디칩스 홈페이지 www.adc.co.kr의 Support → 자료실 → 글 번호 10에서 다운로드할 수 있다. 필수적인 IDE(EISC Studio 3)와 SDK를 다운로드한다.

그림6. CANTUS Download Page

그림6. CANTUS Download Page

2. IDE / JTAG 설치
다운 받은 EISC Studio 3 설치 파일을 실행하여 EISC Studio 3를 설치 한다.
설치 과정에서 ‘구성 요소 선택’ 과정에서 사용할 Compiler를 선택 한다. CANTUS의 경우 AE32000 Compiler를 사용하며 기본적으로, E-CON Driver와 함께 선택되어 있다.

그림7. EISC Studio 3 구성 요소 선택

그림7. EISC Studio 3 구성 요소 선택

Windows 7 64bit에서 설치할 경우에는 ‘설치 위치 선택’ 에서 ‘설치 폴더’ 를 ‘C:\Program Files’ 로 지정 하여야 한다.
설치 진행 과정의 마무리쯤 E-CON의 Driver가 설치 된다. Driver 설치는 E-CON이 PC와 연결되지 않은 채 진행한다. EISC Studio 3의 설치가 완료 된 후에 E-CON과 PC를 연결하면 Driver 설치가 마무리 되며, 제어판의 장치 관리자에서 E-CON이 정상 적으로 인식된 것을 확인할 수 있다.

그림8. 장치 관리자의 E-CON

그림8. 장치 관리자의 E-CON

3. Build & Download
CANTUS SDK는 CANTUS Library Project와 Example Project로 구성 되어 있다. Example Project는 Library Project의 Output File인 ‘libCantus.a’를 참조 한다. 따라서 Example Project를 Build하기 위해서는 Library Project가 먼저 Build 되어야 한다. 또한 Library Project의 Code를 변경하면, Library Project가 Build된 후에 Example Project를 Build 하여야 한다.

3. 1. Library Project Build
1. /Cantuslib/Cantus.epx를 실행하여 EISC Studio 3로 Project를 Open한다.
2. 메뉴에서 Build → Build Project를 눌러 Project를 Build한다.
3. Build가 완료 되면 /lib/libCantus.a가 생성된다.  Library가 Build 되어 /lib/libCantus.a가 생성되면, Example을 Build 할 수 있다.

3. 2. Boot Loader를 사용하는 시스템의 경우

CANTUS는 Reset 후 Internal NOR Flash 0 Sector의 Program을 실행 한다. E-CON을 사용하면 Flash의 모든 Sector에 Write가 가능 하지만, E-CON이 없다면 BootLoader를 사용함으로써 USB를 통해 1 Sector(CANTUS 512)에 Download 할 수 있다. 단, 0 Sector에 BootLoader를 Download하는 것은 E-CON만 가능하다.
BootLoader는 CANTUS 512의 경우 1 Sector의 Program을 실행하고, 0 Sector를 제외한 나머지 Sector에 USB Download가 가능하다. 추가적으로 USB Mass Storage기능이 있어 Flash Memory나 SD-CARD를 PC에서 이동식 디스크로 사용할 수 있다.** (**BootLoader_tiny는 USB Mass Storage기능이 없음.)

3.2.1 Example Project Build : BootLoader

1. /Example/BootLoader/BootLoader.epx를 실행하여 EISC Studio 3로 Project를 Open한다.
2. Project Explorer에서 Linker Script에 cantus.ld를 Open한다. 16번 행에서 0×00000000으로 지정 된 부분은 Program이 실행되는 Sector의 Start Address로 0 Sector에 Download하여야 실행 되는 Program임을 뜻 한다.
3. 메뉴에서 Build → Build Project를 눌러 Project를 Build한다.
4. Build가 완료 되면 /Example/BootLoader/output/BootLoader.elf.bin이 생성된다. 

/Example/BootLoader/output/BootLoader.elf.bin이 생성 되면, E-CON을 통해 Target에 Download할 수 있다.

그림9. BootLoader의 cantus.ld

그림9. BootLoader의 cantus.ld

3.2.2 Example Project Build : BootLoader
EISC Studio 3가 처음 설치 되면 E-CON으로 Download하기 위한 Option이 설정되어 있지 않으므로, Download Option을 설정해 주어야 한다.

1. 메뉴에서 Build → Download Option
2. Download Manager 창이 나타나면, 다음과 같이 설정 한다.
Set Command : C:\Program Files\ADChips\EISC Studio
3\econ\EConMan.exe
Set Argument : -target cantus -systeminit -jtagspeed 10
-flash_filewrite 0×0 $(TargetPath).bin
Set Argument중 -flash_filewrite 0×0은 Download할
Sector의 Start Address를 뜻한다. 위 cantus.ld에서
0×00000000으로 설정하였기에 0 Sector에 Download한다.
3.  E-CON과 Target을 연결하고, PC에서 E-CON이 인식된 것을 확인 한다. CANTUS를 JTAG Mode로 설정한다. EVM의 경우 SW1을 아래쪽을 향하게 한 상태에서 Reset 한다.
4. 메뉴에서 Build → Download To Target EConMan의 실행창이 나타나고, Download가 진행 된다.***
(*** Set Argument에서 Option의 끝에 ‘-exit’를 추가하면 정상 Download된 후 창이 닫힌다.‘-jtagspeed 10’은 JTAG Clock을 30MHz / (10)+1 = 2.727MHz 로 설정을 뜻하며,‘-jtagspeed 1’으로 최대 15MHz까지 동작한다. JTAG Clock은 사용 환경에 따라 달라질 수 있다.

그림10. BootLoader의 Download Option

그림10. BootLoader의 Download Option

3.2.3 Example Project Build : Uart

1. /Example/Uart/Uart.epx를 실행하여 EISC Studio 3로 Project를 Open한다.
2. Project Explorer에서 Linker Script에 cantus.ld****를 Open한다. 11번 행에서 0×00010000으로 지정 된 부분은 Program이 실행되는 Sector의 Start Address로 1 Sector(CANTUS 512의 경우)에서 실행 되는 Program임을 뜻 한다. (**** BootLoader와 BootLoader_tiny는 Project 폴더내에 cantus.ld를 갖고 있지만, 이를 제외한 Project는‘/startup/cantus.ld를 참조한다.)
3. 메뉴에서 Build → Build Project를 눌러 Project를 Build한다.
4. Build가 완료되면 /Example/Uart/output/Uart.elf.bin이 생성된다. /Example/Uart/output/Uart.elf.bin이 생성되면, E-CON을 통해 Target에 Download할 수 있다.

그림11. Uart의 cantus.ld

그림11. Uart의 cantus.ld

3.2.4 Example Project Download : Uart
Download Option을 2)Example Project Download : BootLodaer에서 0×0으로 설정하였기 때문에 3)Example Project Build : Uart.에서 설정한 0×00010000으로 Uart를 Download하기 위해 설정을 변경해 주어야 한다.
1. 메뉴에서 Build → Download Option
2. Download Manager 창이 나타나면, 다음과 같이 설정 한다. 
Set Command : C:\Program Files\ADChips
\EISC Studio 3\econ\EConMan.exe 
Set Argument : -target cantus -systeminit -jtagspeed 10
-flash_filewrite 0×10000 $(TargetPath).bin
Set Argument중 -flash_filewrite 0×10000은 Download할
Sector의 Start Address를 뜻 한다. 위cantus.ld에서
0×00010000으로 설정하였기에 1 Sector에 Download한다.
3. E-CON과 Target을 연결하고, PC에서 E-CON이 인식된 것을 확인 한다. CANTUS를 JTAG Mode로 설정한다. EVM의 경우 SW1을 아래쪽을 향하게 한 상태에서 Reset한다.
4. 메뉴에서 Build → Download To Target

EConMan의 실행창이 나타나고, Download가 진행된다.

그림12. Uart의 Download Option

그림12. Uart의 Download Option

3.2.5 Execution
CANTUS에 Download한 Program은 CANTUS가 NORMAL MODE일 때 실행된다. EVM의 경우 SW1을 위쪽으로 향하게 한 상태에서 Reset한다.
EVM의 RS-232C를 PC와 연결하면, PC에서 Terminal을 통해 출력하는 Message를 확인할 수 있다. 이때 Terminal은 119200 bps, Data 8 bit, 1 Stop bit, Parity none으로 설정한다. 0 Sector에 Download한 BootLoader가 실행되고, 1 Sector에 Download한 Uart Example까지 실행한 Terminal의 화면이다.

그림13. Execution BootLoader + Uart

그림13. Execution BootLoader + Uart

3. Boot Loader를 사용하지 않는 시스템의 경우
CANTUS는 Reset후 Internal NOR Flash 0 Sector의 Program을 실행 한다. E-CON을 사용하면 Flash의 모든 Sector에 Write가 가능 하므로 E-CON을 사용할 수 있거나, 개발 시스템에서 Program Update와 같은 기능이 필요치 않은 경우에는 0 Sector에 BootLodaer가 아닌 Program을 Write하여 사용할 수 있다.
다음은 Example/Uart를 Download하여 실행하는 경우이다.

3.3.1 Example Project Build : Uart
1. /Example/Uart/Uart.epx를 실행하여 EISC Studio 3로 Project를 Open한다.
2. Project Explorer에서 Linker Script에 cantus.ld를 Open한다. 11번 행에서 0×00010000으로 지정된 부분을 0×00000000으로 수정하여 Program이 실행되는 Sector의 Start Address가 0 Sector가 되도록 변경한다.
3. 메뉴에서 Build → Build Project를 눌러 Project를 Build한다.
4. Build가 완료 되면 /Example/Uart/output/Uart.elf.bin이 생성된다.

/Example/Uart/output/Uart.elf.bin이 생성되면, E-CON을 통해 Target에 Download할 수 있다.

3.3.2  Example Project Download : Uart
Download Option을 4) Example Project Download : Uart (P.38)에서 0×10000으로 설정하였기 때문에 1) Example Project Build : Uart(P.39)에서 설정한 0×00000000으로 Uart를 Download하기 위해 설정을 변경해 주어야 한다.

1. 메뉴에서 Build → Download Option
2. Download Manager 창이 나타나면, 다음과 같이 설정한다.
Set Command : C:\Program Files\ADChips \EISC Studio 3\econ\EConMan.exe
Set Argument : -target cantus -systeminit -jtagspeed 10 -flash_filewrite 0×0 $(TargetPath).bin
Set Argument중 -flash_filewrite 0×0은 Download할 Sector 의 Start Address를 뜻 한다. 위 cantus.ld에서 0×00000000
으로 설정하였기에 0 Sector에 Download한다.
3. E-CON과 Target을 연결하고, PC에서 E-CON이 인식된 것을 확인 한다. CANTUS를 JTAG Mode로 설정한다. EVM의 경우 SW1을 아래쪽을 향하게 한 상태에서 Reset한다.
4. 메뉴에서 Build → Download To Target

EConMan의 실행창이 나타나고, Download가 진행 된다.

3) Execution
CANTUS에 Download한 Program은 CANTUS가 NORMAL MODE일 때 실행한다. EVM의 경우 SW1을 위쪽으로 향하게 한 상태에서 Reset한다.
EVM의 RS-232C를 PC와 연결하면, PC에서 Terminal을 통해 출력하는 Message를 확인할 수 있다. 이때 Terminal은 119200 bps, Data 8 bit, 1 Stop bit, Parity none으로 설정한다.
0 Sector에 Download한 Uart Example을 실행 한 Terminal의 화면이다.

그림14. Execution Uart

그림14. Execution Uart

4. Debugging
CANTUS는 EISC Studio 3에서 E-CON을 통해 Debugging 할 수 있다. GDB를 사용하며 V3.2.2의 경우 Insight 환경도 사용할 수 있다. 다운 받은 SDK에 관련 매뉴얼이 있다.

그림15. CANTUS Debugging Insight

그림15. CANTUS Debugging Insight

 

4부. SDK의 Example

SDK의 Example은 크게 BootLoader와 Application 두 가지로 나누어 진다.

1. BootLoader
BootLoader는 USB Download, USB Mass Storage, Application 호출의 기능을 갖고 있다. 0 Sector에서 CANTUS Reset후 실행되며, USB Download나 USB Mass Storage의 명령이 없으면 특정 Sector의 Application을 호출 하게 된다.
USB Download는 PC로부터 CANTUS DevTool을 통해 0 Sector가 아닌 특정 Sector에 Program을 Write한다. BootLoader 영역은 지울 수 없기 때문에 제품에서 Program Update용도로 사용할 수 있다.

그림16. CANTUS devTool

그림16. CANTUS devTool

USB Mass Storage를 사용하면 EVM의 NAND Flash Memory 또는 SD Card를 PC에서 이동식 디스크로 사용할 수 있으며, FAT를 사용하여 Application에서 Drive로 접근하여 Read/Write가 가능하다. USB Mass Storage기능이 불필요하다면, BootLoader_tiny를 사용할 수 있다.

그림17. USB Mass Storage와 Application에서 사용 예

그림17. USB Mass Storage와 Application에서 사용 예

Application 호출은 CANTUS 128A/512에 따라 달라진다.

CANTUS 128A(4 Kbyte x 32 Sector)
BootLoader : 8 Sector(0×00008000)를 호출
BootLoader_tiny : 4 Sector(0×00004000)를 호출

CANTUS 512(64 Kbyte x 8 Sector)
BootLoader : 1 Sector(0×00010000)를 호출
BootLoader_tiny : 1 Sector(0×00010000)를 호출

2. Application
Application은 다음과 같이 구성 되어 있다. BootLoader가 필요하지 않다면, 0 Sector에 Download함으로써 BootLoader없이 CANTUS Reset후 실행할 수 있다. 단, 이때 Application의 Build는 Linker Script ‘cantus.ld’ 의 11번 Line이 0×00000000으로 설정된 상태에서 수행되어야 한다.
Build 및 Download는 앞서 살펴 보았던 Uart와 동일하다.

그림 19. SDK의 Application

그림 19. SDK의 Application

 

홈페이지 : www.adc.co.kr
개발자커뮤니티공간 : http://cafe.naver.com/adchips
E-mail : sales1@adc.co.kr
Tel : 02-2107-5870

Leave A Comment

*