Toby's Study Blog
article thumbnail
[stm32] I2C 통신 실습
embedded 2023. 9. 11. 20:55

🧿 실습 목표 1. F429zi와 HD44780 연결 2. i2c_HD44780.h, i2c_HD44780.c, app.c 파일 생성 3. LCD 문자열 출력 확인 🧿 I2C 설정 🧿 실습 결과 https://github.com/Tobbyvv/stm32-project/tree/main/lcd_I2c F429zi와 HD44780 연결 I2C 모듈의 VCC, 백라이트, GND를 CN8 커넥터의 5V와 GND에 연결 I2C 모듈의 SCL과 SDA를 CN7 커넥터의 PB8, PB9핀과 연결 i2c_HD44780.h, i2c_HD44780.c, app.c 파일 생성 2.1 i2c_HD44780.h #ifndef __I2C_HD44780__H__ #define __I2C_HD44780__H__ #ifdef __cp..

article thumbnail
[stm32] I2C 통신 이론 정리
embedded 2023. 9. 11. 16:57

🧿 I2C (Inter-Integrated Circuit) 통신이란? MCU(Master) - 소자(Slave)간에 데이터를 주고 받는 통신 방법 중 하나이며 클락 선, 데이터 선을 이용하여 통신한다. 각 선에 연결되어 있는 저항을 통해 전압을 인가시켜 두 선을 모두 High(Enable) 상태로 만든 후 MCU를 통해 해당 선에 통신에 필요한 신호를 보내 통신한다. (※ MCU(Master)에서 전체적으로 통신을 제어하며 떄문에 Slave 끼리의 독자적인 통신은 대체로 하지 않는다.) 🧿 Master Master는 보통 사용하는 MCU를 나타내며 다음과 같은 역할을 한다. 1. I2C 통신 시작 및 중지 제어 I2C 통신에 대한 시작 및 정지가 필요할 때 시작 및 정지 시킨다. 2. 슬레이브 주소 지정..

article thumbnail
[stm32] ADC & DMA 실습
embedded 2023. 9. 6. 21:19

🐳 실습 목표 1. 외부 온도 센서 - F429zi 연결 2. DMA를 통해 들어온 기본 값 확인 3. DMA를 통해 들어온 ADC 외부 온도 센서 값, 내부 장치 Vref 값, 내부 온도 센서 값 확인 🐳 ADC 세팅 ADC1 파라미터 세팅 1.1 Mode Independent mode : MCU 내부 ADC 기능 사용 1.2 Clock Prescaler CPU Clock을 사용하여 ADC 변환이 이루어지는데 시스템의 클럭 속도가 너무 빠를 필요가 없으며 전력 소비 효율성 및 주파수 범위 내에서 안정적으로 동작을 위해 CPU clock을 나눠서 사용한다.(※ 최소 4 이상) (※ F429zi PCLK2 (Peripheral Clock 2)의 경우 90MHz 이므로 4로 나눌 경우 22.5MHz가 된다...

article thumbnail
[stm32] ADC & DMA 이론 정리
embedded 2023. 9. 6. 20:11

🐳 ADC란? (Analog - to - Digital Converter) MCU에서 처리가 불가능한 아날로그 신호가 들어왔을 때 처리가 가능한 디지털 신호(1 또는 0)로 바꿔주는 장치이다. 대부분의 MCU에는 ADC 장치가 내장되어 있다. 🐳 아날로그 신호 -> 디지털 신호 변환 방법 아날로그 신호 -> 디지털 신호로 변환하기 위해서 1) 필터링 -> 2) 샘플링 -> 3) 양자화 -> 4) 부호화 과정을 거쳐야 하며 각 과정에 대한 설명은 아래와 같다. 1. 필터링 아날로그 신호에서 원하는 대역을 설정해 원치 않게 들어온 원하지 않는 대역의 신호(노이즈 신호)를 제거한다. 2.샘플링 필터링된 신호를 x축(시간) 기준으로 쪼개고 쪼갠 시간에 따른(x값에 따른) y 값들을 얻는다. (※ 많이 쪼갤수록 ..

article thumbnail
[stm32] UART 실습
embedded 2023. 8. 30. 14:17

🌏 실습 목표 1. PC - MCU Uart Polling & Interrupt 두가지 방식 문자열 송수신 테스트 2. PC - MCU Uart 통신 연결을 위한 uart.c 파일 생성 3. Command Line Interface (CLI)의 기능 구현을 위한 cli.c 파일 생성 4. 수행할 동작 led.c, pwm.c 파일 생성 🌏 Uart 세팅 여기서 USART는 각종 통신 프로토콜(e.g. UART, SPI, I2C 등..)을 구현하고 서비스하는 포트이지 USART 통신이 아니다. 1. UART 세팅 1.1 Word Length 한 번의 데이터 전송에서 사용할 수 있는 비트 수를 설정 8비트이면 0부터 255까지의 값이므로 대부분의 값을 표현할 수 있으며 더 낮거나 더 높을 경우 호환성, 효율성..

article thumbnail
[stm32] UART 이론 정리
embedded 2023. 8. 16. 16:22

먼저 이해하는데 있어 필요한 직렬 통신, 병렬 통신, 통신 방법, 동기 방식, 비동기 방식에 대해 알아보았습니다. 🌏 직렬 통신 (Serial 통신) - 하나의 경로를 통해 데이터를 순차적으로 전달하는 통신 - 라인이 하나라 구조적으로 매우 간단하며, 양단간 송수신 거리가 멀어도 큰 제한이 없다. 🌏 병렬 통신 (Parallel 통신) - 다수의 경로를 통해 여러 데이터를 한 번에 전달 - 라인이 여러 개 이기 때문에 데이터를 동시에 빠르게 송수신 가능하나 한 번에 훨씬 많은 데이터가 오가므로 거리가 멀수록 직렬 통신에 비해서 더 높은 자원(전력)이 소모되며 초기 설치 시 하드웨어적 비용이 더 발생한다. 🌏 통신 방법 - 통신하는 방법은 직렬 통신, 병렬 통신 둘 다 동일하며 아래와 같다. Transmi..

article thumbnail
[stm32] Timer 실습
embedded 2023. 8. 16. 15:38

⏰ 실습 목표 PWM (펄스 폭 변조) 신호를 LED1이 연결된 포트에 전달하여 LED를 작동시키고 DutyCycle을 변경시켜 LED의 밝기를 아래 2가지 방법으로 변경한다. 1.1 시간 경과에 따라서 LED 밝기를 변경시킨다. 1.2 버튼 눌름 여부에 따라서 LED 밝기를 변경시킨다. ⏰ Tim3 세팅 동작을 알아보기 위해서 TIM2, TIM3(General Purpose Timer)의 세팅을 각각 아래와 같이 하였습니다. 위 그림에서 LD1과 연결된 Pin은 PB0임을 알 수 있으며 PB0에 TIM3_CH3를 연결하였습니다. Counter Settings Prescaler와 Counter Period 설정을 통해 타이머 동작 설정 1. TIM2 Prescaler : 8399, Counter Peri..

article thumbnail
[stm32] Timer 이론 정리
embedded 2023. 8. 16. 15:28

타이머에 대해 알아보기에 앞서 주기, 주파수, 펄스, 클락, 카운터 개념을 먼저 알아보았습니다. ⏰ 개념 정리 주기 0에서 특정 값(1 또는 -1)으로 변했다가 다시 0으로 변하는 데 걸리는 시간(단위 : s, ms 등의 시간 단위) 주파수 1초 당 몇 번이나 0과 1이 변경되었는지 횟수를 나타냄(e.g. 84 MHz -> 1초에 84 x 1,000,000번 0과 1이 반복) 주기와 주파수는 아래와 같은 관계를 가진다. 펄스 펄스는 신호나 에너지의 변화를 말하며 병원 또는 드라마에서 보았던 심장박동 그래프가 대표적인 예시이다. 펄스는 신호에 따라 여러 모양을 가질 수 있으며 모양에 따라 여러 종류로 나뉘게 된다. 클락 클락은 논리상태 H(high, 1)와 L(low, 0)이 규칙적(주기적)으로 아래와 같..

검색 태그