'FPU'에 해당되는 글 3건

  1. 2018.01.13 STM32F4 시리즈 1
  2. 2017.11.17 STM32F405xx 스펙 요약
  3. 2015.12.10 BLDC와 PMSM의 토크


STM32F4 시리즈는 ARM사의 Cortex-M4 코어를 사용한 ST사의 고성능 MCU로 음성신호와 같은 디지털 신호 처리에 필수적인 DSC(Digital Signal Controller)와 부동소수점 연산기(Floating Point Unit; FPU)를 내장하고 있어 기존 MCU가 가지고 있었던 약점을 극복하고, 많은 주변 장치들을 탑재하여 다양한 용도에 손쉽게 사용할 수 있도록 만들어졌습니다.


ARM Cortex-M4 기반의 STM32F4 MCU 시리즈는 180MHz 주파수까지 동작하는 플레시 메모리로부터 실행되는 최대 225 DMIPS/608 CoreMark를 갖는 Cortex-M 기반의 MCU를 위한 산업계 최고의 벤치마크 점수에 도달이 가능하게 한 ST의 NVT 기술과 ART 가속기의 지렛대 역할을 해 왔습니다.


동적 전력 스케일링으로 전류소모는 STM32F410에서 최소 89 µA/MHz으로부터 STM32F439의 260 µA/MHz까지의 플레시 범위에서 동작합니다. 다음은 STM32F4 시리즈의 중요 스펙입니다:


  • Cortex-M4 코어.

    • 최대 동작 클럭 : 168MHz

    • 최대 210DMIPS(1.25DMIPS/MHz)

    • DSP instruction

    • 16bit FPU 내장

  • Memory

    • 512KB Flash

    • 192KB SRAM + 4KB Backup SRAM

    • MPU

    • DMA

  • Peripherals

    • 16 채널 12 bit ADC. 최대 2.4MSPS

    • 2 채널 12 bit DAC

    • 16/32 bit Timer

- Advanced Control Timer

- General Purpose Timer

- Capture/Compare/PWM

    • RTC

    • Watchdog Timer

    • 6 UART/USART

    • 3 SPI, 3 I2C, SDIO

    • USB Full-speed, High-speed

    • CAN. 최대 1Mbps

    • 10/100 Ethernet

    • True Random Number Generator


다음의 STM32F4 시리즈의 ST사의 일복요연한 구분입니다. 참고하시기 바랍니다:



'Embedded Programming > STM32 Cortex-M4' 카테고리의 다른 글

NUCLEO-F446RE 보드 설정(1)  (0) 2018.01.13
NUCLEO-F446RE 보드 스펙  (0) 2018.01.13
STM32 MCU 누클레오 보드  (0) 2018.01.12
Discovery vs. Nucleo board  (1) 2018.01.11
STM32F4 시리즈의 소자 구별 방법  (0) 2018.01.03
Posted by Nature & Life


STM32F405xx과 STM32F407xx의 스펙 요약입니다.


여기서 STM32F407xx는 STM32F405xx과 스펙이 동일하지만, Ethernet 그리고 카메라 인터페이스 기능이 더 추가된 것이며 'xx'부분은 여기에 소개된 것처럼 순서대로 핀 개수, 플레시 메모리 사이즈, 패키지 타입, 온도 범위 그리고 기타 옵션을 나타낸 것입니다. 더 자세한 정보를 위해서 다음 데이터시트를 참조하시기 바랍니다.


http://www.mouser.com/ds/2/389/stm32f405rg-956214.pdf


Features

• Core: ARM 32-bit Cortex-M4 CPU with FPU, Adaptive real-time accelerator (ART Accelerator) allowing 0-wait state execution from Flash memory, frequency up to 168 MHz, memory protection unit, 210 DMIPS/1.25 DMIPS/MHz (Dhrystone 2.1), and DSP instructions

• Memories

• Up to 1 Mbyte of Flash memory

• Up to 192+4 Kbytes of SRAM including 64-Kbyte of CCM (core coupled memory) data RAM

• Flexible static memory controller supporting Compact Flash, SRAM, PSRAM, NOR and NAND memories

• LCD parallel interface, 8080/6800 modes

• Clock, reset and supply management

– 1.8 V to 3.6 V application supply and I/Os

– POR, PDR, PVD and BOR

– 4-to-26 MHz crystal oscillator

– Internal 16 MHz factory-trimmed RC (1% accuracy)

– 32 kHz oscillator for RTC with calibration

– Internal 32 kHz RC with calibration

• Low-power operation

– Sleep, Stop and Standby modes

– VBAT supply for RTC, 20×32 bit backup registers + optional 4 KB backup SRAM

• 3×12-bit, 2.4 MSPS A/D converters: up to 24 channels and 7.2 MSPS in triple interleaved mode

• 2×12-bit D/A converters

• General-purpose DMA: 16-stream DMA controller with FIFOs and burst support

• Up to 17 timers: up to twelve 16-bit and two 32-bit timers up to 168 MHz, each with up to 4 IC/OC/PWM or pulse counter and quadrature(incremental) encoder input

• Debug mode

– Serial wire debug (SWD) & JTAG interfaces

– Cortex-M4 Embedded Trace Macrocell

• Up to 140 I/O ports with interrupt capability

– Up to 136 fast I/Os up to 84 MHz

– Up to 138 5 V-tolerant I/Os

• Up to 15 communication interfaces

– Up to 3 × I2C interfaces (SMBus/PMBus)

– Up to 4 USARTs/2 UARTs (10.5 Mbit/s, ISO7816 interface, LIN, IrDA, modem control)

– Up to 3 SPIs (42 Mbits/s), 2 with muxed full-duplex I2S to achieve audio class accuracy via internal audio PLL or external clock

– 2 × CAN interfaces (2.0B Active)

– SDIO interface

• Advanced connectivity

– USB 2.0 full-speed device/host/OTG controller with on-chip PHY

– USB 2.0 high-speed/full-speed device/host/OTG controller with dedicated DMA, on-chip full-speed PHY and ULPI

– 10/100 Ethernet MAC with dedicated DMA: supports IEEE 1588v2 hardware, MII/RMII

• 8- to 14-bit parallel camera interface up to 54 Mbytes/s

• True random number generator

• CRC calculation unit

• 96-bit unique ID

• RTC: subsecond accuracy, hardware calendar


다음은 STM32F4 시리즈 Cortex-M4 프로그래밍 매뉴얼입니다.

STM32F4 Series Cortex®-M4 programming manual


※ Cortex-M4 = Cortex-M3 + FPU + DSC + 성능 향상

  • FPU(Floating Point Unit)를 내장하지 않을 경우, 라이브러리를 불러와 소프트웨어적으로 emulation 하게 됩니다. 이 경우에 대략 하드웨어보다 8배의 연산 시간의 소요되며, 이를 내장하지 않은 Cortex-M3에서 처럼 고정 소수점(fixed point)을 대신 사용하는 경우 2배의 연산 시간이 요구되지만 사용이 매우 까다롭다는 것입니다. 사용자가 특별히 부동 소수점 연산기(FPU)를 직접 다룰 필요는 없습니다.

  • DSC(Digital Signal Controller)는 디지털 필터인 FIR, IIR 필터 구현이 용이하고, SIMD 명령어의 구현으로 이는 '하나의 명령어로 여러개의 데이터를 처리'하는 것으로, Open GL과 같은 그래픽 데이터 처리(벡터 연산), 멀티미디어 코덱 등에서 성능이 향상됩니다.



'Embedded Programming > STM32 Cortex-M4' 카테고리의 다른 글

STM32 MCU 누클레오 보드  (0) 2018.01.12
Discovery vs. Nucleo board  (1) 2018.01.11
STM32F4 시리즈의 소자 구별 방법  (0) 2018.01.03
AVR vs. STM32 comparison for Drone  (0) 2015.12.04
왜 STM32가 유리한가?  (0) 2015.12.02
Posted by Nature & Life


BLDC 모터의 경우에는 전기각의 매 60도 간격으로 구형파 파형의 전류를 한번에 2개 위상에 가하여 구동하며, 나머지 한 개의 위상은 전력을 가하지 않은 floating 상태로 역기전력(Back EMF; BEMF)를 관측하고 이를 이용하여 6-step commutation을 실시합니다.


따라서 BLDC 모터의 구동은 근본적으로 토크 리플(Torque ripple)이 발생할 수 밖에 없으며 그러므로 시스템에서 토크 리플이나 음향 노이즈가 큰 문제가 되지 않고 감당할 수 있는 수준일 때 사용된다는 것입니다. 하지만 PMSM은 사인파(정현파)형 전류를 3개 위상에 모두 동시적으로 가하여 구동하여, 토크가 매끄럽고 음향 노이즈가 낮다는 것입니다.


이러한 Brushless 모터의 구동을 위해서는 고정자에서 회전 자기장을 만들어 낼 수 있도록 외부에서 제어를 해주어야 하며, 고정자 코일에 토크가 최대가 되도록 전류를 공급하기 위해서는 회전자의 현재 위치에 대한 정보가 반드시 필요하게 됩니다. 이를 위해서 센서나 광학 엔코더(optical encoder)를 사용하는데 이는 가격 상승의 원인이며 이러한 센서들이 다양한 드론(Drone)의 비행 환경에서 감도가 떨어지고 주변 시스템의 잡음 등의 영향으로 센서가 없는 센서리스(Sensorless) 모터를 채택한다는 것입니다.


그러므로 BLDC 모터의 경우에는 회전자의 위치를 파악하기 위해서 floating 상에서 유기된 역기전력(BEMF)이 '0'을 교차하는 순간(Zero-Crossing Point)을 감지하여 회전자와 주어진 고정자 권선 간의 상대적 위치에 대한 정보을 알아내어 위상 정류를 동기화시키는 간단한 방법을 사용합니다. 여기서 역기전력이 '0'인 순간은 자속의 절대값이 최대인 순간을 포착하는 것과 같습니다.



반면에 PMSM의 경우에는 2상의 전류를 감지하여 모터의 복잡한 다변수 비선형 상태 방정식을 이산화(digitized)하여 수치해석적으로 실시간 계산을 통해 회전자 위치를 지속적으로 얻어 반영하는 구조로, 회전자의 토크가 최대가 되도록 고정자 3상의 전류를 공급하게 됩니다. 따라서 PMSM의 센서리스 제어를 위해서는 BLDC와는 달리 고성능의 ADC와 32-bit 이상의 빠른 속도, 때로는 부동 소수점 연산장치(Floating Point Unit; FPU)를 갖는 마이크로컨트롤러(MCU)가 필요하게 된다는 것입니다.



위 그림에서 좌측은 사다리꼴 파형의 역기전력을 갖는 BLDC 모터와 우측은 정현파형의 역기전력을 갖는 PMSM의 각 시간에 따른 토크의 변화를 나타냅니다. 각 상의 토크 T는 역기전력 e와 전류의 i에 곱에 비례하므로 전체 토크 Te = Ta + Tb + Tc 는 이론적으로 일정하게 보입니다. 하지만 실제로는 BLDC 모터의 경우 사다리꼴의 윗변의 폭이 좁아져 토크는 리플이 생기게 됩니다.




'Flight Controller 이해 > 모터제어이론' 카테고리의 다른 글

모터의 토크 발생원리  (2) 2015.12.12
BLDC와 PMSM의 구조  (0) 2015.12.12
BLDC vs. PMSM  (0) 2015.12.09
BLDC의 장단점  (0) 2014.04.03
BLDC모터란?  (0) 2014.04.01
Posted by Nature & Life