Давно использую в разработках si570. Полностью устраивал по всем своим параметрам, когда требовался получить такт 100 МГц. Работает он так: включается на частоте 10 МГц, успешно тактирует ПЛИС, в ней я поднимаю процесс перепрограммирования. Он следующий: 1. Зная, что выходная частота 10 МГц, я считываю параметры RFREQ, HS_DIV, N1, высчитываю DCO=5000 МГц. 2. Далее высчитываю fxtal. 3. Начинаю подбираться к новой частоте, рассчитываю HS_DIV, N1, DCO. 4. Рассчитываю новый RFREQ. 5. Замораживаю Freeze DCO = 1, ввожу в соответствующие регистры новые параметры RFREQ, HS_DIV, N1 6. Размораживаю Freeze DCO = 0.
Всё работает, всё супер.
Но. Представим, что прошивка залита во флешку, всё работает на частоте, скажем, 100 МГц. Допустим, мне нужно "налету" прошить на частоту 115 МГц. Т.е. в данный момент DCO и выходная частота уже другие, отличаются от начальных (10-мегагерцовых, уже перестроенные). Также представим, что частот может быть 3-10. Получается,что DCO и выходная частота мне не известны в общем случае. И я не могу их нигде прочитать (Имеется в виду то, что выходная частота может быть как 10, 100, 115 и т.д.). Есть способ считать эти данные? Или сбросить всё по умолчанию? Команда RESET не производит изменение частоты. Ничего существенного не происходит по ней.
|