_alex__ 0 9 сентября, 2017 Опубликовано 9 сентября, 2017 · Жалоба cortex m8 ddr3 1) должна ли частота clock микросхемы ddr3 быть кратна частоте микроконтроллера? если в приведенной схеме частота ddr3 400МГц, то частота микроконтроллера 800МГц? 2) операции чтения и записи из ddr памяти могут чередоваться как угодно или должна быть какая-то система?(например определенное колличество последовательных операций записи, а потом чтения) 3) не понимаю принцип двойной скорости передачи(два раза за период clock) т.е. по переднему фронту выдается 16бит данных по адресу условно addr, а по заднему фронту addr+1 ? не правильно? 4) регенерация заряда в ячейках памяти происходит целиком внутри микросхемы т.е. не нужно подавать каких-то внешних сигналов для этого? и процесс регенерации как-то нужно учитывать при подаче команд микросхеме? 5) обьясните простым языком зачем нужны выводы DQS1,DQSN1,DQS0,DQSN0,DQM1,DQM0 , что по ним передается, для чего они и как они должны быть синхронизированы с сигналами на других выводах. 6) предположим абсолютно все проводники между микроконтроллером и ddr не создают содержки, правильно ли это? т.е. при трассировке платы не нужно что б какие-то сигналы запаздывали? нужно что б задержка по всем проводникам была абсолютно одинакова? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 51 10 сентября, 2017 Опубликовано 10 сентября, 2017 (изменено) · Жалоба Для начала почитайте: http://kit-e.ru/articles/circuit/2010_9_135.php http://compress.ru/article.aspx?id=18761 https://electronix.ru/forum/index.php?act=a...st&id=93850 Плюс доки по вашему камню, который Кортекс А8 И почему бы не воспользоваться доками на референсный дизайн? Они всегда есть у таких камней. ЗЫ. Тема уже далеко не для начинающих.. должна ли частота clock микросхемы ddr3 быть кратна частоте микроконтроллера? если в приведенной схеме частота ddr3 400МГц, то частота микроконтроллера 800МГц? Возможно но нежелательно. операции чтения и записи из ddr памяти могут чередоваться как угодно или должна быть какая-то система?(например определенное колличество последовательных операций записи, а потом чтения) Как хотите, так и будет, но лучше последовательно, тогда контроллер активизирует Burst mode и скорость в разы выше. регенерация заряда в ячейках памяти происходит целиком внутри микросхемы т.е. не нужно подавать каких-то внешних сигналов для этого? и процесс регенерации как-то нужно учитывать при подаче команд микросхеме? Можете сами регенерировать, но лучше Self refresh. Изменено 10 сентября, 2017 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 62 10 сентября, 2017 Опубликовано 10 сентября, 2017 · Жалоба Можете сами регенерировать, но лучше Self refresh. Здравствуйте. Также имеются ряд вопросов. 1. Как узнать, что микросхема находится в состоянии Self refresh? 2. Пока идет refresh ячейки для записи получаются не доступными. А если у меня имеются данные для записи, что мне с ними делать ? А если на момент завершения refresh мои данные окажутся просроченными ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 51 10 сентября, 2017 Опубликовано 10 сентября, 2017 · Жалоба 1. Как узнать, что микросхема находится в состоянии Self refresh? Такие тонкости уже подзабыл, но в большинстве встроенных контроллеров, это делается автоматически в т.ч. в режимах пониж. потребления, т.е. программисту достаточно просто правильно настроить контроллер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gerber 8 10 сентября, 2017 Опубликовано 10 сентября, 2017 · Жалоба Также имеются ряд вопросов. 1. Как узнать, что микросхема находится в состоянии Self refresh? Зачем вам это знать? Это внутренние дела микросхемы дин. памяти. 2. Пока идет refresh ячейки для записи получаются не доступными. А если у меня имеются данные для записи, что мне с ними делать ? А если на момент завершения refresh мои данные окажутся просроченными ? Нет, refresh - это периодическое чтение (да, именно чтение, а не запись, что кажется нелогичным) каждой страницы, а по сути просто периодическая активация одного транзистора (gate) на каждой странице, подпитывающего емкостные ячейки памяти. Этот процесс никак не мешает процессам чтения и записи в память. А надеяться, что дин. память будет равномерно и четко писать данные не стоит, т. к. при переходе в другую страницу перед операциями чтения-записи выполняется её активация (precharge), что занимает какое-то время. Поэтому при работе с ней нужно обеспечить буферизацию (кэширование), чтобы не потерять данные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 51 10 сентября, 2017 Опубликовано 10 сентября, 2017 · Жалоба А надеяться, что дин. память будет равномерно и четко писать данные не стоит, Если память задействуется под видеобуфер, то это уже и есть регенерация. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 11 сентября, 2017 Опубликовано 11 сентября, 2017 · Жалоба Такие тонкости уже подзабыл, но в большинстве встроенных контроллеров, это делается автоматически в т.ч. в режимах пониж. потребления, т.е. программисту достаточно просто правильно настроить контроллер. С DDR я не работал, но для МК с SDRAM автоматически это не делается ни в одном контроллере SDRAM, с которыми я работал. В них во всех это надо сделать вручную (программно), подав спец. последовательность команд через контроллер SDRAM (или ногодрыгом). "Self refresh" полезен тем, что содержимое SDRAM сохраняется неопределённо долго при отсутствии активности со стороны контроллера SDRAM (например во сне МК). Если память задействуется под видеобуфер, то это уже и есть регенерация. Если только видеобуфер занимает весь объём памяти. В противном случае (что чаще всего), контроллер SDRAM (и думаю что и DDR) периодически выполняет циклы регенерации, вкрапляя их в штатный обмен по таймеру регенерации. Зачем вам это знать? Это внутренние дела микросхемы дин. памяти. Это не "внутренние дела". "Self refresh" можно активировать только принудительно, подачей спец. последовательности команд. И находясь в этом режиме, память не может осуществлять операции чтения/записи по интерфейсу. Она при этом вообще не реагирует ни на какие сигналы кроме сигнала CKE. Этот процесс никак не мешает процессам чтения и записи в память. Вообще-то немного мешает. Контроллер SDRAM должен периодически регенерировать те строки, которые не были регенерированы штатными операциями чтения/записи за период регенерации (либо вообще все строки). И это занимает некоторое время, приостанавливая выполнение штатных операций чтения/записи по интерфейсу. Если все строки данной памяти задействованы например под видеобуфер и периодически, не реже чем 1 раз за период регенерации, считываются, то автоматическую регенерацию контроллером SDRAM тогда можно отключить. И затрат времени не будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 62 11 сентября, 2017 Опубликовано 11 сентября, 2017 · Жалоба С DDR я не работал, но для МК с SDRAM автоматически это не делается ни в одном контроллере SDRAM, с которыми я работал. ............................... Спасибо большое ! Очень хорошо объяснили ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться