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

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

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 |