본문 바로가기

쓰기

ARM Cortex-M 기초 알아보기
2015.10.26 16:04

ARM Cortex-M 기초 알아보기 - 1. 개요

조회 수 6252
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

 자신이 원하는 대로 움직이는 기계나 회로 등을 만들 때는 MCU 만한 것이 없습니다. 국내에서는 2000년대 들어 8051, PIC, AVR 등을 통해 8bit MCU들이 퍼지기 시작하였고, 2010년 이후 Arduino의 등장을 통해 기존의 8bit MCU를 쉽게 사용할 수 없던 일반인들도 MCU의 기능을 쉽게 접할 수 있게 되었습니다. 최근에는 저렴한 가격에 높은 성능을 가진 ARM Cortex-M 아키텍쳐 기반의 32bit MCU들이 많이 등장하고 있습니다. 아래 표에 현재 가장 많이 쓰이는 8bit MCU 중 하나인 Atmel의 ATmega328P와, STMicroelectronics의 Cortex-M0 MCU인 STM32F030C8의 차이를 비교해 보았습니다.


 

ATmega328P (8-bit)

STM32F030C8 (32-bit)

 최대 동작 클럭

20 MHz

48 MHz

Flash memory

32 KBytes

64 KBytes

SRAM

2 KBytes

8 KBytes

ADC

10 bit(1, 8 channel)

12 bit(1, 12 channel)

타이머

8 bit(2), 16 bit(1)

16 bit(7)

통신

USART(1), I2C(1), SPI(1)

USART(2), I2C(2), SPI(2)

소매 가격

3000원 초반대

3000원 초반대

ATmega328P VS STM32F030C8


 위 표에 나타낸 것처럼 두 MCU는 비슷한 가격대를 가지지만 매우 큰 성능 차이를 보여 줍니다. 여기에 8bit와 32bit 아키텍쳐 자체의 성능 차이까지 포함시키면 격차는 더 벌어집니다. 이처럼 32bit MCU들은 저렴한 가격과 강력한 성능을 내세워 기존의 8bit MCU를 대체해 나가는 추세입니다. 32bit MCU가 사용하기에 조금 더 어렵고, SMD 패키지로만 나오는 점을 제외하면 모든 면에서 매력적이라고 할 수 있습니다. 저도 최근 평소에 즐겨 사용하던 8bit AVR의 성능 한계를 느끼게 되었고, 주력 MCU를 STM32 시리즈로 대체하려고 합니다.


`Cortex-M.jpg

ARM Cortex-M 시리즈 라인업


 Cortex-M 시리즈는 ARM의 MCU 프로세서 라인업입니다. 2015년 현재 M0, M0+, M3, M4, M7가 발표되었으며 숫자가 커질수록 높은 성능과 다양한 기능을 가지며 고성능 어플리케이션에 적합합니다. 그 중에서 본 연재를 통해 다룰 시리즈는 Cortex-M0 시리즈입니다. M0 시리즈는 Cortex 시리즈 중에서 저렴한 가격과 기본적인 성능을 가집니다. 특히 가격대가 기존에 사용되던 8bit, 16bit MCU들과 비슷하고 성능은 더 뛰어나기 때문에 이들에 대응하는 라인이라고 할 수 있습니다. 앞서 언급한 STM32F030C8이 바로 Cortex-M0의 한 종류입니다. M0는 기존의 8bit MCU 어플리케이션을 전부 커버할 수 있으며 개인이 취미 용도로 사용하기에도 부담이 없습니다. 그래서 우선 M0를 통해 Cortex 시리즈에 발을 들여 놓고, 차후에 여력이 된다면 고급 기능들이 추가된 Cortex 상위 시리즈를 다룰 계획입니다.


 ARM은 Cortex 아키텍쳐만 제공을 하고 실제 칩을 제조하는 것은 각 반도체 회사가 담당합니다. 여기서는 STMicroelectronics에서 제조하는 STM32 시리즈를 이용할 것입니다. ST는 Cortex MCU를 탑재한 개발 보드 시리즈인 'Discovery'를 매우 저렴하게 판매하여 Cortex-M의 사용자 수를 늘리고 관련 커뮤니티 규모를 키웠습니다. 그 과정에서 타사에 비해 다양한 사용자 라이브러리와 개발 도구를 제공하여 복잡한 32bit MCU를 편리하게 사용할 수 있도록 한 점도 있습니다. MCU를 배울 때 개발 생태계 규모와 응용 도구들은 매우 중요한 요소이므로 그 쪽으로 우위를 가진 STM32 시리즈를 이용해 강의를 진행하도록 하겠습니다.


  1. ARM Cortex-M 기초 알아보기 - 6. PWM 사용하기

    이번 글에서는 PWM을 이용하여 모터를 구동시켜보도록 하겠습니다. 먼저 STM32CubeMX를 이용하여 설정을 진행합니다. PWM을 사용하기 위해 타이머 TIM1의 Clock Source를 Internal Clock으로 설정해 줍니다. 그 후 사용하고 싶은 채널을 PWM Generation탭으로...
    Date2016.03.25 CategoryARM Cortex-M 기초 알아보기 By최호선 Views3874
    Read More
  2. ARM Cortex-M 기초 알아보기 - 5. ADC 사용하기

    이번에는 ADC와 관련하여 STM32F407VGT6 Discovery board에 연결된 Potentiometer의 ADC 값을 Debug Viewer를 통해 실시간으로 받아보도록 하겠습니다. (프로젝트 진행자가 변경된 이유로 인해 MCU가 Discovery board로 변경되었습니다.) STM32CubeMX의 Confi...
    Date2016.01.28 CategoryARM Cortex-M 기초 알아보기 By최호선 Views4348
    Read More
  3. ARM Cortex-M 기초 알아보기 - 4. GPIO 입력 제어하기

    이번에는 스위치를 통해 GPIO의 입력을 받아 LED를 켜고 끄는 예제를 다루어 보겠습니다. STM32CubeMX 설정은 지난번과 같지만 스위치 입력을 받기 위해 PA4 핀을 GPIO_Input으로 설정합니다. 핀 라벨은 GPIO_SW라고 붙였습니다. STM32CubeMX의 Configuration...
    Date2015.11.10 CategoryARM Cortex-M 기초 알아보기 By박정현 Views3821
    Read More
  4. ARM Cortex-M 기초 알아보기 - 3. GPIO 출력 제어하기

    이번에는 GPIO의 디지털 출력 제어를 통해 MCU계의 Hello World!인 LED 깜박이기를 해 보도록 하겠습니다. 내용 수준은 기존에 8bit MCU 사용이 익숙하신 분들에 맞춰 진행할 것입니다. 사용할 MCU는 Cortex-M0의 한 종류인 STM32F030F4P6입니다. STM32F030F4...
    Date2015.11.08 CategoryARM Cortex-M 기초 알아보기 By박정현 Views4081
    Read More
  5. ARM Cortex-M 기초 알아보기 - 2. 개발 환경 구축

    Cortex-M을 지원하는 IDE는 여러 종류가 있습니다. 그 중에서 저는 ARM에서 공식적으로 지원하는 Keil µVision IDE를 사용하려고 합니다. Keil µVision은 말 그대로 ARM에서 공식적으로 지원하기 때문입니다. 코어 설계사에서 직접 제공하는 IDE가 사후 지원...
    Date2015.10.26 CategoryARM Cortex-M 기초 알아보기 By박정현 Views6043
    Read More
  6. ARM Cortex-M 기초 알아보기 - 1. 개요

    자신이 원하는 대로 움직이는 기계나 회로 등을 만들 때는 MCU 만한 것이 없습니다. 국내에서는 2000년대 들어 8051, PIC, AVR 등을 통해 8bit MCU들이 퍼지기 시작하였고, 2010년 이후 Arduino의 등장을 통해 기존의 8bit MCU를 쉽게 사용할 수 없던 일반인...
    Date2015.10.26 CategoryARM Cortex-M 기초 알아보기 By박정현 Views6252
    Read More
  7. 2013-07-23 소모성 데시칸트 제습기

    2013년 여름에 시작한 프로젝트입니다. 정확한 시작일이 기억나지 않아 가지고 있는 자료 중에서 가장 오래된 것의 날짜를 선택하였습니다. 2013년 여름은 제가 지금 살고 있는 집으로 이사를 온 때인데, 집 주변이 광활한 논으로 둘러싸여 있습니다. 그 때문...
    Date2015.02.08 Category화학식 제습장치 By박정현 Views1425
    Read More
Board Pagination Prev 1 Next
/ 1