STM32
1. 개요
STM32는 ST마이크로일렉트로닉스에서 개발한 ARM 코어 기반의 마이크로컨트롤러 제품군이다. 2007년 처음 출시된 STM32는 ARM Cortex-M3 코어를 기반으로 시작하여, 이후 다양한 시리즈와 제품군으로 확장되었다. STM32는 C0, F0, F1, F2, F3, F4, F7, G0, G4, H5, H7, L0, L1, L4, L4+, L5, U0, U5, WBA, WB, WL 등 다양한 시리즈로 구성되어 있으며, 각 시리즈는 ARM Cortex-M 프로세서 코어를 기반으로 한다. STM32는 개발 편의성을 위해 mbed 프로젝트를 지원하고, Nucleo 보드와 같은 다양한 개발 보드를 제공한다. 또한, 다양한 소프트웨어 도구와 라이브러리를 통해 개발을 지원하며, 대한민국에서도 교육 및 개발 커뮤니티를 중심으로 널리 활용되고 있다.
이미지 준비중입니다.
| '제조 시작' | 2007년 |
|---|---|
| '현재 상태' | '현재 생산 중' |
| '최저 클럭 속도' | 24 MHz |
| '최고 클럭 속도' | 480 MHz |
| '최소 트랜지스터 크기' | 180 nm |
| '최대 트랜지스터 크기' | 40 nm |
| '설계 회사' | ST마이크로일렉트로닉스 |
| '마이크로아키텍처' | 'ARM Cortex-M0' 'ARM Cortex-M0+' 'ARM Cortex-M3' 'ARM Cortex-M4' 'ARM Cortex-M7' 'ARM Cortex-M33' |
-
ARM 기반 마이크로컨트롤러 -
I.MX
i.MX는 NXP 반도체에서 개발한 임베디드 시스템용 애플리케이션 프로세서 제품군으로, 저전력 설계와 다양한 주변 장치 통합을 특징으로 하며 ARM 아키텍처 기반의 코어를 사용하고 다양한 운영체제 및 소프트웨어를 지원한다.
2. 역사
STM32는 ST마이크로일렉트로닉스(STMicroelectronics)의 세 번째 ARM 제품군이다. 이는 ARM9E 코어를 기반으로 한 이전의 STR9 제품군과 ARM7TDMI 코어를 기반으로 한 STR7 제품군을 잇는 제품이다.
2006년 10월, ST마이크로일렉트로닉스는 ARM Cortex-M3 코어 라이선스를 획득했고, 2007년 6월 ARM Cortex-M3 기반의 STM32 F1 시리즈를 발표했다.
2013년 12월, ST는 mbed 프로젝트에 참여한다고 발표했으며, 2014년 2월에는 아두이노 헤더 및 mbed IDE를 갖춘 여러 STM32 Nucleo 보드를 발표했다.
2.1. 주요 연혁
3. 제품군
STM32 제품군은 다양한 ARM Cortex-M 프로세서 코어를 기반으로 하는 여러 계열의 마이크로컨트롤러로 구성되어 있다. 각 STM32 마이크로컨트롤러 계열은 특정 ARM Cortex-M 프로세서 코어를 기반으로 한다.
| 종류 | 특징 |
|---|---|
| STM32F | 최초 출시부터 존재한 메인스트림 제품군. Cortex M0~M7까지 다양한 라인업을 갖추고 다양한 수요에 대응 가능하다. |
| STM32L | 저전력 모델. |
| STM32H | 고성능 모델. M4/M7을 베이스로 DSP에 대응하기 위해 나온 고 클럭/연산력 버전이다. |
| STM32G | 차세대 메인스트림 라인업. |
| STM32U | Cortex M33 베이스 차세대 저전력 라인업. |
| STM32C | Cortex M0+기반 저가형 모델. |
| STM32MP | Cortex A 시리즈 기반 MPU 제품군. 자체적인 리눅스/안드로이드 배포판을 탑재해 개발이 가능하다. |
| STM32W | 무선모뎀 내장 라인업. 현행 모델은 2가지로 2.4Ghz 대역 칩인 STM32WB와 900Mhz 대역 대응 모델인 STM32WL이 있다. |
각 시리즈별 자세한 내용은 #시리즈별 특징 표를 참조하면 된다.
3.1. 개요 (Overview)
STM32는 다양한 32비트 RISC ARM Cortex-M 코어를 기반으로 하는 마이크로컨트롤러 IC 제품군이다. ST마이크로일렉트로닉스(STMicroelectronics)는 ARM 홀딩스(ARM Holdings)로부터 ARM 프로세서 IP를 라이선스 받아 개발한다. ARM 코어 설계는 수많은 구성 가능한 옵션을 가지고 있으며, ST는 각 설계에 사용할 개별 구성을 선택한다. ST는 설계를 실리콘 다이로 변환하기 전에 자체 주변 장치를 코어에 연결하여 다양한 STM32 제품을 만든다.
다음 표는 STM32 마이크로컨트롤러 제품군을 요약한 것이다.
| STM32 시리즈 | ARM CPU 코어 |
|---|---|
| F0 | Cortex-M0 |
| C0, G0, L0, U0 | Cortex-M0+ |
| F1, F2, L1 | Cortex-M3 |
| F3, F4, G4, L4, L4+ | Cortex-M4 |
| WB, WL | M4 & M0+ (2 코어) |
| F7 | Cortex-M7 |
| H7 | M7 (1 코어), M7 & M4 (2 코어) |
| H5, L5, U5, WBA | Cortex-M33 |
| MP1 | MP131, 133, 135, 151, 153, 157 |
3.2. 시리즈별 특징
| 종류 | 특징 |
|---|---|
| STM32 F0 | ARM Cortex-M0 기반, 메인스트림 제품군 (최대 48MHz) |
| STM32 C0, STM32 G0, STM32 L0, STM32 U0 | ARM Cortex-M0+ 기반, 저가형 및 저전력 모델 |
| STM32 F1, STM32 F2, STM32 L1 | ARM Cortex-M3 기반, 다양한 성능 및 기능 제공 |
| STM32 F3, STM32 F4, STM32 G4, STM32 L4, STM32 L4+ | ARM Cortex-M4 기반, 부동 소수점 장치(FPU) 및 DSP 명령어 지원 |
| STM32 WB, STM32 WL | M4 & M0+ 듀얼 코어, 무선 통신 기능 내장 |
| STM32 F7 | ARM Cortex-M7 기반, 고성능 모델 (최대 216MHz) |
| STM32 H7 | M7 싱글 코어 또는 M7 & M4 듀얼 코어, 최고 성능 모델 (최대 480MHz) |
| STM32 H5, STM32 L5, STM32 U5, STM32 WBA | ARM Cortex-M33 기반, 보안 기능 강화 |
| STM32 MP1 | Cortex-A 기반 MPU, 리눅스/안드로이드 운영체제 지원 |
4. 개발 도구
STM32 마이크로컨트롤러 개발에는 다양한 하드웨어 및 소프트웨어 도구가 사용된다.
| 하드웨어 도구 | 소프트웨어 도구 |
|---|---|
4.1. 개발 보드
ST마이크로일렉트로닉스(STMicroelectronics)는 STM32 마이크로컨트롤러 개발을 지원하기 위해 다양한 개발 보드를 제공한다.
Nucleo 보드
Nucleo 보드는 ST마이크로일렉트로닉스에서 제공하는 공식 개발 보드이다. mbed 개발 환경을 지원하며, SWD 디버깅, 가상 COM 포트, USB를 통한 대용량 스토리지를 제공하는 ST-LINK/V2-1 호스트 어댑터 칩이 내장되어 있다. Nucleo 보드는 마이크로컨트롤러 IC 패키지 풋프린트에 따라 세 가지 제품군으로 나뉜다. SEGGER J-Link 디버거 프로토콜로 변환할 수 있다.
* Nucleo-32 보드: 32핀 STM32 IC를 사용하며, 0.6인치 행 간격의 DIP-30 풋프린트를 가진다. 아두이노 나노 핀과 호환되는 암컷 핀 헤더를 갖추고 있다.
* Nucleo-64 보드: 64핀 STM32 IC를 사용하며, 쉴드를 위한 아두이노 우노 Rev3 암컷 헤더와 ST Morpho 수컷 핀 헤더 (두 개의 19x2)를 가지고 있다.
* Nucleo-144 보드: 144핀 STM32 IC를 사용하며, 쉴드를 위한 아두이노 우노 Rev3 암컷 헤더, ST Zio 암컷 헤더, ST Morpho 수컷 핀 헤더 (두 개의 19x2), 두 번째 Micro-AB USB 커넥터, RJ45 이더넷 커넥터(일부 보드)를 가지고 있다.
Discovery 보드
Discovery 보드는 ST마이크로일렉트로닉스에서 제공하는 평가 보드로, 엔지니어가 마이크로컨트롤러 칩을 빠르고 쉽게 평가할 수 있도록 돕는다. 다양한 유통업체에서 미화 20달러 미만으로 구매할 수 있다. STMicroelectronics 평가 제품 라이센스 계약에 따라 생산 시스템 또는 판매용 제품에 사용할 수 없다.
각 보드에는 Mini-B USB 커넥터를 통해 프로그래밍 및 디버깅을 위한 온보드 ST-LINK가 포함되어 있다. 전원은 USB 케이블을 통한 5V 또는 외부 5V 전원 공급 장치 중에서 선택하여 제공된다. 3V 또는 5V의 출력 전원 공급 장치로 사용할 수 있다(전류는 100mA 미만). 모든 Discovery 보드에는 전압 조정기, 리셋 버튼, 사용자 버튼, 여러 LED, 각 보드 상단의 SWD 헤더 및 하단의 헤더 핀 행이 포함되어 있다.
아두이노 나노 스타일 보드
다음 보드는 아두이노 나노 핀과 호환되는 0.6인치 행 간격의 핀 헤더를 갖춘 DIP-30 풋프린트를 가지고 있지만, 3.3V 로직 I/O를 사용한다.
* 블루 필(Blue Pill) 보드: STM32F103C8T6 마이크로컨트롤러를 탑재하고 있다. 하지만, 현재 대부분의 블루 필 보드는 중국산 가짜 STM32를 포함하고 있다.
* 블랙 필(Black Pill) 보드: STM32F401CCU6 또는 STM32F411CEU6 마이크로컨트롤러를 탑재하고 있다.
아두이노 우노 스타일 보드
--
다음 보드들은 아두이노 우노 핀 호환 암형 핀 헤더를 사용하여 아두이노 쉴드를 사용할 수 있지만, 3.3V 논리 I/O를 사용한다.
* Maple 보드: Leaflabs에서 제작되었으며 STM32F103RB 마이크로컨트롤러를 탑재하고 있다. 아두이노에서 쉽게 마이그레이션할 수 있도록 libmaple이라는 C/C++ 라이브러리를 사용할 수 있다.
* OLIMEXINO-STM32 보드: Olimex에서 제작되었으며, STM32F103RBT6 마이크로컨트롤러를 탑재하고 있으며, Maple 보드와 유사하다.
* [[네트듀이노]]: .NET 마이크로 프레임워크를 지원한다.
4.2. 소프트웨어 도구
* STM32CubeMX: 그래픽 사용자 인터페이스(GUI)를 통해 초기화 코드를 생성하는 도구이다.
* STM32CubeIDE: Eclipse 기반의 통합 개발 환경(IDE)이다.
* Keil MDK-ARM: ARM Cortex-M 프로세서를 위한 상용 컴파일러 및 디버거이다.
* IAR Embedded Workbench: ARM 프로세서를 위한 상용 컴파일러 및 디버거이다.
* GNU Arm Embedded Toolchain: GCC 기반의 오픈 소스 툴체인이다.
* OpenOCD: 오픈 소스 디버깅 도구이다.
* libmaple: Maple 보드용 Arduino 스타일의 C/C++ 라이브러리이다.
* .NET Micro Framework: Netduino 보드용 개발 프레임워크이다.
* MicroEJ: 임베디드 시스템용 Java 개발 환경 (IS2T 제공)이다.
* Simulink: 매스웍스에서 제공하는 모델 기반 설계 솔루션으로, 임베디드 시스템 설계에 사용된다. ST마이크로일렉트로닉스 디스커버리 보드 및 뉴클레오 보드용 지원 패키지를 통해 STM32 보드에 알고리즘을 배포하고 파라미터를 조정하며 신호를 모니터링할 수 있다.