EFM32 vs STM32L. Теоретическое сравнение характеристик.

Для работы составил небольшое сравнение двух семейств энерго-эфективных армов. Что бы труд не пропадал, решил выложить его в инет — вдруг кому пригодится. Изначально оно было в виде таблицы, но так как тут возможность вставлять таблицы так и не появилась, пришлось переделать в плоском виде, а в виде таблицы выложить в ЖЖ (1, 2).
Сравниваться будут семейства контроллеров на базе ядра Cortex M3. Конечно, было бы интереснее сравнить Cortex M4F, но что-то сейчас не хочется сравнивать то, чего реально пока нет (EFM32WG обещают во втором квартале 2013-го, ATSAM4L, вроде как уже вышли, но в продаже только киты, а о STM32L4 вообще ничего не известно). Для конкретики данные будут браться из даташитов на контроллеры, которые у меня есть — EFM32LG332F256 и STM32L151CB. Хоть это и не ближайшие аналоги по количеству памяти, набору периферии и типу корпуса, но по большей части цифры одинаковые для всей линейки. В качестве вводной напишу параметры сравниваемых чипов.

Сравнительная таблица начинки
  • Семейства (конфигурация по максимуму)
    1. EFM32LG
    2. STM32L1
  • Core
    1. Cortex M3 r2p1
    2. Cortex M3 r2p0
  • Тактовая частота
    1. 32kHz — 48MHz
    2. 32kHz — 32MHz
  • Память
    1. 256k Flash (до 1024k в EFM32GG)
      32k RAM (до 128k в EFM32GG)
    2. 384k Flash
      48k RAM
      12k EEPROM
  • Периферия — коммуникация
    1. USB OTG
      3xUSART/SPI/I2S
      2xUART
      2xLEUART
      2xI2C
    2. USB
      5xUSART
      3xSPI/I2S
      2xI2C
      1xSDIO
  • Периферия — интерфейс
    1. LCD8x36
      1xEBI/TFT (шина памяти)
      1xLESENSE (индуктивный/емкостной/резистивный датчики)
    2. LCD8x40
      1xFSMC (шина памяти)
      1xCapacitiveSense
  • Периферия — аналог
    1. 1x8Chx12bit ADC
      2x1Chx12bit DAC
      2x8Ch ACMP
      3xOPAMP
    2. 1x40Chx12Bit ADC
      1x2Chx12bit DAC
      2xACMP
      3xOPAMP
  • Таймеры
    1. 4x16bitGP(12xPWM chan)
      1xLETIMER
      1x24bitRTC
      1x32bitBackupRTC
      1xWatchdog
      3xPulseCounter
    2. 1x32bitGP(4xPWM chan)
      6x16bitGP(18xPWM chan)
      2xBasic
      1xRTC
      2xWatchdog
  • GPIO
    1. 93 (6 портов)
    2. 114 (6 портов)
  • Коммуникация периферии
    1. 1x12Ch DMA + 12xPRS
    2. 1x7Ch + 1x5Ch DMA
  • Шифрование, хеши
    1. 128/256bit AES
    2. 128bit AES + CRC32(EN/IEC 60335-1)
  • Отладка
    1. SWD + Trace
    2. JTAG + SWD + Trace
  • История (wikipedia)
    1. Apr 2008, Energy Micro announced that it licensed the ARM Cortex-M3 core.
      Oct 2009, Energy Micro announced EFM32 Gecko MCU family (EFM32G Series) based on Cortex-M3.
      Mar 2010, Energy Micro announced EFM32 Tiny Gecko MCU family (EFM32TG Series) based on Cortex-M3.
      Jul 2010, Energy Micro announced EFM32 Giant Gecko MCU family (EFM32GG Series) based on Cortex-M3 for memory heavy applications.
      Mar 2011, Energy Micro announced EFM32 Zero Gecko MCU family (EFM32ZG Series) based on Cortex-M0 for low cost applications.
      Sep 2011, Energy Micro announced EFM32 Leopard Gecko MCU Family (EFM32LG Series) based on Cortex-M3
    2. Oct 2006, ST announced that it licensed the ARM Cortex-M3 core.
      Jun 2007, ST announced the STM32 based on the Cortex-M3 (currently known as STM32 F1-series).
      Oct 2009, ST announced that new ARM chips would be built using the 90 nm process.
      Apr 2010, ST announced the STM32L-series (currently known as STM32 L1-series).
      Nov 2010, ST announced the STM32 F2-series, and future development of chips based on the ARM Cortex-M4 and ARM Cortex-M0 cores.
      Mar 2011, ST announced the expansion of their STM32L-series with flash densities of 256 KB and 384 KB.
      Sep 2011, ST announced the STM32 F4-series.
      Feb 2012, ST announced the STM32 F0-series.
      Jun 2012, ST announced the STM32 F3-series.
  • Перспективность
    1. Данные контроллеры — основное направление компании. TG имеет меньшее потребление по сравнению с базовым семейством (G); LG, GG — большее. Сама периферия потребляет одинаково — разница только в ядре. В ближайшие несколько месяцев ожидаются ZG — Cortex-M0+ (правда он без DMA, так что непонятно зачем нужен) и WG — Cortex-M4F. Всё это повыводно и программно совместимо. К концу года обещают радио-контроллеры EFR с потреблением в два раза меньше, чем TG.
    2. Микроконтроллеры — одно из множеств разных направлений компании, низко потребляющие контроллеры составляют малую долю от всех контроллеров компании. Все последующие подсемейства потребляют больше базового, причём не только ядро, но и периферия. Обещают L0 — Cortex-M0 и L4 — Cortex-M4F, но когда они будут и что там будет неизвестно. Семейства обычно повыводно совместимы и частично программно совместимы.

  • Конкретные камни
    1. EFM32LG332F256
    2. STM32L151CB
  • Flash
    1. 256KB
    2. 128KB
  • RAM
    1. 32KB
    2. 16KB
  • Timers
    1. 4GP+1LE 16bit
    2. 6GP+2Basic 16bit
  • USART
    1. 3USART+2LEUART
    2. 3USART
  • SPI
    1. -(3 в составе USART)
    2. 2
  • I2C
    1. 2
    2. 2
  • USB
    1. 1 FullSpeed(OTG+PHY, 6OUT+6IN EP)
    2. 1 FullSpeed(PHY, 8 EP)
  • GPIO
    1. 50
    2. 37
  • ADC
    1. 8
    2. 16
  • DAC
    1. 2
    2. 2
  • COMP
    1. 2
    2. 2
  • AES
    1. +
    2. -
  • DMA
    1. 12chan
    2. 7chan
  • CPU freq
    1. Up to 48MHz
    2. Up to 32MHz
  • VCC
    1. 1.85..3.8V
    2. 1.8..3.6V
  • Temp
    1. -40..+85
    2. -40..+85
  • Package
    1. TQFP64
    2. LQFP48
  • Price
    1. $6..8
    2. $4..6

Энергопотребление
Как ни странно, в даташите на EFM разных параметров нормированно по току меньше, чем у STM, так что брались параметры, данные для EFM и искались их аналоги. Для EFM рассмотрены два семейства — самое жрущее и самое экономное на данный момент. Со стороны STM взят самый маложрущий вариант.
  • Энергопотребление
    1. EFM32LG
    2. EFM32TG
    3. STM32L1
  • Потребление в активном режиме (сравниваем на 1 и 32МГц при исполнении кода из Flash)
    1. Vdd = 3.0V Напряжение питания ядра неизвестно.
      Потребление на 1MHz (HFRCO) примерно 244uA,
      на 32MHz (внешний кварц) — 6.4mA (200uA/MHz)
    2. на 1MHz (HFRCO) примерно 210uA,
      на 32MHz (внешний кварц) — 5mA (157uA/MHz)
    3. Vdd = 3.6V Возможна перестройка внутреннего LDO между тремя диапазонами (1V2, 1V5, 1V8). При питании 1.2В камень и АЦП могут работать на частоте до 4MHz. Таким образом,
      потребление (внешний кварц) на 1MHz — 270uA,
      на 32MHz — 9.6mA (300uA/MHz),
      внутренняя RC даёт на 4.2MHz — 0.9mA (214uA/MHz),
      на 0.524MHz — 150uA (286uA/MHz)
  • Потребление в Sleep(EM1) режиме (сравниваем на 1 и 32МГц при исполнении кода из Flash)
    1. Vdd = 3.0V Напряжение питания ядра неизвестно.
      Потребление на 1MHz (HFRCO) примерно 114uA,
      на 32MHz (внешний кварц) — 1.6mA (50uA/MHz)
    2. на 1MHz (HFRCO) примерно 53uA,
      на 32MHz (внешний кварц) — 4.5mA (140uA/MHz)
    3. Vdd = 3.6V Возможна перестройка внутреннего LDO между тремя диапазонами (1V2, 1V5, 1V8). При питании 1.2В камень и АЦП могут работать на частоте до 4MHz. Таким образом,
      потребление (внешний каврц) на 1MHz — 80uA,
      на 32MHz — 2.3mA (72uA/MHz),
      внутренняя RC даёт на 4.2MHz — 210uA (50uA/MHz),
      на 0.524MHz — 60uA (115uA/MHz)
  • LowPower Sleep/Deep Sleep (EM2)
    1. 1.1uA
    2. 1uA
    3. 4.4uA...22uA в зависимости от периферии
  • Stop Mode (EM3)
    1. 0.9uA
    2. 0.59uA
    3. 0.6uA...8uA в зависимости от периферии
  • Standby/Shutoff Mode (EM4)
    1. 0.02uA
    2. 0.02uA
    3. 0.3uA...1.55uA в зависимости от периферии
  • Flash (write/erase)
    1. 7mA
    2. 7mA
    3. 1.5mA
  • GPIO токи утечки
    1. +/-25nA (HiZ to Vcc/GND)
    2. +/-25nA
    3. +/-50nA
  • Кварц/RC
    1. LFXO — 190nA;
      HFXO — 85uA(4MHz), 165uA(32MHz);
      LFRCO — 190nA;
      HFRCO — 22uA (1.2MHz), 106uA(28MHz)
    2. LFXO — 190nA;
      HFXO — 85uA(4MHz), 165uA(32MHz);
      LFRCO — 190nA;
      HFRCO — 22uA (1.2MHz), 106uA(28MHz)
    3. LSE — 600nA;
      HSE — 460uA;
      LSI — 400nA;
      HSI — 100uA(16MHz);
      MSI — 0.75uA(65.5kHz), 4.5uA(1.05MHz), 15uA(4.2MHz)
  • ADC
    1. 1MSamples/s, 12bit, extref — 351uA;
      10kSamples/s, 12bit, intref 1.25V — 67uA
    2. 1MSamples/s, 12bit, extref — 351uA;
      10kSamples/s, 12bit, intref 1.25V — 67uA
    3. ADC (по Vdda) — 1000uA;
      Ref — 400uA
  • DAC
    1. 500kSamples/s, 12bit — 400uA;
      100kSamples/s, 12bit — 200uA;
      1kSamples/s, 12bit — 38uA
    2. 500kSamples/s, 12bit — 400uA;
      100kSamples/s, 12bit — 200uA;
      1kSamples/s, 12bit — 38uA
    3. DAC (по Vdda) — 210..320uA;
      Ref — 130...220uA
  • OpAmp
    1. 13...400uA
    2. 13...400uA
    3. (STM32L151xD) 30..100uA
  • Компаратор
    1. 0.1...195uA в зависимости от режима;
      5uA опора
    2. 0.1...195uA в зависимости от режима;
      5uA опора
    3. Copm1 — 160nA;
      Comp2 — 0.5uA(SlowMode), 3.5uA(FastMode)
  • VoltageComp (программное отслеживание напряжения питания)
    1. 0.1...14.7uA
    2. 0.1...14.7uA
    3. объединён с ADC
  • UART
    1. USART — 7.5uA/MHz;
      UART — 5.63uA/MHz;
      LEUART — 150nA
    2. USART — 7.5uA/MHz;
      UART — 5.63uA/MHz;
      LEUART — 150nA
    3. USART — 9 [6]uA/MHz (Vcore = 1.8 [1.2V])
  • I2C
    1. 6.25uA/MHz
    2. 6.25uA/MHz
    3. 8.5 [5.5uA]/MHz (Vcore = 1.8 [1.2]V)
  • Timer
    1. TIM0 — 8.75uA/MHz;
      LETIMER — 150nA;
      PCNT — 100nA;
      RTC — 100nA
    2. TIM0 — 8.75uA/MHz;
      LETIMER — 150nA;
      PCNT — 100nA;
      RTC — 100nA
    3. TIM2,3,4 — 13 [8]uA/MHz;
      TIM6,7 — 5.5 [3.5]uA/MHz;
      RTC — 470nA (Vcore = 1.8 [1.2]V)
  • AES
    1. 2.5uA/MHz
    2. 2.5uA/MHz
    3. (STM32L162xD) 5 [3]uA/MHz (Vcore = 1.8 [1.2]V)
  • GPIO на порт
    1. 5.31uA/MHz похоже, что все 6 портов в сумме
    2. 5.31uA/MHz
    3. 5 [3.5]uA/MHz (Vcore = 1.8 [1.2]V)
  • PRS
    1. 2.81uA/MHz
    2. 2.81uA/MHz
    3. -
  • DMA
    1. 8.12uA/MHz
    2. 8.12uA/MHz
    3. 12 [8]uA/MHz (Vcore = 1.8 [1.2]V)

  • Источники тактовой частоты
    1. EFM32
    2. STM32L1
  • Встроенная RC очень низкой частоты
    1. ULFRCO — 1kHz, доступен до EM4, может использоваться для RTC, WDG, LCD и низкопотребляющей периферии (LETIM, LEUART, LESENSE, BURTC), потребление и время запуска не указаны
    2. -
  • Встроенная RC низкой частоты
    1. LFRCO — 32.768kHz, доступен до EM2, может использоваться для любой периферии, потребление 190nA, время старта 150us
    2. LSI — 37kHz, доступен до Stanby(?), может использоваться для IWDG, RTC, LCD, потребление 400nA, время старта 200us
  • Встроенная RC средней частоты частоты
    1. -
    2. MSI — 65.5kHz, 131kHz, 262kHz, 524kHz, 1.05MHz, 2.1MHz, 4.2MHz, доступен до LowPowerSleep(?), может использоваться для всего кроме ADC, IWDG, RTC, LCD, потребление 0.75...15uA, время старта 5...30us
  • Встроенная RC высокой частоты
    1. HFRCO — 1.2MHz, 6.6MHz, 11MHz, 14MHz, 21MHz, 28MHz, доступен до EM1, может использоваться для любой периферии кроме WDG и BURTC, потребление 22...106uA, время старта 0.6 Cycle
    2. HSI — 16MHz, доступен до LowPowerSleep(?), может использоваться для любой периферии кроме IWDG, RTC, LCD, потребление 100uA, время старта 3.7us
  • Внешний часовой кварц
    1. LFXO — 32.768kHz, использование аналогично LFRCO, потребление 190nA, время старта 400ms (настраиваемое)
    2. LSE — 32.768kHz, использование аналогично LSI, кроме IWDG, плюс можно завести на TIM9,10,11, потребление 600nA, время старта 1s
  • Внешний высокочастотный кварц
    1. HFXO — 4...48MHz, использование аналогично HFRCO, потребление 85...165uA, время старта 400us (настраиваемое)
    2. HSE — 1...24MHz, использование аналогично HSI, кроме ADC, плюс можно завести на RTC, LCD, потребление 460uA, время старта 1ms
  • Использование генератора частоты
    1. LFXO, HFXO
    2. LSE — 1...1000kHz; HSE — 1...32MHz
  • Дополнительные источники
    1. AUXHFRCO — 1...28MHz, используется для программирования флеша, отладки (SWO) и LESENSE
    2. -
  • PLL
    1. -
    2. x3..x48 — /2,/3,/4 (вход от HSI,HSE, выход на ядро и периферию)
  • Прескайлинг
    1. Отдельные прескайлеры для ядра и высокочастотной периферии, у таймеров есть отдельные прескайлеры, низкочастотная периферия прескайлится индивидуально
    2. Для ядра, потом эта частота может прескайлиться для APB1, APB2, TIM2,3,4,6,7 и TIM9,10,11
  • Вывод частоты наружу
    1. 2 выхода с разными наборами частот
    2. 1 выход
  • Прочее
    1. Периферия может работать на частоте выше частоты ядра
    2. Есть защита от сбоя HSE

  • Режимы работы
    1. EFM32
    2. STM32L1
  • Run (EM0)
    1. Всё работает, ядро выполняет код
    2. Всё работает, ядро выполняет код
  • LowPower Run
    1. -
    2. Ядро включено, периферия включена, но внутренний регулятор в низкопотребляющем режиме, по-этому всё работает на низких частотах (только 32kHz) и с ограничениями
  • Sleep (EM1)
    1. Ядро спит, всё остальное работает в штатном режиме; время просыпания 0Cycles
    2. Ядро спит, всё остальное работает в штатном режиме; время просыпания 0.36us
  • LowPowerSleep (EM2)
    1. Высокая частота отключена, на низкой могут работать LCD, RTC, LETIMER, PCNT, WDOG, LEUART, I2C, ACMP, LESENSE, OPAMP, USB; включены POR, BOD, сохраняется состояние RAM и CPU; время просыпания 2us
    2. Sleep с регулятором в низкопотребляющем режиме; просыпание по прерываниям и эвентам; время просыпания 32us
  • Stop (EM3)
    1. Отключена и высокая и низкая частота, включены POR, BOD, сохраняется состояние RAM и CPU, аозможно просыпание по ACMP, extint, PCNT, I2C; время просыпания 2us
    2. Все частоты в основном домене отключены, регулятор в низкопотребляющем режиме, сохраняется состояние RAM; просыпание по extint, PVD, RTC, USB wakeup, ACMP; время просыпания 7.8...210us в зависимости от используемой тактовой
  • Standby (EM4)
    1. Отключено всё, кроме PinReset, GPIO wakeup, BURTC, POR; время просыпания 163us
    2. Все частоты в основном домене отключены, регулятор отключен, RAM и регистры не сохраняются (за исключением регистров в Standby-домене — wakeup logic, IWDG, RTC, LSI, LSE32k, RCC CSR); просыпание по external reset, IDWG reset, WKUP pin, RTC; время просыпания 50us FastWakeup, 2.5ms SlowWakeup
  • Backup domain
    1. Блоки, автоматически переключающиеся на питание от резервного источника (например, кондёра) — BURTC, 512bytes RAM; работает BOD, есть функция зарядки резервного источника
    2. в отдельном домене RTC и 80bytes RAM, специального бекапного питания нет
  • Описание доступности функций в разных режимах
    1. Таблица в разделе 10.3.1 (EMU->EnergyModes) референс мануала
    2. Таблица доступнности функций есть в даташитах свежих версий в разделе 3.1
  • Прямой переход между спящими режимами
    1. Нет
    2. Нет
  • Прочее
    1. До EM3 периферия может ограниченно взаимодействовать без участия ядра с помощью PRS
    2. Возможна настройка напряжения питания ядра, от которой зависит максимальная частота работы

Организация памяти
  • Flash
    1. EFM32
    2. STM32L1
  • Выносливость
    1. 20k циклов; 10 лет (<85*C) 20 лет (<70*C)
    2. 10k циклов; 30 лет (=85*C)
  • Время стирания (page)
    1. 20.4ms
    2. 3.28ms
  • Время записи (word)
    1. 20us
    2. 3.28ms
  • Потребление при записи/стирании
    1. 7mA MAX
    2. 300uA AVG; 2.5mA MAX
  • Организация
    1. одна банка, поделённая на основной и информационный блоки (у EFM32GG две банки, со всеми вытекающими); размер страницы 2k (у EFM32GG 4k)
    2. Две банки (для старших девайсов), в каждой банке присутствует доп. область; организация 96sect*16pages*256bytes
  • Использование доп. области
    1. В информационном блоке хранятся пользовательские данные (2k), локбиты и системная информация
    2. по 4k системной области и 32b оптион байтов на банку
  • Время доступа
    1. 0ws до 16MHz, 1ws до 32MHz, 2ws до 48MHz
    2. 0ws до 2MHz(1.2V)/16MHz(1.8V), 1ws до 4MHz(1.2V)/32MHz(1.8V)
  • Доступность
    1. EM0, EM1
    2. Run, Sleep, LPRun
  • RWW, 2word write
    1. только для девайсов > 512k (EFM32GG)
    2. только для больших девайсов
  • Контроль
    1. Прерывания по окончанию записи/стирания, возможность прервать стирание, контроль отказов
    2. Прерывания по окончанию записи/стирания, по ошибкам шины
  • Локбиты
    1. Постраничные, отдельно для основного блока и UserData, блокируют страницу от записи и стирания, плюс блокировка отладки и массового стирания
    2. Посекторные для флеша и еепрома; поблочные для Prog/Data/Options; есть защита от чтения встроенным бутлоадером
  • Адреса
    1. Основной блок 0x00000000
      User data 0x0FE00000
      Lock bits 0x0FE04000
      Device info 0x0FE08000
    2. Program 0x08000000
      Data mem 0x08080000
      System mem 0x1FF00000
      Options 0x1FF80000
  • Запись/стирание(за исключением случаев использования RWW)
    1. Чтение не возможно, выполнение кода из flash останавливается (TG, LG, GG; на G попытка исполнения карается хардфайлом — неподтвержённая инфа, источник не помню — , а использование DMA для доступа во флешь, пока идёт запись не предсказуемо...)
    2. При попытке чтения выполнение приостанавливается, или вылетает BusError, в зависимости от ситуации. Причём EEPROM так же подпадает под эти ограничения
  • Прочее
    1. Независимы источник тактирования, UserData не стирается по DeviceErase
    2. MassErase чистит EEPROM (!) и бекап регистры RTC

Прмечание: У STM время записи/стирания и токи потребления даны для EEPROM. В даташите на STM32F103 указаны следующие цифры:
  • Время очистки страницы 20-40ms
  • Время записи полуслова 52.5us
  • Потребление при записи/стирании 7/5mA MAX

  • RAM
    1. EFM32
    2. STM32L1
  • Организация
    1. блоки по 32k, которые можно отключать по отдельности
    2. -
  • Retention
    1. до EM3 (можно отключть в EM2/EM3)
    2. до Stop
  • Адреса
    1. Периферия 0x40000000
      RAM 0x20000000; может быть ремаплена на 0x10000000 для эффективного исполнения из RAM
    2. Периферия 0x40000000
      RAM 0x20000000; может быть ремаплена на 0x00000000 для эффективного исполнения из RAM
  • Доступ
    1. -
    2. байт, полуслово, слово
  • Bit-banding
    1. RAM и периферия
    2. RAM и периферия

  • DMA
    1. EFM32
    2. STM32L1
  • Контроллер
    1. ARM PL230
    2. неизвестно
  • Количество каналов
    1. один 12-канальный контроллер
    2. два контроллера, 7+5 каналов
  • Организация доступа периферии
    1. Любую периферию можно подключить к любому каналу
    2. Каналы прибиты гвоздями к определённой периферии (можно выбрать какая именно периферия юзает сейчас канал)
  • Поток данных
    1. периферия->память(RAM,EBI); память(RAM,EBI,Flash)->периферия; память(RAM,EBI,Flash)->память(RAM,EBI); ! режима периферия->периферия нет!
    2. периферия->память; память->периферия; периферия->периферия; память->память
  • Приоритеты
    1. 2 приоритета + номер канала
    2. 4 приоритета + номер канала
  • Режимы
    1. Обычный, Ping-pong, Scatter-gather, циклическая (каналы 0, 1; для старших семейств), прямоугольное копирование (каналы 0; для старших семейств)
    2. Обычный, циклический, Memory-to-Memory
  • Прерывания
    1. TransferComplte, Error; одно на все каналы(!)
    2. HalfTransfer, TransferComplte, Error; отдельное прерывание на каждый канал
  • Преобразование данных
    1. возможно продвинутое преобразование данных с использованием Scatter-gather и прямоугольного копирования
    2. перепаковка на основе src и dst длины
  • Размер пакета
    1. до 1024
    2. до 65536
  • Арбитраж
    1. настраиваемы для каждлго сеанса передачи данных
    2. из доки не понятно — то ли после каждого слова, то ли вообще нет

Вывод: EM тупо взяли стандартный почти взрослый контроллер, забыв про специфику. В итоге у них навороченное DMA, но всего одно прерывание на все каналы и не умеет нормального «периферия->периферия» (может оно и заработает для периферии с одинаковым размером слова, но «You must set dst_size to contain the same value that src_size contains» (с)).

Периферия
Рассматривалась только наиболее интересная для меня периферия.
  • TIMER (самый навороченный)
    1. EFM32
    2. STM32L1
  • Тип
    1. TIMER
    2. TIM2...TIM5
  • Разрядность
    1. 16
    2. 16 или 32(TIM5)
  • Режимы счёта
    1. up, down, up/down auto-reload
    2. up, down, up/down auto-reload
  • Функции
    1. Input capture, Output compare, PWM, Pulse
    2. Input capture, Output compare, PWM, Pulse
  • Количество каналов
    1. 3 на таймер
    2. 4 на таймер
  • Управление событиями
    1. PRS или внешний сигнал (start, stop, reload and start)
    2. внешний сигнал
  • Прескайлер
    1. 10бит
    2. 1...65536
  • Объединение таймеров
    1. есть, поюс синхронизация таймеров
    2. есть
  • Прерывания
    1. Overflow/UnderFlow, capture/compare
    2. Overflow/UnderFlow, initialization, trigger, capture, compare
  • Доп фичи
    1. Квадратурный декодер, измерение периода и ширины импульса
    2. Квадратурный декодер
  • Прочее
    1. по два регистра захвата на каждый канал захвата, некий Dead-Time Insertion Unit, предназначенный для управления BLDC
    2. -

  • RTC
    1. EFM32
    2. STM32L1
  • Организация
    1. 2xReal Time Counter (24bit+32bit)
    2. навороченный Real Time Clock (Calendar)
  • Compare
    1. RTC — 2x24bitCompReg (autoreload самого RTC); BURTC — 32bitCompReg (autoreload самого BURTC)
    2. 16bit Autoreload wakeup TIM
  • Прескайлинг сравнивалки
    1. RTC — 2^n, n=0..15; BURTC — 2^n, n=0..7
    2. /2,4,8,16; секундный вход календаря

  • ADC
    1. EFM32
    2. STM32L1
  • Доступность
    1. до EM1
    2. до Sleep
  • Разрядность
    1. 12,8,6
    2. 12,10,8,6
  • Число каналов
    1. 8+6
    2. 40+2
  • Дифференциальный вход
    1. 4 диф. канала
    2. нет
  • Частота АЦП
    1. 32kHz...13MHz max
    2. 0.48...16MHz
  • Тактирование
    1. частота периферии с собственным прескайлером 1...128
    2. Напрямую от HSI с прескайлером /1,2,4
  • Диапазон
    1. от AGND до 1.25 <= Vref <= Vdda
    2. от AGND до Vref+ <= Vdda
  • Опора
    1. Int 1.25/2.5V, Vdd, int 5V diff ref, extref (ch6), diff extref (2*(ch6-ch7)), 2xVdd
    2. Внешняя (часто объединена с Vdda)
  • Частота выборок
    1. 12bit — 0.01...1Msps; 6bit — 0.01...1.86Msps
    2. 12bit — 0.03...1Msps; 6bit — 0.03...1.45Msps
  • Время захвата (sampling)
    1. 1...256 ADCclk cycles (2us min в каком-то кривом случае)
    2. до 0.25us
  • Время преобразования
    1. 7(6bit), 11(10bit), 13(12bit) ADCclk cycles
    2. 11(6bit), 13(8bit), 15(10bit), 16(12bit) ADCclk cycles; 1...24.75us
  • Время запуска
    1. 5us (включая опору, без неё 1us)
    2. 3.5us
  • Входное сопротивление
    1. 1MOhm min
    2. 0.5...50kOhm (в зависимости от Msps)
  • Входная ёмкость
    1. 2pF
    2. 16pF (internal sample and hold cap)
  • Входная фильтр
    1. Low pass RC filter (отключаемый), Decoupling capacitor
    2. -
  • Ток на входной ноге
    1. 100nA
    2. -
  • Потребление
    1. 63...351uA в зависимости от режима; внутренняя опора — 65uA
    2. По линии Vdda 1000uA, по линии Vref 400uA
  • Режимы работы
    1. Одиночное, сканирование (до 8 самплов в последовательности), непрерывное, Conversion tailgating, можно вклинить одиночное измерение в последовательность
    2. Одиночное конвертирование, непрерывное, сканирование выбранных каналов, VCMP, discontinuous (АЦПит серию самплов)
  • Oversampling
    1. суммирование и фильтрация, 2...4096 oversampling ratio
    2. -
  • Энергосбережение
    1. -
    2. Может АЦПить на максимальной частоте, когда CPU заторможен, умеет автоматически отключаться
  • Прерывания
    1. Окончено конвертирование, сканирование, overflow конвертирования, сканирование, может генерить PRS по завершению конвертирования
    2. окончание преобразования (regular и injected), «аналоговый вычдог», overrun, выход на рабочий режим
  • Управление от таймера/периферии
    1. PRS
    2. можно подключить к GP таймеру
  • Внутренние каналы
    1. Temperature, VDD/3, VDD, VSS, VREF/2, DAC, OPAMP
    2. Temperature, Vref
  • Конфигурация
    1. -
    2. Независимое время преобразования для каждого канала
      Программируемая задержка между измерениями

  • GPIO
    1. EFM32
    2. STM32L1
  • Организация
    1. 6 портов по 16 выводов
    2. 6 портов по 16 выводов
  • Режимы работы
    1. третье состояние, PushPull, OpenDrain, PullUP, PullDown
    2. третье состояние, PushPull, OpenDrain, PullUP, PullDown
  • Ток по выводу
    1. настраиваемый 0.5, 2, 6, 20mA
    2. до 20mA
  • Доступность
    1. до EM3, в EM4 сохраняется конфигурация вывода
    2. до Stop
  • Входной фильтр
    1. glitch suppression filter
    2. ?
  • Прерывания
    1. 2 прерывания с 16 источников (любой pin)
    2. штук 5 прерываний
  • Защита ESD
    1. есть
    2. вроде есть
  • Блокировка конфигурации
    1. есть
    2. есть
  • Тактирование
    1. Все порты тактируются от одной частоты
    2. Тактирование каждого порта включается отдельно, каждый пин имеет индивидуальную настройку скорости выхода

Документация и инфраструктура
  • Документация на камни
    1. EFM32
    2. STM32L1
  • Организация
    1. Datasheet (chip) — данные по фаршу, техническим характеристикам, распиновка
      Reference manual (family) — схемы организации, инструкция по конфигурированию, использованию периферии
      CM3 Reference manual (family) — описалово ядра
      Errata (chip) — описание ошибок в железе
    2. Datasheet (chip group) — данные по фаршу, техническим характеристикам, схемы организации, распиновка
      Reference manual (family) — инструкция по конфигурированию, использованию периферии
      Programming manual (family) — инструкция по использованию флеша и еепрома
      Errata (family) — описание ошибок в железе
  • Общие впечатления
    1. У EFM документация кажется более структурированной и проработанной, организована с упором на оптимизацию потребления. Информация о конфигурации камней часто дублируется в разной форме, что упрощает понимание, что именно есть в том камне, который лежит перед тобой (эта информация есть даже в референс мануале в виде сводной таблицы)
    2. Вроде есть всё, но очень разрозненно — тяжко искать нужную инфу, пока не привыкнешь понять какая из возможной периферии есть в конкретном камне сложно
  • Схема наименования
    1. Имя содержит инфу о семействе и количестве флеша; тип корпуса и функционал как-то закодирован, как именно — пока не понял
    2. Имя содержит инфу о семействе, подгруппе, количестве флеша, типе корпуса; расшифровка в конце даташита

  • Библиотеки
    1. EFM32
    2. STM32L1
  • CMSIS
    1. V3.01 (07 March 2012)
    2. V2.10 (25 July 2011)
  • Библиотека периферии
    1. единая для всей продукции EnergyMicro
    2. специфичная для STM32L1 (разные семейства используют разные библиотеки)
  • Дополнительные библиотеки
    1. USB, Generic graphic library for EFM32 kit
    2. USB, touch sensing library, I2C Communication peripheral application library, embedded GUI library
  • Сторонние библиотеки в комплекте
    1. FATfs, emWin
    2. -

  • Организация и примеры использования библиотеки периферии
    1. EFM32
    2. STM32L1
  • Документация
    1. Doxygen
    2. Doxygen
  • Описание разных девайсов
    1. Для каждого семейства отдельный каталог с грудой файлов (отдельный по каждому блоку + отдельный по каждому камню). Нафиг они такое учудили я не понял.
    2. Описание всего живёт в файле system_stm32l1xx.h
  • Удобство сборки библиотеки отдельно от программы
    1. Хорошо
    2. Удовлетворительно
  • Полнота API
    1. Периодически торчат прямые обращения к регистрам
    2. Вроде всё делается через API
  • Ассерты
    1. функции обработки ассертов дефайнятся в em_assert.h и могут быть переопределены в юзерской программе
    2. функции обработки ассертов должны дефайнится в юзерской программе (обычно в stm32l1xx_conf.h), или в сборочных скриптах
  • Инициализация GPIO
    1. простая функция
      CMU_ClockEnable(cmuClock_GPIO, true);
      GPIO_PinModeSet(gpioPortB, 9, gpioModePushPull, 1);
      GPIO_PinModeSet(gpioPortB, 10, gpioModeInput, 0);
    2. init-структура
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
      GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;
      GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
      GPIO_PinAFConfig(GPIOA, GPIO_Pin_9, GPIO_AF_USART1);
      GPIO_Init(GPIOA, &GPIO_InitStructure);
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
      GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;
      GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
      GPIO_PinAFConfig(GPIOA, GPIO_Pin_10, GPIO_AF_USART1);
      GPIO_Init(GPIOA, &GPIO_InitStructure);
  • Инициализация периферии
    1. init-структура
      CMU_ClockEnable(cmuClock_UART1, true);
      uartInit.enable = usartDisable;
      uartInit.refFreq = 0;
      uartInit.baudrate = 115200;
      uartInit.oversampling = usartOVS16;
      uartInit.databits = usartDatabits8;
      uartInit.parity = usartNoParity;
      uartInit.stopbits = usartStopbits1;
      uartInit.mvdis = false;
      uartInit.prsRxEnable = false;
      uartInit.prsRxCh = usartPrsRxCh0;
      USART_InitAsync(uart, &uartInit);
    2. init-структура
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
      USART_InitStructure.USART_BaudRate = 9600;
      USART_InitStructure.USART_WordLength = USART_WordLength_8b;
      USART_InitStructure.USART_StopBits = USART_StopBits_1;
      USART_InitStructure.USART_Parity = USART_Parity_No;
      USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
      USART_InitStructure.USART_Mode = USART_Mode_Rx ¦ USART_Mode_Tx;
      USART_Init(USART1, &USART_InitStructure);
  • Ногодрыг
    1. минималистичные инлайн функции
      __STATIC_INLINE void GPIO_PortOutToggle(GPIO_Port_TypeDef port, uint32_t pins)
      {
      EFM_ASSERT(GPIO_PORT_VALID(port));
      GPIO->P[port].DOUTTGL = pins & _GPIO_P_DOUTTGL_DOUTTGL_MASK;
      }
    2. минималистичные, но не инлайн функции
      void GPIO_ToggleBits(GPIO_TypeDef GPIOx, uint16_t GPIO_Pin)
      {
      /* Check the parameters */
      assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
      GPIOx->ODR ^= GPIO_Pin;
      }

Примечание: «Energy Micro is possibly the only ARM Cortex-M0/M3 MCU vendor whose peripheral drivers are available under a permissive open source license. This makes it ideal for Open Source Hardware projects. But, CMSIS dependency of emlib has to be reworked.» (C) https://github.com/viswesr/EnergyMicro-Peripheral-Library


Примечание: не знаю, как у ST, а у EM большая часть вспомогательного софта пока выглядит сыровато, но потихоньку развивается, есть версии под линукс и макось.

Резюме
В целом ИМХО на чаше весов STM`а раскрученность, доступность (и в следствии — более низкая цена) и количество/функциональность периферии, на чаше EFM`а — большая заточенность под низкое потребление, более проработанная документация, более красивые библиотеки, большая «близость разработчиков к народу».
  • 0
  • 21 января 2013, 08:02
  • Alatar

Комментарии (104)

RSS свернуть / развернуть
о господи. и где же теория? факты из даташита, которые осилил прочитать разве что на треть…
+1
  • avatar
  • xar
  • 21 января 2013, 12:32
Теория — в плане, что без практического сравнения реальных характеристик и удобности использования.
+1
Табличку бы насяльника :)
0
См. самый первый абзац — тут таблички не работают, так что она есть, но не здесь.
0
Здесь таблички нуна делать картинками.
0
что-бы потом пошел срач: «залей в большем разрешении», «вставь в статью, а то картинкохостанг у тебя паршивый», «буковки некрасивые, смени шрифт»… И зачем оно надо?
Линк на таблицу есть — оптимальный вариант.

P.S.: Ну ты и сам знаешь, что я только линк и оставил бы.
0
И зачем оно надо?
Затем, что по другому сюда все равно не вставить) Ну, разве что в теге code и псевдографикой.
0
оно = срач про картинки. Так, к сведению.
0
Не ты ли не так давно призывал отвечать в контексте обсуждения? А контекст про таблички.
0
В целом на чаше весов STM`а раскрученность, доступность (и в следствии — более низкая цена) и количество/функциональность периферии, на чаше EFM`а — большая заточенность под низкое потребление, более проработанная документация, более красивые библиотеки, большая «близость к народу».
Скорее — ИМХО…
Скажу свое: «близость к народу» как раз и определяется тэгами «раскрученность, доступность (и в следствии — более низкая цена) и количество/функциональность периферии»… Достаточно только поискать на предмет «купить» (в т.ч. и готовые киты)…
0
=) Аргумент принят.
Хорошо, переформулирую — «близость разработчиков к народу» (не камней). Я имел в виду именно обратную связь, возможность получить консультацию или оставить пожелания непосредственно разрабам. И, кстати, открытость лицензии, под которой они либы выкладывают. Правда вот софт они что-то в опенсорс не выкладывают, зато на пожелания в форуме реагируют. Словом, видно, что там работают живые люди, с которыми можно пообщаться.
0
именно обратную связь, возможность получить консультацию или оставить пожелания непосредственно разрабам.
Это вы про Energy Micro? Не видно что-то толку от пожеланий — на выпускаемые изделия не очень повлияешь.
Правда вот софт они что-то в опенсорс не выкладывают, зато на пожелания в форуме реагируют
А оно надо чтобы opensource? Потом самому его до ума доводить что ли? Главное чтобы работало.
Да и как тот же софт для Jlink-а в исходном виде выложить? Это же их хлеб — если откроют, то деньги не с чего будет получать.
0
>>Не видно что-то толку от пожеланий
ХЗ, форум работает только месяца три. Даже на EFR`е пожелания не могли бы сказаться, надо ждать следующего девайса. Будем посмотреть (С).

>>Да и как тот же софт для Jlink-а в исходном виде выложить?
Причём тут JLink? Понятно, что исходники чужого софта не выложишь. А вот в EnergyAware Designer я бы может и покопался не досуге. Правда, он на нелюбимом мной Qt но это мои личные заморочки.
0
Использую EFM32 для устройств и нравится всё больше и больше чем STM32L
0
  • avatar
  • x893
  • 21 января 2013, 22:05
Ага, мне тоже они как-то больше по душе, несмотря на некоторые странности периферии. Я, вообще-то, раньше всё АВРы юзал, не было повода переползти, а коллега уже на STM перешёл. Вот недавно и я попытался на них перейти и как-то оно мне не понравилось. А EFM ИМХО заметно приятнее.
Кстати, скажите, не напрягает то, что всего одно прерывание на всё DMA? С аппаратными багами не сталкивались? (что-то эррата подозрительная).
0
Не использовал DMA, поэтому не могу сказать ничего. Но поддержка и софт существенно приятнее чем у STM. К тому же они прислали STK3700.
0
Хм. Честно сказать, плохо себе представляю задачу для микропотребляющего процессора, в которой бы не было смысла использовать DMA. Разве что что-то, почти не общающееся с внешним миром, основной задачей чего является ногодрыг.
Собственно, по этой причине вообще не понимаю смысла семейства EFM32ZG — с одной стороны при цене 40-50 руб его спокойно можно пихать дополнительным мозгом, с другой стороны без DMA ему будет напряжно общаться с главным контроллером. Но это мелочи — основная беда, что код для старших братьев автоматически становится несовместимым, то есть половину кода придётся держать в двух вариантах — с DMA и без. Как бы, нафиг оно тогда надо?
0
Честно сказать, плохо себе представляю задачу для микропотребляющего процессора, в которой бы не было смысла использовать DMA. Разве что что-то, почти не общающееся с внешним миром, основной задачей чего является ногодрыг.
Задачу придумать несложно.
Из даташита:
• Gas metering
• Energy metering
• Water metering
То есть измерение и подсчёт импльсов на нескольких входах (до трёх) и изредка выдача накопленных значений в какой-нибудь интефейс. И за 40-50 рублей.
0
Сегодня прилетело обновление даташитов на ZG — DMA там таки будет, что очень радует. Заодно добавили DAC (правда, не обычный, а токовый) и AES (немного урезанный по отношения к старшим товарищам). Зато снизили максимальную тактовую до 24МГц.
0
Заодно добавили DAC (правда, не обычный, а токовый)
А что это за зверь?
0
А фиг его знает. Вот всё, что написано в даташите, больше пока никакой инфы нет —
Current Digital to Analog Converter
• Selectable current range between 0.05 and 64 uA

The current digital to analog converter can source or sink a configurable constant current, which can
be output on, or sinked from pin or ADC. The current is configurable with several ranges of various
step sizes.
0
Забавно. Как я понимаю, для получения сигнала в виде напряжения этот DAC нужно нагрузить на резистор?
0
Видимо да. Только снимать результат надо через буфер, что бы входное сопротивление не влияло.
0
Это типа как у силабсов, там тоже ЦАПы токовые. Грузить удобно на инвертирующий вход ОУ.
0
Угу, видел. Потому, кстати, и тут упоминанием такого ЦАПа заинтересовался.
Грузить удобно на инвертирующий вход ОУ.
Приведи схемку, плиз.
0
>>нравится всё больше и больше чем STM32L
Дороговаты они всё же, по сравнению с STM32.

Но описания, софт, периферия мне тоже как-то больше понравились, чем у тех же STM32
0
EM тупо взяли стандартный почти взрослый контроллер, забыв про специфику.
Ну не совсем же забыли! Например LEUART может посылать/принимать данные в режиме EM2 (потребление при этом — единицы uA).

В итоге у них навороченное DMA, но всего одно прерывание на все каналы
Да, идеала нет. Могли бы несколько векторов сделать…

не умеет нормального «периферия->периферия»
А оно надо, такая функция? Зачем?
0
>>Например LEUART может посылать/принимать данные в режиме EM2
Я не спец по разработке чипов, но не думаю, что понадобилось сильно переделывать «стандартный почти взрослый контроллер» PL230, что бы научить его работать от низкой частоты. Впрочем, про то, что «не совсем же забыли!» я не спорю =).
>>А оно надо, такая функция? Зачем?
Ну мне на ум приходят задачи типа скидывания сырых измерения в UART/радиоканал, копирования значения из счётчика в DAC и прочие такого плана. На практике мне такое пока не нужно было, но я знаю, что я извращенец и фанат выноса задач в фон, так что не сомневаюсь, что рано или поздно встанет задача, где бы я это с удовольствием применил =)
0
>>Да, идеала нет. Могли бы несколько векторов сделать…
Зато по два вектора на каждый USART =)
0
Хочу поблагодарить автора за интересный материал.
Теперь большое желание поработать с EFM32. Хочу купить несколько чипов и сделать отладочную платку, но есть вопросы.
Как программируется этот микроконтроллер? Без программаторов можно обойтись?
Есть ли готовая схема пробной платки в Eagle-формате?
0
Для программирования можно использовать их киты, например, EFM32-G8xx-STK (~80$).
Также все efm-ы имеют препрошитый во flash загрузчик, который может быть использован для программирования или может быть перешит (умеет перешивать сам себя).
0
Для пробы можно заказать бесплатных образцов (правда всего по две микрухи высылают), или даже попробовать заказать бесплатный кит. Контроллер программируется по SWD как минимум jlink`ом (скорее всего и любым другим SWD-отладчиком). Плюс, как уже сказали, там есть предпрошитый UART-бутлоадер или UART/USB-бутлоадер (прошивка заливается из любой терминалки, поддерживающей XMODEM), но надо быть осторожным, так как он не однократно-зашитый, как в STM, а обычна софтина во флеше и его можно спокойно снести. Так что предусмотреть SWD надо обязательно, даже есть не собираетесь им пользоваться.
В апноте 0002 есть некие референс-схемы в формате OrCAD, но как я понимаю, там только мелкие куски схемы. Плюс символы в форматах OrCad, CSV и Edif. Разводки китов они, почему-то не выкладывают, только схемы в PDF.
ЗЫ: я рисую в альтиуме.
0
Для пробы можно заказать бесплатных образцов (правда всего по две микрухи высылают)
Тут могут быть определенные проблемы. Сами сэмплы я у EM выпросил, а вот слать они отказались — типа используемая ими курьерская служба в ваш город не возит, а с другими не работаем. Примите наши извинения.
0
Сурово… Это UPS так придирается? Не знал.
0
Ну, точнее — у них нет офиса в моем зажопинске. EM предложили отправить на другой адрес, я отказался. Какая курьерская служба — не помню.
0
Понятно… Можно попробовать договориться с Элтехом, что б обычно почтой послали, но не факт.
0
Спасибо! Значит, все не так сложно.
Просто потрясающие контроллеры, судя по описанию.
Документация очень понравилась. Понятнее и легче читается, чем у STM.
Заказываю.
0
Спасибо за спасибо — приятно, что хоть кому-то полезно =).
Потрясающие это EFR — я когда увидел их характеристики по потреблению долго челюсть собирал. Жаль только почти год их ждать.
0
Потрясающие это EFR — я когда увидел их характеристики по потреблению долго челюсть собирал
А что там?
0
Ядро — полноценное Cortex-M3 — с внешним кварцем на 40МГц кушает 75мкА/МГц в ране и 30мкА/МГц в слипе, приёмник при чувствительности -110дБ@38.4kbps хочет что-то около 4мА, передатчик на 0дБм@38.4kbps — 5мА (это для 868МГц; 2400МГц чуть прожорливее). Даже если умножить эти цифры на 1.5 — 2 (коэффициент рекламного бла-бла-бла) получается весьма нехилый результат. При этом, надо отметить, максимальная мощность 17дБм (многие другие микропотребляющие трансиверы обычно ограничиваются гораздо меньшим максимальным выходом).
0
… как раз в тему: Energy Micro adds 100 Cortex-M3 MCUs
0
… упс, не посмотрел дату :))… старая статья однако
0
Кстати да, общее количество контроллеров у них устрашающее (с выходом ZG и WG перевалит за 200), но выбрать конкретный под задачу не очень сложно — спасибо вменяемым сравнительным таблицам, например из EFM32 Brochure.pdf. Распечатал две страницы с таблицами на одном листе A3 — всё как на ладони.
0
Поделюсь практическими мыслями по EFM32. Поигрался с EFM32G880F128. Намного проще STM32L, соответственно и проще в освоении. За пару вечеров разобрался с тактированием, GPIO, RTC и LCD, включая сборку макета.
Не понравился RTC, который и называть так я бы не стал, больше похож на обычный таймер. По потреблению: задействовал RTC, по прерыванию раз в секунду загружаем в LCD, остальное время в EM2 — 95мкА.
0
  • avatar
  • INN
  • 26 февраля 2013, 23:09
>>Не понравился RTC, который и называть так я бы не стал, больше похож на обычный таймер.
А если посмотреть внимательнее, он так и называется — Real Time Counter. В EFR, кстати, таки будет нормальный RTC, так что есть надежда, что и в следующих семействах EFM он появится.
А из каких соображений G взяли? Он же уже порядочно устарел.

95мкА в EM2 — что-то как-то много. Из чего складывается? Или это не только камень, а вся схема?
0
Это наверняка вся схема — у меня в EM2 1 — 1.5 uA (правда тоже вся схема)
0
От STM32L151 меньше 3uA никак не получается
0
А из каких соображений G взяли? Он же уже порядочно устарел.
Когда они устареть успели? Им всего-то годков несколько…
0
После того, как вышли TG и LG, заметно доработанные (улучшено много чего, например, flash, DMA, RTC). Хотя, конечно TG и LG по корпусам и количеству памяти не полностью перекрывают G. Зато по цене LG в таком же корпусе и с равным количеством флеша, но большим количеством RAM и периферии стоит немного дешевле, чем G (в серии, разумеется, не штучно).
0
Не подскажете где на них цены лучше посмотреть?
0
Я пока кроме Элтеха вменяемых источников не нашёл. Ну или, если чисто цены посмотреть, то Mouser. Для примера, по ценам Элтеха от 25шт. и маусера за 1000шт.
EFM32G232F64 167.2руб $3.80
EFM32LG232F64 157.66руб $3.66
0
Спасибо.

P.S. Цена вроде вменяемая…
0
Беру свои слова обратно. Выяснилось, что у LG потребление раза в полтора (!) (и это при том, что оно изначально по даташиту несколько больше, чем у G) больше, чем заявлено в даташите. Представители EM это подтвердили и пообещали в скором времени поправить даташит. Так что теперь сам думаю, а нужно ли оно мне…

Epic Fail
0
Вся схема, только это 2 кнопки и дисплей 4-х разрядный. G — что нашел и то на макетке. Сейчас пытаюсь найти хоть что-нибудь в розницу — 0, только большими партиями.
0
Ну это да, зависит от того, что для Вас «большая партия». Если для любительских задач, то с доставабельностью большие проблемы =(.
0
остальное время в EM2 — 95мкА.
Возможно отладку-трассировку не выключили. С ней ток получается на ~80 мка больше.
0
Про отладку не сообразил. Вечером посмотрю.
0
Да и в EM2 он не войдет при дебаге
0
Не войдёт, если отладчик подключен. А если просто трассировка включена, то войдёт, но будет потреблять при этом не 1-2 мка, а больше 80 мка.
0
Отладчик отключал, а вот как отключить дебаг в Coocox что-то не найду.
0
Специально отключать не нужно. Для получения трассировки в программе должен быть вызов функции TRACE_ProfilerSetup (или чего-то похожего). Достаточно не вызывать её.
0
Если BSP_TraceProfilerSetup(), то я его с самого начала убрал.
0
Ну это я не знаю, где оно у вас может вызываться…
А что программа по трассировке говорит? Выдаёт ход исполнения?
0
Да трассировка идет и я вижу в настройках ключ дебага, но Coocox не дает изменить, только оптимизацию. В старой версии можно было менять.
0
Оно где-то в инициализации должно включаться. В SystemInit или ещё где…
0
Перенес из Coocox в Keil, отключил Debug ~ 7 мка.
0
Поставил Simplicity Studio — тот всосал с ихнего сайта ВСЕ на комп: и доки, и примеры(в т.ч. для Free RTOS и Keil RTX CMSIS RTOS). Очень удобное ПО для освоения архитектуры и быстрого начала кодирования. Благо еще, что chines из CooCox подсуетились — их IDE поддерживает EFM32.

Energy Micro вообще молодцы. Вот что значит настоящие викинги и «нордические арийцы». Конкретно жгут «белые неандертальские чукчи» — захудалый, в вечной мерзлоте городишко Тронхейм дал электрон.отрасле больше, чем вся Россия: Nordic Semiconductor — превосходные чипы трансиверы, проц. AVR и библиотеку Qt спроектировали местные студенты, ну и Energy Micro видимо они же создали.

P.S. Плохо только, что в отличии от STM32 лажовая политика продвижения продукта. У великих и ужасных chines нет ни одной board с EFM32, которых для STM32 под сотню и всяких видов. Надо покупать где-то(непонятно где) Demo board за >$80 и сами чипы.
P.S.2. Вижу что, EMF32 явный торт с точки зрения освоения и кодирования + энергопотребление для гаджетов от батареек.

Вопросы собственно: Кто-нить покупал их Demo board и чипы? Где/почем — какова ситуация на рынке? Интересуют еще готовые лейауты и reference designs для этого чипа, коих вроде нет пока, в отличии от расхаченного STM32.
0
Плату EM-32G880F128-H брал в терраэлектронике, а с чипы заказал в Питерском Элтех-е по подсказке выше.
0
По Simplicity Studio — идея не новая, Атмеловцы тоже её элементы в свою студию вкорячить пытаются. А вот реализация мне понравилась, хоть и не без нареканий.

>>Благо еще, что chines из CooCox подсуетились — их IDE поддерживает EFM32.
А вот с этого места поподробнее — что за чинесы из кокоса? Если речь про дефолтную поддержку в CoIDE из коробки, то можете считать, что не поддерживает. Буквально на днях пробовал — там настолько устаревшая версия библиотеки, что даже названия файлов не совпадают с нынешними. Ну и список чипов, мягко говоря, не полный.

>> Energy Micro вообще молодцы. <и далее...>
Молодцы-то молодцы, но вот об их национальности я бы не стал так смело утверждать. Во всяком случае, известно, что компанию основали разработчики, свалившие из Атмела и TI. То есть, норвеги там, безусловно, есть, но, думаю, далеко не все.

>>P.S. Плохо только, что в отличии от STM32 лажовая политика продвижения продукта.
Про политику ничего сказать не могу, но думаю, тут тоже работает закон рынка — «спрос рождает предложение». Пока никому не нужно, никто не будет продавать. Крупным чипостроителям типа ST, TI, Atmel проще — у них есть налаженные каналы сбыта и им выкинуть на прилавки новые чипы по этим каналам гораздо проще, чем маленькой фирмочке убедить торгашей что их продукция будет востребованной. А вот с китайцами да, не совсем ясно, в чём фигня.

>> Надо покупать где-то(непонятно где) Demo board за >$80 и сами чипы.
Раньше они борды на халяву рассылали, но я под раздачу не попал, мне на запрос не ответили. Да и на самплы лимит — не более 4-рых штук в месяц в одни руки. Зато прилетают быстро — я вот в пятницу около обеда отправил запрос, в среду камни лежали у меня на столе =).
Кстати, раз зашла речь, поделюсь ссылкой на новость — www.energymicro.com/news-archive/alf-egil-bogen-avr-mcu-co-inventor-ru. Кратко говоря, тот самый студент, который в 95-том придумал AVR, теперь работает в EnergyMicro спецом про продвижению.

>>P.S.2. Вижу что, EMF32 явный торт с точки зрения освоения и кодирования
Тут вопрос спорный. Библиотека на данный момент покрывает далеко не всё API, многое приходится делать в стиле AVR — прямым обращением к регистрам. Вот только регистров этих самых там заметно больше =)…

>>Кто-нить покупал их Demo board и чипы? Где/почем — какова ситуация на рынке?
По этому поводу уже писали выше. Кратко говоря — пока всё плохо. Цены на чипы в лучшем случае раза в полтора выше, чем на STM, с доставаемостью для любительского применения полный швах.

>>Интересуют еще готовые лейауты и reference designs для этого чипа, коих вроде нет пока, в отличии от расхаченного STM32.
С официальными лейаутами плохо, есть только несколько апнотов с описанием типовых элементов схемы. Но можно поковыряться на их форуме в разделе Community Projects — там попадаются интересные примеры с разводкой. Со временем, думаю, пару статей по работе с этими камнями накатаю.
0
общее количество контроллеров у них устрашающее (с выходом ZG и WG перевалит за 200)
Все резко упрощается, если отбросить геморойные BGA и QFN корпуса и оставить только QFP(2-3 года, как де-факто стандарт для многоногих чипов(наряду с SSOP) for hobbyists & small busines).

Leopardo (LG) 32K RAM, 64/128/256K FLASH
QFP64:
EFM32LG232, EFM32LG332(USB), EFM32LG842(LCD), EFM32LG942(LCD+USB)
QFP100:
EFM32LG280, EFM32LG380(USB), EFM32LG880(LCD), EFM32LG980(LCD+USB)

Tiny (TG) 2/4K RAM, 8/16/32K FLASH
QFP48:
EFM32TG222
QFP64:
EFM32TG232, EFM32TG842(LCD)

Zero (TG) Cortex-M0+ 2/4K RAM, 4/8/16/32K FLASH
QFP48:
EFM32ZG222

Gecko (G) 2/4K RAM, 8/16/32K FLASH
QFP48:
EFM32G222
QFP64:
EFM32G232, EFM32G842(LCD)
QFP100:
EFM32G280, EFM32G880(LCD)
0
Giant (G) 128K RAM, 512/1024K FLASH
QFP64:
EFM32GG232, EFM32GG332(USB), EFM32GG842(LCD), EFM32GG942(USB+LCD)
QFP100:
EFM32GG280, EFM32GG380(USB), EFM32GG880(LCD), EFM32GG980(USB+LCD)
0
Как серьезные пикейные жилеты ограничиваемся 2-мя семействами и 1-м чипом из третьего:
Leopardo(для всего),
— ну и кое для чегоGiant(так сказать: за что боролись то в последнее время! — 128K RAM, 512/1024K FLASH)
— и Zero EFM32ZG222 — Cortex-M0+
0
Я для себя приоритеты немного по-другому расставил — Zero практически не интересно за отсутствием DMA. Интересно TG (хотя у них тоже много полезного выкинули), LG и WG. Ну гигант за отдельное семейство я не рассматриваю, так как из отличий от LG у него только две банки флеша.

А QFN я бы совсем уж выбрасывать не стал, есть у него ряд преимуществ — при том же количестве ног, полезных у него больше, а значит гибче роутинг. Плюс лучше с точки зрения разводки земли и фильтрации (особенно на 4-ёх слойке), что очень важно для lowpower.
0
Плюс лучше с точки зрения разводки земли и фильтрации (особенно на 4-ёх слойке), что очень важно для lowpower
А какие там нюансы по сравнению с QFP?

P.S. На 4-х слойке, вроде легче и автоматом надежнее, чем на 2-х слойке.
0
Почитайте во втором апноте
0
Зачитал до дыр AppNote 002, но ничего не нашел про QFN и 4-х слойные PCB. Благо, хардвеа аппноты у них коротенькие, в отличии от Atmel, Microchip, TI, ST и NXP, что хорошо, но не совсем.
0
Конкретно про разводку и QFN там нет ничего, я имел ввиду упоминания про чувствительность к наводкам при низких токах потребления. У QFN вместо кучки ножек один большой земляной пад, который тут же можно прошить VIA`ми, соответственно нет дилеммы с фанаутом и укорачиванием земляных дорожек.

PS: там на форуме открыли торг на халяву — forum.energymicro.com/topic/695-get-your-free-efm32-development-kit/ =)
0
нет дилеммы с фанаутом и укорачиванием земляных дорожек
Не понял смысла слова «фанаут». И про некий нюанс с фильтрующими кондерами МК в QFN не вкурил — под QFP тоже рекомендуют иметь земляной полигон(я лично, всегда так и делаю) на пин фильтр.кондера тоже с земляного полигона идет короткий проводник, а потом уже тоже максимально короткий проводник на пин GND чипа(если совсем уже по-Феншую), соответственно, и VDD сделано также только возможно вместо полигона питания использованы более широкие проводники, чем обычные сигнальные. Могли бы ткнуть в какой-нибудь пример такого дизайна(QFN).
0
Да пожалуй, вряд ли я на вскидку куда-то ткну, а искать лень — если только случайно что-то попадётся. А так, в целом, мой феншуй с Вашим вполне согласовывается, так что предлагаю не заморачиваться =)
0
А про «фанаут»? :D
0
А про фанаут — это я видимо вчера с недосыпа ляпнул — если в топе под пузом QFP делать земляной полигон, то один фиг разницы. Просто последний раз когда разводил (как раз EFM32LG332) почему-то полигон в топе забыл сделать, а потом слегка помучился, пытаясь минимизировать земляные, питательные и кварцевые дорожки.
0
Я сам термин фанаут не понял применительно к проектир. PCB. Посмотрел в словаре: fan_out — развёртываться веером, расширяться на краю. ???
0
Ааа =) Ну так раскидывание веером и есть — разводка участка вокруг мелкосхемы с мелкошагом. Я этот термин из AltiumDesigner подцепил, а потом неоднократно на форумах встречал.
0
Вот посмотрел цены у барыг из Элтеха, допустим нужны чипы для совсем простых устройств(фонарик, термометр и т.п.):

Zero Cortex-M0+ :
EFM32ZG222 QFP48 4/8/16/32K — 52/57/62/67 руб

Tiny :
EFM32TG222 QFP48 8/16/32K — 109/118/129 руб

EFM32TG232 QFP64 8/16/32K — 115/124/137 руб
EFM32TG842 QFP64 8/16/32K — 141/154/171 руб
0
Ну на zero ближайшие пол года рассчитывать не стоит.

Кстати, на тему цен — говорил сегодня с человеком из Элтеха, выяснил почему у них по две цены на каждую позицию. Те, что с T на конце — это в трее (поддоне на 90шт), а другие — в катушках по 1000шт.
0
Да, я тоже обратил на это внимание, у них там 1/10 или 1/20 от полного заявленного ассортимента, но цены везде указаны — т.е. как бы по ним ориентироватся.

Это что, цены указаны за 90 и 1000 шт., вроде там кол-во указано другое?
0
Ассортимент-то у них полный, просто в наличие на складе мало чего. С зеро проблема в другом — их просто ещё не выпустили, ожидать стоит к лету. Кстати обещают в апреле самплы и киты Wonder Gecko.

>>Это что, цены указаны за 90 и 1000 шт., вроде там кол-во указано другое?
Как я понял, 90 и 1000 — это те нормо-упаковки, которые они сами покупают. Типа если Вы закажете 50шт того, что на складе нет, что они купят 90 дорогих и 40 оставят себе, а если закажете 500, то, вероятно, они будут закупать уже в ленте подешевле.
0
— Плохо только, что в отличии от STM32 лажовая политика продвижения продукта. У великих и ужасных chines нет ни одной board с EFM32, которых для STM32 под сотню и всяких видов

— А вот с китайцами да, не совсем ясно, в чём фигня
Интересное прочитал про STM:
см. Assembly plants/Shenzhen
см. Design Centers/Greater Noida, India: «The employee strength in Greater Noida is around 2000», хотя в «белых» нас.пунктах по 100-200, особенно «западло», как я понял, держать что в USA см.также Closing/Closed sites. Здесь кто-то из «белых» людей усиленно материл «индусский код» библиотек STM32? :D

Так вот «где собака порылась», а мы то просто недоумеваем: А почему весь ebay/Ali/DX забит под завязку дешевыми STM32? Но тут видимо и Филлипины и Малайзия давно уже сдулись перед мощью китайских заводов и авторитетом правительства КНР — наладить пр-во в 10/20 раз более мощное и плюс к тому просто отчуждать разными способами технологии и мощности у европейских «ботанов», растерзанных кризисом капитализма, пускать сотни тонн чипов на внутренний серый и черный рынок, что вшивые и колониальные Филипосы и Малайзийцы естественно не могут.

И еще: Вот что значит, когда экономика может работать с самой минимальной(возможно нулевой) прибавочной стоимостью и ее при этом не колбасит досмерти, как true рыночную (сколько там навара им надо? 20-30%?). При этом все заводы и люди работают, и все получают зарплату, а весь мир юзает дешевое, но вполне не барахло.


Помянем PHILIPS. Хнык-хнык, я плакалЪ.
NXP уже наверное тоже наполовину китайский.

P.S. Надо ждать, когда китайцы наконец купят с потрохами и Energy Micro.
0
Последний полгода использую EFM32 в низкопотребляющих проектах. Потребляет меньше чем STM32L серия. С программированием никаких проблем нет. Demo board STK3700 они мне выслали еще в октябре. Сэмплы дают, чипы беру в Элтех — не сказал бы что сильно дорогие по сравнению с STM32L. Поддержка сильно лучше чем в STM. В общем у меня только положительные впечатления.
0
  • avatar
  • x893
  • 11 марта 2013, 13:33
Во сколько обошлась покупка+доставка STK3700?
0
они прислали и оплатили. то есть бесплатно.
0
Элтех предлагает только платный вариант STK, а «они» бесплатный. Но предупреждают, что подумают кому
высылать/не_высылать. Так получается?
А в регистрационных данных для получения free kit Вы указывали данные огранизации в которой работаете?
0
Они проводили конкурс в начале года. Я написал свои данные как физ лицо. 100 штук они рассылали — ну и мне отправили. Недавно была такая же акция только DK kit. У меня все киты бесплатные. 3 от Renesas, 2 от STM, 1 от EFM — ну и ещё каки-то валяются. Когда объявляют просто заплняю анкету, ну иногда какую-то хрень написать надо — типа проекта, но это не сложно.
0
Сегодня вот здесь они предлагают указать свою организацию. Т.е. в поиске рынка сбыта своей продукции дистрибьютер может позвонить и поитересоваться. Указывать «левые» данные по этой причине смысла нет. Если я укажу организацию в которой работаю, то для меня так же будет сомнительно что они мне вышлют kit. Получается что такая возможность — не для всех желающих.

Недавно была такая же акция ...
Вот только и остаётся следить за началом таких акций.
0
Ну если сильно хочется — можно придумать красивое название организации. Они там пишут что не всем высылают. Я имел ввиду это
forum.energymicro.com/topic/695-get-your-free-efm32-development-kit/page__hl__free+kit
я получил по этой
forum.energymicro.com/topic/150-contest-description/page__hl__free+kit

Обычно на форумах типа этого пишут что где-то чего-то раздают в разделе «халява». Все набрасываются — кому то присылают.
0
Но бывают и осечки — прислали как то это
am.renesas.com/products/tools/introductory_evaluation_tools/renesas_demo_kits/yrdkrx62n/index.jsp
оказалось полное фуфло (процессор RX62N) — пришлось на детали пустить. Но это редко
0
Да, есть смысл заходить иногда к ним на форум.
Благодарю всех за советы, ссылки.
0
Как опыт работы с Renesas? Как чипы по юзабилити?
У них, вроде, линейка RX100 очень козырная (110uA/MHz обещают), но смущает малое количество информации по этим ядрам. Чем вообще под них компилить можно?
0
Фуфло — примерно также как guru led blink.
0
и 90% здесь производителей dev плат
0
Элтех бесплатные STK высылает, но типа «под проект». Вроде как, если сильно заинтересовать, могут даже DVK выслать (как минимум, на время). Мне STK3300 дали, но я им писал, что у нас за проект. А ещё я недавно попал под халявную раздачу DK3750 на форуме ЕМ.
А вот по www.energymicro.com/freekit в начале года кит получить не удалось — тупо ничего не ответили.
0
Сегодня в Simplicity Studio прилетела очень крупная пачка обновлений, связанных с семейством WG. Видимо, на днях объявят о выходе этих камней.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.