Наш канал в telegram

Рубрика «Теория»

Заметки о трёхфазных BLDC-моторах. Часть 1. Алгоритм блочной коммутации

Введение Скопилось тут у меня достаточно много моторчиков от старых винчестеров. Выкидывать это добро — жалко, поэтому решено было куда-нибудь их приделать. Ну, до «приделать» мы ещё дойдём, а перво-наперво неплохо было бы разобраться как такие моторы вообще работают и как ими управлять. Написано об этом в общем-то довольно много, но я попробую изложить всю …

Принципы работы синхронных электродвигателей

В этой статье я постараюсь «на пальцах», без сложных формул и прочей, ненужной для общего понимания, мути рассказать, как работают синхронные электродвигатели, почему они называются синхронными и какие имеют общие особенности. Начнём с того, как это работает. Чтобы это понять, придётся немного вспомнить детство. Наверняка в детстве каждый играл с магнитами, и наверняка каждый в …

Схемы сопряжения уровней сигналов 3,3 и 5 Вольт (и не только)

При работе с различными цифровыми микросхемами нередко возникает ситуация, когда для их правильной совместной работы необходимо согласовать уровни сигналов на линиях ввода-вывода. Такая необходимость возникает, например, при совместном использовании микросхем, рассчитанных на питание +3,3 Вольта и +5 Вольт. Почему? Ну, во-первых, редко когда входы трёхвольтовой микросхемы могут выдержать входное напряжение +5 Вольт, то есть передавать …

Интерфейс USB. Часть 4. Дескрипторы и классы

Часть 1. Основы. Часть 2. Как происходит передача данных по шине. Часть 3. Что должно уметь любое USB-устройство. Часть 4. Дескрипторы и классы. Часть 5. Программная реализация low speed устройства USB. Схема. Часть 6. Программная реализация LS устройства USB. Физика и приём пакетов. Часть 7. Программная реализация LS устройства USB. Разбираем пакеты по типам. Часть …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 7. Работа с портами ввода-вывода

Начнём с того, что вообще такое порт ввода-вывода. Для настройки режима работы или изменения состояния линии ввода-вывода обычно достаточно одного-двух битов, а регистры в контроллерах, как правило, восьми, шестнадцати или даже 32-х битные (как в stm32). Выделять для каждой линии ввода-вывода свой отдельный регистр — довольно расточительно, вот и придумали группировать в одном регистре биты …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 6. Настройка системы тактирования

Контроллеры STM32 обладают достаточно развитой системой тактирования, включающей кучу различных делителей, умножителей и селекторов, которые позволяют «разогнать» до 72 МГц частоту ядра и системной шины, а также организовать тактирование на различных частотах всех входящих в состав контроллера модулей (USB, I/O, I2C, SPI…). При этом стартует контроллер всегда от внутреннего генератора на 8 МГц, а дальнейший …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 5. Как залить прошивку в контроллер

Ну, вот мы и дошли до одного из самых интересных этапов, — как же залить в контроллер готовую прошивку и оживить наконец нашу железяку. Вообще-то прошивать контроллеры STM32 можно по-разному, но мы рассмотрим самый простой вариант прошивки — через последовательный интерфейс с помощью фирменной утилиты Flash Loader Demonstrator. Эта утилита совершенно бесплатна и её можно …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 4. Регистры, старт и режимы работы контроллеров STM32

Понимаю, что статья уже получилась довольно длинной и всем хочется поскорее написать какую-нибудь программулину, делающую хоть что-то полезное, и залить её в контроллер, но так уж вышло, что контроллеры STM32 несколько сложнее простейших восьмибитных железяк, поэтому сейчас речь снова пойдёт, как пишут некоторые нетерпеливые читатели, «не о том». В этой части мы поговорим о том, …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 3. Карта памяти контроллеров stm32, доступ к отдельным битам памяти

Изучать архитектуру контроллеров stm32 мы начнём с их карты памяти. Зачем это надо? Ну, наверное, потому, что программа управления контроллером записана в памяти, данные, которыми мы оперируем, находятся в памяти, различные регистры контроллера также спроецированы на определённые адреса памяти. То есть чтобы работать с контроллером, нам просто необходимо знать что где расположено (по каким адресам) …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 2. Основы ассемблера, структура и синтаксис программы. Простейшая программа

Итак, мы создали новый проект, выполнили основные настройки, создали и подключили к проекту файл, в котором хотим написать на ассемблере какую-нибудь простенькую программу. Что дальше? Дальше, собственно говоря, можно писать программу, используя набор команд thumb-2, поддерживаемый ядром Cortex-M3. Список и описание поддерживаемых команд можно посмотреть в документе под названием Cortex-M3 Generic User Guide (глава The …