|
Проблемы с DDR |
|
|
|
Dec 9 2012, 07:00
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Собрал проект NIOS II + DDRII. На опытных экземплярах ни каких нариканий на работу DDR не было. Запустили серию. В 10 из 20 плат не работает DDR. Непропаи отмели, смотрели ренгеном. Стоит два чипа mocron MT47H32M16HR-3 I, у каждого шина данных 16 бит. две микросхемы образуют 32-х битную шину данных. Собрал проект хеловорд в котором заюзал только одну микросхему ддр - работает. Собрал другой хеловорд в котором заюзал др мк/с - работает. .......... собрал рабочий проект, в котором использовал только одну микросхему - неработает. Думаю, что проблемы с настройками тайменгов в QSys-t в настройках параметров контроллера DDR. там сотня всяких тайменгов. с даташита акуратно указал все времена - неработает. На половине плат всё работает, на половине плат нет. Причем на некоторых нерабочих платах иногда запускается ддр. Т.е. включаю плату - и вижу, все работает, ддр живет, программа работает. выключаю, включаю - и всё(((( неработает, конфигурация в плис грузится, но программа, которая распологается в ддр не работает. Получается что иногда контроллер ддр запускается и исправно работает, а иногда какая нибудь синхронизация у него сдвигается и в фазу не попадает чтоли, и не работает.
Скорее всего нужно какое-нибудь нужное время проставить в контроллере ДДР. но какое? как можно проанализировать контроллер ддр и что у него не работает?
ps Можно конечно социлом встать на ножки ддр и тачего глянуть. Но что смотреть?
|
|
|
|
|
Dec 10 2012, 05:11
|
Знающий
   
Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543

|
Цитата Стоит два чипа mocron MT47H32M16HR-3 I, у каждого шина данных 16 бит. две микросхемы образуют 32-х битную шину данных. Это как с точки зрения схемы - шины данных раздельные, всё остальное общее? Или как-то по-другому.
|
|
|
|
|
Dec 10 2012, 07:53
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 14-05-09
Пользователь №: 49 060

|
Когда при включении то работает, то не работает, то стоит обратить внимание на сигнал reset, который подаётся на контроллер. Может быть, нужно держать контроллер в сбросе подольше при вкл. питания, пока питание на м/с памяти не придёт в норму.
|
|
|
|
|
Dec 10 2012, 08:46
|

Частый гость
 
Группа: Свой
Сообщений: 183
Регистрация: 16-03-08
Из: Новосибирск
Пользователь №: 35 954

|
Цитата(vars @ Dec 10 2012, 14:53)  Когда при включении то работает, то не работает, то стоит обратить внимание на сигнал reset, который подаётся на контроллер. Может быть, нужно держать контроллер в сбросе подольше при вкл. питания, пока питание на м/с памяти не придёт в норму. Или просто перезалить проект при уже включенном питании. Если помогло значит слишком рано начинает контроллер с памятью общаться. Я бы урезал рабочий проект до контроллера ддр + проц и пытался стартовать его. Возможно тайминги немного плывут, тут как вариант ужесточить требования по времени.
|
|
|
|
|
Dec 10 2012, 09:14
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(Wic @ Dec 10 2012, 14:46)  Или просто перезалить проект при уже включенном питании. Если помогло значит слишком рано начинает контроллер с памятью общаться. Я бы урезал рабочий проект до контроллера ддр + проц и пытался стартовать его. Возможно тайминги немного плывут, тут как вариант ужесточить требования по времени. Ресет после включения держу достаточно долго. потому как перестраиваюися внешний клокдестебъютер. После перестройки нужно ждать пока устаканится частота. Ресет держу порядра 2-х сек. Частота устаканивается после включения ...... ну на глаз по осцылу - мгновенно. запас ресета по временни огромный. Цитата проект до контроллера ддр урезал с одной ддр. Работает. С одной ддр полный проект не работает. вот ещё мысль: ресет общий. и для контроллера ддр и для ядра ниоса. т.е. после включения через 2 сек ресет снимается. Может нужно сначало снять ресет с ддр, потом с ядра?
|
|
|
|
|
Dec 12 2012, 14:42
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(Wic @ Dec 12 2012, 12:18)  Чисто ради интереса, не пробовали смотреть разницу в поведение сигнала на этом входе когда платы запускаются и когда не запускаются? Смотрел. Одинаковое повидение. На циклоне3 нету терменирующих резисторов. Я так понял что при передачи данных контроллер ДДР сигналом ОДТ включает терминирующие резисторы в мкс.памяти. При получении данных одт снимается и резисторы внутри памяти отключаются. Тут какбы источник сигнала память, поэтому терминатор должен стоять в плис. Но в плис нету терминирующих резисторов. Подключив ОДТ к Vcc я включил терминирующие резисторы в памяти постоянно. Когда шину QD захватывает плис - то всё нормально, в конце линии терминаторы. А когда шину QD захватывает память, то терминаторы должны стоять в плис (конец линии теперь плис), но они у меня остаются в памяти. Т.е. шина QD всегда затерминирована со стороны памяти. Это конечно не гуд, но для коротких линий прокатывает. А почему то работало то неработало, да ещё на половине плат всегда работало? ну наверно в этих платах фортануло. И без терминаторов шина QD как то умудрялась работать, но наверно работала на грани фола.
|
|
|
|
|
Dec 13 2012, 05:41
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(gosu-art @ Dec 13 2012, 01:21)  А разве резисторы PUP, PDN - 50 Ом не для терминации подключаются на специальные ноги ПЛИС? Какие резисторы? я внешними резисторами терминировал шину адреса и шину управления. а на шине данных должна быть динамическая терминация. то со стороны плис, то со стороны памяти. в плисе в цыклоне нету таких резиторов (в стратиксе вроде есть). может в цыклоне внешние куда подключать? но куда? и это как, 32 внешних резистора на 32 дополнительных пина? Цитата Думаю, что надо почитать про то, какие настройки контроллера рекомендуются для Вашей памяти. Я тоже так думал. перекурил кучу док по ддр и по плис, по контроллеру..... В Qsys пожно установить конкретный чип памяти и все настройки высталяются автоматом для этого чипа. Конкретно мой чип в списке в Qsys есть. Я его выбирал. Потом сверял полученные настройки с даташитом на память: ноздря в наздрю - Неработает. Это что касается настроек времянок. Но там в контроллере есть настройки тиипа Разрешить автоРефреш и т.п. Там галок не много - перепробовал все варианты - Неработает. Если есть опыт и вы знаете как запустить динамическую терминацию на цыклоне - поделитесь.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|