이 섹션에서는 STM32CubeH7 펌웨어와 함께 사용할 수 있는 프로세서 간 통신 라이브러리(OpenAMP 및 RPmsg API, FreeRTOS™ 메시지 버퍼 및 스트림 버퍼 API)에 대한 일반 정보를 제공합니다. 또한 STM32H745/755 및 STM32H747/757 하드웨어 리소스를 사용하는 몇 가지 기본 IPCC를 제공합니다. OpenAMP and RPMsg 이 섹션에서는 OpenAMP(개방형 비대칭 다중 처리) 및 RPMsg(원격 프로세서 메시징) 라이브러리에 대한 정보를 제공합니다. OpenAMP는 AMP(Asymmetric Multi-Processing) 시스템용 애플리케이션 개발에 필요한 소프트웨어 구성 요소를 제공하는 프레임워크입니다. remoteproc 및 RPMsg와..
STM32H7 시리즈 중에 Cortex-M7, Cortex-M4 Dual Core로 되어 있는 제품이 있습니다. 두개의 Core는 같은 버스를 공유하기도 하고 이에 따라 여러 자원들을 공유하게 됩니다. 하지만 이러한 이유 때문에 동시에 같은 자원을 점유하는 통일성에 문제가 생길 수도 있습니다. AN5617은 STM32H7 Dual Core의 Inter-processor communications를 다루고 있으며 이번 포스트에서는 영문 번역으로 축약해서 올려보고자 합니다. Introduction 고성능 STM32 마이크로컨트롤러와 소프트웨어 아키텍처에 대한 릴리스 제약은 보다 발전된 소프트웨어 솔루션의 가능성을 열어줍니다. 고급 소프트웨어 응용 프로그램은 독립적인 구성 요소를 동시에 실행해야 합니다..
이번에 Azure RTOS에 대한 기사가 떴네요. 본문 번역해서 올려봅니다. 이제 Azuer RTOS가 MS를 떠나 Eclipse Foundation 관리 하에 오픈소스 모델로 전환된다는 것이 핵심입니다. -- 구글번역 -- 전 세계적으로 120억 개 이상의 장치에 배포된 ThreadX 실시간 운영 체제가 포함된 개발 제품군인 Azure RTOS에 관한 중요한 업데이트를 공유하게 된 것을 기쁘게 생각합니다. 혁신과 커뮤니티 협업에 대한 약속을 강화하기 위해 Azure RTOS는 오픈 소스 IoT 프로젝트 호스팅 분야의 리더로 인정받는 Eclipse Foundation의 관리 하에 오픈 소스 모델로 전환할 예정입니다. Eclipse Foundation을 새로운 홈으로 사용하면 Azure RTOS는 리소스가..
USB는 많이 사용되고 있는 Peripheral입니다. 이번 장에서는 어떻게 USB를 회로에 적용해야 하는지 알아보겠습니다. 이번장은 [AN4879] USB hardware and PCB guidelines using STM32 MCUs Application note를 참조하였습니다. https://www.st.com/resource/en/application_note/an4879-usb-hardware-and-pcb-guidelines-using-stm32-mcus-stmicroelectronics.pdf 사용하는 USB의 스피드와 버전에 따라서 명칭과 하드웨어 구성이 달라질 수 있으니 사용하려는 버전과 스피드 그리고 STM32에서 지원여부를 먼저 확인 하여야 합니다. 아래는 STM32 에서 제..
STM32에서 MCU에 심장과 같은 역할을 하는 오실레이터(OSC, 발진기)에 대해 알아보도록 하겠습니다. 대부분의 STM32가 내부 오실레이터와 외부 오실레이터(패키지에 따라서 없는 디바이스도 있음)를 지원합니다. 회로에 관한 내용이기에 이번 포스트에서 알아볼 것은 외부 오실레이터의 구성입니다. STM32에서는 보통 외부 오실레이터 HSE(High Speed External oscillator), 와 LSE(Low Speed External oscillator)을 제공합니다. 따라서 원하는 주파수의 크리스탈이나 레조네이터 혹은 오실레이터를 외부에 달아주면 됩니다. HSE - 외부 고속 발진기 STM32G4 Datasheet 에서 발췌 HSE를 사용할 때 주의해야 할 점 1. MCU 마다 허용되는..
STM32는 외부에서 RESET을 할 수 있도록 NRST라는 핀을 제공합니다. 이번에는 NRST의 특성에 대해 알아보도록 하겠습니다. 기본적으로 STM32에 RESET을 걸어주기 위해서 외부의 특별한 회로가 필요하지 않습니다. 아래 블럭도 처럼 내부에 Pull-up (Rpu) 이 존재하기 때문입니다. STM32G4 Datasheet 발췌 외부에는 노이즈 제거목적의 MCU에 가깝게 배치되는 캐패시터와 리셋을 발생시킬 오픈드레인의 스위치 정도면 됩니다. 그렇다면 리셋을 걸리게할 수 있는 Low Level의 특성은 어떻게 될까요? 데이터 시트에 아래와 같이 나와있습니다. 0.3xVDD Logic low 0.3xVDD 를 Logic low, 그리고 0.7xVDD를 Logic high 중간이 레벨은 어떻게..
지난번에 이어 STM32 회로 리뷰 방법에 대해 알아보도록 하겠습니다. GPIO는 MCU에서 중요한 부분이기도 하며 모든 회로 연결의 기본이기도 합니다. GPIO 일반적으로 Logic-High, Logic-Low 신호를 출력하기도하고, USART/UART, I2C, SPI, USB 와 같은 통신용 혹은 ADC,DAC와 같은 아날로그 신호 입출력으로 사용되기도합니다. 우선 회로리뷰의 기본은 GPIO의 연결이 사용하고자하는 용도에 맞게 연결되어 있는지 확인이 필요합니다. 예를 들어 USB로 사용하기 위해 연결된 GPIO가 USB 출력이 가능한 Alternate 핀인지 Datasheet를 확인 하는 것으로 시작됩니다. 그 다음은 각 GPIO의 입력 범위를 확인 하는 것입니다. 지난 전원단에서도 언급..
C언어에서 typedef 는 새로운 타입(type)을 만드는 키워드입니다. 예를 들어 bool 타입은 true, false를 가지고 있는 기본적인 타입인데, C언어에는 없습니다. typedef를 통해 아래와 같이 간단하게 bool타입을 만들 수 있습니다. typedef enum { false = 0, true = 1 }bool; 그리고 아래와 같이 코딩 할 수 있습니다. bool isRegistered = false; if(isRegistered == true) { printf("It is registered!"); } 좀 더 활용해 보겠습니다. typedef struct { uint8_t D0; uint8_t D1; uint8_t D2; uint8_t D3; }digit_t; 새로운 digit_t라는 ..