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

Поиск устройств на шине 1-Wire

Итак, сегодня мы рассмотрим две особые команды интерфейса 1-wire, предназначенные для поиска устройств на шине, а также алгоритм поиска устройств с помощью этих команд. Почему мы алгоритм именно рассмотрим, а не напишем? Да потому что он, вообще-то говоря уже написан. «Максимкины» инженеры накатали для этого специальный документ AN187, который лежит в сети в открытом доступе. …

Секреты оптимизации. Часть 2. Как инвертировать порядок бит в байте (алгоритмы и примеры на ассемблере)

Часть 1. Реализация оператора «case of» на ассемблере Часть 2. Как инвертировать порядок бит в байте (алгоритмы и примеры на ассемблере) Порой возникают ситуации, когда необходимо преобразовать байт таким образом, чтобы биты в нём располагались в обратном порядке. Сегодня я покажу несколько алгоритмов, позволяющих реализовать подобное преобразование. Способ 1. Самый медленный. Первое, что приходит на …

CRC FAQ. Что, зачем и как

Глава 1. Что такое CRC и зачем он нужен Глава 2. Базовая теория, необходимая для вычисления CRC Глава 3. Модификация алгоритма для практического применения Глава 4. Резюме Глава 1. Что такое CRC и зачем он нужен CRC (cyclic redundancy code) — циклический избыточный код, иногда называемый также контрольным кодом. По своей сути — это просто …

Заметки о трёхфазных 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. Работа с портами ввода-вывода

Часть 1. Установка MDK, создание проекта, основы Keil uVision Часть 2. Команды и директивы ассемблера, структура и синтаксис программы. Первая программа для STM32. Часть 3. Карта памяти контроллеров STM32, методы работы с памятью. Часть 4. Регистры, старт и режимы работы контроллеров STM32. Часть 5. Как залить прошивку в контроллер. Часть 6. Настройка системы тактирования. Часть …

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

Часть 1. Установка MDK, создание проекта, основы Keil uVision Часть 2. Команды и директивы ассемблера, структура и синтаксис программы. Первая программа для STM32. Часть 3. Карта памяти контроллеров STM32, методы работы с памятью. Часть 4. Регистры, старт и режимы работы контроллеров STM32. Часть 5. Как залить прошивку в контроллер. Часть 6. Настройка системы тактирования. Часть …

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

Часть 1. Установка MDK, создание проекта, основы Keil uVision Часть 2. Команды и директивы ассемблера, структура и синтаксис программы. Первая программа для STM32. Часть 3. Карта памяти контроллеров STM32, методы работы с памятью. Часть 4. Регистры, старт и режимы работы контроллеров STM32. Часть 5. Как залить прошивку в контроллер. Часть 6. Настройка системы тактирования. Часть …