본문 바로가기

WCH/CH32V003

(14)
[CH32V003-SSP] CH32V003J4M6 PD1 SWIO 핀 공유 문제 CH32V003J4M6는 8핀 패키지로 핀수가 적다 보니 8번핀에 UART-TX 와 SWD 핀이 겹쳐 있다. UART 사용으로 설정한 펌웨어를 다운로드 하고나면 다음부터 인식이 안되는 현상이 발생한다.  해결 방법은 WCH-LinkUtility 프로그램에서 “Clear All Code Flash-By Power off” 로 지우면 다시 접속할 수 있다. 왜 하필 많이 사용하는 UART TX핀에 할당이 되어 있을까… 잘 사용하지 않는 다른핀도 있는데… 아쉽다. UART 디버깅을 하려면 이 프로그램으로 자주 지웠다 다시 살리는 형태로 불편하게 개발 해야 할것 같다. 또 한가지 해결책으로 리맵을 이용하여 PD6으로 할당 하면 될것 같다. 리맵으로 PD6을 TXD로 할당하면 정상적으로 동작 하는것을 확인 할 수..
[CH32V003-SSP] PWM Timer1 CH4 테스트 CH32V003에서 PC4(TIM1_CH4) 에서 PWM 출력을 해야 하는 프로젝트가 있어 테스트 중인데 PWM출력이 나오지 않는다. 예전에 CH32V003 보드에서 테스트 했던 코드를 확인해 볼까..   [CH32V003-SSP] 보드에 실장되어 있는 LED는 T1CH4(PC4) 에 서 테스트 해 보자    #include "debug.h"/* PWM Output Mode Definition */#define PWM_MODE1 0#define PWM_MODE2 1/* PWM Output Mode Selection */#define PWM_MODE PWM_MODE2void TIM1_PWMOut_InitCH4(u16 arr, u16 psc, u16 ccp){ GPIO_InitTypeDef GP..
[CH32V003-SSP] CH32V003J4M6 SOIC-8 핀 테스트 보드 제작 가장 저렴한 MCU CH32V003 시리즈 중에서 핀수가 적은 SOIC-8 핀의 CH32V003J4M6 은 소형이고 간다한게 무엇인가 만들어야 할때 사용하면 좋을것 같아 테스트 보드를 SSP-EVM 형태로 제작해 보았다.ATtiny13 SS EVM 보드와 비슷한 형태로 제작 했다.
CH32V003 - VS Code를 이용한 PIO(PlatformIO) 개발환경 설정 저렴한 CH32V003은 다양한 개발 환경을 제공한다. VS Code 에서 PIO(PlatformIO) 개발환경으로 컴파일 가능하다고 해서 테스트 해 보았다. 우선 VS Code PlatformIO설정에서 Advancde platform installation으로 CH32V 를 install 해 주어야 한다. https://github.com/Community-PIO-CH32V/platform-ch32v.git 를 추가 해주면 된다. 정상 인스톨 되면 결과 화면을 볼 수 있다. 새로운 프로젝트를 생성한다. 알맞은 칩셋(보드)를 선택하고 Framework를 설정해서 새로운 프로젝트를 생성할 수 있다. 간단히 기본 예제를 생성하고 동작 테스트를 해 보자. #include "debug.h" void GPIO_..
CH32V003 SSM - Iperf로 W5500의 TCP Throughput 측정 테스트 100원대 MCU로 유명한 CH32V003에서 W5500 모듈보드를 이용하여 이더넷 전송률 테스를 해 보자.그러면 정말 저렴한 이더넷 솔루션이 되지 않을까? 아쉽게도 플래시 용량 문제로 Arduino 환경에서는 사용할 수 없다. CH32V003 SSM - 개발환경(MounRiver)을 이용하여 테스트 했다. 우선 프로젝트를 생성하고 ioLibrary Driver를 다운 받아 복사 한다.   CH32V003 SPI 초기화 함수를 작성한다.void SPI_FullDuplex_Init(void){ GPIO_InitTypeDef GPIO_InitStructure = {0}; SPI_InitTypeDef SPI_InitStructure = {0}; RCC_APB2PeriphClockCmd(RCC..
CH32V003 - MAX31855 온도 센서 테스트(플래시 메모리 문제 발생) CH32V003에서 Arduino IDE에서 MAX31855 예제를 컴파일 하면 에러가 발생 한다.https://nexp.tistory.com/2500 region `FLASH' overflowed by 10576 bytes플래시 메모리 용량이 부족하다. CH32V003과 같이 메모리가 부족한 MCU에서 Arduino 코드로 작성하면 문제가 될것 같다. 라이브러리를 사용하지 않고 직접 작성해 보자#include #define MAX31855_CS_BIT PC0#define MAX31855_CS_LO() digitalWrite(MAX31855_CS_BIT, 0)#define MAX31855_CS_HI() digitalWrite(MAX31855_CS_BIT, 1)#de..
CH32V003-USB SSM 보드 제작 CH32V003 SSM 보드는 CH32V003의 다양한 패키지를 테스트하기위해 만들었는데 USB 소프트웨어 스택으로 USB기능도 할수 있다고 해서 TSSOP-20핀 타입의 USB 커넥터가 있는 CH32V003-USB SSM 보드를 제작 해 보았다. USB 소프트 스택은 https://github.com/cnlohr/rv003usb 에서 다운 받을 수 있다. CH32V003-USB SSM 보드 회로도     USB는 PD3, PD4에 할당되어 있다.
CH32V003 SSM - Arduino PWM 테스트 Adruino 환경에서 PWM도 정상 동작하지 않는다. CH32V003 Arduino ADC테스트 에서와 같이 variant_CH32V003F4.h 파일을 확인해 보니 TIM_MODULE_ENABLED가 설정되어 있지 않다. Enable 하고 컴파일 하면 에러가 발생한다. pwm_start() 함수에서 TimerCompareFormat_t 가 정의 되어 있지 않다고 한다. C:\Users\jhpark\AppData\Local\Temp\arduino\sketches\0CFD1DECB3444CB36B9C51B7C2E4C6C8\sketch\AnalogInOutSerial.ino.cpp:1: C:\Users\jhpark\AppData\Local\Arduino15\packages\WCH\hardware\ch32v..