реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Головоломка
_Anatoliy
сообщение Nov 18 2016, 07:16
Сообщение #1


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Всем привет! Есть некое изделие в состав которого входит FPGA EP3C120 с ниос , синтезатор частоты ADF5355 и много других разностей. Но проблема с загрузкой синтезатора. Программа в ниос написана так : в файле инициализации читается код нужной частоты из EPCS и на эту частоту программируется синтезатор. Далее по Ethernet ниос может получить команду на изменение частоты синтезатора и перепрограммирует синтезатор с записью новой частоты в EPCS. Так вот не удаётся получить запрограммированный синтезатор после включения питания, т.е. выполнить загрузку синтезатора из процедуры инициализации. Причём команды по Ethernet выполняются без нареканий. Провозился вчера целый день а воз и ныне там. Перепробовал всё что приходило в голову : увеличивал задержки, загрузчику подсовывал частоту в виде константы и многое другое. Если запуститься в режиме отладки и поставить точку останова после загрузки синтезатора то на выходе получаю нужную частоту,всё работает. Бред какой-то... Проблема осложняется тем что так произошло что эта работа выполняется дистанционно(блок в другом городе). Анализатор спектра и осциллограф тоже не вариант. Но т.к. управление по сети выполняется предполагаю что с самим синтезатором всё нормально. Буду рад услышать любые предположения.
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Nov 18 2016, 07:29
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(_Anatoliy @ Nov 18 2016, 14:16) *
Всем привет! Есть некое изделие в состав которого входит FPGA EP3C120 с ниос , синтезатор частоты ADF5355 и много других разностей. Но проблема с загрузкой синтезатора. Программа в ниос написана так : в файле инициализации читается код нужной частоты из EPCS и на эту частоту программируется синтезатор. Далее по Ethernet ниос может получить команду на изменение частоты синтезатора и перепрограммирует синтезатор с записью новой частоты в EPCS. Так вот не удаётся получить запрограммированный синтезатор после включения питания, т.е. выполнить загрузку синтезатора из процедуры инициализации. Причём команды по Ethernet выполняются без нареканий. Провозился вчера целый день а воз и ныне там. Перепробовал всё что приходило в голову : увеличивал задержки, загрузчику подсовывал частоту в виде константы и многое другое. Если запуститься в режиме отладки и поставить точку останова после загрузки синтезатора то на выходе получаю нужную частоту,всё работает. Бред какой-то... Проблема осложняется тем что так произошло что эта работа выполняется дистанционно(блок в другом городе). Анализатор спектра и осциллограф тоже не вариант. Но т.к. управление по сети выполняется предполагаю что с самим синтезатором всё нормально. Буду рад услышать любые предположения.

ИМХО где-то времянки не соблюдаются. Когда из-под отладчика стартует - всё чуть медленнее исполняется, а когда из пзушки - быстрее. Проверить бы зависимые от интервалов времени вещи (тот же SPI, например...).
В качестве диагностики я бы взял USB-шный логгер и снял диаграммы прогрузки синтезатора в обоих случаях - из под отладчика и без него.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Nov 18 2016, 07:32
Сообщение #3


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Bad0512 @ Nov 18 2016, 10:29) *
ИМХО где-то времянки не соблюдаются. Когда из-под отладчика стартует - всё чуть медленнее исполняется, а когда из пзушки - быстрее. Проверить бы зависимые от интервалов времени вещи (тот же SPI, например...).

Спассибо! SPI аппаратный в FPGA, от ниос не зависит. Команды выполняются без отладчика...
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Nov 18 2016, 07:35
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(_Anatoliy @ Nov 18 2016, 14:32) *
Спассибо! SPI аппаратный в FPGA, от ниос не зависит. Команды выполняются без отладчика...

Бывает ещё зависимые от конкретного чипа фишки типа "прогрузить вот этот регистр, потом подождать не менее 10мС и проверить такой-то бит".
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Nov 18 2016, 07:39
Сообщение #5


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Bad0512 @ Nov 18 2016, 10:35) *
Бывает ещё зависимые от конкретного чипа фишки типа "прогрузить вот этот регистр, потом подождать не менее 10мС и проверить такой-то бит".

Да,есть такие нюансы но тактовая ниос вроде не меняется. После подачи питания я делаю задержку 500мс , потом инициализацию. Или я не том?
Go to the top of the page
 
+Quote Post
Inanity
сообщение Nov 18 2016, 08:17
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653



А значение в памяти точно меняется?

Сообщение отредактировал Inanity - Nov 18 2016, 08:36
Go to the top of the page
 
+Quote Post
BackEnd
сообщение Nov 18 2016, 08:22
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 201
Регистрация: 28-07-16
Пользователь №: 92 747



Цитата(_Anatoliy @ Nov 18 2016, 07:16) *
Но проблема с загрузкой синтезатора. Программа в ниос написана так : в файле инициализации читается код нужной частоты из EPCS и на эту частоту программируется синтезатор. Далее по Ethernet ниос может получить команду на изменение частоты синтезатора и перепрограммирует синтезатор с записью новой частоты в EPCS. Так вот не удаётся получить запрограммированный синтезатор после включения питания, т.е. выполнить загрузку синтезатора из процедуры инициализации.

А почему бы вместо Nios с его богатым внутренним миром не обойтись ясным и простым самописным конечным автоматом?



--------------------
"Классики марксизма говорили, что общественно-экономическая формация меняется с изменением средств производства, которые всегда принадлежали имущему классу.
И сейчас мы находимся в системе координат капитализма, когда самые передовые средства производства принадлежат уже не капиталистам.
Люди, у которых нет обуви, имеют гаджеты. Сейчас создана такая информационная паутина, что вместо коллективного бессознательного можно говорить о коллективном сознании.
Если иметь мозги и гаджеты, можно перевернуть весь мир. Коллективное сознание будет управлять миром! Это исторический путь, который нельзя миновать."
Вячеслав Мальцев
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Nov 18 2016, 08:34
Сообщение #8


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(BackEnd @ Nov 18 2016, 11:22) *
А почему бы вместо Nios с его богатым внутренним миром не обойтись ясным и простым самописным конечным автоматом?

Стек сетевых протоколов на автомате? Я не мазохист.
Go to the top of the page
 
+Quote Post
BackEnd
сообщение Nov 18 2016, 08:57
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 201
Регистрация: 28-07-16
Пользователь №: 92 747



Цитата(_Anatoliy @ Nov 18 2016, 08:34) *
Стек сетевых протоколов на автомате? Я не мазохист.

1. Речь про замену Nios Core на автомат, а не про написание стека сетевых протоколов.
2. Оный стек не является чем-то исключительным и связанным именно с Nios.


--------------------
"Классики марксизма говорили, что общественно-экономическая формация меняется с изменением средств производства, которые всегда принадлежали имущему классу.
И сейчас мы находимся в системе координат капитализма, когда самые передовые средства производства принадлежат уже не капиталистам.
Люди, у которых нет обуви, имеют гаджеты. Сейчас создана такая информационная паутина, что вместо коллективного бессознательного можно говорить о коллективном сознании.
Если иметь мозги и гаджеты, можно перевернуть весь мир. Коллективное сознание будет управлять миром! Это исторический путь, который нельзя миновать."
Вячеслав Мальцев
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Nov 18 2016, 09:00
Сообщение #10


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(BackEnd @ Nov 18 2016, 11:57) *
1. Речь про замену Nios Core на автомат, а не про написание стека сетевых протоколов.
2. Оный стек не является чем-то исключительным и связанным именно с Nios.

Я ж не спорю. Но причину я назвал.
Go to the top of the page
 
+Quote Post
BackEnd
сообщение Nov 18 2016, 09:11
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 201
Регистрация: 28-07-16
Пользователь №: 92 747



Цитата(_Anatoliy @ Nov 18 2016, 09:00) *
Я ж не спорю. Но причину я назвал.

По-моему, здесь два взаимоисключающих утверждения, но вам виднее.


--------------------
"Классики марксизма говорили, что общественно-экономическая формация меняется с изменением средств производства, которые всегда принадлежали имущему классу.
И сейчас мы находимся в системе координат капитализма, когда самые передовые средства производства принадлежат уже не капиталистам.
Люди, у которых нет обуви, имеют гаджеты. Сейчас создана такая информационная паутина, что вместо коллективного бессознательного можно говорить о коллективном сознании.
Если иметь мозги и гаджеты, можно перевернуть весь мир. Коллективное сознание будет управлять миром! Это исторический путь, который нельзя миновать."
Вячеслав Мальцев
Go to the top of the page
 
+Quote Post
XVR
сообщение Nov 18 2016, 09:25
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Инициализация самого ADF5355 правильно сделана? Ему надо все регистры прописать сначала.
Возможно и каких то LOCK'ов дождаться (надо DS читать вдумчиво)

Поставьте софт (http://www.analog.com/media/en/evaluation-boards-kits/evaluation-software/ADF4355_v1_0_10.zip) - из него можно извлечь правильную последовательность инициализации и установки частоты
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Nov 18 2016, 10:09
Сообщение #13


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Дополнительная информация : поставил в фоне вот такой кусок:
Код
        FreqExternalRfMod = FREQ_DEFAULT_TR;
        if (temp < 2000000){
            temp++;
        }
        else {
            temp = 0;
            LoadADF5355(FreqExternalRfMod,OUT_CS_RF2);
        }

При работе из ПЗУ примерно раз в две секунды перезагружаю синтезатор - никакого эффекта. А при работе из отладчика при этой самой вставке сигнал на выходе есть. По моему это полная шизофрения - ну не может такого быть!

Цитата(XVR @ Nov 18 2016, 12:25) *
Инициализация самого ADF5355 правильно сделана? Ему надо все регистры прописать сначала.
Возможно и каких то LOCK'ов дождаться (надо DS читать вдумчиво)

Поставьте софт (http://www.analog.com/media/en/evaluation-boards-kits/evaluation-software/ADF4355_v1_0_10.zip) - из него можно извлечь правильную последовательность инициализации и установки частоты

О,только сейчас увидел Ваше сообщение,спасибо!
Сейчас глянем.

Ну так я и делаю - от старших к младшим регистрам. Только у них там не всё, для калибровки отдельная процедура нужна, в ds есть.
Go to the top of the page
 
+Quote Post
Inanity
сообщение Nov 18 2016, 10:14
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653



Цитата(BackEnd @ Nov 18 2016, 11:22) *
А почему бы вместо Nios с его богатым внутренним миром не обойтись ясным и простым самописным конечным автоматом?


Вы предлагаете реализовать костыль, чтобы решить проблему, суть которой не ясна. С логикой на конечном автомате можно наступить на те же грабли.

Топикстартеру, т.е. вы хотите сказать, что если тупо прошьёте EPCS jtag-ом c новыми данными для синтезатора, то ничего не отработает?

Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Nov 18 2016, 10:18
Сообщение #15


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Inanity @ Nov 18 2016, 13:14) *
Вы предлагаете реализовать костыль, чтобы решить проблему, суть которой не ясна. С логикой на конечном автомате можно наступить на те же грабли.

Топикстартеру, т.е. вы хотите сказать, что если тупо прошьёте EPCS jtag-ом c новыми данными для синтезатора, то ничего не отработает?

Да,всё так и есть. Даже если частоту указываю явно (FreqExternalRfMod = FREQ_DEFAULT_TR;)Причём управление по Ethernet позволяет менять частоту синтезатора.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 13:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01456 секунд с 7
ELECTRONIX ©2004-2016