Полная версия этой страницы:
Cyclone II & AD9235
artem79
Aug 8 2012, 07:51
Доброго времени суток.
Собираю систему, точнее наращиваю функционал, ПЛИС, АЦП, UART(USB). С частью процессора и юсб проблем нет. Все великолепно работает.
Проблема вылезла следующая.
При повышении частоты работы с АЦП , конкретно на 8 МГц, наблюдается "нарастание уровня". На низких частотах, 2 МГц, такого нет.
Такое ощущение что данные на протах плис не меняются корректно. Прирост маленький но линейный. Проверка работы логики не выявила проблемы. С константами все четко.
Мысли заканчиваются( В чем может быть баг?
Спасибо.
2 artem79
А с констрейнами у вас как?
Из беглого просмотра DS можно прикинуть, что если защёлкивать данные по falling_edge, то про констреный можно забыть на ваших частотах. А если всё таки хочется по rising_edge - там смотреть нужно..
eugen_pcad_ru
Aug 8 2012, 08:57
Как вариант: а может быть Вы не с той частотой считываете, на которой АЦП выдает отсчеты?
artem79
Aug 8 2012, 09:58
Цитата(Kuzmi4 @ Aug 8 2012, 12:39)

2 artem79
А с констрейнами у вас как?
Из беглого просмотра DS можно прикинуть, что если защёлкивать данные по falling_edge, то про констреный можно забыть на ваших частотах. А если всё таки хочется по rising_edge - там смотреть нужно..
Перебрал все возвожные варианты тактирования и считывания. Сдвиг. Разные фронты. Результат оди. Может это быть с компиляцией? Использую Quartus 12.0
P.S.
Не первый раз строю системы такого типа. Были гораздо сложнее. И частоты выше в разы. Но с данной ... столкнулся впервые
2 artem79
ну если вы уверены что с констрейнами/частотами/лапами у вас всё в порядке, тогда думаю нужно смотреть на лог Quartus 12.0.
Я бы так же так же тыканулся осцилом, сначала аналоговым - проверить, что частота и нижний бит в нормально приходят на лапы, а потом с цифровым анализатором на лапы - частоты у вас не сильно большие, он нарежет нормально.
Цитата(artem79 @ Aug 8 2012, 11:51)

При повышении частоты работы с АЦП , конкретно на 8 МГц, наблюдается "нарастание уровня". На низких частотах, 2 МГц, такого нет.
С опорными напряжениями на АЦП всё в порядке? Такое может быть, например, при слишком большой последовательной индуктивности блокировочных конденсаторов, или просто какая-то ошибка в схеме.
А ещё такое может быть при слишком большом импедансе драйвера аналоговых входов.
artem79
Aug 8 2012, 11:27
Цитата(Timmy @ Aug 8 2012, 14:44)

С опорными напряжениями на АЦП всё в порядке? Такое может быть, например, при слишком большой последовательной индуктивности блокировочных конденсаторов, или просто какая-то ошибка в схеме.
А ещё такое может быть при слишком большом импедансе драйвера аналоговых входов.
Тогда это проявлялось бы на любой частоте
DSIoffe
Aug 8 2012, 11:55
А не может быть обратной связи по данным? Есть возможность повтыкать небольшие резисторы между выводами ПЛИС и АЦП и посмотреть, что получится? Или ещё как-то изменить ёмкости и/или расположение проводников?
Ещё можно попробовать подключить SignalTap прямо к выводам ПЛИС, которые читают АЦП, и сравнить данные на них с тем, что видно в компьютере. Это чтобы исключить подозрение на нехорошие констрейны.
Цитата(artem79 @ Aug 8 2012, 15:27)

Тогда это проявлялось бы на любой частоте
К примеру, переключающие транзисторы на входах дают charge injection 10 фемтофарад. На частоте 1МГц ток смещения будет 10нА, на 10МГц - 100нА, что при входном сопротивлении 1МОм даст очень заметное смещение 100мВ, линейно зависящее от частоты.
UPD:конечно, заряд надо в кулонах, а не фарадах, мерять

.
artem79
Aug 15 2012, 14:39
Перебрал разные варианты. Результат тот же. Единственное что удалось выяснить. Это происходит если я пытаюсь забирать выборочные данные от АЦП, только в определенные моменты. Если читаю все без пропусков, то нормально. Проблема в ацп? - врятли. Входные линии - то же мало вероятно. Где то постепенно накапливается. Где - не понял.
Цитата(artem79 @ Aug 15 2012, 18:39)

Перебрал разные варианты. Результат тот же. Единственное что удалось выяснить. Это происходит если я пытаюсь забирать выборочные данные от АЦП, только в определенные моменты. Если читаю все без пропусков, то нормально. Проблема в ацп? - врятли. Входные линии - то же мало вероятно. Где то постепенно накапливается. Где - не понял.
Как можно забирать от АЦП выборочные данные, если он сам выдаёт их каждый такт при постоянной тактовой частоте? Если же вы тактируете АЦП апериодическим клоком от FPGA, то он в принципе может брыкаться как угодно.
artem79
Aug 16 2012, 13:28
Цитата(Timmy @ Aug 16 2012, 12:59)

Как можно забирать от АЦП выборочные данные, если он сам выдаёт их каждый такт при постоянной тактовой частоте? Если же вы тактируете АЦП апериодическим клоком от FPGA, то он в принципе может брыкаться как угодно.
Нет тактуется постоянным сигналом. Но забираю только в определнные такты. Точнее 8 через 8. Частота постоянная 8 МГц. скважность 2
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.