STM32U, STM32H 시리즈부터 GPDMA(General Purposes DMA)가 기본 DMA로 들어가 있습니다. 따라서 앞으로 출시되는 ST MCU에서는 GPDMA가 필수적은 DMA 시스템이 될 가능성이 높습니다. DMA를 사용하셨던 분들이나 앞으로 사용하실 분들은 GPDMA에 대해 필수적으로 알아야 합니다. GPDMA의 핵심은 Linked-list를 통해 다중 블록전송이 가능해졌다는 것입니다. 실례로 I2C로 받은 데이터를 UART를 통해 소프트웨어 개입없이 송출하는게 가능합니다. 아래 번역은 ST Employee 가 작성한 "How to configure the GPDMA?" 포스트를 번역해 놓은 것입니다. GPDMA를 구성하는 방법은 무엇입니까?1. GPDMA 모듈 설정STM32U5와 같이..
지난 포스트에서 좀 더 자세히 CubeMX에서 설정 부터 UART(USART) Printf - HAL & Polling을 설명해보도록 하겠습니다. 실제로 어플리케이션을 개발할 때 내부 동작 순서나 Debugging을 위해 자주 사용하는 printf() Log 출력하는 방법을 STM32G431RB Nucleo board를 사용해서 UART를 통해 구현해보겠습니다. CubeMX(혹은 CubeIDE)핀 설정은 아래와 같이 해줍니다. LPUART : PA2, PA3 BUTTON : PC13 STM32G4 Nucleo board에는 LPUART PA2,PA3을 통해서 UART VCP로 사용할 수 있습니다. 내부 회로도를 확인해 보면 PA2, PA3 핀은 ST-Link와 연결되어 최종적으로 PC에 Virtual C..
대표적인 비동기 Serial 통신 중에 하나인 UART(USART) 통신 Interface의 회로 리뷰를 해보도록 하겠습니다. 위는 STM32G4 시리즈의 USART 블럭도 입니다. 총 5개의 Output이 나와 있습니다. 각 핀에 대한 설명은 데이터시트를 참조하였습니다. • RX(데이터 입력 수신) RX는 직렬 데이터 입력입니다. 데이터 복구를 위해 오버샘플링 기술이 사용됩니다. 유효한 수신 데이터와 노이즈를 구별합니다. • TX(데이터 출력 전송) 트랜스미터가 비활성화되면 출력 핀이 I/O 포트 구성으로 돌아갑니다. 송신기가 활성화되고 데이터를 전송할 필요가 없을 때 TX 핀은 High(Idle High)입니다. 단일 와이어 및 스마트 카드 모드에서 이 I/O는 데이터를 전송 및 수신하는 데 ..
Java 같은 객체지향 언어에서 객체지향, 디자인패턴, Interface을 빼놓고는 설명할게 별로 없습니다. 이중 Interface는 객체지향의 근간이 되는 패턴으로 Interface를 이용해 언제든지 교체 가능한 모듈 형태의 프로그래밍과 더불어 외부 프로그램을 적절하게 통제 할 수 있습니다. 이러한 Interface의 필요성에 대해서는 따로 설명하지 않겠습니다. 우리는 C언어로 Interface를 만들어 보겠습니다. 이번에 만들 Interface는 UART입니다. UART는 MCU와 외부 Device간의 시리얼 통신으로 많이 사용됩니다. 예를 들면 MCU+GPS Module, MCU+RS232(PC)등에서 사용되며 Interface를 설명하기에 적합합니다. 아래 코드는 UART Interface의 원형..