Наш магазин на eBay Наш магазин на AliExpress Наш канал в telegram

Рубрика «Контроллеры»

101 применение шлюза UART-to-I2C/SPI/1W (RH-0004). Часть 1. USB программатор микросхем EPROM с интерфейсом I2C

Сегодня я расскажу как превратить UART-to-I2C/SPI/1W шлюз в USB-программатор микросхем памяти с интерфейсом I2C (EPROM-ки серий 24Сxx, SDA25xx, PCF85xx и им подобные). Такой программатор выгодно отличается от разных клонов JDM скоростью работы, поскольку протокол I2C реализует не компьютер, побитно надёргивая нужные сигналы, а сам шлюз. Итак, сделать из шлюза программатор I2C очень и очень просто. …

ИК-барьер для охранных систем и «умного дома»

Все, наверное, видели в фильмах системы охраны с использованием множества лазерных лучей, пересекающих комнату в самых разных направлениях. Когда какой-либо из этих лучей прерывается — срабатывает сигнализация. Описанный ниже девайс работает аналогичным образом, только луч он использует всего один и не лазерный, а инфракрасный. Помимо простейшего датчика охранной системы, можно использовать эту конструкцию для системы …

Цифровое умножение частоты ШИМ-сигнала на два
(на микроконтроллере ATtiny13)

В этой статье приводится пример простейшей реализации цифрового «умножения на два» частоты ШИМ-сигнала с сохранением скважности (по буржуйски такие штуки называются PWM-converter). Нафига оно надо? Ну, например, можно увеличить частоту ШИМ контроллера светодиодов какой-нибудь подсветки в автомобиле или ещё где-нибудь. В качестве сердца (а точнее мозга) нашего умножителя используется микроконтроллер ATTiny13. Он оцифровывает входной сигнал, …

Программирование 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 можно по-разному, но мы рассмотрим самый простой вариант прошивки — через последовательный интерфейс с …

Программирование 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 …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 1. Установка MDK, создание проекта, основы Keil uVision

Сегодня мы начнём учиться программировать ARM-контроллеры STM32 на ядре Cortex-M3. Эти камни уже гораздо серьёзнее, чем восьмибитные пики и атмелы, поэтому для полного использования всех их возможностей без языка высокого уровня нам при программировании не обойтись (если мы конечно не мазохисты), но для лучшего понимания происходящего, начнём мы всё же с ассемблера, а потом уже …