Рубрика «программирование микроконтроллеров» - 48


Когда-то давно я написал статью про реакционные ароматизаторы. Прошло много времени, я вернулся к этому вопросу.

В этой статье я не буду вдаваться в подробности технологии разработки реакционных ароматизаторов, а расскажу о моем опыте автоматизировать свое рабочее время и поделюсь кодом, который может кому пригодится. В руки мне попался лабораторный химический реактор китайского производства и к большому сожалению в нем отсутствовали инструменты по автоматизации охлаждения, считывания и записи данных, программирования режимов, что было очень важно. Сам реактор представлял из себя обычную металлическую болванку на штативе, с ТЭНом до 350 градусов. За контроль температуры отвечает контроллер Yudian AI518.

Китайский протокол AIBUS и лабораторный химический реактор - 1
Читать полностью »

image

В первой части мы описали процесс разработки тестового варианта модуля подводного дальномера. Пришло время поделиться информацией о второй версии модуля, поскольку заявленные в первой статье предполагаемые изменения мы реализовали.
Читать полностью »

«Не пора ли, друзья мои, нам замахнуться на Вильяма, понимаете ли, нашего Шекспира? ».

К вопросу о bitset - 1

Прочитал недавно пост про кастомную клавиатуру и в очередной раз подумал, что было бы неплохо написать эталонную (то есть такую, которую не стыдно подписать своим именем и выложить на всеобщее обозрение) реализацию клавиатуры. Мысль эта приходит ко мне НЕ в первый раз, но все как то останавливается на первом этапе — считывание исходной информации, ведь хочется сделать этот этап легко настраиваемым, удобным в использовании, универсальным и эффективным, и не нравится предложение «выбирать любые два».

Необходимое примечание — я вижу 4 слоя реализации клавиатуры: 0 — обнаружение события, 1 — считывание данных, 2 — очистка и хранение данных, 3 — формирование сообщений, 4 — перекодировка и прочее. Наиболее перспективным для слоя 1 и связанного с ним слоя 0 мне представляется применение шаблонов Антона Чижова для работы с пинами МК (основанными на классе Локи) и, может быть, когда-нибудь, получившимся результатом будет не стыдно поделится, но точно не сегодня. А сейчас я задумался над слоем 2.
Читать полностью »

Breakuot-подобная игра на PIC12F1572 - 1

Предлагаемая конструкция является доказательством того, что цветной композитный видеосигнал в системе NTSC может быть сгенерирован при помощи очень простого «железа».

Краткое описание

Хотя цветной композитный видеосигнал в системе NTSC генерировать сложнее, чем VGA, для этого требуется меньше выводов микроконтроллера (в данном случае — три, объединённые простейшим «микшером»). Композитным он называется потому что вся информация передаётся по одной линии. Строчные и кадровые синхроимпульсы, сигналы цветности и яркости объединены вместе, в отличие от VGA, где для каждого из этих сигналов выделено по отдельному проводу. Чтобы подать такой сигнал на телевизор, достаточно одного экранированного кабеля с «тюльпанами» с обеих сторон.

В устройстве всего два активных компонента: кварцевый генератор на 28,636 МГц (3,5795345 МГц x 8) и микроконтроллер PIC12F1572 в корпусе PDIP.

Автор решил реализовать аналог классической игры Breakout 1976 года, но на её месте могла оказаться любая аркадная игра, в оригинале реализованная на логических микросхемах, поскольку у таких игр достаточно просты сюжеты.Читать полностью »

На днях японская автоматическая станция Хаябуса-2 сбросила бомбу на астероид Рюгу. Космическим кораблем управляет радиационно-устойчивая система на кристалле HR5000 (JAXA2010/101) с 64-битным процессорным ядром MIPS 5Kf. На бортовом компьютере работает операционная система реального времени uITRON, одна из семейства RTOS-ов стандарта TRON, который появился в Японии еще в 1980-е годы и заслуживает отдельного поста.

В этой заметке я кратко опишу, что входит в СнК HR5000 и его процессорное ядро, покажу фотографии двух из ключевых разработчиков линеек MIPS 4K и 5K, а также расскажу, как вы можете поиграться дома на плате ПЛИС с «потомком младшего брата» этого компьютера — 32-битным ядром MIPS microAptiv UP, код которого на языке описания аппаратуры Verilog был основан на MIPS 4KEc.

Как устроен компьютер внутри Хаябусы-2, которая сбросила бомбу на Рюгу. И фотографии его разработчиков - 1
Читать полностью »

Пишем OTA-загрузчик для ATmega128RFA1 (в составе устройства Smart Response XE) - 1

Всё началось с приобретения автором на вторичном рынке интересного устройства — Smart Response XE (краткое описание). Предназначено оно для школ: каждый ученик в классе получает по девайсу, похожему на электронную записную книжку или переводчик девяностых, учитель задаёт вопрос, и ученики набирают на клавиатурах устройств ответы, поступающие по радиоканалу (802.15.4) в приёмник, подключённый к учительскому ПК.

Поддержка этих устройств прекращена несколько лет назад, и то, что школы закупали по 100-200 долларов за штуку, теперь всплывает на eBay по 10 и меньше. «Железо» там ну очень подходит для гиковских опытов:

— клавиатура на 60 клавиш
— дисплей с разрешением в 384x136, 2 бита на пиксель — аналогично БК, CGA, но 4 не цвета, а градации яркости
— микроконтроллер ATmega128RFA1 (128 кБ флеш-памяти, 4 кБ ПЗУ, 16 кБ ОЗУ, приёмопередатчик стандарта 802.15.4)
— внешняя (по отношению к микроконтроллеру, а не всему устройству) флеш-память на 1 мегабит (128 килобайт) с интерфейсом SPI
— отсек для 4 элементов ААА

По названию микроконтроллера понятно, что он относится к семейству AVR, а значит, сделать устройство Arduino-совместимым — задача более чем тривиальная...Читать полностью »

Мы простых путей не ищем.

image

Предыдущая, она же первая моя публикация вызвала резонанс среди пользователей Хабра. Решил не останавливаться. Продолжаем выжимать невозможное из ATtiny13. Сразу же предупреждаю, описанные решения снова нестандартны, и у кого-то могут вызвать негодование и когнитивный диссонанс («И в чём тогда смысл статьи? Показать, что можно соединять элементы?»). Мало того, такое решение ещё и действительно нецелесообразно, о чём я подробнее напишу ниже. Но так уж повелось, что стандартные решения давно известны, и читать о них не всегда интересно, а писать- неблагодарно.
Читать полностью »

Универсальный сторожевой таймер на ATtiny13 - 1
Внешний сторожевой таймер это костыль для плохих разработчиков, которые не могут разработать нормально работающую программу для микроконтроллеров или стабильно работающую схему.

Тем более встроенный WDT имеется у большинства современных микроконтроллеров.

Но бывают случаи, когда приходится иметь дело с готовой платой или модулем с определенными проблемами. Свой первый WDT я сделал для борьбы с редкими, но все же иногда происходящими зависаниями ESP8266. Причем софтовый ресет тогда не спасал и ESP-шка не хотела переподключаться к WiFi. Передергивание питания внешним WDT решило проблему.

Вторая проблема возникла с GSM контроллером Elecrow ATMEGA 32u4 A9G. Здесь имели место быть очень редко случающиеся зависание SIM-карты. (Кстати эту же проблема бывает и с USB-модемами 3G и 4G). Для борьбы с таким зависанием нужно передернуть питание на SIM-ке. И вроде даже вывод у GSM модема для этого есть, но в схемотехнику устройства данная возможность не заложена. И для достижения максимальной надежность пришлось снова обращаться к внешней сторожевой собаке.
Читать полностью »

Ужать аналог Space Invaders в 1 килобайт (оригинал 1978 года занимает 8) - 1

Эта игра, в значительной мере вдохновлённая Space Invaders, написана с нуля для ATtiny2313 и отправлена на недавно прошедший конкурс 1-килобайтных программ на Hackaday.

Непросто поместить такую игру в 1024 байта. Но автор решил получить в результате полнофункциональную игру с подсчётом очков, звуком и VGA-видеовыходом с разрешением в 640х480 и частотой в 60 Гц.

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

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

Строчная частота в 31,5 кГц берётся в той же процедуре за основу при получении звуков.

Процедура обработки прерывания отнимает 90% машинного времени, поэтому вся логика игры просчитывается во время обратного хода луча. Несколько конечных автоматов управляют перемещением персонажей, определением положения ракет, и т.п.Читать полностью »

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

Прикуривать вредно, или как сохранить заряд автомобильного аккумулятора - 1
Одно из возможных последствий неконтролируемого разряда.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js