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

ATMega1280 + DDR2

Всем доброго времени суток.

Есть необходимость проверки чипов DDR2: MT47H64M16HR. Ранее имел опыт проверки SDRAM - MT48LC16M16_32M8_64M4A2 и т.п. Для проверки использую контроллер ATMega1280. С памятью SDRAM особых проблем не возникло, проверяется даже на очень малых тактовых частотах контроллера, а вот с DDR2 что-то не заладилось. Не пишется и не читается. Хотя достоверно сказать, что не пишется не могу, поскольку не могу ничего прочитать))) В свое время с SDRAM была заморочка с CAS Latency и тоже не мог читать, но быстро разобрался. 

Если я правильно понимаю, то отличие между вышеперечисленными типами памяти только в том, что запись/чтение в случае SDRAM происходит по фронту тактирования, а в случае DDR2 и по фронту и по спаду. Структура ячеек и организация памяти, как я понял, идентичны.

Если кто имел опыт скрещивания ATMega с DDR2, прошу поделиться мыслями о вышеописанной проблеме.

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


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

23 hours ago, MPetrovich said:

запись/чтение в случае SDRAM происходит по фронту тактирования, а в случае DDR2 и по фронту и по спаду

У sdram нет ограничения минимальной частоты тактирования, у ddr2 - есть.

23 hours ago, MPetrovich said:

чтение ... в случае DDR2 и по фронту и по спаду

и сдвинутым на 90 гр. сигналом.

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


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

О! Я уж и не надеялся, что ответят... 

4 hours ago, zombi said:

У sdram нет ограничения минимальной частоты тактирования, у ddr2 - есть.

Покурил ещё даташит на этот предмет и, таки, да... По таблице: "Table 11: AC Operating Specifications and Conditions" выходит, что tCK(avg)min=8,0nSec. Что дает Fck>=125MHz. 

Да, выходит не одолеть мне при помощи ATMega1280 эти чипы DDR2 никоим образом... 

А отчего же такие ограничения то по времени доступа? Из-за того может, что в строке памяти четыре ячейки последовательно считываются и пока последняя прочитается, первая уже разрядиться может?  Или эти ограничения с PLL внутреннего контроллера связаны?

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


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

В 03.12.2019 в 10:45, MPetrovich сказал:

Есть необходимость проверки чипов DDR2: MT47H64M16HR. Ранее имел опыт проверки SDRAM

А как вы их вообще проверять решили? Они ж все в БГА корпусах поголовно? Но если конструктивных проблем нет, то возьмите просто контроллер с встроенным портом памяти...

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


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

Добрый день!

MPetrovich , поделитесь пожалуйста опытом работы с SDRAM на контроллерах без FMS!

Пытаюсь запустить M12L16161 "ногодрыгом" на stm32f103.

Это вообще возможно осуществить, дрыгая ногами (CLK, CKE, CS, RAS, CAS, BA, A0-A10, WE, LDQM, UDQM) в ручном режиме,

в соответствии с временными диаграммами, приведёнными в даташите? 

Есть ли ограничения минимальной частоты сигнала CLK и особые требования к его стабильности?

Может ли негативно влиять тот факт, что интервалы между положительными фронтами CLK постоянно меняются ("ногодрыг", а не по таймеру)?

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


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

45 minutes ago, pinchemierda said:

. . . Пытаюсь запустить M12L16161 "ногодрыгом" на stm32f103.

Это вообще возможно осуществить, дрыгая ногами (CLK, CKE, CS, RAS, CAS, BA, A0-A10, WE, LDQM, UDQM) в ручном режиме,

в соответствии с временными диаграммами, приведёнными в даташите? 

В даташите указано 32ms refresh period (2K cycle) и условие tRAS(max) 100 мкс. Для STM32F103 (72 MHz) могобыть.

Поскольку в чипе вроде как нет встроенного контроллера регенерации, тоже надо будет "прописывать". Впихнется ли - просчитывать ТС'1. 

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


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

1 hour ago, pinchemierda said:

запустить M12L16161 "ногодрыгом"

В DS на эту память есть еще странный параметр CLK cycle time max=1000 нс!

У микроновской памяти этот параметр не регламентирован.

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


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

Если CLK cycle time max=1000 нс, то плохо очень(((

Ногодрыг то у stm медленный очень (хоть и 72MHz тактовая).

По 40 тактов уходит на то чтобы один бит поменять в регистре GPIO->ODR, а их там надо поменять несколько, да ещё и на разных портах.

Всё это успеть за 1 мкс не получится. Или не правильно рассуждаю?

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


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

30 minutes ago, pinchemierda said:

Ногодрыг то у stm медленный очень (хоть и 72MHz тактовая).

По 40 тактов уходит на то чтобы один бит поменять

Во дела! :shok: 40 тактов!

Попробуйте другую (более свежую) SDRAM. Без ограничения max CLK cycle time.

Эта M12L16161 какая-то уж слишком старая...

Или МК возьмите ATXmega - хоть sysclk и всего 32MHz, зато пином можно дёргать с частотой 16MHz (если больше ничего не делать) :biggrin:

 

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


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

1 hour ago, pinchemierda said:

. . . Всё это успеть за 1 мкс не получится. Или не правильно рассуждаю?

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

Если это прототип внешнего контролера SDRAM - совсем не феншуй, тк для этого есть CPLD-FPGA или даже готовые решения. Явно не ногодрыг-стайл.

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


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

42 минуты назад, zombi сказал:

Во дела! :shok: 40 тактов!

Прошу прощения, ошибся я!!! 

Не 40, а 13-20 тактов (в зависимости от уровня оптимизации).

Раньше измерял время выполнения куска кода в дебагере с помощью SysTick, оказывается врёт он.

Нужно с помощью DWT->CYCCNT (спасибо за подсказку Reflector с Радиокота).

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


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

2 hours ago, pinchemierda said:

Заработало

Интересно, какой скорости чт/зп удалось достичь?

Вы еще и на Си всё это пытаетесь разрулить? :crazy:

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


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

Тактовая микроконтроллера 72МГц

Запись одной страницы (256 ячеек, в режиме FULL PAGE) - 14723 тактов или 204 мкс

Чтение одной страницы (256 ячеек, в режиме FULL PAGE) - 8264 тактов или 115 мкс

Запись всей памяти (2 банка * 2048 строк * 256 ячеек, в режиме FULL PAGE) - 60354577 тактов или 838 мс

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

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


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

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...