Как стать автором
Обновить

Микроконтроллеры семейств AVR, MSP430, STM32 и мои субъективные впечатления

Время на прочтение5 мин
Количество просмотров74K
Здравствуйте, обитатели Хабра. В этой статье хочу поделится своими впечатлениями об опыте программирования микроконтроллеров семейств AVR, MSP430, STM32.

Введение

В бытность мою студентом занимался я прикладным программированием на Delphi и горя не знал, но и счастья не ведал. Пока как-то раз не посетил меня на четвертом курсе предмет «Микропроцессорные контроллеры». Ну и пошло-поехало.
Читать дальше →

Копирование ключей dallas. Запись на на rw1990(rw1990.1)

Время на прочтение6 мин
Количество просмотров30K
Здравствуйте! Сегодня хочу рассказать о том, как сделать устройство, которое позволяет копировать Touch Memory фирмы Dallas. Статья предназначена для тех, кто имеет опыт в программирование на языках C/C++. Рассказывать, как устроен протокол OneWire я не собираюсь, т.к. в интернете куча информации на эту тему.

Итак, что нам понадобится для изготовления данного устройства:

1) Atmega8
2) FTDI RL232, преобразующий USB в USART
3) Драйвер для FTDI RL232
4) Программатор(Я использовал USBasp)
5) Visual Studio
6) Atmel Studio
7) Макетная плата
Читать дальше →

24-битные I2C датчики давления HP203B и HP206C от Hope Microelectronics

Время на прочтение8 мин
Количество просмотров57K
История началась, когда одна китайская компания по имени Hoperf прислала мне их новые датчики давления, на пробу. В статье описаны основные характеристики сенсоров, фичи, тесты ну и самое главное их результаты в виде графиков и словесных описаний к ним. В конце статьи выложены драйвера для этих датчиков, максимально абстрагированы от аппаратной части.

image

С лева на право: HP206C, HP203B и BMP085 от Bosch для сравнения (в тестах также участвует).
Много картинок..

Практика применения модулей Laurent. Часть 2: изменение WEB-интерфейса

Время на прочтение5 мин
Количество просмотров9.5K
Привет Хабр! Это вторая статья по практическому применению модулей Ethernet-управления Laurent (здесь первая часть) и, как ты любишь, речь пойдет про программирование, а, точнее, про подгонку WEB-интерфейса под свои интересы. Может пригодиться системным интеграторам для того, чтобы предоставить заказчикам продукт со своим фирменным внешним видом, да и частному пользователю будет удобнее оперировать кнопками с понятными названиями, без лишней обвязки на экране. Кроме этого, доступно и некоторое изменение функционала.

Итак…
Читать дальше →

FLProg — продолжение эволюции

Время на прочтение5 мин
Количество просмотров27K


Достаточно долго на хабре не было новостей о проекте FLProg. К сожалению занятость на основной работе и домашние заботы не оставляло мне времени на написание постов. Но проект не умер, а продолжает развиваться. Что нового произошло со времени публикации последнего поста?
Узнать

Робот-пылесос своими руками

Время на прочтение5 мин
Количество просмотров26K
Как аппетит просыпается во время еды, так и желание создавать растет с количеством реализованных проектов. А последовательное использование изученных технологий повышает интерес и качество. Эта история началась с того, что я собрал 3D-принтер 3D MC3 Мастер v1.1 и сделал подвижные ушки с реакцией на звук.
А вот дальше захотелось не просто создать что-то занимательное, но и полезное. Поэтому я начал работу над созданием своего робота пылесоса и призываю все Хабрасообщество подключиться и помочь где-то советом, а где-то логикой и опытом.



Погрузиться в роботостроение

Дистанционное управление по сети Ethernet: Технология M2M на примере связки модулей KBX-3D и Laurent-2

Время на прочтение3 мин
Количество просмотров17K
Часто возникает ситуация, когда в помещении или даже здании проложена Ethernet-сеть и возникает желание с ее помощью передать простую команду из одной комнаты в другую. Например, из комнаты вахтера по нажатию на кнопку открыть дверь на заднем дворе. Сейчас появилась возможность это сделать, не используя компьютеры и сервера, без написания дополнительных программ и т.п. Достаточно подключить командный и исполнительный модули Laurent к сети, подать питание и сделать небольшие настройки. После этого модули смогут общаться между собой напрямую.

В данной статье рассмотрена технология M2M (Module-to-Module) на примере настройки связи между Laurent-2 и KBX-3D.



Технология M2M позволяет модулям общаться между собой текстовыми данными, например, Ke-командами управления без участия внешнего сервера, т.е. автономно. Например, можно в автоматическом режиме при возникновении некоторого события отправить команду управления другому модулю, находящемуся в той же сети. При этом внешние сервера или программы не нужны – все можно сделать с помощью связки CAT+M2M в самом модуле.

Для примера, давайте рассмотрим вот такую задачу:
Читать дальше →

Программирование микроконтроллеров PIC16/PIC18 на языке C. Статья третья. Немного о железе

Время на прочтение2 мин
Количество просмотров29K
Все то оно хорошо, когда мигает в симуляторе светодиод, но неплохо бы посмотреть на это действо вживую.
Расскажу коротко об аппаратной части сего процесса.
Читать дальше →

Фиалку поливать не нужно

Время на прочтение4 мин
Количество просмотров21K

Серега уезжал покорять Москву, и я зашел к нему попрощаться, пожелать удачи. Взять нужно было все самое необходимое, все для новой работы и все для новой жизни. Кота хотелось бы оставить, но пришлось брать. А вот с другими обитателями квартиры – огромным числом фиалок, нужно было распрощаться.

— Возьмешь фиалку? Марина выращивает, не везти же их все с собой. Мы их всем друзьям раздаем.

Я ответил, что не держу дома цветов, поскольку забываю их поливать, и они у меня быстро загибаются. Поэтому у меня только кактус.

— Эту фиалку поливать не нужно.

Он принес из комнаты цветок, и я был вынужден признать верность его заявления. Фиалка имела «систему автополива». Растение было посажено в маленький горшок, который помещался в большой пластиковый стакан, вроде бы из под кваса. Из горшка спускалась веревочка, через которую и поступала необходимая для жизни влага. Таким образом, залив один раз пол литра, можно было не беспокоиться о цветке несколько месяцев. Фиалку я взял.

Читать далее

Программирование микроконтроллеров PIC16/PIC18 на языке C. Статья вводная

Время на прочтение3 мин
Количество просмотров84K
Доброго тебе времени суток, хороший человек.

Это вводная статья из небольшого цикла о программировании МК PIC16/18 на языке C.

Необходимый минимум:
ПО:
— MPLAB;
— собственно компилятор C;
— Proteus ISIS;
Железо:
— отладочная плата;
— программатор.

MPLAB — среда разработки от Microchip. Скачать можно на офсайте. Полностью бесплатна.
Содержит компилятор с языка ассемблера, позволяет провести полный цикл разработки в том числе и прошивку(при наличии соответствующего программатора).
Большинство компиляторов языка C имеют механизмы встраивания в эту среду.
Качаем обязательно.

Компилятор C.
Здесь уже немного сложнее с выбором.
Список того, на что я советую обратить внимание:
— CCS PICC;
— Micro-C;
— IAR C;
— HT-PICC;
— Microchip C18;

Читать дальше →

Программирование микроконтроллеров PIC16/PIC18 на языке C. Статья вторая. Базовые сведения о платформе. Первая программа

Время на прочтение4 мин
Количество просмотров130K
Если в первой статье все получилось хорошо — мы получили базовую программную обстановку для продолжения обучения.

Едем дальше.

Как я говорил ранее, пока что объяснять буду на базе МК PIC16F628A.
Обязательно качаем документацию на него. Рекомендую для поиска — alldatasheet.com
DataSheet — главный документ при разработке на базе МК.
Рекомендую распечатывать основные таблицы и разделы для удобства пользования.

Открываем ДШ.

Наиболее важные сведения о кристалле:
— максимальная рабочая частота — 20МГц;
— 2048х14 бит флеш-ПЗУ;
— 224 байта статической ОЗУ;
— 128 байт энергонезависимой ПЗУ;
— 16 доступных выводов;
— модуль приемо-передатчика;
— 3 таймера.

Данный кристалл — представитель так называемого среднего (Mid-range) семейства МК PIC.

Вкратце расскажу о том, что обязательно нужно понимать.

Читать дальше →

Пишем свою библиотеку для I2C OLED микродисплея 128х32px

Время на прочтение7 мин
Количество просмотров19K

Недавно я обратил свой взгляд на небольшой, но весьма привлекательный OLED микродисплей, который можно вполне успешно применять в своих самоделках, одна беда — известные библиотеки для него поддерживают только латинский шрифт. Ситуация усугубляется тем, что я использую его для подключения к esp32, а не Arduino. Поэтому arduino-библиотеки можно сразу отбросить. Что с этим делать и как дальше жить, об этом мы и поговорим в этой статье.

Читать дальше →

Миниатюрные I2C процедуры для всех микроконтроллеров AVR

Время на прочтение10 мин
Количество просмотров16K
Простой матричный термометр на основе ATtiny84, использующем библиотеку TinyI2C

В статье описывается набор минимальных процедур, позволяющих любому процессору Microchip/Atmel AVR подключаться к периферии по протоколу I2C. Для их демонстрации я спроектировал сканер портов, отображающий I2C-адрес сенсора на матричном дисплее, а также цифровой термометр, считывающий и отображающий температуру с I2C-датчика. Основное различие между моими процедурами и стандартной библиотекой Arduino Wire в том, что в них не используется буфер, то есть они не так требовательны к памяти и не накладывают каких-либо ограничений на передачу.
Читать дальше →

Крошечная библиотека TFT для микроконтроллеров ATtiny

Время на прочтение8 мин
Количество просмотров16K
Библиотека TFT на ATtiny85, управляющая цветным дисплеем Adafruit 2.0" 320x240

В статье речь пойдёт о маленькой графической библиотеке, предназначенной специально для микроконтроллеров ATtiny, используемых с различными миниатюрными TFT-дисплеями, которые можно недорого приобрести на сайтах Adafruit, AliExpress или Banggood.
Читать дальше →

Настройка VSCode для отладки китайского RISC-V SoC

Время на прочтение8 мин
Количество просмотров8K

Я всей душой люблю малоизвестных производителей. Зачастую их продукты имеют фичи, недоступные у их более именитых конкурентов, по очень интересной цене (однажды меня очень выручило наличие встроенной в SoC полуамперной зарядки для аккумулятора и нескольких LDO, способных запитать всю периферию). Кроме того, сроки и условия поставки какого-нибудь Nanjing Qinheng Microelectronics могут приятно удивить разработчиков, привыкших за последние два ковидных года к конскому ценнику и 52+ неделям доставки на ST, TI, Nordic и прочие привычные вещи. Логистика становится особенно приятной, если массовое производство планируется в Китае и на площадке присутствует ваша китайская команда, способная разрулить возникающие проблемы. Да и доставка из Шеньчженя в Шеньчжень проще и предсказуемей, чем со склада глобального дистрибьютора и растаможка в России.

Погрузиться в дивный мир

Бабушка, вызывай консьержа

Время на прочтение4 мин
Количество просмотров7.8K

GSM кнопка – устройство, необходимое для людей с ограниченными возможностями, предназначено для звонка на предустановленный номер. Человеку с плохим зрением трудно тактильно набрать номер телефона, поэтому размер кнопок желательно увеличить, а их количество наоборот, уменьшить. Совместив два данных требования, получим представленное решение. Общение осуществляется через громкую связь.

Читать далее

USB CDC Bootloader для STM32F103C8

Время на прочтение3 мин
Количество просмотров14K

При проектировании устройства на микроконтроллере бывает встает вопрос об обновлении прошивки прибора. Причем сам процесс обновления прошивки должен быть простым и доступным для обыкновенного пользователя. И конкретно для микроконтроллера STM32F103C8 возможна загрузка прошивки по UART. То есть к схеме необходимо добавлять микросхему конвертера USB-UART. Либо воспользоваться аппаратными возможностями USB микроконтроллера, что я и сделал. Меня заинтересовал вопрос о возможности обновления прошивки по USB. На некоторых МК даже есть аппаратный USB-загрузчик, но только не на STM32F103C8, поэтому пришлось все программно реализовывать. По программной части для STM32 существует USB Library от STMicroelectronics с реализованными классами USB и примерами. В частности заинтересовал класс DFU т.е. загрузка прошивки по USB. В данном классе уже реализован свой набор команд для взаимодействия МК и приложения на ПК "STM32CubeProgrammer". Но мне хотелось что-то своё, кастомное и неограниченное данным набором команд. И пришла мысль "А почему бы не реализовать всё это в классе CDC?". Тут и размер загрузчика примерно таким же оказался, но главное можно реализовать свой набор команд, работать на ПК с последовательным портом и соответственно понятнее, как написать приложение для ПК. У меня есть небольшой опыт написания приложений с использованием библиотеки QT на С++, поэтому с ее помощью была создана программа для USB загрузчика.

Читать далее

8 ферзей на AVR-ассемблере

Время на прочтение4 мин
Количество просмотров8.5K

Фанатам ассемблера посвящается.

Всем привет! Решил подключить матрицу светодиодов 8х8 и вывести на неё решение задачи о 8 ферзях. [Описание см. на Википедии]

Процессор

В качестве процессора я выбрал компактный и шустрый процессор attiny85. Программа будет написана на ассемблере. С небольшими настройками программа должна работать на любом другом процессоре AVR: attiny и atmega.

Дисплей

В качестве дисплея используем матрицу светодиодов, которая состоит из 8 вертикальных рядов и 8 горизонтальных строк со светодиодами.

Читать далее

Храним настройки правильно или реестр параметров для встраиваемых систем

Время на прочтение26 мин
Количество просмотров8.9K

Привет, Хабр! В нашей практике разработчиков электронных устройств и встраиваемых систем мы часто сталкиваемся с необходимостью хранить параметры устройства. Это могут быть, например, такие параметры как яркость дисплея, язык, рабочая частота радиоканала или IP адрес – да что угодно. Единого общепринятого подхода для решения этой задачи нет, и я предлагаю обсудить ниже наиболее очевидные варианты, их достоинства и недостатки, а также предложить реализацию, к которой я пришел в результате работы над несколькими проектами. Поехали!

Читать далее

Как разработать микросхему, от идеи до результата. Часть 1. Теория

Время на прочтение19 мин
Количество просмотров28K
Пока наши соседи по цеху спорят о конкурентоспособности Эльбруса, я продолжаю идти к своей заветной цели — склепать свой собственный Отечественный Процессор (TM). Ранее я рассказывал про программу, финансируемую Google, которая позволяет энтузиастам бесплатно получить прототип их разработок в кремнии. Если вы хотите увидеть всю подноготную процесса производства современных чипов, то этот туториал точно для вас!

Читать дальше →