본문 바로가기

분류 전체보기166

8051 SPI 비트뱅 코드 구현 : 모드 선택 가능 예제 AT89C51 마이크로컨트롤러에서 SPI(Serial Peripheral Interface)를 비트뱅 방식으로 구현한 C 코드를 소개합니다. 이 코드는 SCLK, MOSI, MISO, SS 라인을 소프트웨어로 제어하며, SPI 모드(0~3)를 사용자가 선택할 수 있도록 설계되었습니다. 8051 기반 SPI 통신을 배우는 초보자부터 고급 개발자까지 활용 가능한 예제입니다.키워드: 8051 SPI, AT89C51, 비트뱅, SPI 모드 선택, 마이크로컨트롤러 통신1. 하드웨어 설정마이크로컨트롤러: AT89C51 (8051 기반)SPI 핀:SCLK: P2.0 (클럭)MOSI: P2.1 (마스터 출력, 슬레이브 입력)MISO: P2.2 (마스터 입력, 슬레이브 출력)SS: P2.3 (슬레이브 선택)컴파일러: K.. 2025. 8. 22.
STM32 ADC 샘플 타임 설정 방법과 실무 팁 STM32 마이크로컨트롤러의 ADC는 샘플 앤 홀드 방식으로 아날로그 신호를 디지털 값으로 변환합니다. STM32 ADC 샘플 타임 설정은 변환 정확도와 성능에 큰 영향을 미칩니다. 이 글에서는 STM32 ADC 샘플 타임 설정 방법과 실무 팁을 이론과 실용적으로 설명하겠습니다.STM32 ADC 샘플 타임이란STM32 ADC 샘플 타임은 입력 전압을 샘플링 캐패시터(\(C_{adc}\))에 충전하는 시간으로써, STM32에서는 ADC 클럭 사이클 단위(예: 1.5, 7.5, 28.5, 55.5 사이클)로 설정됩니다. 샘플 타임이 너무 짧으면 캐패시터가 충분히 충전되지 않아 ADC 값이 부정확해지고, 너무 길면 변환 속도가 느려집니다.(STM32 ADC 샘플 타임에 영향을 미치는 요소STM32 ADC 샘플.. 2025. 8. 21.
STM32 에서 PWM Soft Start 구현: 모터와 LED 제어를 위한 부드러운 시작 STM32 마이크로컨트롤러를 사용해 PWM 신호(PWM signal)를 생성할 때 Soft Start(소프트 스타트, Soft Start) 기능을 구현하는 방법을 알아보겠습니다 . Soft Start는 PWM 듀티 사이클(PWM duty cycle)을 점진적으로 증가시켜 모터, LED, 전원 공급 장치 등의 부하에서 급격한 전류 변화를 방지합니다. 이 글에서는 STM32CubeMX와 HAL 라이브러리(HAL library)를 사용한 두 가지 구현 방법(소프트웨어 기반, 타이머 인터럽트 기반)을 상세한 주석이 포함된 예제 코드와 함께 설명합니다 . 초보자도 쉽게 따라 할 수 있도록 구성했습니다 키워드 (Keywords): STM32 PWM, Soft Start, 듀티 사이클 (Duty Cycle), 타이.. 2025. 8. 21.
양방향 전력 전송 공진형 CLLC 컨버터 설계 절차 CLLC 컨버터는 고효율, 고전력 밀도, 양방향 전력 전송이 가능한 공진형 DC-DC 컨버터로, 전기차 충전, 재생에너지 시스템, 데이터센터 전원 등에 적합합니다. 아래는 표준 설계 절차로, 특정 요구사항에 따라 조정 가능합니다.1. 설계 사양시스템 요구사항을 명확히 정의하며, 양방향 동작 시 포워드/백워드 모드 고려.입력/출력 전압 (\( V_{in}, V_{out} \)): 예: \( V_{in} = 380~\mathrm{V} \sim 420~\mathrm{V}, V_{out} = 48~\mathrm{V} \)정격 전력 (\( P_{out} \)): 예: \( 3~\mathrm{kW} \)스위칭 주파수 (\( f_s \)): \( 100~\mathrm{kHz} \sim 500~\mathrm{kHz} .. 2025. 8. 21.
Arduino UNO R4에서 DMA 설정 및 사용하기 아두이노 UNO R4는 Renesas RA4M1 마이크로컨트롤러를 기반으로 하며, **DMA(Direct Memory Access)**를 통해 CPU 개입 없이 고속 데이터 전송을 지원합니다. 이 가이드는 UART를 이용한 DMA 설정을 중심으로, Renesas의 FSP(Flexible Software Package)와 레지스터 직접 설정 방법을 상세히 설명합니다. 초보자도 따라 할 수 있도록 단계별로 구성했으며, 디버깅 팁과 레지스터 설정의 주의점을 포함했습니다.키워드: 아두이노, DMA, DTC, LSM6DSO, Arduino UNO R4, DMA 설정 가이드, Arduino UNO R4 Minima DMA 사용DMA와 DTC란?DMA(Direct Memory Access): CPU 없이 메모리 간 .. 2025. 8. 20.
[C2000]2025년 기준 TI C2000 DSP 제품군 사양 상세 분석 Texas Instruments의 C2000 제품군은 모터 제어, 디지털 전원 관리, 산업 자동화 등 실시간 제어 애플리케이션에 최적화된 고성능 마이크로컨트롤러(MCU)입니다. 본 포스트에서는 2025년 기준 최신 시리즈(F29H85x, F28P55x, F2838x, F28004x)의 사양을 테이블로 비교하고 주요 특징을 분석합니다.C2000 제품군 사양 비교 테이블특징F29H85x 시리즈TMS320F28P55x 시리즈F2838x 시리즈F28004x 시리즈아키텍처64비트 C29x DSP 코어 (트라이-코어)32비트 C28x + NPU32비트 C28x + ARM Cortex-M432비트 C28x클럭 속도최대 200MHz최대 150MHz최대 200MHz (듀얼 코어)최대 100MHz플래시 메모리최대 4MB최.. 2025. 8. 20.
PGA302 Sensor Signal Conditioner IC STM32용 I2C 드라이버 구현 이 문서는 STM32 마이크로컨트롤러에서 I2C 인터페이스를 통해 PGA302 센서 신호 컨디셔너를 제어하는 드라이버 구현 방법을 설명합니다. PGA302는 압력 및 온도 센서 신호를 처리하기 위한 고정밀 아날로그 프론트엔드(AFE) 장치로,STM32Cube HAL 라이브러리를 사용하여 I2C를 통해 레지스터 설정 및 데이터 읽기가 가능합니다.키워드 (Keywords): PGA302 STM32 I2C Driver, STM32Cube HAL I2C Communication, PGA302 Register Configuration Example,Sensor Signal Conditioner (Pressure & Temperature)PGA302 사양PGA302는 Texas Instruments에서 제공하는 저.. 2025. 8. 20.
AVR128DB48 클럭 설정 상세 가이드 AVR128DB48 마이크로컨트롤러의 클럭 시스템은 유연성과 저전력 설계를 지원하며, 다양한 클럭 소스와 설정 옵션을 제공합니다. 이 문서는 클럭 시스템의 구조, 설정 절차, 그리고 특히 내부 고주파 오실레이터(OSCHF)의 오토튜닝(자동 튜닝) 기능을 포함한 다양한 예제 코드를 상세한 주석과 함께 제공합니다. Microchip의 공식 데이터시트와 TB3234 기술 문서를 기반으로 하며, _PROTECTED_WRITE 매크로를 사용하여 CCP 보호 레지스터를 안전하게 수정합니다. 1. 클럭 시스템 개요AVR128DB48의 클럭 시스템은 CPU와 주변 장치(peripherals)를 구동하는 핵심 구성 요소입니다. 시스템 성능, 전력 효율성, 그리고 특정 애플리케이션 요구사항을 충족하도록 설계되었습니다.1... 2025. 8. 20.
AVR128DB48 ZCD 사용 방법 및 예제 코드 1. AVR128DB48 ZCD 모듈 개요Microchip의 AVR128DB48은 AVR DB 시리즈의 8비트 마이크로컨트롤러로, ZCD(Zero-Cross Detection) 모듈을 통해 AC 신호의 영점 교차를 감지하여 전원 주파수 동기화, 디밍 제어, 또는 전력 관리 애플리케이션에 적합합니다. ZCD 모듈은 AC 신호의 전압이 0V 근처를 통과할 때 이벤트를 감지하며, 인터럽트 또는 출력 신호를 통해 이를 처리할 수 있습니다. 이 문서에서는 AVR128DB48의 ZCD 설정 방법, Bitfield 구조를 활용한 레지스터 설정, 그리고 실용적인 예제 코드를 제공하여 초보자와 숙련된 개발자 모두 쉽게 활용할 수 있도록 돕습니다.주요 사양ZCD 모듈 수 : 2개 (ZCD0, ZCD1)핀 : PA7(ZCD.. 2025. 8. 20.
AVR128DB48 ADC 차동모드 설정 방법 및 예제 코드 1. AVR128DB48 ADC 모듈 개요Microchip의 AVR128DB48 마이크로컨트롤러는 12비트 ADC(Analog-to-Digital Converter)를 내장하고 있으며, 차동모드(Differential Mode)를 지원하여 두 입력 간의 전압 차이를 고정밀으로 측정할 수 있습니다. 차동모드에서는 고정밀 측정이 필요한 애플리케이션(예: 센서 인터페이스, 오디오 처리)에 적합합니다. 이 문서는 ADC 차동모드를 설명하고, Bitfield 구조를 활용한 예제 코드를 제공하여 초보자와 숙련된 개발자 모두 쉽게 활용할 수 있도록 돕습니다.주요 사양ADC 해상도: 12비트 (최대 4096 레벨)차동 입력 쌍: AINP (Positive Input)와 AINN (Negative Input)지원 핀:.. 2025. 8. 20.
AVR128DB48 RTC 사용 방법 및 예제 코드 1. AVR128DB48 RTC 모듈 개요Microchip의 AVR128DB48은 AVR DB 시리즈의 8비트 마이크로컨트롤러로, RTC(Real-Time Clock) 모듈을 내장하여 시간 추적, 주기적 인터럽트, 타이머 애플리케이션에 적합합니다. RTC 모듈은 저전력 모드에서 동작하며, 외부 32.768kHz 크리스털 또는 내부 오실레이터를 클럭 소스로 사용할 수 있습니다. 이 문서에서는 AVR128DB48의 RTC 설정 방법, Bitfield 구조를 활용한 레지스터 설정, 그리고 실용적인 예제 코드를 제공하여 초보자와 숙련된 개발자 모두 쉽게 활용할 수 있도록 돕습니다.주요 사양클럭 소스:외부 32.768kHz 크리스털 오실레이터 (XOSC32K)내부 32.768kHz 오실레이터 (OSC32K)동작 .. 2025. 8. 20.
AVR128DB48 LIN, IrDA, RS485, MPCM, 스타트 프레임 감지, 동기 모드 사용 방법 및 예제 코드 1. AVR128DB48 UART 고급 기능 개요Microchip의 AVR128DB48은 AVR DB 시리즈의 8비트 마이크로컨트롤러로, 최대 4개의 USART(Universal Synchronous and Asynchronous serial Receiver and Transmitter) 모듈을 포함하여 다양한 직렬 통신 기능을 제공합니다. 이 문서는 LIN, IrDA, RS485, 멀티프로세서 통신 모드(MPCM), 스타트 프레임 감지, 동기 모드의 설정 방법과 실제 디바이스(예: LED, 버튼, 외부 모듈)를 사용한 예제 코드를 제공합니다. 예제는 AVR128DB48 Curiosity Nano 평가 키트(EV35L43A)를 기반으로 하며, 상세 주석을 통해 초보자와 숙련된 개발자 모두 쉽게 활용할 수.. 2025. 8. 20.
AVR128DB48 Event System 사용 방법 및 예제 코드(수정) 1. AVR128DB48 Event System 모듈 개요Microchip의 AVR128DB48 마이크로컨트롤러는 Event System (EVSYS) 모듈을 통해 주변 장치 간 직접적인 신호 전달을 지원합니다. 이는 CPU 개입 없이 저지연, 저전력 통신을 가능하게 하며, 타이머, ADC, 비교기 등 다양한 애플리케이션에 적합합니다. 이 문서에서는 EVSYS 설정 방법, 레지스터 구조, 그리고 실용적인 예제 코드를 제공하여 초보자와 숙련된 개발자 모두 쉽게 활용할 수 있도록 돕습니다.주요 사양EVSYS 채널: 최대 10개 (CHANNEL0 ~ CHANNEL9)지원 기능:동기/비동기 이벤트 처리슬립 모드 지원 (SleepWalking)소프트웨어 이벤트 트리거QDEC(Quadrature Decoder) 지.. 2025. 8. 20.
PSFB(Phase-Shifted Full-Bridge) 컨버터 설계 절차 1. 설계 사양 정의PSFB(Phase-Shifted Full-Bridge) 컨버터 설계의 첫 단계는 시스템 사양을 명확히 정의하는 것입니다. 아래는 예시 사양입니다:항목 값입력 전압 범위최소: 320 V, 공칭: 360 V, 최대: 400 V (DC)출력 전압 ($V_{out}$)48 V출력 전력 ($P_{out}$)1000 W최대 출력 전류 ($I_{out}$)20.83 A효율 목표 ($\eta$)≥ 96%스위칭 주파수 ($f_s$)100 kHz기타 요구사항ZVS(Zero Voltage Switching) 보장, 소형화, EMI/EMC 규격 준수 (EN55032), 열적 안정성2. PSFB 컨버터의 구조와 동작 원리2.1 구조PSFB 컨버터는 다음과 같은 구성 요소로 이루어집니다: 스위칭 회로: 풀.. 2025. 8. 19.
양방향 전력 전송 공진형 CLLC 컨버터 설계 절차 및 제어기 분석 이 문서는 11kW 양방향 CLLC 컨버터 설계 절차와 제어기 분석을 설명합니다. 설계는 Infineon Technologies의 애플리케이션 노트(AN-2024-06, Revision V1.01, 2024-07-10)를 기반으로 하며, FHA(First Harmonic Approximation) 방법을 사용합니다. SiC MOSFET(IMZ120R030M1H)을 활용해 ZVS(Zero Voltage Switching) 및 **동기 정류(SR)**로 효율을 극대화합니다. 공진 탱크 파라미터(L1, C1, Lm, L2, C2)와 전압 게인 계산, 정전압(CV) 및 정전류(CC) 모드의 제어기 설계가 포함됩니다.양방향 CLLC 컨버터 동작 원리양방향 CLLC 컨버터는 공진 탱크(L1, C1, Lm, L2,.. 2025. 8. 19.
AVR128DB48 Watchdog 사용 방법 및 예제 코드 1. AVR128DB48 Watchdog 모듈 개요Microchip의 AVR128DB48 마이크로컨트롤러는 Watchdog Timer(WDT)를 포함하여 시스템 안정성을 높이는 데 유용한 기능을 제공합니다. Watchdog 타이머는 소프트웨어 오류나 시스템 멈춤 시 마이크로컨트롤러를 리셋하여 안정적인 동작을 보장합니다. 이 문서에서는 AVR128DB48의 Watchdog 설정 방법, Bitfield 구조를 활용한 레지스터 설정, 그리고 실용적인 예제 코드를 제공하여 초보자와 숙련된 개발자 모두 쉽게 활용할 수 있도록 돕습니다.주요 사양타이머: 내부 1.024kHz ULTRA LOW POWER (ULP) 오실레이터 기반 (RTC 32.768kHz는 선택적 동기화 소스로 사용 가능).타임아웃 기간: 8ms .. 2025. 8. 19.
AVR128DB48 SPI 사용 방법 및 예제 코드 1. AVR128DB48 SPI 모듈 개요Microchip의 AVR128DB48 마이크로컨트롤러는 두 개의 SPI(Serial Peripheral Interface) 모듈(SPI0, SPI1)을 제공하여 고속 직렬 통신에 적합합니다. SPI 모듈은 마스터 및 슬레이브 모드를 지원하며, 센서, 플래시 메모리, 디스플레이 등의 장치와 통신에 사용됩니다. 이 문서에서는 AVR128DB48의 SPI0 및 SPI1 설정 방법, Bitfield 구조를 활용한 레지스터 설정, 그리고 실용적인 예제 코드를 제공하여 초보자와 숙련된 개발자 모두 쉽게 활용할 수 있도록 돕습니다.주요 사양SPI 채널:SPI0: MOSI (PA4), MISO (PA5), SCK (PA6), SS (PA7)SPI1: MOSI (PC4), MI.. 2025. 8. 19.
AVR128DB48 I2C 사용 방법 및 예제 코드(수정) 1. AVR128DB48 I2C 모듈 개요Microchip의 AVR128DB48 마이크로컨트롤러는 두 개의 I2C(TWI: Two-Wire Interface) 모듈(TWI0, TWI1)을 제공하여 센서, 디스플레이, 메모리 장치 등과의 통신에 적합합니다. I2C 모듈은 마스터 및 슬레이브 모드를 지원하며, 저전력 애플리케이션과 높은 호환성을 제공합니다. 이 문서에서는 AVR128DB48의 TWI0 및 TWI1 설정 방법, Bitfield 구조를 활용한 레지스터 설정, 그리고 실용적인 예제 코드를 제공하여 초보자와 숙련된 개발자 모두 쉽게 활용할 수 있도록 돕습니다.주요 사양I2C 채널:TWI0: SDA (PA2/PC2), SCL (PA3/PC3) (Master/Slave 가능, PORTMUX ALT2로 .. 2025. 8. 19.
AVR128DB48 UART 사용 방법 및 예제 코드(수정) 1. AVR128DB48 UART 모듈 개요Microchip의 AVR128DB48 마이크로컨트롤러는 여러 개의 USART(Universal Synchronous/Asynchronous Receiver/Transmitter) 모듈을 제공하여 직렬 통신을 지원합니다. UART는 센서 데이터 전송, 디버깅, 외부 장치와의 통신 등 다양한 애플리케이션에 적합합니다. 이 문서에서는 AVR128DB48의 UART 설정 방법, Bitfield 구조를 활용한 레지스터 설정, 그리고 실용적인 예제 코드를 제공하여 초보자와 숙련된 개발자 모두 쉽게 활용할 수 있도록 돕습니다.주요 사양 (AVR128DB48)USART 모듈: 5개 (USART0, USART1, USART2, USART3, USART4) AVR128DB4.. 2025. 8. 19.
AVR128DB48 GPIO 사용 방법 및 예제 코드 1. AVR128DB48 GPIO 모듈 개요Microchip의 AVR128DB48은 AVR DB 시리즈의 8비트 마이크로컨트롤러로, 저전력 애플리케이션, 센서 인터페이스, LED 제어, 모터 제어 등 다양한 GPIO(General Purpose Input/Output) 애플리케이션에 적합합니다. GPIO 모듈은 유연한 입출력 설정, 풀업 저항, 인터럽트, 그리고 주변 장치 멀티플렉싱 기능을 제공합니다. 이 문서에서는 AVR128DB48의 GPIO 설정 방법, Bitfield 구조를 활용한 레지스터 설정, 그리고 실용적인 예제 코드를 제공하여 초보자와 숙련된 개발자 모두 쉽게 활용할 수 있도록 돕습니다.주요 사양포트 : PORTA, PORTB, PORTC, PORTD, PORTE, PORTF (최대 48개.. 2025. 8. 18.