Модуль AVR ATmega162 для Pinboard II

Собственно почему именно на ATmega162 и чем он отличается от уже имеющегося модуля ATmega16?
  • Некоторые модели ATmega имеют интерфейс внешней памяти (ATmega8515, ATmega162, ATmega640, ATmega641, ATmega128, ATmega256). Интерфейс этот параллельный, т. е. требует 8 линий данных/адреса, до 8 линий дополнительного адреса, 2 линии управления, регистр для разделения данных/адреса. И хотя на стандартный модуль можно установить первые два в DIP-40 корпусе, быстро подключиться к интерфейсу внешней памяти проблематично. Данный модуль имеет возможность подключения внешней памяти SRAM обьемом до 64 Кб установкой в панельку. Интерфейс выведен и на разьем.
  • ATmega162 имеет на борту два полноценных UART.
  • Небольшое лирическое отступление. Довольно давно один товарищ попросил меня подумать о замене контроллера в одном устройстве с AT89C51 на AVR. Тогда я был просто не готов к такому разговору и аргументированно доказал, что овчинка не стоит выделки, слишком сложно. Товарищ успокоился, а мне этот разговор запал в голову. Стал сравнивать даташиты, прикидывать возможность замены, и к своему стыду выяснил что прямая замена не только возможна, она еще и не так сложна. Прямой заменой контроллера AT89C51 среди AVR является ATmega162. Конечно с заменой программы. Единственная доработка печатной платы — сигнал RESET имеет другую полярность. Основные функции на ножках совпадают один в один. Есть и еще небольшое отличие, порт Р0 у AT89C51 имеет нагрузочные резисторы на квазидвунаправленных выходах. Для ATmega162 (порт А) они не нужны, можно не обращать внимания, или же выпаять.
Субмодуль проектировался совместно с субмодулем AT89C51ED2 и на его основе. Отсюда и его преимущества и недостатки. Первое и основное — контроллер использует интерфейс внешней памяти, что для AVR нетипично. Причем через этот интерфейс могут быть подключены не только SRAM, но и всевозможные контроллеры ввода/вывода, например дисплейный HD44780. Именно на такое подключение HD44780 был изначально и расчитан. Или клавиатурный/дисплейный интерфейс i8279 (580BB79). Ну и конечно же широкоизвестный i8255 (580ВВ55), на один корпус 24 дополнительных входа/выхода. Любая периферия с параллельной 8-битной шиной легко подключается к этому модулю.



Выводы контроллера

Все выводы контроллера разведены на гребенки (J1), параллельные гребенкам краевого разьема модуля (J0). Там где это имеет смысл, выводы контроллера и краевого разьема расположены напротив. Это упрощает их соединение джампером.



Например выводы SPI (SS, MOSI, SCK, MISO) и UART (TxD, RxD). У данного контроллера два UART канала, как и у платы.

Напряжение питания

Модуль имеет два стандартных напряжения питания, 5V и 3,3V. Они выбираются джампером J3 и не требуют настроек и переключений на самой Pinboard II.

Подключение кварцевого резонатора

Иногда, когда не хватает возможностей встроенного тактового генератора, или нужна какая-то специфическая частота, например для UART, используют внешний кварцевый резонатор. Для него на плате модуля предусмотрена цанговая панелька, куда можно воткнуть любой из выводных кварцевых резонаторов. Для получения точных частот UART желательно использовать кварцевые резонаторы из следующего ряда:
  • 1,8432 МГц
  • 3,6864 МГц
  • 4,9152 МГц
  • 6,1440 МГц
  • 7,3728 МГц
  • 9,8304 МГц
  • 11,0592 МГц
  • 12,2880 МГц
  • 14,7456 МГц
  • 18,4320 МГц
  • 19,6608 МГц
  • 22,1184 МГц
Вот здесь можно посмотреть относительную ошибку от частоты кварца UART.

Интерфейс внешней памяти

Контроллер имеет интерфейс внешней памяти и он разведен на модуле, поэтому выходы регистра-защелки адреса также выведены на разьем (J2). Контакт RAM (J2.1) в этом разьеме служит для feedback, т. е. возможности отключения произвольных адресов установленной SRAM внешним дешифратором. Модуль спроектирован под чипы памяти в узком корпусе PDIP32, это чипы от кеш памяти 386/486 процессоров. У меня нашлись TE12512A-15K (TM TECH), UM61512AK-15 (UMC). Маркировки еще нескольких можно посмотреть здесь.



Контроллер имеет 32 рабочих регистра, 224 (нативный режим (A)) или 64 (режим совместимости с ATmega161 (B)) регистров ввода/вывода и 1024 байта внутренней SRAM. Всего 1280 (нативный режим (A)) или 1120 (режим совместимости с ATmega161 (B)) байт. Если интерфейс включен (установлен бит SRE в регистре MCUCR) и адрес запрашиваемой ячейки превышает обьем имеющейся на чипе памяти, данные передаются интерфейсу внешней памяти. Старшая половина 16-разрядного адреса выводится в порт C, младшая кратковременно доступна на порту А вместе со стробом /ALE (PE1). По этому стробу младший адрес защелкивается во внешнем Latches регистре. Затем данные передаются или принимаются через тот же мультиплексированный порт А. Стробами /WR и /RD служат выводы PD6 и PD7 соответственно.
Доступ к внешней памяти требует добавочного цикла ожидания по сравнению с доступом к внутренней. Это относится к командам LD, ST, LDS, STS, LDD, STD, PUSH, POP. В остальном работа с внешней памятью ничем не отличается от работы с резидентной.

Сброс и программирование

Контроллер сбрасывается при включении питания за счет внутренней схемы. Вывод RESET подтянут к VCC внешним up-down резистором. Для ручного сброса предусмотрена тактовая кнопка в нижней части модуля. На модуле применена кнопка SWT-7 (от CD-ROM), рабочая поверхность расположена сбоку.
Данный контроллер имеет возможность ISP программирования через интерфейс SPI, и при этом может использоваться сигнал RESET. Для удобства этот сигнал выведен на гребенку рядом с разьемом SPI.

Отладка программ

Контроллер имеет возможность отладки по JTAG интерфейсу. Его выводы TDI, TDO, TMS, TCK расположены рядом (L1.37… J1.40) в верхней правой части модуля.

Печатная плата, верх, дорожки и надписи:



Печатная плата, верх, монтаж и спецификации:



Печатная плата, низ, дорожки и надписи:



Печатная плата, низ, монтаж и спецификации:



Приложены:
ATmega162.zip — печатка в lay6;
Circuit.png — увеличенная схема;
SubMobule.png — увеличенная распиновка разьемов;
  • +6
  • 06 декабря 2014, 10:12
  • anakost
  • 3
Файлы в топике: ATmega162.zip, Circuit.png, SubModule.png

Комментарии (14)

RSS свернуть / развернуть
Интересно. Спасибо!
0
раскрыть комментарий
-5
это вы типа с умничали?
0
это вы типа с умничали
Нет, это я высказал своё удивление тем что кто-то ещё использует такие компоненты.
Разве это не странно — использовать AT89C51? Где их брать-то. Да и ATmega8515 тоже будет недёшево и ресурсов там всего ничего.
0
>> Где их брать-то.
Да хоть здесь — AT89C51 DIP 10 шт
0
а кто то говорил что в новых девайсах их использует?
0
Можете не верить, но ядро i51 не только не умерло, оно еще и очень широко применяется в промышленности. Все новые i51 имеют время мсполнения 1 команда на такт. Система команд CISC.
0
вы же почитайте — там уже работающий давно девайс хотят заменить на такой же только на авр
0
Довольно давно один товарищ попросил меня подумать о замене контроллера в одном устройстве с AT89C51 на AVR. Тогда я был просто не готов к такому разговору и аргументированно доказал, что овчинка не стоит выделки, слишком сложно.
Странный Вы товарищ… Неужто неизвестно что ATmega8515 пин-ту-пин совместима с AT89C51 и ему подобными? Там вообще ничего переделывать не надо. Вынул-вставил (и бежать)). На reset ддампер только. Ещё лет, эдак, с 10 назад такое практиковал.
0
  • avatar
  • Snake
  • 07 декабря 2014, 10:48
Ха! Так ведь и 162-я тоже. Извиняюсь. До неё я не добрался((. Хватило 8515.
0
>> Ещё лет, эдак, с 10 назад такое практиковал.
И ни с кем не поделились, нехорошо…
Попутал ATmega8515 с ATmega8535, исправил.
0
Дык, вроде ж очевидные вещи… Само напрашивается, я далеко не первый.))
0
Здесь уместно упомянуть что AT89CХ051 и ATtuny2313 тоже близнецы-братья.
0
Верно, подтверждаю. Делал программатор AT89x051 этажеркой над 2313. 1:1 за исключением одного вывода.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.