пятница, 8 июля 2016 г.

Вкратце о возможностях микроконтроллеров STM32F103C(8,B)

Итак, продолжая тему недорогих микроконтроллеров STM, встречающихся в составе дешевых платок для разработки на Aliexpress и в его окрестностях.


Сегодня рассмотрим имеющиеся на борту возможности/интерфейсы и прочее.


Список стырен отсюда и преведен. Выделено жирным наиболее интересное, особенно в сравнении с платами на Arduino. Он актуален для всего семейства, отличия будут для разных корпусов конкретных микросхем, добавлю пометки в нужных местах.

  • Ядро - ARM® 32-битное Cortex® -M3
    • Максимальная тактовая частота 72 МГц, производительность 1.25 DMIPS/MHz (Dhrystone 2.1) при 0 задержках доступа к памяти
    • Умножение за 1 такт и аппаратное деление
  • Память:
    • 64 килобайта (F103c8) или 128 килобайт (F103cB) флэш-памяти
    • 20 килобайт ОЗУ
  • Тактирование, питание, распределение тактирования
    • 2.0 to 3.6 В для питания и портов ввода-вывода
    • Программируемый детектор напряжений питания (то есть внешние схемы сброса не нужны)
    • Кварцевый осциллятор от 4 до 16 МГц
    • Встроенный RC-генератор на 8 МГц, калиброванный на заводе
    • Встроенный RC-генератор на 40 kHz
    • PLL для получения тактовой частоты ядра
    • Осциллятор на 32 кГц для часов реального времени с возможностью калибровки
  • Низкое энергопотребление
    • Режимы Sleep (сон), Stop (останов) и Standby (ожидание)
    • Отдельное питание VBAT для часов реального времени и регистров хранения настроек
  • 2 x 12-битрых, 1 мкс АЦП (коммутацией обслуживается до 16 каналов, в рассматриваемых  микроконтроллерах до 10):
    • Диапазон конвертирования: от 0 до 3.6 В
    • Возможность двойного сэмплирования и удержания (то есть одновременно 2 канала в одно и то же время)
    • Встроенный сенсор температуры
  • DMA - контроллер прямого доступа к памяти, позволяет разгрузить процессор
    • 7-канальный контроллер DMA
    • Поддерживаемая периферия: таймеры, АЦП, интерфейсы SPI, I2C и USART
  • До 80 скоростных портов ввода-вывода
    • 26/37/51/80 портов (в зависимости от корпуса микросхемы, 37 портов для F103C), с возможностью подключения к  16 внешним векторам прерывания, почти все выдерживают сигналы до 5 В (вне зависимости от напряжения питания)
  • Отладка
    • Интрефейсы Serial wire debug (SWD) и JTAG
  • 7 таймеров
    • Три 16-бит таймера, каждый умеет до 4 IC/OC/PWM или счет импульсов и вход для подключения квадратурныого (инкрементального) энкодера
    • 16-бит, специализировнный тамер с PWM для управления двигателями с dead-time generation и аварийным остановом
    • 2 watchdog таймера (Independent and Window)
    • SysTick таймер обратного счета, 24-битный
  • До 9 коммуникационных интерфейсов (в зависимости от корпуса микросхемы)
    • До двух (два для рассматриваемых) I2C интерфейсов (SMBus/PMBus)
    • До трех USART (последовательный порт с TTL уровнями, три для рассматриваемых) совместим с ISO 7816 интерфейсом, LIN, возможность работы с IrDA, модемом)
    • До двух интерфейсов SPI (18 мегабит/с, два для рассматриваемого)
    • Интерфейс CAN (2.0B Active)
    • Интерфейс USB 2.0 full-speed
  • Модуль расчета CRC , 96-bit unique ID
То есть за не очень большую разницу в цене со всякими ардуинами мы получаем мощный проц со всякими бла-бла-бла... На самом деле нас инетересует применение в устройствах. Причем в полезных устройствах, возможно даже для страйкбола.

В случае страйкбола мы имеем:
  1. высокую тактовую, плюс настоящий RISC, да еще и с аппаратным делением, то есть можно наворачивать всякую сложную логику;
  2. достаточно памяти, чтобы эти всякие сложные штуки накручивать;
  3. два раздельных АЦП по 12 бит, то есть можно всякий контроль навертеть (питания, положения потенциометров и прочего);
  4. много таймеров, можно организовывать:
    • счет событий;
    • подключение крутилок (энкодеров);
    • управление двигателями;
    • периодический опрос или еще что-то, например планировщик задач;
  5. куча коммуникационных интерфейсов, в том числе:
    • до трех USART, а они по опыту частенько нужны, та как удобны для сопряжения нескольких устройств, работающих в связке;
    • аппаратный USB 2.0, то есть можно подключать USB устройства (флешки, клавиатуры, мышки и прочее) или эмулировать USB последовательный порт (очень удобно конфигурировать устройство через текстовую консоль или с помощью приложения на компьютере).