Jump to content

    
Sign in to follow this  
MPetrovich

ATMega1280 + DDR2

Recommended Posts

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

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

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

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

Share this post


Link to post
Share on other sites
23 hours ago, MPetrovich said:

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

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

23 hours ago, MPetrovich said:

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

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

Share this post


Link to post
Share on other sites

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

4 hours ago, zombi said:

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

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

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

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

Share this post


Link to post
Share on other sites
В 03.12.2019 в 10:45, MPetrovich сказал:

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

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

Share this post


Link to post
Share on other sites

Добрый день!

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

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

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

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

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

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

Share this post


Link to post
Share on other sites
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. 

Share this post


Link to post
Share on other sites
1 hour ago, pinchemierda said:

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites
30 minutes ago, pinchemierda said:

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

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

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

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

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

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

 

Share this post


Link to post
Share on other sites
1 hour ago, pinchemierda said:

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

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

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

Share this post


Link to post
Share on other sites
42 минуты назад, zombi сказал:

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

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

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

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

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

Share this post


Link to post
Share on other sites
2 hours ago, pinchemierda said:

Заработало

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this