Микросхема RDA5807M - это FM радиоприемник нового поколения с поддержкой RDS/RBDS и цифровым управлением по I2C. Микросхема выполнена по CMOS технологии, что определяет ее минимальное энергопотребление. RDA5807M уже содержит все необходимые узлы и требует лишь небольшого числа внешних компонентов. А мощный аудиопроцессор обеспечивает оптимальное качество звука при различных условиях приема. Все это делает RDA5807M удачным выбором для носимых, портативных устройств.
пятница, 8 ноября 2019 г.
воскресенье, 13 октября 2019 г.
понедельник, 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
Продолжаем тему использования прерываний в Ардуино. В предыдущей публикации мы познакомились с функциями среды Ардуино для работы с внешними прерываниями. Сегодня рассмотрим какие еще прерывания присутствуют в AVR микроконтроллерах и разберем несколько примеров их использования. А начнем мы с самого начала - с таблицы векторов прерываний.
вторник, 21 мая 2019 г.
Прерывания в Ардуино. Часть 1
воскресенье, 12 мая 2019 г.
Бесполезная коробка на ATmega328P
Последнее время у меня в блоге одни микроконтроллеры, программаторы и загрузчики. Надо бы отвлечься и написать о чем-то, что можно собрать своими руками. Думаю, "бесполезная коробка" отлично подойдет для этого: эта забавная поделка обязательно понравится и ребенку, и взрослому, а сделать ее под силу каждому.
среда, 24 апреля 2019 г.
Восстановление фьюзов ATtiny85
Фьюзы микроконтроллера отвечают за его предварительную настройку. Они позволяют указать источник тактирования, разрешить либо запретить работу сторожевого таймера, схемы контроля питания и т.д. Одни из них не столь принципиальны для работы микроконтроллера, другие, напротив, весьма критичны и их неосторожное изменение может привести к неприятным результатам. К примеру, фьюз RSTDISBL (External reset disable) позволяет запретить внешний сброс, при этом освободившийся от данной функции вывод микроконтроллера можно использовать как дополнительный цифровой пин. Однако вместе с входом внешнего сброса вы потеряете и возможность что-либо сделать с микроконтроллером, используя ISP программатор. Помочь в этой ситуации может высоковольтный программатор: он не использует сигнал сброса и запрограммированный RSTDISBL для него не помеха (к слову он и стоит значительно дороже внутрисхемного). Но есть и другой способ восстановления фьюзов ATtiny85, более доступный, о нем я и хочу рассказать.
понедельник, 4 марта 2019 г.
Энергопотребление ATmega328P при тактировании от внутреннего RC-генератора
Сегодня я решил провести небольшой эксперимент по снижению энергопотребления микроконтроллера ATmega328P - именно он используется в большинстве популярных плат Ардуино. Я настроил его на тактирование от внутреннего RC-генератора и вынул из Ардуино, чтобы уменьшить энергопотребление. О том, что из этого получилось, читайте далее.
воскресенье, 3 февраля 2019 г.
Обвязка ATmega328P
Типовая схема включения любого микроконтроллера содержит ряд компонентов и цепей, обеспечивающих его нормальное функционирование. Совокупность этих компонентов называется обвязкой микроконтроллера. Данная публикация посвящена функциям обвязки и ее особенностям в случае использования AVR микроконтроллера ATmega328P.