Для планируемых проектов, с использованием дисплея от Nokia3310, собрал что-то типа универсального модуля на микроконтроллере Atmega32 в корпусе TQFP. Платка получилась компактная, размерами 60х45 мм. Из периферии имеются 4 кнопки и один светодиод. Я старался задействовать для подключения дисплея и кнопок менее важные выводы микроконтроллера, чтобы оставалась возможность использовать UART, ШИМ, АЦП, внешние прерывания, внутренний компаратор и прочие ништяки. Дисплей занимает входы/выхода JTAG и подключается к выводам PortC.3-PortC.7. Для подключения кнопок отвел 4 ноги порта А, схема подключения получилась такая:
Все оставшиеся свободные выводы микроконтроллера выведены на разъем-гребенку PLS. Под программатор вывел отдельный 6-и пиновый разъем, распиновка разъема стандартная, можно шить например вот этим программатором.
С обратной стороны модуля стоит кварц на 16МГц и конденсаторы по питанию.
Как писал в этой статье, дисплей у меня отрезан от пластмаски и припаян на плату. Этот модуль с дисплеем ставится на основную плату с контроллером.
Чтобы между модулем дисплея и модулем с контроллером был контакт без запайки я сделал хитрую вещь: продел жилку провода через отверстие и запаял с обеих сторон.
Таким образом появилось соединение между слоями и в это переходное отверстие можно втыкать штырьковый разъем. Такой метод неплохо заменяет металлизацию переходных отверстий.
Вот как это выглядит в сборе:
При первом программировании фьюзов микроконтроллера, необходимо отключить JTAG, чтобы можно было использовать выходы мк которые он занимает. Заодно нужно запрограммировать работу от внешнего кварца 16 МГц. Для пони-прог фьюзы можно глянуть здесь. Я шил через Khazam'y, скрин с настройками фьюзов для него:
Для проверки модуля написал небольшую программку, управляющую светодиодом с помощью кнопок через простенькую менюшку: можем включать/выключать светодиод и заставить его мигать с выбираемой частотой (Slow/Fast):
Работа с кнопками организована на Timer0, каждые 16 мс происходит переполнение таймера и вызывается прерывание. В обработчике прерывания происходит сканирование кнопок. Мигание светодиода организовано на Timer1.
Ну и напоследок видео работы тестовой прошивки (спасибо пользователю Ruber за снятое видео;))
Платка разведена в программе Dip-Trace, уж больно его расхваливают и я тоже решил попробовать поработать в нем. И честно сказать мне очень он понравился, осваивается быстро даже методом тыка, есть большая библиотека компонентов, может создавать трехмерную модель будущей платы. В общем похоже я на него подсел основательно)
Ниже можете скачать файлы к проекту: Исходники и прошивка
Файлы печатной платы
Проект в proteus
Статьи по теме:
UPD: Часто у людей желающих использовать дисплей от 3310 возникает вопрос о согласовании уровней между дисплеем и контроллером, работающим от 5 вольт. На самом деле дисплеей прекрасно работает при напряжении питания 5 вольт, поэтому можно особо не заморачиваться с преобразователями. Вот к примеру мой модуль с дисплеем (дисплей подключен напрямую к контроллеру) подключен и запитан от USB программатора (5V)
Если вы решили собрать подобный модуль предлагаю собрать усовершенствованный вариант: ATmega32 Devboard
|