Motor drivers

A complete ecosystem is provided to support design-in and shorten time-to-market

Designing motor control applications becomes much easier with the outstanding performance, features and full support of STSPIN motor driver ICs that make brushed DC, stepper and brushless motor control designs more efficient in a variety of applications.

In addition, STSPIN motor drivers can be easily evaluated in combination with an STM32 32-bit microcontroller in an open, flexible and affordable development environment to enable fast prototyping that can quickly be transformed into final designs. Discover now your STM32 Ecosystem for Motor Control.

The comprehensive development environment includes:

  • STM32 Nucleo development boards with a comprehensive range of affordable development boards for all STM32 microcontroller series.
  • STM32 Nucleo expansion boards based on STSPIN motor drivers, the expansion boards can be plugged on top of the STM32 Nucleo development boards. More complex functionalities can be achieved by stacking additional expansion boards.

Запуск на STM32F7Discovery

На 32F746GDISCOVERY есть несколько аппаратных разделов памяти, которые мы можем так или иначе использовать

  1. 320KiB оперативной памяти
  2. 1MiB флэш-памяти для образа
  3. 8MiB SDRAM
  4. 16MiB QSPI NAND-флэшка
  5. Разъём для microSD-карточки

SD-карту можно использовать для хранения изображений, но в контексте запуска минимального примера это не очень полезно.
Дисплей имеет разрешение 480×272, а значит, память под фреймбуффер составит 522 240 байт при глубине 32 бита, т.е. это больше, чем размер оперативной памяти, так что фреймбуффер и кучу (которая потребуется в том числе для OpenCV, чтобы хранить данные для изображений и вспомогательных структур) будем располагать в SDRAM, всё остальное (память под стэки и прочие системные нужды) отправится в RAM.

Если взять минимальный конфиг для STM32F7Discovery (выкинуть всю сеть, все команды, сделать стэки как можно меньше и т.д.) и добавить туда OpenCV с примерами, с требуемой памятью будет следующее:

Для тех, кто не очень знаком с тем, какие секции куда складывается, поясню: в и лежат интструкции и константы (грубо говоря, readonly-данные), в лежат данные изменяемые, в лежит «занулённые» переменные, которым, тем не менее, нужно место (эта секция «отправится» в RAM).

Хорошая новость в том, что / должны помещаться, а вот с беда — под образ есть только 1MiB памяти. Можно выкинуть из картинку из примера и читать её, например, с SD-карты в память при запуске, но fruits.png весит примерно 330KiB, так что проблему это не решит: большая часть состоит именно из кода OpenCV.

По большому счёту, остаётся только одно — загрузка части кода на QSPI-флэшку (у неё есть спец. режим работы для мэпирования памяти на системную шину, так что процессор сможет обращаться к этим данным напрямую). При этом возникает проблема: во-первых, память QSPI-флэшки недоступна сразу после перезагрузки устройства (нужно отдельно инициализировать memory-mapped-режим), во-вторых, нельзя «прошить» эту память привычным загрузчиком.

В итоге было решено слинковать весь код в QSPI, а прошивать его самописным загрузчиком, который будет получать нужный бинарник по TFTP.

Результат

Идея портировать эту библиотеку на Embox появилось ещё примерно год назад, но раз за разом это откладывалось из-за разных причин. Одна из них — поддержка libstdc++ и standart template library. Проблема поддержки C++ в Embox выходит за рамки этой статьи, поэтому здесь только скажу, что нам удалось добиться этой поддержки в нужном объёме для работы этой библиотеки :)

В итоге эти проблемы были преодолены (по крайней мере, в достаточной степени для работы примера OpenCV), и пример запустился. 40 длительных секунд занимает у платы поиск границ фильтром Кэнни. Это, конечно, слишком долго (есть соображения, как это дело оптимизировать, об этом можно будет написать отдельную статью в случае успеха).

tl;dr: пошаговая инструкция

0: Качаем исходники Embox, например так:

1: Начнём со сборки загрузчика, который «прошьёт» QSPI-флэшку.

Теперь нужно настроить сеть, т.к. загружать образ будем по TFTP. Для того, чтобы задать IP-адреса платы и хоста, нужно изменить файл conf/rootfs/network.

Пример конфигурации:

— адрес хоста, откуда будет загружаться образ, — адрес платы.

После этого собираем загрузчик:

2: Обычная загрузка загрузчика (простите за каламбур) на плату — здесь ничего специфичного, нужно это сделать как для любого другого приложения для STM32F7Discovery. Если вы не знаете, как это делается, можно почитать об этом тут.
3: Компиляция образа с конфигом для OpenCV.

4: Извлечение из ELF секций, которые нужно записать в QSPI, в qspi.bin

В директории conf лежит скрипт, который это делает, так что можно запустить его

5: С помощью tftp загружаем qspi.bin.bin на QSPI-флэшку. На хосте для этого нужно скопировать qspi.bin в корневую папку tftp-сервера (обычно это /srv/tftp/ или /var/lib/tftpboot/; пакеты для соответствующего сервера есть в большинстве популярных дистрибутивов, обычно называется tftpd или tftp-hpa, иногда нужно сделать для старта).

На Embox-е (т.е. в загрузчике) нужно выполнить такую команду (предполагаем, что у сервера адрес 192.168.2.1):

6: С помощью команды нужно «прыгнуть» в QSPI-память. Конкретная локация будет варьироваться в зависимости от того, как образ слинкуется, посмотреть этот адрес можно командой (адрес старта укладывается во второе 32-битное слово образа); также потребуется выставить стэк флагом , адрес стэка лежит по адресу 0x90000000, пример:

7: Запускаем

и наслаждаемся 40-секундным поиском границ :)

Если что-то пойдёт не так — пишите issue в нашем репозитории, или в рассылку embox-devel@googlegroups.com, или в комментарии здесь.

State-of-the-art motor drivers

Our line-up of STSPIN motor drivers embeds all the functions needed to drive motors efficiently and with the highest accuracy, and include an advanced motion profile generator to relieve the host microcontroller, while ensuring robustness and reliability thanks to a comprehensive set of protection and diagnostic features.

Operating from a supply voltage as low as 1.8 V, the portfolio has been extended with the introduction of low-voltage STSPIN motor drivers which enable power savings in battery-powered smart devices thanks to the best-in-class standby current of less than 80 nA.

The benefit of our 10 and 15 year longevity program is available for our industrial grade STSPIN motor drivers.

STSPIN motor drivers

Stepper motor drivers

Scalable and robust stepper motor drivers, featuring accurate positioning and smooth motion profile with up to 256 micro-steps per step.

Brushed DC motor drivers

Simple, reliable and cost-effective solution to drive one or more brushed DC motors over a wide current and voltage range.

Brushless DC (BLDC) motor drivers

Extensive diagnostics and fully-protected to reduce the number of external components, cost and complexity.

Gate Drivers

IGBT and MOSFET gate drivers

Include integrated high-voltage half-bridge, single and multiple low-voltage gate drivers.

A complete ecosystem is provided to support design-in and shorten time-to-market

Designing motor control applications becomes much easier with the outstanding performance, features and full support of STSPIN motor driver ICs that make brushed DC, stepper and brushless motor control designs more efficient in a variety of applications.

In addition, STSPIN motor drivers can be easily evaluated in combination with an STM32 32-bit microcontroller in an open, flexible and affordable development environment to enable fast prototyping that can quickly be transformed into final designs. Discover now your STM32 Ecosystem for Motor Control.

The comprehensive development environment includes:

  • STM32 Nucleo development boards with a comprehensive range of affordable development boards for all STM32 microcontroller series.
  • STM32 Nucleo expansion boards based on STSPIN motor drivers, the expansion boards can be plugged on top of the STM32 Nucleo development boards. More complex functionalities can be achieved by stacking additional expansion boards.

Генераторы

В микроконтроллерах STM32F103x8/B присутствует несколько генераторов тактового сигнала:

Рис. 3. Блок-схема системы тактирования, красными прямоугольниками выделены генераторы тактовых сигналов

Первый из них — встроенный RC-генератор на 8 МГц, который называется High-speed internal (HSI) RC oscillator. После сброса микроконтроллер по-умолчанию тактируется как раз от этого генератора. Основным его плюсом является то, что для работы генератора не нужны ни какие дополнительные внешние компоненты. Однако его минус — плохая стабильность генерируемой частоты: при изменении температуры окружающей среды его частота в 8 МГц будет немного плыть. Для нетребовательных ко временнЫм интервалам устройств это может быть не критично, но в некоторых случаях данная особенность является недопустимой.

Следующий — High-speed external (HSE). Этот генератор является альтернативой HSI. Для его работы нужен внешний кварцевый резонатор на частоту 4-16 МГц. Его главным преимуществом в сравнении с HSI является стабильность генерируемой частоты. Так же, при определенной настройке, вывод OSC_IN можно подключить к источнику готового прямоугольного тактового сигнала без использования резонатора.

Далее Low-speed external (LSE). Этот генератор так же требует внешнего кварцевого резонатора, но только на 32768 Гц. LSE используется только для тактирования встроенных часов реального времени RTC, с помощью которых можно вести отсчет текущего времени, если это нужно.

Последний генератор — это Low-speed internal (LSI) RC oscillator. Это встроенный RC-генератор на 40 КГц. Он не отличается особой точностью, однако у него есть очень важная задача: генерация тактового сигнала для сторожевого таймера МК, который перезапустит систему в случае зависания. А еще от LSI можно тактировать RTC, но скорее всего это ни кто делать не будет

President, Microcontrollers and Digital ICs Group

Claude Dardanne is STMicroelectronics’ President, Microcontrollers and Digital ICs Group, and has held this position since January 2016. He is a member of ST’s Executive Committee since May 31st, 2018.

Dardanne started his career with Thomson Semiconducteurs, a predecessor company to ST. From 1982, he was responsible for microcontroller and microprocessor marketing. Between 1989 and 1994, Dardanne was Marketing Director at Apple Computer and Alcatel-Mietec. In 1994, he rejoined ST as Director of Central Marketing for the Memory Products Group, became Head of the EEPROM Division in 1998, and was later appointed Group Deputy General Manager and Head of the Smart Card Division. ST consolidated its Microcontroller, Memory, and Secure MCU (MMS) activities in 2007 and appointed Dardanne Corporate Vice President and the MMS General Manager. Under his leadership, MMS has become a key asset in revenue and market-share growth and profitability and a worldwide leader in the microcontroller market.

Claude Dardanne was born near Limoges, France, in 1952, and graduated with a degree in Electronic Engineering from the Ecole Supérieure d’Ingénieurs en Génie Electrique in Rouen, France.

BIOGRAPHY English version French version Italian version
Revised January 2020

ORIO BELLEZZAPresident, Technology, Manufacturing and Quality

Orio Bellezza is STMicroelectronics’ President, Technology, Manufacturing and Quality, and has held this position since May 31st, 2018. He has been responsible for Front-End Manufacturing since 2008 and his mandate has been expanded to cover ST’s technology, manufacturing operations, supply chain, and quality. Bellezza is a member of ST’s Executive Committee since May 31st, 2018.

Bellezza joined SGS-ATES, a predecessor company to STMicroelectronics, in 1984 as a fab process engineer. He soon moved to ST’s Central R&D organization and participated in several key projects, including the introduction of process technology modules for manufacturing sub-micron non-volatile memories. In 1996, Bellezza was appointed Director of ST’s R&D facility in Agrate and led its upgrade and expansion into a manufacturing and development center for non-volatile memory and smart-power technologies. In 2002, he became Vice President of Central R&D, and in 2005, was appointed Vice President and Assistant General Manager of Front-End Technology and Manufacturing.

Bellezza also serves as Managing Director of the ST Italy legal entity. He has published technical papers and earned several patents in non-volatile memories.

Orio Bellezza was born in Bergamo, Italy, in 1959, and graduated cum laude with a degree in Chemistry from the University of Milan, Italy.

BIOGRAPHY

 English version French version  Italian version

Revised January 2020

Программное обеспечение для работы с контроллером

Keil Uvision 4

Для ARM архитектуры разработано множество сред разработки. К самым известным и дорогостоящим относятся инструменты фирм Keil и IAR System. Программы этих компаний предлагают самые продвинутые инструментарии для оптимизации кода. Также дополнительно существуют различные системы – USB стеки, TCP/IP-стеки и прочие. Применяя системы Keil, пользователь получает хороший уровень технической поддержки.

Также для STM32 используется среда разработки Eclipse и построенные на ней системы Atollic TrueStudio (платная) и CooCox IDE (CoIDE) (бесплатная). Обычно используется последняя. Ее преимущества перед другими средами разработки:

  • Свободно распространяемое программное обеспечение;
  • Удобство использования;
  • Имеется много примеров, которые можно загрузить.

Единственный недостаток среды разработки CooCox IDE – сборка есть только под Windows.

President, Sales, Marketing, Communications and Strategy Development

Marco Cassis is STMicroelectronics’ President, Sales, Marketing, Communications and Strategy Development and has held this position since May 31st, 2018. He is a member of ST’s Executive Committee since May 31st, 2018.

Cassis joined SGS-Thomson Microelectronics (now STMicroelectronics) as a car-radio chip designer in 1987. Six years later, he moved to Japan to help expand ST’s audio business with major Japanese players and contributed to the establishment of ST’s strategic alliance with Pioneer. In 2000, Cassis took charge of the Audio Business Unit and was subsequently promoted to Director of Audio and Automotive Group. In 2004, Cassis was named Vice President of Marketing for automotive, computer peripheral, and telecom products and in 2005, he advanced to Vice President of the Automotive Segment Group and joined the Board of STMicroelectronics K.K., ST’s Japanese subsidiary. Cassis was promoted to lead ST’s operations in Japan in 2005 and his mandate was expanded to include Korea in 2010 and Greater China and South Asia in 2016, when he was appointed President of ST’s Asia Pacific Region. In 2017, Cassis was promoted President, Global Sales and Marketing.

Marco Cassis was born in Treviso, Italy, in 1963, and graduated with a degree in Electronic Engineering from the Polytechnic of Milan, Italy.

BIOGRAPHY

 English version French version Italian version

Revised January 2020

Оцените статью:
Оставить комментарий