안녕하세요 헬스케어 제품 개발회사 허니컴의 무이메이커스 입니다.
오늘은 STM32(cortex-M4)를 다뤄보도록 하겠습니다.
< STM32란? >
STM32는 ST마이크로일렉트로닉스(STMicroelectronics)사가 개발한 MCU(마이크로컨트롤러)로
Cortex-M을 기반으로 제작되었습니다.
< Cortex란? >
ARM사에서 1985년 처음으로 ARM1프로세서를 개발하였습니다.
시간이 지나 ARM사는 ARMv7아키텍처의 코어를 갖는 프로세서에
처음으로 Cortex라는 이름을 사용하였습니다.
Cortex는 A,R,M 시리즈가 있습니다. 세개 시리즈의 특징과 용도를 아래표와 같습니다.
|
Cortex-A |
Cortex-R |
Cortex-M |
설계 방향 |
높은 클럭 주파수 긴 파이프라인 고 성능 멀티미디어 지원용 |
높은 클럭 주파수 중간길이 파이프라인 빠른 인터럽트 처리 |
짧은 파이프라인 저전력 빠른 인터럽트 처리 |
시스템의 특징 |
MMU(Memory Management Unit) 캐시 메모리 ARM TrustZone 보안 |
MPU(Memory Protection Unit) 캐시 메모리 TCM(Tightly Coupled Memory) |
MPU(Memory Protection Unit) NVIC(Nested Vectored Interrupt Controller) |
사용 용도 |
스마트 폰 모바일 컴퓨팅 |
산업용 마이크로컨트롤러 자동차 |
마이크로컨트롤러 임베디드 시스템 |
출처 : STM32F 시리즈를 이용한 ARM Corex-M3/M4 구조와 응용 - 홍릉과학출판사
<사용할 보드>
STM32F469I-DISCO 디스커버리 보드 (Cortex -M4기반)
보드의 보드의 특징과 설명은 첨부파일의 사용자 매뉴얼을 확인해주시기 바랍니다.
<개발환경 구축 & 예제 다운로드>
개발환경의 종류에는 Keil, IAR, AC6, TrueStudio, STM32CubeIDE, ARM mbed online등이 있습니다.
이중에서 ARM mbed online을 사용하여 개발해보겠습니다.
1) Mbed 홈페이지에 들어갑니다.
2) 로그임 / 회원가입을 합니다.
3) 오른쪽 상단 사람모양 아이콘 => [My console]을 클릭합니다.
4) 홈페이지 하단 My hardware에 내가가진 모듈, 보드를 추가합니다.
5) 오른쪽 상단 사람모양 아이콘 옆 [Compiler]를 클릭합니다.
6) Workspace창이 뜨면 왼쪽 위 [New]버튼을 눌러서 Platform에 내가 사용하고자 하는 보드가 있는지 확인 후, Template에서 원하는 예제를 선택합니다.
7) 생성된 프로그램 하위의 [main.cpp]를 열면 선택한 예제의 코드를 확인할 수 있습니다.
8) 중앙 상단에 [Compile]을 클릭하면 .bin 확장자의 파일이 생성됩니다.
9) 보드를 컴퓨터와 연결하고 '내 PC'에서 보드가 연결된 것을 확인합니다.
10) 코드를 보드에 다운로드 하는방법
: 8번에서 생성된 bin파일을 9번에서 확인한 E드라이브에 붙여넣기 합니다.
<예제 소스코드>
모듈 전면의 4개의 LED가 200ms간 꺼있고, 1sec간 켜있는 동작을 반복합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include "mbed.h"
DigitalOut led_green(LED1);
DigitalOut led_orange(LED2);
DigitalOut led_red(LED3);
DigitalOut led_blue(LED4);
int main() {
while(1) {
// WARNING: LEDs are OFF
led_green = 1;
led_orange = 1;
led_red = 1;
led_blue = 1;
wait(0.2); // 200 ms
// WARNING: LEDs are ON
led_green = 0;
led_orange = 0;
led_red = 0;
led_blue = 0;
wait(1.0); // 1 sec
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
<예제 동작확인>
.....................................................................................................................................................
시제품 제작 문의
'이론 > AVR' 카테고리의 다른 글
무이메이커스_[ Cortex-m4 / stm32/mbed ] 시리얼통신 (0) | 2019.10.11 |
---|---|
무이메이커스_[ arduino] 아두이노 원터치 LED제어(버튼/터치센서 한개로 LED제어) (0) | 2019.10.01 |
무이메이커스_[arduino] 아두이노 핀 부족! 멀티플렉서를 이용해 하나의 핀으로 여러개의 센서값 받기 - (4051BE, MUX) (0) | 2019.09.17 |
무이메이커스_[arduino] 트랜지스터(TR)을 이용해 고 전류 회로 구동하기 - 트랜지스터 외부전력 스위칭(LED 구동기/ DC 모터 드라이버) (0) | 2019.08.19 |
무이메이커스_[arduino]Shift Register(시프트레지스터) 사용하기/아두이노핀 부족할 때 대처법/74HC595 (1) | 2019.07.15 |