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

- Некоторые модели 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 (порт А) они не нужны, можно не обращать внимания, или же выпаять.

Выводы контроллера
Все выводы контроллера разведены на гребенки (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 МГц
Интерфейс внешней памяти
Контроллер имеет интерфейс внешней памяти и он разведен на модуле, поэтому выходы регистра-защелки адреса также выведены на разьем (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
Довольно давно один товарищ попросил меня подумать о замене контроллера в одном устройстве с AT89C51 на AVR. Тогда я был просто не готов к такому разговору и аргументированно доказал, что овчинка не стоит выделки, слишком сложно.Странный Вы товарищ… Неужто неизвестно что ATmega8515 пин-ту-пин совместима с AT89C51 и ему подобными? Там вообще ничего переделывать не надо. Вынул-вставил (и бежать)). На reset ддампер только. Ещё лет, эдак, с 10 назад такое практиковал.
Комментарии (14)
RSS свернуть / развернуть