본문 바로가기

WCH/CH32V035

CH32X035 SSM - Arduino 개발환경 설정

 

 

CH32V003은 100원대의 저렴한 RISC-V 코어로 간단한 어플리케이션에는 사용하기 좋았는데 Arduino같은 약간 무거운 라이브러리를 올리기에는 메모리 용량이 너무 부족하다. CH32X035는 저렴하지만 64k 플레시 메모리에 USB까지 내장해서 다양한 어플리케이션에 적용하기 좋을것 같다.

 

WCH사의 Arduino 개발환경은 https://github.com/openwch/arduino_core_ch32 에서 다운로드 받을 수 있다.

 

 

CH32V003 Arduino 개발 환경 설정을 참고로 해서 CH32X035로 설정해서 테스트 해보자

 

 

const int ledPin = PA0;

void setup() {
  // set the digital pin as output:
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // here is where you'd put code that needs to be running all the time.


    /*
    digitalWrite(ledPin, 0);
    delay(1000);
    digitalWrite(ledPin, 1);
    delay(1000);
*/
/*
    GPIOD->BSHR = GPIO_Pin_4;
    GPIOD->BCR = GPIO_Pin_4;
    */
    GPIOA->BSHR = GPIO_Pin_0;
    GPIOA->BCR = GPIO_Pin_0;

}

 

 

CH32X035의 GPIO 토글 속도는 88ns 로 측정이 된다.
48Mhz 클럭 시스템은 보통 40ns는 나와야 하는데…

 

 

 

먼저 클럭 설정을 보자

C:\Users\jhpark\AppData\Local\Arduino15\packages\WCH\hardware\ch32v\1.0.3\system\CH32X035\USER\system_ch32x035.c

 파일에서 클럭 설정 부분을 보면 48Mhz로 설정되어 있다.

//#define SYSCLK_FREQ_8MHz_HSI   8000000
//#define SYSCLK_FREQ_12MHz_HSI  12000000
//#define SYSCLK_FREQ_16MHz_HSI  16000000
//#define SYSCLK_FREQ_24MHz_HSI  24000000
#define SYSCLK_FREQ_48MHz_HSI  HSI_VALUE

/* Clock Definitions */
#ifdef SYSCLK_FREQ_8MHz_HSI
uint32_t SystemCoreClock         = SYSCLK_FREQ_8MHz_HSI;              /* System Clock Frequency (Core Clock) */
#elif defined SYSCLK_FREQ_12MHz_HSI
uint32_t SystemCoreClock         = SYSCLK_FREQ_12MHz_HSI;        /* System Clock Frequency (Core Clock) */
#elif defined SYSCLK_FREQ_16MHz_HSI
uint32_t SystemCoreClock         = SYSCLK_FREQ_16MHz_HSI;        /* System Clock Frequency (Core Clock) */
#elif defined SYSCLK_FREQ_24MHz_HSI
uint32_t SystemCoreClock         = SYSCLK_FREQ_24MHz_HSI;        /* System Clock Frequency (Core Clock) */
#else
uint32_t SystemCoreClock         = HSI_VALUE;                    /* System Clock Frequency (Core Clock) */

#endif

 

 

48Mhz로 설정되어 있다.
그렇다면 Arduino 환경이라 그런가?


WCH에서 제공하는 C코드 예제로 테스트 해보자

반응형