Цитата(zltigo @ Nov 21 2006, 21:55)

Цитата(amw @ Nov 21 2006, 18:18)

BCFG0 = 0;
Странно, очень странно видеть обнуленный. Сейчас не досуг разобраться, но странно. Вы уверены,
что "так надо"?
Для байтовой SRAM с минимальными ожиданиями - нормально.
Цитата(amw @ Nov 21 2006, 21:18)

Цитата
Я эту проблему решаю вставкой nop между операциями записи. То же самое, AFAIR, и для чтения, т.к. при чтении контроллер шины может продержать СS и OE для нескольких последовательных адресов.
nop или другие команды не помогают. Помогает загрузка в PC

.
ИМХО NOP-ов надо не 1 а на всю операцию чтения/записи. Для BCFG0=0 у Вас и чтение и запись исполняются 3 или 4 CCLK-такта (см описание BCFG0.IDCY).
Т.е. нопов надо минимум 4 (ну или может 4-1=3, но врядли) а то и ещё больше. А команды переходов это частный случай этой задержки.
Это чтобы CS и OE возвращались.
А для того чтобы запись-чтение не переупорядочивались в чтение-запись возможно и одного такта задержки хватит, но это уже зависит от реализации отложенной записи, если это она, если нет то вообще не понятно!

PS А BCFG0.IDCY не пробовали увеличивать? Мож оно будет CS отпускать?
PPS Видимо филипс о многом умолчал вот тут:
Цитата
Figure 10 and Figure 11 are showing typical read and write accesses to external memory. However, variations can be noticed in some particular cases.
For example, when the first read access to the memory bank that has just been selected is performed, CS and OE lines may become low one XCLK cycle earlier than it is shown in Figure 10.
Likewise, in a sequence of several consecutive write accesses to SRAM, the last write access will look like those shown in Figure 11. On the other hand, leading write cycles in that case will have data valid one cycle longer. Also, isloated write access will be identical to the one in Figure 11.