Цитата(aaarrr @ Apr 5 2012, 14:28)

1. Никогда не наблюдал каких-либо сбоев при корректно выполненном переключении.
Здесь есть 2 нюанса:
1. Я не увидел ни в даташитах, ни в примерах, хоть пол-слова упоминания что я должен сделать когда источник тактов не меняется, а меняется лишь делитель.
Фактическт выходит, что я могу менять значение PRES в PMC_MCKR на лету в любой момент времени, и частота работы ядра изменится на следующей инструкции, даже флаг проверять не надо!
2. Если я меняю источник тактирования, например с PLL на SCLK, то пока это всё запускается/лочится - у меня есть простой по MCK, соответственно в эти микросекунды переферия не тактируется и не работает.
Т.е. переключить-то можно корректно, просто можно данные потерять, если прос ведомый!
До сих пор я переключал тактовую лишь во время смены режима работы всего устройства, фактически это были не связанные задачи с полной переинициализацией периферии.
Сейчас встала задача снижать MCK при непрерывно работающем DMA и пока оно не работает.
Может МК дурит, может в коде ошибка. Но тенденция настораживает, а обсудить не с кем

Цитата(aaarrr @ Apr 5 2012, 14:28)

2. Не совсем понял вопрос. MCK - частота процессора, шин, периферии. Как она может быть ниже "частоты принимаемых по ДМА данных"?
Банально: SSC в режиме внешнего тактирования (ведомый), принимает данные в ОЗУ по DMA через RF,RK,RD со скоростью 300кбит, кто мне мешает установить MCK, хоть в 500Гц?
Я раньше не пробовал подобные финты - сейчас попробовал - и обломался.
Банально не могу менять значение PRES.
Раньше переключался SCLK->PLL(MCK) и обратно без проблем. А вот встала задача банально уменьшить тактовую вдвое на время и что-то лажа выходит...