Source files Open-loop operation 폐쇄 루프 제어(Closed Loop)에서 Buck Convertor를 실행하기 전에 스위칭 파형과 Deadtime이 올바르게 작동하는지 확인하는 것이 좋습니다. 이 검사는 벅 컨버터의 개방 루프(Open Loop) 작동에서 수행할 수 있습니다. 이는 컨트롤러가 루프에서 벗어나고 벅 스위치가 고정된 듀티 사이클로 구동됨을 의미합니다. 예제 소프트웨어는 컴파일러 지시문이 정의될 때 FMAC 인터럽트가 활성화되지 않고 HRTIM 모듈이 고정 Duty 사이클로 설정되도록 작성되었습니다. 개방 루프(Open Loop)에서 Buck Convertor를 실행하려면 #define RUN_OPEN_LOOP 코드 줄을 찾아 주석 처리를 제거합니다. mai..
Application note 내용이 복잡하여 우선 예제 중심으로 번역해서 올리도록 하겠습니다. Digital peak current mode implementation Onboard comparator and DAC 이전에 설명한 아날로그 피크 전류 모드 구현은 피크 전류 감지 비교기(Comparator)를 사용하여 수요 피크 전류와 실제 측정된 전류의 교차를 감지합니다. 디지털 구현의 경우 이 피크 전류 감지도 스위치가 최대한 빨리 꺼지는 방식으로 구현해야 합니다. ADC를 사용하여 스위칭 간격으로 인덕터 전류를 여러 번 샘플링하고 이를 수요 기준 값과 비교하면 너무 느릴 수 있습니다. 따라서 디지털 구현은 아날로그 설계의 피크 전류 감지 비교기와 동일한 목적으로 온보드(on board) ..
B-G474E-DPOW1 Discovery kit 로 Buck convertor 를 구현한 Applicatoin note를 해석하는 시리즈를 시작해 보도록 하겠습니다. 영어원문 자료는 아래 URL을 참조하시기 바랍니다. https://www.st.com/resource/en/application_note/an5497-buck-current-mode-with-the-bg474edpow1-discovery-kit-stmicroelectronics.pdf B-G474E-DPOW1 디스커버리 키트에는 Synchronous buck converter 전력단이 포함되어 있습니다. Synchronous buck converter를 위한 전력단의 단순화된 회로도가 그림 3에 나와 있습니다. 그림3 Princip..
ADC의 Conversion 시간은 회로 설계 뿐 아니라 소프트웨어 구현시 중요한 요소입니다. 특히 빠른 응답이 필요로하는 어플리케이션에서는 이 변환시간에 대해 좀 더 주의를 해야합니다. 너무 짧게 설정하여 정확하지 않은 결과값을 가지지 않도록 해야하며, 너무 길게 설정하여 어플리케이션 수행에 장애가 되지 않도록 하여야합니다. 그림1. STM32는 SAR 방식의 ADC 가 내장되어 있습니다. STM32는 SAR 방식의 AD Conversion Controller를 가지고 있으며 이 방식은 대표적으로 가격 대비 좋은 성능을 가진 방식입니다. 위의 그림1에서 볼 수 있듯이 여러개(합계:2C)의 Capacitor 을 가지고 있으며 이 Capacitor를 충전한 후 각 Capacitor를 설정한 비트 수 만큼 ..
이번 포스트에서는 STM32의 SPI(Serial peripheral interface) 회로 리뷰 방법을 알아보도록 하겠습니다. SPI는 비교적 간단한 회로로 구성할 수 있으며, 다른 통신에 비해 Noise에 강한 편입니다. 또한 동기(Synchronous) 통신이기에 에러율이 없다는 장점이 있습니다. SPI는 다음과 같은 핀으로 구성됩니다. MISO: Master In / Slave Out data. MOSI: Master Out / Slave In data. SCK: Serial Clock output. NSS: Slave select pin. 통신을 위한 개별 Slave 장치 선택 데이터 프레임을 동기화하거나 여러 Master 간의 충돌 감지 SPI는 통신 방법에 따라 회로의 연결이 달라지..
안녕하세요? Serial 통신 PC 프로그램 자주 사용하시나요? STM32 개발할 때 무료로 자주 사용되는 STM32CubeIDE Terminal Console 기능에 대해 알아보겠습니다. 물론 무료툴로 TeraTerm, Putty 등이 더 많은 기능을 가지고 있지만 간단히 Serial 통신을 확인 할 때 STM32CubeIDE Console view에서 지원하는 Serial Terminal을 사용할 수도 있습니다. 1. STM32CubeIDE 켜고 > Window > Show View > General > Console 을 체크하면 아래와 같은 View가 생깁니다. 오른쪽 위의 빨간 부분을 클릭 > Command Shell Console 을 클릭하면 아래와 같은 인터페이스 설정창이 뜨게됩니다. 2. C..
대표적인 비동기 Serial 통신 중에 하나인 UART(USART) 통신 Interface의 회로 리뷰를 해보도록 하겠습니다. 위는 STM32G4 시리즈의 USART 블럭도 입니다. 총 5개의 Output이 나와 있습니다. 각 핀에 대한 설명은 데이터시트를 참조하였습니다. • RX(데이터 입력 수신) RX는 직렬 데이터 입력입니다. 데이터 복구를 위해 오버샘플링 기술이 사용됩니다. 유효한 수신 데이터와 노이즈를 구별합니다. • TX(데이터 출력 전송) 트랜스미터가 비활성화되면 출력 핀이 I/O 포트 구성으로 돌아갑니다. 송신기가 활성화되고 데이터를 전송할 필요가 없을 때 TX 핀은 High(Idle High)입니다. 단일 와이어 및 스마트 카드 모드에서 이 I/O는 데이터를 전송 및 수신하는 데 ..
안녕하세요? 오늘은 자꾸만 까먹어서 기록해 놓은 STM32CubeIDE에서 에서 가장 많이 사용되는 printf 함수의 uart(usart) 구현 방법을 알아보겠습니다. 코드 먼저 보도록 하겠습니다. #include printf가 사용된 곳에 위의 를 include 해줍니다. 그리고 실제 STM32CubeIDE에서 사용가능하도록 _write 함수를 구현해 주면 끝납니다. int _write(int file, char *ptr, int len) { HAL_UART_Transmit(&hlpuart1, (uint8_t *)ptr, len, HAL_MAX_DELAY); return len; } 추가로 printf에서 float 형태의 인자를 받기위해서는 아래와 같은 설정을 해주어야 합니다. 다만 주의할 점은 s..