STM32- Clock tree

2022. 12. 16. 14:19· Project/나만의 주점(STM32,Arduino,android)
목차
  1. 직접주소로 접근하는 방식이 아닌 정의된 주소 값사용법
  2.  
  3. Clock의 개념
  4. 시리얼 통신
  5. GPIO 설정
  6. Baud rate Example
  7. Clock을 이용한 시리얼 통신
  8.  
  9. 오실로스코프 아날로그 측정 방법

직접주소로 접근하는 방식이 아닌 정의된 주소 값사용법

 

Clock의 개념

 

HSI Clock (High-speed internal)

  • HSI Clock은 8 MHz RC 오실레이터에서 생성됨.
  • 생성된 Clock은 시스템 클럭으로 사용하거나, PLL Clock으로 사용 가능하다.
  • PLLCLK = HSI RC / 2 * PLLMUL

 

HSE Clock (High-speed external)

  • HSE OSC에서 25 MHz 클럭을 생성한다.
  • 생성된 클럭은 바로 시스템 클럭으로 사용하거나,  PLL Clock으로 사용할 수 있다.
  • 1.PLLCLK = HSE OSC / PREDIV1 * PLLMUL
  • 2.PLLCLK = HSE OSC / PREDIV2 * PLL2MUL / PREDIV1 * PLLMUL

 

Clock Tree

  • HSI, HSE, PLL 중 SW MUX에 의해 시스템 클럭(최대 72MHz)으로 설정될 수 있다. 
  • 시스템 클럭은 APB1, APB2에 전달된다.
  • 시스템 클럭은 MCO MUX를 통해서 MCO에 출력해 오실로스코프로 확인이 가능하다

  • 시스템 클럭을 APB1 prescaler을 이용해 최대 36MHz 클럭을 PCLK1에 제공 가능하다.
  • 시스템 클럭을 APB2 prescaler을 이용해 최대 72MHz 클럭을 PCLK2에 제공 가능하다.

 

  • FCLK : Cortex System(CPU)에서 사용되는 Clock
  • HCLK : DMA, Core memory, AHB Bus에서 사용되는 Clock
  • PCLK : APB Bus에 사용되는 Clock

 

PLL(Phase-Locked Loop)

  • PLL은 위상 동기 회로이며, 입력 신호와 출력신호를 이용해 출력신호를 제어하는 시스템을 말한다.
  • 입력된 신호에 맞추어 출력 신호의 주파수 조절이 목적이다.
  • 1.HSE 오실레이터에 Clock(25MHz)을 생성
  • 2.주어진  MUX와 DIV, MUL을 이용해 원하는 시스템 클럭을 만든다.

 

시리얼 통신

Parallel Communication(병렬 통신)

•여러 개의 데이터 선을 이용해, 각각의 선에 비트를 하나씩 보내는 방법
 

Serial Communication(직렬 통신)

•하나의 데이터 선을 이용해 비트를 차례로 보내는 방법
•속도는 느리나, 데이터 선을 연장하기 위한 비용이 적음

 

 USART (Universal Sync/Async Receiver/Transmitter)

  • 동기식 통신을 지원하는 UART
  • 데이터 동기화를 위해 같은 클럭을 사용함
  • 클럭 전송을 위한 별도의 클럭선 필요
  • Start bits/ Stop bits가 없고 Data bits를 클럭에 동기화해 전송
 

Universal Asynchronous Receiver/Transmitter (UART)

 

  • 비동기 통신 프로토콜
  • Rx(데이터 수신)와 Tx(데이터 송신) 교차연결
  • 비동기 통신이기 때문에 Baud Rate를 일치 시켜야 한다.
  • Baud Rate란 초당 얼마나 많은 심볼(의미 있는 데이터 묶음)을 전송할 수 있는가

  • Start bit : 통신의 시작을 의미하며 1bit 길이 만큼 유지. “이제부터 정해진 약속에 따라 통신을 시작한다"라는 의미
  • Data bit : 8~9 bit의 데이터를 전송. Bit의 개수는 레지스터 설정에 따라 다름
  • Parity bit : 에러 검사를 위한 값. 수신 측에서 이 bit를 이용해 에러 검사
  • Stop bit : 통신의 종료를 알림. 레지스터에 따라 1, 1.5, 2bit로 설정

 

패리티 비트:

  • 데이터 송수신 시 오류로 인해 bit가 1 -> 0 또는 0 -> 1로 바뀌었을 때 확인할 수 있는 보호장치
  • 에러 발생 여부는 확인 가능하나, 오류 수정은 불가
  • 수신 측에서 에러 발생 여부 확인 후, 데이터 재요청 가능

 

Even parity, Odd Parity 설정에 따라, Parity bit의 값이 다름

  • Even Parity : (전송하고자 하는 데이터 + parity bit) 중 1인 bit의 개수가 짝수
  • Odd Parity : (전송하고자 하는 데이터 + parity bit) 중 1인 bit의 개수가 홀수
  • Even, Odd 설정은 송수신 측이 미리 동기화되어 있어야 함.

 

GPIO 설정

 

Baud rate Example

 

 

Clock을 이용한 시리얼 통신

해당 Serial Port를 PC와 연결해 Serial 통신

 

오실로스코프 아날로그 측정 방법

1번 : 신호를 Analog로 받기 위해 설정

2번 : Meas 버튼 눌러 측정 시작

3번 : frequency 모드로 변경

4번 : 화면에 frequency 출력

5번 : Auto scale 버튼 누르면 그래프가 깔끔해짐

 

 

 

 

 

작성코드 및 보고서: https://github.com/yunzae/Embeded-System/tree/main/Embeded/5주차

 

'Project > 나만의 주점(STM32,Arduino,android)' 카테고리의 다른 글

STM32- LCD 및 ADC  (0) 2022.12.16
STM32-블루투스  (1) 2022.12.16
STM32- Interrupt 방싱을 활용한 GPIO 제어 및 UART 통신  (0) 2022.12.16
STM32- Scatter file  (0) 2022.12.16
STM32- GPIO 제어  (0) 2022.12.16
  1. 직접주소로 접근하는 방식이 아닌 정의된 주소 값사용법
  2.  
  3. Clock의 개념
  4. 시리얼 통신
  5. GPIO 설정
  6. Baud rate Example
  7. Clock을 이용한 시리얼 통신
  8.  
  9. 오실로스코프 아날로그 측정 방법
'Project/나만의 주점(STM32,Arduino,android)' 카테고리의 다른 글
  • STM32-블루투스
  • STM32- Interrupt 방싱을 활용한 GPIO 제어 및 UART 통신
  • STM32- Scatter file
  • STM32- GPIO 제어
윤재에요
윤재에요
yunzae.log윤재에요 님의 블로그입니다.
윤재에요
yunzae.log
윤재에요
전체
오늘
어제
  • 분류 전체보기 (438)
    • Computer Science (115)
      • 데이터베이스 (50)
      • 네트워크 (18)
      • 소프트웨어 공학 (1)
      • 알고리즘 (10)
      • 자료구조 (9)
      • 컴퓨터구조 (0)
      • 운영체제 (0)
      • 데이터 통신 (16)
      • 프로그래밍언어론 (11)
    • Project (20)
      • 후크(Flutter) (1)
      • BDSR로그북(App,BackEnd) (2)
      • 나만의 주점(STM32,Arduino,androi.. (9)
      • 공다(App,BackEnd) (2)
      • 카카오쇼핑 클론코딩 (4)
      • 암호화폐자동매매 (2)
    • Problem Solving (208)
      • 자바 문법 (20)
      • 파이썬 문법,함수 (6)
      • 그리디 (5)
      • 구현 (43)
      • DFS (3)
      • BFS (17)
      • 정렬 (15)
      • 이진 탐색 (16)
      • 다이나믹 프로그래밍 (6)
      • 최단 경로 (5)
      • 그래프 (1)
      • 자료구조 (5)
      • 투포인터 (15)
      • SQL (44)
      • 구간합 (7)
    • I leaned (78)
      • 스프링,스프링부트 (31)
      • Git (6)
      • JAVA (5)
      • Etc (30)
    • 취업 (15)
      • PT면접 (6)
      • 기술면접 (9)
      • 인성면접 (0)
    • log (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

공지사항

인기 글

태그

  • 교환정렬
  • 다이어그램
  • Relationship model
  • 개미전사
  • 이것이 코딩테스트다.
  • 힙큐
  • 그리디
  • 플로이드 워셜
  • 파이썬
  • 다이나믹프로그래밍
  • 계수정렬
  • 제약 사항
  • 최단 거리
  • 참조 무결성
  • E-R Model
  • 카카오테크캠퍼스
  • UML
  • 다이나믹
  • 다익스트라
  • 기수정렬
  • 데이터베이스
  • DP
  • 재시도
  • 부품찾기
  • 이것이 코딩테스트다
  • 이것이코딩테스트다
  • 효율적인화폐구성
  • 최단거리
  • 먀
  • weak entity

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
윤재에요
STM32- Clock tree
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.