Configuring the FMAC FMAC 레지스터에 액세스하기 전에 FMAC 클록을 활성화해야 합니다. __HAL_RCC_FMAC_CLK_ENABLE(); A 및 B 계수를 위해 시스템 메모리 영역을 할당해야 합니다. /* Array of filter coefficients A (feedback taps) in Q1.15 format */ static int16_t aFilterCoeffA[COEFF_VECTOR_A_SIZE] = {A1,A2,A3}; /* Array of filter coefficients B (feed-forward taps) in Q1.15 format */ static int16_t aFilterCoeffB[COEFF_VECTOR_B_SIZE] = {-B0,-B1,-B2,-B..
Buck converter specification 변환기 예제는 아래와 같은 사양으로 디자인되어 있습니다. • Input supply voltage: 5 V • Output voltage: 3.3 V • Maximum current: 0.5 A • Target ripple: 0.5% (16.5 mV) • Overshoot (50% load step): 5 mV • Control mode: Voltage, digital • Switching frequency: 200 kHz • Sampling frequency: 200 kHz • Crossover frequency: 8 kHz • Phase margin at crossover: 50 degrees • Duty cycle limit: 90% 디스커버리..
DC-DC 전원 공급 장치는 다양한 부하 조건에서 출력 안정성과 정밀도를 유지하기 위해 제어 루프가 필요합니다. 전통적으로 제어는 아날로그 구성요소를 사용하지만 점점 프로그래밍 가능성과 비용을 아끼기 위해 범용 마이크로컨트롤러(MCU)를 사용하는 디지털 솔루션으로 눈을 돌리고 있습니다. 마이크로컨트롤러는 디스플레이 컨트롤러, 원격 제어 및 상태 통신, 보안 및 안전 모니터링, 키패드 등과 같은 제어 루프 외에도 하나의 장치에 많은 기능을 결합할 수 있습니다. 그럼에도 불구하고 제어 루프 작업은 높은 스위칭 주파수에서 상당한 양의 프로세서 시간을 차지할 수 있으며 실시간 처리 제약으로 인해 우선 순위가 높아야 합니다. 실제로 루프는 하나의 스위칭 기간 내에 실행되어야 하며 그렇지 않으면 컨트롤러가 ..
FIR filter FIR 필터는 기본적으로 필터 계수와 신호의 컨볼루션(회선)입니다. 계수의 수는 신호 대역폭에 대한 최소 노치 크기를 결정합니다. 계수가 많으면 협대역 노이즈 신호의 정확한 노칭이 가능하므로 손실되는 정보의 양이 최소화됩니다. 그러나 N개의 계수를 계산하려면 일반적으로 N2개의 연산 순서가 필요하므로 계수의 수는 처리 가능한 리소스에 의해 제한됩니다. 이 예에서는 그림 7과 같이 51탭 FIR 필터를 사용합니다. 그림 7 필터 계수는 대부분 부동 소수점 형식으로 계산되며 16비트 고정 소수점으로 변환해야 합니다. FMAC에서 사용하는 형식은 q1.15이며, 비트 0에서 14는 소수 자릿수(즉, 이진 소수점 오른쪽)를 나타내고 비트 15는 부호/정수를 나타냅니다. 따라서 Q1..
Example 1: FIR adaptive filter STM32CubeG4 MCU 패키지는 Arm® Cortex®-M 프로세서를 기반으로 하는 STM32G4에서 실행됩니다. 적응형 필터(Adaptive Filter)는 입력 신호의 다양한 특성에 따라 임펄스 응답을 변경하는 필터입니다. 이러한 필터는 종종 통신 채널에서 포착된 원치 않는 간섭을 제거하는 데 사용됩니다. Adaptive 알고리즘은 예를 들어 간섭자의 주파수 성분을 검출하고 필터의 계수를 조정하여 필터 주파수 응답의 적절한 지점에 노치(Notch)를 생성할 수 있습니다. 그 후엔 수신된 신호가 필터를 통과할 때 원하지 않는 요소가 제거됩니다. 이러한 알고리즘이 여러 개 존재하며 적응형 알고리즘에 대한 자세한 내용은 여기에서 설..
STM32G4 시리즈에 FMAC 이 추가되어 있습니다. Digital Filter에 필요한 연산 가속기가 포함되어있는 하드웨어 Peripheral 입니다. STM32G4의 FMAC의 Application note를 번역한 시리즈를 시작해 보도록 하겠습니다. 영문 원본은 아래 URL을 참조하시고 다소 부자연스러운 번역이 있어도 양해 바랍니다. https://www.st.com/resource/en/application_note/dm00605584-digital-filter-implementation-with-the-fmac-using-stm32cubeg4-mcu-package-stmicroelectronics.pdf 이 문서는 STM32G4 시리즈를 위한 STM32CubeG4 MCU 패키지에 적용됩..
Closed-loop control Load regulation 컨버터는 초기에 출력 전압을 제어하지 않는 개방 루프(Open Loop) 조건에서 테스트됩니다. 다음 단계는 출력 전압을 조절하기 위해 제어 루프를 닫는 것입니다. 폐쇄 루프(Closed Loop) 제어에서 Buck Convertor를 실행하려면 #define RUN_OPEN_LOOP 코드 행을 찾아서 // #define RUN_OPEN_LOOP로 변경하여 주석 처리합니다. 프로젝트를 다시 빌드한 다음 코드를 다운로드하고 디버그합니다. 컨버터가 실행되면 디지털 FMAC 보정기가 DAC 레지스터 값을 업데이트하여 컨버터의 부하 변화를 조절합니다. 부하 조정은 조이스틱을 사용하여 온보드 부하를 변경하고 출력 전압의 변화를 측정하여 테스트..
Source files Open-loop operation 폐쇄 루프 제어(Closed Loop)에서 Buck Convertor를 실행하기 전에 스위칭 파형과 Deadtime이 올바르게 작동하는지 확인하는 것이 좋습니다. 이 검사는 벅 컨버터의 개방 루프(Open Loop) 작동에서 수행할 수 있습니다. 이는 컨트롤러가 루프에서 벗어나고 벅 스위치가 고정된 듀티 사이클로 구동됨을 의미합니다. 예제 소프트웨어는 컴파일러 지시문이 정의될 때 FMAC 인터럽트가 활성화되지 않고 HRTIM 모듈이 고정 Duty 사이클로 설정되도록 작성되었습니다. 개방 루프(Open Loop)에서 Buck Convertor를 실행하려면 #define RUN_OPEN_LOOP 코드 줄을 찾아 주석 처리를 제거합니다. mai..