본문 바로가기

PWM

(15)
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..
nRF52 xBee EVM - 기본 동작 테스트 - PWM 테스트 (IAR) [nRF52 xBee EVM] 보드의 LED를 이용하여 PWM 테스트를 해 보자 nRF5 SDK 예제 /examples/peripheral/pwm_library 를 이용한다. LED는 IO17, IO19에 할당되어 있다. nRF5x PWM 테스트 소스 코드를 nRF51822 xBee EVM 보드에 맞도록 수정해서 구동하면 LED가 스무스하게 점등되는것을 확인 할 수 있다. APP_PWM_INSTANCE(PWM1,1); // Create the instance "PWM1" using TIMER1. static volatile bool ready_flag; // A flag indicating PWM status. void pwm_ready_callback(uint32_t pwm_id) // PWM call..
STM32H7 CubeMx를 이용한 PWM출력 테스트 - 1Mhz PWM STM32H7 CubeMx를 이용한 PWM출력 테스트 - 1Mhz PWM STM32CubeMx를 실행해 프로젝트 생성후 핀맵 할당한다.STM32H7_EVM 보드의 TIM2_CH1(PA5)에 PWM출력 되도록 했다. TIM2에서 PWM 모드 설정해 주면 된다. STM32H7 CubeMx 프로젝트 생성후 아래와 같이 HAL코드(HAL_TIM_PWM_Start 함수)로 PWM 출력을 시작 할 수 있다. HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1); //주파수 편경 TIM2->ARR = 100-1;// 100 x 5ns //펄스폭 가변 TIM2->CCR1 = 50-1; 생성된 코드를 돌려보면 PWM이 2Mhz로 출력이 된다.뭐가 설정이 잘못 되었나?APB2 클럭 최대가 100Mhz로..
#ESP ArduinoEXP - ESP8266 PWM 테스트(3색 LED제어) #ESP ArduinoEXP - ESP8266 PWM 테스트(3색 LED제어) ESP8266의 데이터 시트를 보면 4개의 PWM을 제공하고 소프트웨어 타이머로 구동이 된다고 나와 있다. 최소 레졸루션이 44ns 이고... PWM 주파수는 100hz ~ 1khz 로 되어 있다. 아주 정밀하지는 않을것 같고... 일단 테스트 해 보자 #ESP Ardunio EXP 보드에는 PWM 테스트를 위해 3색 LED가 연결되어 있고 JP13에서 LED의 전원을 공급할 수 있다. PWM을 이용하여 LED색상 변경 테스를 해 볼 수 있다. analogWriteFreq() 함수로 주파수를 설정 할 수 있고 analogWrite() 함수로 출력 핀과 PWM 주기를 설정 할 수 있다. 스펙상에는 IO12, 14, 15, 4가 ..
STM32 CubeMX - PWM HAL Code 테스트 STM32 CubeMX - PWM HAL Code 테스트 STM32F0의 TIMx 클럭은 PCLK가 소스가 된다. 쵀대 48Mhz로 설정 가능 STM32CubeMX 를 이용하여 TIM1, TIM3 설정탭에서 PWM을 설정한다. 파라 미터 설정은 적정한 값으로 설정한다. 10khz 주파수로 PWM 출력을 하려면 어떻게 설정 해야 할까?10Khz는 100us 이므로 ARR 레지스터에 100us가 되는 값을 설정하면 된다. 먼저 48Mhz를 48로 나누어 1Mhz -> 1us로 되도록 하고 ARR값에 100을 넣으면 100us 가 된다. (주의 사항은 0부터 시작하므로 1을 빼준 값을 설정해야 한다.) //프리스케이일 TIM1->PSC = 48-1; //주파수 편경 freq = 100;// 100us TIM1..
dsPIC33 PWM 테스트 dsPIC33 PWM 테스트 dsPIC33FJ32MC302/304, dsPIC33FJ64MCX02/X04 and dsPIC33FJ128MCX02/X04 시리즈는 Motor Control PWM (MCPWM)을 제공하기 때문에 모터 제어용 PWM만 테스트 했는데 이번에 일반 dsPIC33은 MCPWM모듈을 제공하지 않기 때문에 Output Compare module를 이용하여 PWM을 출력 할수 가 있다. 블록도를 보면 Timer2, 3을 기준으로 PWM을 생성할 수 있다. PWM출력은 OCFA(OC1:PD0~OC4:PD3) 핀과 OCFB(OC5:PD4~OC8:PD7) 핀에 할당되어 있다. OCxCON: Output Compare x Control Register OCTSEL: Output Compare ..
STM8S - PWM테스트 (DC모터 속도 제어) STM8S - PWM테스트 (DC모터 속도 제어) 16비트 타이머 TIM1, TIM2를 이용하여 PWM출력을 각각 4, 3채널씩 출력 가능하다. 그리고 특이사항으로 PD4는 BEEP 핀이고 1, 2 , 4 kHz 로 사운드 출력을 할수 있다. (이 기능을 사용하려면 옵션비트 AFR7 을 리맵해야 한다고 한다.)PC6(HS)/SPI_MOSI [TIM1_CH1] PC7(HS)/SPI_MISO[TIM1_CH2] PC3(HS)/TIM1_CH3/[TIM1_CH1N] PC4(HS)/TIM1_CH4/CLK_CCO/AIN2/[TIM1_CH2N] PD4(HS)/TIM2_CH1/UART1_CK/BEEP PD3(HS)/TIM2_CH2/AIN4/ADC_ETR PA3(HS)/TIM2_CH3/[SPI_NSS] PC5(HS)/SP..
dsPIC33E - PWM 테스트 (HIGH-SPEED PWM MODULE) dsPIC33E - PWM 테스트 (HIGH-SPEED PWM MODULE) dsPIC33EPXXXMC20X/50X 시리즈는 모터제어를 위해 3채널(6 PWM)의 HIGH-SPEED PWM MODULE 이 있다.70Mhz에서 7.14 ns의 듀티폭을 제어할 수 있다. dsPIC33E PWM 핀맵26-PWM1L/T5CK/RB1525-PWM1H/T3CK/RB14 24-PWM2L/CTPLS/RB1323-PWM2H/RB12 22-PWM3L/RB1121-PWM3H/RB10 dsPIC33E PWM 블록도 dsPIC33E PWM 초기화 코드void InitMCPWM(void){ PTCON = 0x0000; PTPER = 16000; //1000 PHASE1 = 0; PDC1 = 16000; DTR1 = 0; ALTD..

반응형