пятница, 8 ноября 2019 г.

Радио на RDA5807M. Часть 1

RDA5807M Arduino

Микросхема RDA5807M - это FM радиоприемник нового поколения с поддержкой RDS/RBDS и цифровым управлением по I2C. Микросхема выполнена по CMOS технологии, что определяет ее минимальное энергопотребление. RDA5807M уже содержит все необходимые узлы и требует лишь небольшого числа внешних компонентов. А мощный аудиопроцессор обеспечивает оптимальное качество звука при различных условиях приема. Все это делает RDA5807M удачным выбором для носимых, портативных устройств.

воскресенье, 13 октября 2019 г.

Игральный кубик на ATtiny85

Игральный кубик на ATtiny85

В сегодняшней статье описание очередной моей поделки для сынишки - игрального кубика на ATtiny85. Это и хороший пример использования микроконтроллера серии tiny, и оригинальный атрибут для настольных игр. Плюс удовольствие от его изготовления. Кому интересно, прошу под кат.

понедельник, 24 июня 2019 г.

Немного кодокопания (прерывания, ISR, attachInterrupt)

В продолжение темы о прерываниях в AVR микроконтроллерах предлагаю покопаться в коде, генерируемом компилятором. Это поможет проверить на деле приведенный ранее теоретический материал, а также узнать новые интересные моменты. Для этого потребуется описанная в прошлой публикации доработка IDE Arduino для генерации ассемблерного листинга и справочник по языку ассемблера для AVR, доступный по ссылке http://ww1.microchip.com/downloads/en/devicedoc/atmel-0856-avr-instruction-set-manual.pdf. Итак, приступим.

вторник, 18 июня 2019 г.

Настройка IDE Arduino для генерации листинга на ассемблере

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

четверг, 13 июня 2019 г.

Прерывания в Ардуино. Часть 2

Прерывания в Ардуино. Внешние прерывания, PCINT, WDT

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

вторник, 21 мая 2019 г.

Прерывания в Ардуино. Часть 1

Прерывания в Ардуино. Внешние прерывания

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

воскресенье, 12 мая 2019 г.

Бесполезная коробка на ATmega328P


Бесполезная коробка на ATmega328P

Последнее время у меня в блоге одни микроконтроллеры, программаторы и загрузчики. Надо бы отвлечься и написать о чем-то, что можно собрать своими руками. Думаю, "бесполезная коробка" отлично подойдет для этого: эта забавная поделка обязательно понравится и ребенку, и взрослому, а сделать ее под силу каждому.

среда, 24 апреля 2019 г.

Восстановление фьюзов ATtiny85

Разблокировка вывода Reset на ATtiny85

Фьюзы микроконтроллера отвечают за его предварительную настройку. Они позволяют указать источник тактирования, разрешить либо запретить работу сторожевого таймера, схемы контроля питания и т.д. Одни из них не столь принципиальны для работы микроконтроллера, другие, напротив, весьма критичны и их неосторожное изменение может привести к неприятным результатам. К примеру, фьюз RSTDISBL (External reset disable) позволяет запретить внешний сброс, при этом освободившийся от данной функции вывод микроконтроллера можно использовать как дополнительный цифровой пин. Однако вместе с входом внешнего сброса вы потеряете и возможность что-либо сделать с микроконтроллером, используя ISP программатор. Помочь в этой ситуации может высоковольтный программатор: он не использует сигнал сброса и запрограммированный RSTDISBL для него не помеха (к слову он и стоит значительно дороже внутрисхемного). Но есть и другой способ восстановления фьюзов ATtiny85, более доступный, о нем я и хочу рассказать.

понедельник, 4 марта 2019 г.

Энергопотребление ATmega328P при тактировании от внутреннего RC-генератора

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

воскресенье, 3 февраля 2019 г.

Обвязка ATmega328P

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