pwm 주기 강의 질문드립니다.
520
投稿した質問数 9
PWM 3번째 강의 10분 39초 내용 질문 드려봐요~
ARR 대신 프리스케일러를 변경하여 PWM을 바꾸는 내용이 이해가 잘 안되는데요.
TIM2->CCR1 = ARR레지스터 값 / 2를 ARR값이 바뀌지 않는다고 지우셨는데
while문 전에 초기화에서는 ARR /2를 CCR레지스터에 설정 해줘야하지않나요?
그래야 50% 토글이 될 것 같아서요.
추가적으로 CubeMX에서 PWM 설정을 할 때 Internal clock을 선택해주는데
내부 클락은 정확도가 떨어진다고 들었는데 Internal clock 으로밖에 못하는건가요?
아니면 PWM 정확도와 내부 클락 선택 여부와는 관계가 없는건가요??
감사합니다~
回答 1
1
안녕하세요.
TIM2->CCR1 = ARR / 2; 를 지워도 동작하는 이유는 이미 강의영상 9분4초에 CubeMX에서 PWM Generation Channel1의 Pulse에 ARR의 반인 84를 초기화 해줬기 때문입니다. 이 값은 한번 초기화되면 그 후 값을 바꾸지 않는다면 PSC를 바꾸더라도 50%의 펄스폭이 유지됩니다.
Timer의 Internal clock에 대해서, 여기서 말하는 Internal clock은 STM32 내부의 RC 발진기가 아니고, 타이머 페리페럴로 공급되는 clock을 의미합니다.
타이머로 공급되는 clock은 강의 맨 처음 RCC를 설정할 때 HSE (High Speed External) clock으로 설정되었기 때문에, 회로도 상 외부 Crystal 클럭이 입력되고 그게 PLL을 통해 타이머에 168MHz 또는 84MHz로 공급됩니다. 따라서 정확도는 Crystal의 정확도를 따라가겠죠.
만약 RCC 설정할 때 HSI (High Speed Internal) 로 선택했다면 칩 내부 RC 발진기를 통한 clock이 전체 시스템에 공급되고 타이머 역시 이를 사용하기 때문에 RC 발진기의 정확도를 따라갑니다. 그 경우 정확도가 매우 떨어집니다.
그리고 Timer의 External 클럭은 타이머의 외부 클럭 입력핀으로 공급된 clock으로 사용하는 기능입니다. 이것은 HSE의 외부 Crystal이나 HSI의 내부 RC발진기와는 다른 입력을 사용하는 경우에 사용하고 특정 타이머의 경우에만 이 기능을 지원합니다.
즉, 타이머의 내부, 외부 클럭과 시스템에 공급되는 HSE, HSI, LSE, LSI 등은 다른 개념이므로 이걸 이해해두시면 될 것 같습니다.
0
우선 빠른 답변 감사드립니다~
1번 질문은 잘 이해한 것 같습니다.
2번에서
타이머가 mcu의 외부 핀에 연결하여 사용하는 클락 : 외부 클락 이고
강의에서 mcu에서 사용 하는 내부 클락을 사용한다는 의미로 Internal clock으로 체크박스에 체크를 한거라고 이해하면 될까요?
0
네 맞습니다.
타이머를 내부클럭으로 동작시키면 RCC 설정에 의해 공급되는 시스템 클럭을 타이머 클럭으로 사용합니다.
타이머를 외부클럭으로 동작시키려면 TIMx_ETR 핀에 클럭을 입력시켜주어야 합니다.
PWM 실시간 변경 시 ARR이 아닌 PSC 레지스터를 제어해야 하는 이유
0
163
1
클럭설정
0
320
1
SDIO구현
0
429
1
CANable 구매 후 STM32F407V_EduBoard_Ver1.22와 연결 뒤 통신이 안됩니다.
0
309
1
CAN 통신에 사용되는 CANable 보드의 펌웨어
0
1494
2
서보모터 질문
0
344
2
서보모터 제어
0
499
1
IrDA 통신
0
294
1
파일 생성이 되지 않습니다
0
326
1
파일이 없습니다.
0
358
1
사용 프로그램이 맞나요?
0
363
4
선택사항을 실행할 수 없으며 최신 실행 작업이 없습니다. 질문
0
541
1
TrueSTUDIO가 뜨지 않습니다.
0
594
1
가감속 테이블
0
411
1
개인정의 질문
0
352
1
임베디드 공부
0
560
1
새로운 모듈 새로운 라이브러리
0
354
1
포트 설정 문제
0
467
1
서보모터
0
276
1
예제코드, 회로도 요청드립니다.
0
239
1
보드 구매후 구매확정 하였습니다.
0
227
1
예제코드 및 회로도 요청 건
0
268
1
PWM 생성 주기에 따른 차이점은 어떤것이 있나요?
0
577
1
int _write 함수 관련 문의
0
569
1

