Статьи

И снова модернизация блока питания Dazheng PS-305D

Dazheng PS-305D

Спустя 10 лет после публикации первой статьи по доработке лабораторного блока питания Dazheng PS-305D (известного так же как Ya Xun Ps-305d и Yizhan PS-305D, а так же, наверняка, и под другими именами), пришлось снова заняться этим аппаратом. У китайского ЛБП обнаружилась проблема с переменными резисторами, которые начали “шуршать”, от чего выставляемые значения тока и напряжения начали “скакать”. После чего резисторы были заменены на новые, модные, точные и многооборотистые с одной неназываемой

Макетная плата ESP8266

Макетная плата ESP8266

Однокристальные системы ESP8266 получили большую популярность благодаря своей низкой цене и достаточно мощной начинки. Помимо Wi-Fi-модуля этот контроллер содержит 32-битный процессор Xtensa L106, работающий на частоте 80 МГц с возможностью негарантированного разгона до 160 МГц. К имеющимся 17 портам ввода-вывода возможно подключать различную периферию. Имеются интерфейсы SPI, UART, I2C (программный), I2S и 10-битный АЦП.

Для того, чтобы "поиграться" с контроллером ESP8266 была сделана печатная плата, которая, помимо самого контроллера, содержит различную периферию, подключить и отключить которую можно джамперами на плате.

Анализатор качества воздуха на ардуино

Прибор предназначен для контроля качества воздуха в помещении и отображения таких параметров, как температура, влажность, содержание CO2 а также выявления загрязнения воздуха угарным газом (CO), табачным дымом, парами спирта, ацетона, формальдегидов и других токсичных газов. “Сердцем” устройства является Seeeduino Nano - клон Arduino от компании Seeed Studio.

Точное измерение частоты кварца без измерительных приборов

Точное измерение частоты кварца

Измерить частоту кварца очень просто, для этого достаточно иметь частотомер. Собрать частотомер тоже несложно (например, по этой схеме). Но для этого нужен эталонный кварцевый резонатор с известной [с высокой точностью] частотой. Чем менее точно известна эта частота, тем выше будет погрешность прибора. Тут следует заметить, что в продаже, обычно, встречаются кварцы с достаточно большим отклонением частоты от заявленной. Вообще, после производства партии кварцев они проходят сортировку с разделением на группы по величине отклонения частоты: высокоточные (для серьёзного оборудования), приемлимой точности (для прочих устройств) и все остальные (полубрак, для последующей утилизации на всяких алиэкспрессах занедорого). В итоге, получаем замкнутый круг. Но, к счатью, существует довольно простой (но совсем не быстрый) способ точно измерить частоту, не имея ни эталонного кварца, ни поверенного частотомера. Потребуется лишь компьютер с интернетом и любой микроконтроллер.

Калькулятор скорости UART для AVR

UART baudrate calculator

Калькулятор скорости UART для AVR-микроконтроллеров. По умолчанию отображаются таблицы для основных популярных частот процессора и скоростей обмена. При желании эти параметры можно изменить.

CH340G - преобразователь USB - UART

CH340G

Микросхема CH340G - преобразователь интерфейсов USB - UART, выпускаемая китайской компанией WCH появилась на рынке сравнительно недавно, и очень быстро обрела широкую популярность. Из основных причин этого можно выделить:

  • низкую стоимость
  • хорошую поддержку основными операционными системами - Linux, Windows (XP, 7, 8, 10) и Mac OS X
  • работа с уровнями 3.3В и 5.0В
  • микросхема требует минимум дополнительных компонентов и имеет удобный для пайки корпус SOIC-16

Famicom: AV-мод

Famicom AV-мод

Игровая пиставка Famicom содержит в себе ТВ-модулятор и подключается к телевизору через антенный вход. В результате имеем лёгкость подключения к любому телевизору + ужасное качество картинки + отсутствие звука. Решение проблемы - переделка видеовыхода с ТВ на композитный, так называемый AV-мод. В сети можно найти кучу разных вариантов этой простой доработки - видеосигнал снимается непосредственно с 21-го вывода графического процессора (микросхема RP2C02 или 6538) и подаётся через транзисторный ключ на разъём VIDEO-OUT.

Можно, конечно, приколхозить эти несколько деталек навесным монтажом прямо на плату, но это не здорово. К тому же, из Фамикома торчит наружу только одно гнездо типа "тюльпан" - антенный выход. А кроме видео-выхода надо ещё куда-то засунуть и аудио-разъём. Вообщем, решено было вместо родной платы стабилизатора и ТВ-модулятора поставить свою, с точно такими же размерами и всеми нужными доработками.

Справочник по командам ассемблера AVR

avr commands

На создание этого справочника меня побудило то, что все существующие ресурсы категорически неудобны, т.к. не имеют возможности быстрого переключения между командами - приходилось либо листать PDF-ку, либо щёлкать по ссылкам онлайн-версии. Тогда как хотелось иметь возможность видеть описание команды сразу после ввода её имени, без каких-либо лишних действий. Дополнительно присутствует полный список команд с их кратким описанием.

Справочник основан на переводе документации от Atmel. Помимо этого сюда добавлено больше примеров использования команд. В частности, добавлены примеры для ассемблера AVR GCC, т.к. последний имеет ряд особенностей, связанных с линковкой объектного кода.

Справочник будет дополняться по мере появления вопросов.

Чтобы быстро перейти к нужной команде достаточно ввести её имя.

Программатор USBTiny-MkII slim

Программатор USBTiny-MkII slim

USBTiny-MkII slim - компактный и быстрый USB-программатор для микроконтроллеров AVR, совместимый с фирменным программатором AVRISP-MKII от Atmel. Немалая стоимость оригинала поспособствовала появлению его многочисленных клонов, и самым удачным из них, пожалуй, является именно USBTiny-MkII SLIM. Устройство может программировать все 8-разрядные AVR-микроконтроллеры, обладающие возможностью внутрисхемного программирования (поддерживаются интерфейсы ISP, TPI и PDI).

Это быстрый программатор. 128 Кб флеша ATMega128 полностью считываются за 35 секунд (для сравнения, usbasp делает это за 70 секунд), и пишутся чуть медленнее (скорость записи ~15 Кб/сек). Второе важное достоинство устройства в том, что оно без проблем работает не только с avrdude, но и с AtmelStudio, которая видит программатор как родную железку.

Высокая скорость работы обеспечивается использованием микроконтроллеры AT90USB162 с аппаратной поддержкой USB (этот контроллер содержит встроенный bootloader и для его прошивки не нужен программатор). Кроме микроконтроллера на плате программатора имеется двунаправленный преобразователь уровня напряжения GTL2003, LDO-стабилизатор (MCP1825S-3302ED) на 3.3В, джампер для выбора напряжения питания программируемого МК (3.3В/5В) и пара светодиодов-индикаторов режима работы.

Для программатора была спроектирована модель корпуса для печати на 3d-принтере. Корпус состоит из двух половинок, которые склеиваются между собой. Под джамперы, светодиоды и разъёмы программатора (и подписи к ним) сделаны окошки. Также есть ниша для установки 10-пинового ISP-разъема (в дополнении к 6-пиновому ISP на печатной плате).

Работа с энкодером

Работа микроконтроллера с энкодером

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

Энкодеры бывают двух типов: абсолютные - сразу выдающие код угла поворота и инкрементальные - выдающие импульсы при вращении. Для последних подсчётом импульсов и их преобразованием их в угол поворота должен заниматься микроконтроллер.

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

Хотя информации по программированию энкодеров в сети навалом, как и готовых библиотек для этого, но все они какие-то излишне громозкие (имхо) - опрос состояния, как правило, реализуется в виде конечного автомата в виде блока switch с вложенными if-ами, что выглядит несколько сложно (особенно, будучи написанным на ассмеблере). Хотя, реализация может быть проще.

Страницы

Подписка на Статьи