|
si570 |
|
|
|
Jun 27 2018, 16:27
|
Частый гость
 
Группа: Участник
Сообщений: 184
Регистрация: 7-10-10
Пользователь №: 59 981

|
Давно использую в разработках 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 не производит изменение частоты. Ничего существенного не происходит по ней.
|
|
|
|
|
 |
Ответов
|
Jun 28 2018, 12:50
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 27-11-08
Пользователь №: 42 009

|
Цитата(Art55555 @ Jun 27 2018, 19:27)  Но. Представим, что прошивка залита во флешку, всё работает на частоте, скажем, 100 МГц. Допустим, мне нужно "налету" прошить на частоту 115 МГц. Т.е. в данный момент DCO и выходная частота уже другие, отличаются от начальных (10-мегагерцовых, уже перестроенные). Также представим, что частот может быть 3-10. Получается,что DCO и выходная частота мне не известны в общем случае. И я не могу их нигде прочитать (Имеется в виду то, что выходная частота может быть как 10, 100, 115 и т.д.). Есть способ считать эти данные? Или сбросить всё по умолчанию? Команда RESET не производит изменение частоты. Ничего существенного не происходит по ней. Однако - обычно с этим сталкиваются еще на этапе отладки что бы не дергать питание при повторном запуске софта. Делается все просто - читаем регистры, посылаем сброс и опять читаем регистры - далее программируем от базовой частоты. "Быстрая" перестройка частоты для этих силабсов доступна только в небольшом диапазоне.
|
|
|
|
|
Jun 28 2018, 13:29
|
Частый гость
 
Группа: Участник
Сообщений: 184
Регистрация: 7-10-10
Пользователь №: 59 981

|
Цитата(fguy @ Jun 28 2018, 15:50)  Однако - обычно с этим сталкиваются еще на этапе отладки что бы не дергать питание при повторном запуске софта. Делается все просто - читаем регистры, посылаем сброс и опять читаем регистры - далее программируем от базовой частоты. "Быстрая" перестройка частоты для этих силабсов доступна только в небольшом диапазоне. Не понял, а зачем тогда читать регистры? Почему не сброс сразу, а потом читать? И сброс что в итоге сбрасывает? Меня, конечно, "быстрая" перестройка не интересует, обычно диапазон перестройки большой.
Сообщение отредактировал Art55555 - Jun 28 2018, 13:40
|
|
|
|
|
Jun 28 2018, 14:52
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 27-11-08
Пользователь №: 42 009

|
Цитата(Art55555 @ Jun 28 2018, 16:29)  Не понял, а зачем тогда читать регистры? Почему не сброс сразу, а потом читать? насколько помню иначе фокус не проходит Цитата(Art55555 @ Jun 28 2018, 16:29)  И сброс что в итоге сбрасывает? сбрасывает частоту на базовую
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|