All posts by Steel.ne

Мультиплексирование

Думаю, каждый сталкивался с нехваткой выводов у выбранного контроллера. Принципиальных путей решения данной проблемы ровно два: менять контроллер на более многоногий или менять схему, чтобы упихнуться в существующие ноги.
Например, классика жанра — кнопки. Когда их две-три, то проще всего повесить каждую на свою ногу, особенно если на этих ногах есть внешнее прерывание. Тогда и работать с ними одно удовольствие. А если кнопок больше десятка? Если идти по первому пути, то с кличем «больше ножек!» выбираем какой-нить TQFP64 и оккупирем два порта. У такого решения есть очевидный плюс — каждая кнопка анализируется независимо от других, поэтому возможны любые аккорды. Минусы тоже очевидны: много ног ушло почти в никуда.

Второй путь — преобразовать схему так, чтобы подсократить количество занимаемых ног. Тут простора для творчества побольше. Начиная от PC-style (отдельный контроллер, который занимается опросом клавиатуры и преобразует нажатие клавиш в удобоваримый последовательный код, хоть в 1-wire) и сдвиговых регистров (как на джойстиках Dendy) заканчивая клавиатурами на резистивных делителях, подключаемых к АЦП. Весь вопрос — в стоимости.

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

Первое, что сразу приходит в голову — поставить цепочку резисторов и кнопками коротить их на землю. Примерно так:

Посмотрим, как оно работает.
(далее…)

Read More »

Организация древовидного меню

Почти для всех проектов на микроконтроллере с экранчиком требуется система меню. Для каких-то проектов одноуровневое, для других — многоуровневое древовидное. Памяти, как обычно, мало, поэтому хочется запихнуть все во флэш.

Попутно, из проекта в проект, развивалась своя псевдоОС — таймеры, события, диспетчеры.
Я ее полностью писал на си, оптимизацией и вылизыванием еще не занимался.

Перебирая разные системы, наткнулся на MicroMenu:

Попробуем разобрать ее на части и прикрутить к системе.
(далее…)

Read More »

ZigBee модуль Microchip-MRF24J40MA

Встала необходимость осваивать радиоканал. Стояла задача — передача небольших объемов информации с большого количества устройств. Начал рассматривать варианты.

  • Блютус (на него изначально упал взгляд у заказчика). Не подошел — малое расстояние, и не более 7 устройств в сети.
  • Вай-фай. Не более 32 устройств в сети. Не подошел.
  • Разнообразные трансиверы — удлинители ком-порта. В основном предназначены для работы в режиме точка-точка.
  • ZigBee-образные устройства. Стандарт IEEE-802.15.4. Приглянулись сразу. Вот про них и рассказ.

Для целей ознакомления остановился на готовом модуле от Microchip – MRF24J40MA. На алиэкспрессе продается, тут. У атмелов есть похожий чип AT86RF220 и интегрированное решение ATMEGA128RFA1. Облизнулся на последний, но в пределах досягаемости не было, под заказ — долго. Но обязательно потом возьму, погоняю.

Знакомство
Итак, встречайте героя. Модуль MRF24J40MA на чипе MRF24J40.

MRF24J40MA

(далее…)

Read More »