Перейти к содержанию

    

si570

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Но. Представим, что прошивка залита во флешку, всё работает на частоте, скажем, 100 МГц. Допустим, мне нужно "налету" прошить на частоту 115 МГц. Т.е. в данный момент DCO и выходная частота уже другие, отличаются от начальных (10-мегагерцовых, уже перестроенные). Также представим, что частот может быть 3-10. Получается,что DCO и выходная частота мне не известны в общем случае. И я не могу их нигде прочитать (Имеется в виду то, что выходная частота может быть как 10, 100, 115 и т.д.). Есть способ считать эти данные? Или сбросить всё по умолчанию? Команда RESET не производит изменение частоты. Ничего существенного не происходит по ней.

как-то у вас сумбурно - "Давно использую, Также представим, мне не известны".. вы автор прошивки плис, железо ваше, исходная частота известна, не пойму суть проблемы?

все регистры генератора вроде бы читаются через i2c, т.е. можно прочитать и выяснить настройки

процедура настройки расписана в "3.2. Si570 Programming Procedure"

 

если вам необходимо перепрограммировать si570 с заранее неизвестными входными частотами, то на свободных пинах организуете шифратор, где свитчиками выставляете кодовую комбинацию, которую считывает прошивка в плис и пихает блок настроек через i2c корку в si570..

 

Ps попробуйте вместо "Internal Reset." дернуть "Recall NVM into RAM." - по идеологии это затрет оперативные настройки на настройки "по умолчанию"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
как-то у вас сумбурно - "Давно использую, Также представим, мне не известны".. вы автор прошивки плис, железо ваше, исходная частота известна, не пойму суть проблемы?

все регистры генератора вроде бы читаются через i2c, т.е. можно прочитать и выяснить настройки

процедура настройки расписана в "3.2. Si570 Programming Procedure"

 

если вам необходимо перепрограммировать si570 с заранее неизвестными входными частотами, то на свободных пинах организуете шифратор, где свитчиками выставляете кодовую комбинацию, которую считывает прошивка в плис и пихает блок настроек через i2c корку в si570..

 

Ps попробуйте вместо "Internal Reset." дернуть "Recall NVM into RAM." - по идеологии это затрет оперативные настройки на настройки "по умолчанию"

 

RECALL не помог.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Но. Представим, что прошивка залита во флешку, всё работает на частоте, скажем, 100 МГц. Допустим, мне нужно "налету" прошить на частоту 115 МГц. Т.е. в данный момент DCO и выходная частота уже другие, отличаются от начальных (10-мегагерцовых, уже перестроенные). Также представим, что частот может быть 3-10. Получается,что DCO и выходная частота мне не известны в общем случае. И я не могу их нигде прочитать (Имеется в виду то, что выходная частота может быть как 10, 100, 115 и т.д.). Есть способ считать эти данные? Или сбросить всё по умолчанию? Команда RESET не производит изменение частоты. Ничего существенного не происходит по ней.

Однако - обычно с этим сталкиваются еще на этапе отладки что бы не дергать питание при повторном запуске софта.

Делается все просто - читаем регистры, посылаем сброс и опять читаем регистры - далее программируем от базовой частоты.

"Быстрая" перестройка частоты для этих силабсов доступна только в небольшом диапазоне.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Однако - обычно с этим сталкиваются еще на этапе отладки что бы не дергать питание при повторном запуске софта.

Делается все просто - читаем регистры, посылаем сброс и опять читаем регистры - далее программируем от базовой частоты.

"Быстрая" перестройка частоты для этих силабсов доступна только в небольшом диапазоне.

 

Не понял, а зачем тогда читать регистры? Почему не сброс сразу, а потом читать?

И сброс что в итоге сбрасывает?

Меня, конечно, "быстрая" перестройка не интересует, обычно диапазон перестройки большой.

Изменено пользователем Art55555

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Не понял, а зачем тогда читать регистры? Почему не сброс сразу, а потом читать?

насколько помню иначе фокус не проходит

И сброс что в итоге сбрасывает?

сбрасывает частоту на базовую

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
насколько помню иначе фокус не проходит

 

сбрасывает частоту на базовую

 

Спасибо!

Сейчас буду пробовать.

О результатах сообщу.

 

Спасибо!

 

Именно последовательность чтение 15-17 регистров - сброс - чтение 15-17 регистров - фриз - настройка - анфриз приводит к ожидаемому результату.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация