Проект на LPC1788 + SDRAM. Необходимо в ходе работы изменить тактовую частоту CPU.
Так как SDRAM тактируется от клока CPU (с делителем /1 или /2), то и частота SDRAM поменяется. А значит - необходимо заново проинитить контроллер SDRAM (EMC). Но нужно это сделать не потеряв содержимого SDRAM.
А в даташите указано, что значения регистров управления EMC можно изменять только если EMC disabled или находится в idle.
Правильно ли я понимаю, что для этого достаточно обеспечить чтобы:
1) дождаться статуса "EMC is idle" в регистре EMC.STATUS;
2) установить бит "Low-power mode" в регистре EMC.CONTROL;
3) перестроить частоту CPU (PLL и т.п.) обспечив, чтобы в течение этого времени не было выборок кода или данных из SDRAM или прочих обращений к ней;
4) переинитить EMC для нового значения клока;
5) сбросить бит "Low-power mode" в регистре EMC.CONTROL.
Будет-ли производиться refresh памяти в течение пунктов 1...5?
Или может у кого-то есть правильная процедура переиницализации EMC для LPC17xx без потери данных в SDRAM?