본문 바로가기

[MCU]

(50)
[CANTUS EVM] SPI테스트 - SPI 가속도 센서 테스트 [CANTUS EVM] SPI테스트 - SPI 가속도 센서 테스트 CANTUS의 SPI구조는 아래 그림과 같고 특징적으로는 8Byte FIFO가 있다. CANTUS SPI테스트를 위해 [NET-EVM]보드의 가속도 센서를 테스트 해 보았다. 가속도센서의 SPI CS핀은 P5.2에 연결되어 있다. ADChip사에서 제공하는 드라이버코드는 여러기능을 위해 작성되어 있기 때문에 속도 면이나 기존 코드를 위해 그냥 사용하기는 힘들다. 데이터시트보고 로레벨로 작성해 보았다. SUINT SPI0_WriteReadByte(SUINT Data) { //SPI포트로 데이터 출력 *R_SPI0DATA = Data; // 전송대기 while (!(*R_SPI0STAT & SPISTAT_SPIF)); //데이터 수신 retu..
[CANTUS EVM] TFT LCD제어 [CANTUS EVM] TFT LCD제어 [LCD-EXP EVM] 보드를 이용하여 CANTUS로 COM26T2844 TFT LCD를 제어 해 보려고 한다. 환경설정이 달라지면서 여러가지 문제점이 많다. 기존 소스를 포팅하니 오류가 많이 뜬다. -> 문제는 디렉토리 설정에서 현재 자신의 프로젝트를 가리키는 설정에 문제가 있었다. -> 그냥 "." 기입하면 자신의 디렉토리가 설정된다. CANTUS의 GPIO 출력 레지스터는 일반 MCU와 달리 Low, High를 PxOHIGH, PxOLOW에 각각 따로 설정해야 한다. 특히 LCD와 같이 데이터를 포트제어로 해야 할때 문제가 있다. 두번 제어 해야 하므로 속도도 문제가 되고... 아무튼 기존 다른 MCU에서 사용했던 코드를 포팅 했는데.. TFT LCD가 정..
[CANTUS EVM] SD Card 테스트 [CANTUS EVM] SD Card 테스트 CANTUS 는 SDIO를 지원하므로 SD Card를 고속으로 접근할 수 있다. [CANTUS EVN]보드 뒷면에는 T-Flash를 연결할 수 있도록 해서 SDIO를 테스트 해 볼 수 있다. [CANTUS EVM] SD Card 회로도 CANTUS개발환경의에는 SD Card제어를위한 라이버러리를 제공기 때문에 쉽게 테스트 가능하다. #include "system.h" #include "serial.h" unsigned int scan_files (char* path) { unsigned int file_cnt = 0; FRESULT res; FILINFO fno; DIR dir; int i; char *fn; #if _USE_LFN static char lfn..
[CANTUS EVM] UART테스트 [CANTUS EVM] UART테스트 CANTUS는 8채널의 16450호환 UART가 있다. FIFO도 16Byte가 있고.. 멋지다. CANTUS에서 UART제어를 위해 Seial.c에 있는 U0_GetByte(), U0_PutByte()를 수정해 주면 된다. ADChip사에서 제공되는 코드는 너무많은 기능을 제공하려다 보니 오히려 복잡하고 속도도 느려질 수 있다. 그래서 데이터시트를 보고 간단히 작성해 보았다. #define UART0_LSR *(volatile unsigned long*)((unsigned long)R_UART0_BASE + UART_LSR) #define UART0_URDR *(volatile unsigned long*)((unsigned long)R_UART0_BASE + UAR..
[CANTUS EVM] GPIO를 이용한 LED테스트 [CANTUS EVM] GPIO를 이용한 LED테스트 CANTUS의 GPIO는 아래 그림과 같은 구조이다. 구조는 그리 복잡하지 않은데... 한가지 아쉬운점은 Data 레지스터가 HIGH레지스터, LOW레지스터로 나누어져 있어 데이터버스처럼 쓰기가 효율적이지 못한점과 토글할때도 번거러운점이 있다. GPIO기능설정 각포트는 여러기능을 할 수 있기 때문에 먼저 PAFx레지스터에 GPIO모드로 사용할것을 설정하는 것이 필요하다. GPIO방향 설정 GPIO의 입출력 방향 설정은 DIR레지스터로 설정 가능하다. #define Led1Init() Sbi(*R_PAF5, (3
[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사 제공) -> 자신의 환경에 따라 약간의 수정이 필요하다. 메모리 ..
[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.5M..
[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 확장..

반응형