Вернулся к этому проекту. Провозился довольно долго, но всё-таки добился результата.

Опишу вкратце результат, может кому поможет:
Реализовывал это дело на LPC1788. Старался получить идеальный вариант - Self Refresh. Прочие варианты с авторефрешем всей памяти и потом кратковременным отключением SDRAM без потери данных, оставил на случай если не получится сделать Self Refresh.
У LPC1788 в контроллере внешней памяти, судя по мануалу, есть возможность включить режим Self Refresh (регистр EMC.DYNAMIC.CONTROL бит 2), но мне так и не удалось добиться его включения с помощью EMC-контроллера. При использовании этого бита я почему-то получал последовательность команд Precharge, AutoRefresh и др. вместо Self Refresh. Что только ни делал. В мануале очень скудная инфа на этот счёт (т.е. - её почти нет). После аппаратного RESET-а МК, в EMC-контроллере стоит статус "Self Refresh" и после установки бита 2 в EMC.DYNAMIC.CONTROL в регистре статуса появляется индикация что SDRAM как будто в режиме Self Refresh. Но по факту я не вижу на шине соответствующей команды входа в Self Refresh. И содержимое SDRAM после этого через несколько секунд разрушается. Т.е. - EMC-контроллер считает Slef Refresh включен, а SDRAM так не думает.
После многих опытов удалось решить проблему вручную:
1.Дожидаюсь опустошения write-буферов (EMC.STATUS).
2.Выключаю авторефреш силами EMC-контроллера (EMC.DYNAMIC.REFRESH = 0).
3.Дожидаюсь завершения всех операций SDRAM (idle в EMC.STATUS).
4.Останавливаю операции по шине (EMC.DYNAMIC.CONTROL = B0 | B1 | 3 << 7). С включённым постоянно клоком и CKE==1.
5.Устанавливаю GPIO-состояния линий: CKE=1,CS=1,RAS=1,CAS=1,WE=1 и все их на вывод.
6.Переключаю линии CKE,CS,RAS,CAS,WE на GPIO (до этого они управлялись от EMC). Состояния на них не должны измениться при этом. CLK и другие линии (DQL, DQH, данных и адреса) оставляю подключенными к EMC.
7.Формирую с помощью GPIO команду "Вход в Self Refresh" (CKE=0,CS=0,RAS=0,CAS=0, WE-без изменений). Она защёлкивается ближайшим клоком CLK. Так как в этом МК все эти сигналы выведены на один порт, их можно изменить одной командой записи в порт. Если бы они были на разных портах, то и сигнал CLK надо было бы формировать через GPIO.
8.Выдержка времени нужное число клоков.
9.Теперь можно выключить клок и все линии, кроме CKE, использовать как угодно. CKE должна оставаться в низком состоянии. SDRAM уже в Self Refresh.
Выход из режима Self Refresh несложный: включить CLK, установить CKE=1, выдержать нужное число клоков (это будет команда INHIBIT, выводящая из Self Refresh), перевести CKE,CS,RAS,CAS,WE на управление от EMC. Ну и т.д.