[an error occurred while processing this directive]
|
Многократно сталкивался с подобной проблемой при проектировании на 51-х контроллерах. Физику этого явления в свое время описал Dallas: При обращении к внешней памяти, в момент смены на шине (порт P0) адреса на записываемые или считываемые данные, если в адресе много нулей, а в данных - единиц, или наоборот, возникают большие токи через нижние транзисторы порта P0. При этом происходит подброс внутренней земли в контроллере. Это приводит к формированию короткой помехи-иголки на ножке ALE и может вызвать ложную запись в регистр адреса.
Dallas предлагал несколько способов решения проблемы. Я применял два из них:
1. Установить конденсатор 30...50 пФ между выводом ALE и общим проводом ("землей"). В моей практике иногда приходилось ставить до 150 пФ.
2. Применять регистры КМОП - 74HC373, 74AC373, порог входа у которых выше чем у ТТЛ. Так мы обычно и делаем. Помогает хорошо. 74HCT373 не подходят (проверено!), т.к. входные пороги у них ТТЛ-овские.
E-mail: info@telesys.ru