Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по работе ATmega162 с внешней памятью
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Vladimir_T
Почему при обращении к внешней памяти, данные не стробируются сигналами WR/RD? Вот код, но что-то не учел, подскажите, пожалуйста... Давно бьюсь, документацию до дыр зачитал....

#define write_reg_addr 0x2000

MCUCR |= 1 << SRE; // enable external static memory
SFIOR |= 1 << XMBK; // enable bus keeper
SFIOR &= ~((1 << XMM0) | (1 << XMM1)); //enable section

*(byte*)write_reg_addr = 0x01; // Test XRAM
Vladimir_T
Когда сбрасываешь флаг доступа к внешней памяти, то сигналы появляются. Все работает

MCUCR &= ~(1 << SRE); // disable external static memory
Палыч
Непонял... Это что же получается: бит SRE в MCUCR работает строго наоборот, чем описано об этом в документации? Какое тогда его значение после сброса? По документам - ноль. Если и у Вас - также, то как mega162 нормально работает с портами PA, PC, PD7...PD6 в случае, если бит SRE никто не изменяет?
defunct
IAR сам инициализирует шину памяти.
General Options -> System ->Enable External Memory Bus

Для M162 IAR по-умолчанию инициализирует шину вот таким вот образом:

LDI R16, 0xC0 // <-- (1 << SRE) | (1 << SRW10)
OUT MCUCR, R16

проект с такой инициализацией уже давно в серии,
вероятно Вам стоит поискать проблему где-то в другом месте,
возможно Fuse бит M161C у Вас запрограммирован.
Vladimir_T
Спасибо за помощь. Fuse бит M161C, действительно установлен. Проверил в настройках проекта
General Options -> System ->Enable External Memory Bus,
шина автоматически не инициализируется. но ведь утром программа заработала как надо, с инициализацией, как описал в посте #1. Странно это. Очень даже...
Проверял, конечно, по включении линии PA , PC инициализируютя как порты, а при установке бита SRE, они инициализируются как шина XMEM - все как описано в документе.
Палыч
Так, может быть, все дело в fuse M161C? В mega161 нет работы с внешней памятью - вот работа с ней в mega162 в режиме совместимости с mega161 и происходит как-то криво?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.