안녕하세요. 이번 포스팅에서는 USB Type-C Power Delivery 어플리케이션을 번역해 STM32에서 어떻게 USB PD를 구현할 수 있는지 알아보도록 하겠습니다. 개요 이 애플리케이션 노트(AN5225) 는 전원 싱크용 TCPP01-M12, 전원 소스용 TCPP02-M18, Dual-Role Power 보호 회로용 TCPP03-M20과 함께 STM32 MCU 및 MPU와 함께 USB Type-C® Power Delivery를 사용하기 위한 어플리케이션 노트입니다. 두 가지 새로운 USB Type-C® 및 USB Power Delivery 표준의 일부 기본 개념도 소개됩니다. USB Type-C® 기술은 필요한 모든 데이터를 전달하는 단일 플랫폼 커넥터를 제공합니다. 새로운 이 양방향 ..
STM32에서는 아래와 같은 VDD-VDDA 의 구성을 가지고 있습니다. STM32G 시리즈 Power scheme VDD와 VDDA는 완전하게 독립적으로 분리할 수 있습니다. 하지만 회로적으로 Digital 전원과 Analog 전원을 따로 분리하지 않는 경우가 더 많습니다. VDD는 디지털 회로에 들어가는 전원으로 디지털의 특성상 작은 ripple은 허용이 되는 편입니다. 하지만 ADC의 기준이 되는 VREF+는 작은 ripple이라도 ADC에 큰 오차를 만들 수 있습니다. 따라서 회로적으로 VREF+가 흔들리지 않도록 권장하는 Decoupling Capacitor 및 노이즈 원인으로 부터 떨어 뜨려야 합니다. 흔히 VDD - VDDA - VREF+ 를 같이 연결하여 사용하는데 디지털 전원인 VDD..
오호 좋은 뉴스!!! 자동 ML 모델링 프로그램 나노엣지 AI 무료로 풀렸네요!! 나노엣지 AI 스튜디오 SW 라이브러리 제한없이 이용 다양한 전자 애플리케이션과 고객들을 지원하는 세계적인 반도체 회사인 ST마이크로일렉트로닉스(STMicroelectronics, 이하 ST)가 사람들이 어디서나 일상적으로 이용하는 기기에 AI를 빠르게 채택할 수 있도록 지원을 확대한다. ST는 자사의 대표 설계 툴인 나노엣지 AI 스튜디오(NanoEdgeTM AI Studio)로 구현된 소프트웨어 라이브러리를 모든 STM32 마이크로컨트롤러(MCU)에서 제한없이 이용할 수 있게 무료로 제공한다고 19일 밝혔다. 나노엣지 AI 스튜디오는 모든 Arm® Cortex®-M 기반 MCU를 대상으로 하기 때문에, 고객들은 특별 라..
우리가 아주 끔찍하게 싫어하는 Hardfault를 임의로 만들어 보겠습니다. 아래 코드를 넣으면 PC가 수행할 수 없는 주소로 변경되면서 Hardfault로 Jump 하게됩니다. typedef void (*Function_Pointer)(void); /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ /* USER CODE END 0 */ /** * @brief The application entry point. * @retval int */ int main(void) { /* USER CODE BEGIN 1 */ /* USER..
이번 포스팅에서는 각각의 구현은 다르지만 기능은 같은 객체들을 관리하는 Builder 패턴에 대해 알아보겠습니다. 간단하게 예를 들면 사용자측 코드 즉, main 함수에서는 객체를 만들 뿐 기능을 사용하기 위해 기능 함수를 직접 호출하지 않고 관리자를 통해서만 일 처리를 합니다. Key(버튼) 처리하는 예제로 Builder 패턴을 상세히 들여다 보겠습니다. Key를 입력받아 처리하는 식의 기능은 firmware에서는 참 많이 쓰입니다. Key 처리 기능은 하드웨어적으로 참 많이 바뀝니다. 예를 들어 단순 1:1 GPIO를 사용할 수도 있고 ADC를 사용할수도 있으며 혹은 1:N 매트릭스 GPIO를 사용할 수도 있습니다. 아니면 세가지 다 사용할 수도 있겠지요. 주의할 점은 어떠한 하드웨어 Ke..
이제 MP1에서도 베어메탈 어플리케이션을 돌릴 수 있게 되었네요!!! 우왕굳 다양한 전자 애플리케이션과 고객들을 지원하는 세계적인 반도체 회사인 ST마이크로일렉트로닉스(STMicroelectronics, 이하 ST)가 STM32 마이크로컨트롤러 코드를 보다 강력한 STM32MP1 마이크로프로세서로 마이그레이션하는 새로운 소프트웨어를 발표했다. 이 소프트웨어로 엔지니어들은 임베디드 시스템 설계의 성능을 한 차원 높일 수 있다. 일상 생활과 업무를 지원하는 기술에서 더 많은 기능과 더 빠른 응답을 바라는 최종 사용자들의 요구가 계속되면서, 제조사들은 제품의 성능 향상에 효과적인 솔루션이 필요해졌다. 산업용 실시간 애플리케이션이 대표적 사례이다. 최신 프로세스 장비, 공장 자동화 시스템, 물류 및 소매 기술,..
오실로스코프를 사용하여 사양에 대한 벅 컨버터의 성능을 확인할 수 있습니다. 그림 20. PWM 파형 D0 및 D1 트레이스는 벅 컨버터가 일정한 100mA 부하로 작동할 때 하이 사이드(1차) 및 로우 사이드(2차) 스위치에 대한 PWM 출력을 보여줍니다. PWM 주기는 200kHz 스위칭 주파수에 해당하는 5µs입니다. 출력 전압은 채널 1 트레이스에서 볼 수 있듯이 목표와 일치하는 3.3V입니다. 그림 20 그림 21 CPU 부하에서 D0 트레이스는 CPU가 유휴 상태인 동안, 즉 while(1) 루프를 실행하는 동안 토글되는 디지털 IO 핀(GPO2)입니다. CPU가 FMAC 인터럽트 핸들러를 실행할 때 GPO는 토글을 멈춥니다. CPU가 PWM 주기 시작 후 460ns에 FMAC 인터..
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..