Я придумал, как решить проблему ! Этот вариант я рассматривал и забраковал, когда еще неверно представлял режим работы памяти, теперь он подходит.
На вход /OE буфера будет подаваться логическое "НЕ И" из /CS и /WE. Таким образом, буфер будет включен только при высоких уровнях /CS и /WE. В режиме чтения сигналы будут фиксированы так, что буфер будет отключен и МК спокойно будет читать из памяти, переключая лишь адрес, а запись я обеспечу 3-им циклом (/CS controlled), где /WE будет фиксирован в низком уровне, и можно будет спокойно дергать /CS-ом, не вызывая дергания буфера с коллизиями. Ну а переход между режимами чтения и записи я буду осуществлять такой последовательностью переключения сигналов, чтобы не позволить им одновременно быть высокого уровня, тем самым предовтратив даже кратковременное вкючение буфера.
Правда, /CS-ом мне очень удобно было два счетчика-регистра инкрементировать, которые адрес выставляют для памяти, поэтому при чтении все-таки придется дергать /CS-ом, но синхронно с /WE (надеюсь, МК обновляет пины одновременно, ну или хотя бы с разницей в 1-2нс, которые могут привести к кратковременному выполнению условия "НЕ И", но 1-2нс то можно позволить, я надеюсь ? тем более, у меня компоненты далеко не высокоскоростные, и, я полагаю, емкости проводников и нагрузки не сопоставимы с такими крутыми фронтами, чтобы за 1-2 нс ток успел сильно вырасти, а уж тем более еще продержаться).
Ну и плюс, при написании программы, мне придется быть очень внимательным, учитывая все ньюансы извращенной логики, заложенной мною схемотехнически

Столько мучений, чтобы отвоевать у МК свободный пин
Сообщение отредактировал artymen - Apr 30 2010, 08:20