직접주소로 접근하는 방식이 아닌 정의된 주소 값사용법
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 |