Хабрахабр

[Перевод] Пульт ДУ с малым током покоя на ATmega328P

По КДПВ видно, что автор неравнодушен к винтажной аудиотехнике Sony. Тут и MD Walkman, и недавнее приобретение — малогабаритный музыкальный центр с вертикальным CD-«транспортом». Продавался он без пульта, к самодельному аналогу которого автор предъявил требование: такой же малый ток покоя, как у готовых пультов на специализированных микросхемах.

Но затем решил воспользоваться существующей библиотекой. Поначалу автор хотел написать прошивку с нуля, поскольку ранее он уже реализовывал программно протокол, применяемый в пультах ДУ Sony. функции, облегчающие разработку и отладку. Она поддерживает различные протоколы, устройста, а также имеет доп.

Заставить самодельный пульт заработать удалось очень быстро. С этой библиотекой достаточно подключить ИК-диод к ножке микроконтроллера и приступить к поиску кодов ДУ Sony. Но что толку, если батарейка в нём разрядится за один-два дня, даже если им совсем не пользоваться?

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

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

Чтобы перенастроить соответствующие «фьюзы», пришлось воспользоваться внутрисхемным программатором. С кварцем на 16 МГц микроконтроллер, когда он не «спит», будет потреблять больший ток, чем при работе от встроенного тактового генератора на 8 МГц. Автор не сразу понял, что нужно отключить АЦП, отчего долго не мог найти причину, по которнй в спящем режиме микроконтроллер потреблял почти один миллиампер. Спящий режим выбран такой, при котором отключается всё, кроме прерываний. Этот калькулятор показал, что в идеальных условиях, если нажимать кнопки 5 раз в час, элемента в таком режиме хватит на 4,82 года. Сторожевой таймер тоже пришлось отключить, и вот результат: около 2 мкА в спящем режиме и 3,5 мА при передаче команды. Даже один-два года — уже здорово, а так — тем более.

Файлы для повторения: скетч, схема, «герберы», исходник платы. Плату автор разработал в Eagle.

измерение тока: Видео, где показано в т.ч.

Далее автор приводит упрощённый аналог CC-BY из одной фразы: «Если хотите, используйте код и плату в других самоделках, только не забудьте указать, кто всё это для вас разработал». Процесс совершенствования конструкции продолжается, прежде всего необходимо заставить заработать пару кнопок, для которых найденные в сети коды оказались неправильными. Поскольку исходная библиотека не под GPL, а под LGPL, так делать можно.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть