реклама на сайте
подробности

 
 
7 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Помогите определиться с памятью - SRAM или DRAM
zheka
сообщение Aug 21 2009, 18:38
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 962
Регистрация: 14-01-06
Пользователь №: 13 164



Господа, приходилось играться с памятью SRAM - там все просто - адресные входы, входи данных, простенькое управление. Да вот понадобилось мне 2-4 мегабайта оперативной памяти, а цена кусается сильно. В то время как DRAM yf 128 МБ можно купить за 120 рублей.

В чем принципиальная разница между этими двумя видами памяти я знаю, а вот у управлении? Я слышал что в ARM есть интерфейс к DRAM, возникает ощущение что общение с ней сложное. ВОзможно ли его реализовать на AVR? Если я использую параллельную DRAM c выводом данных по 8 бит - сколько машинных тактов мне понадобится на кадлый такой байт?

Почитал описание http://www.terraelectronica.ru/pdf/HSI/HY5...1620FTP-H-C.pdf одной DRAM -вроде ничего сложного только добавились CAS RAS сигналы что кстати упрощает задачу - меньше ножек контроллера требуется, но требуется больше тактов для выборки данных чем в SRAM.

Задача моя - загонять данные параллельным потоком в драйвер светодиодов - сдвиговые регистры. имеется 8 рядов драйверов вот и хочу использовтья память c организацией x8. ДОпустиме время заполнения драйверов не более 139 мкс. с SRAM по расчету получается 12 мкс. Намного ли меньше будет скорость?

В общем просветите меня, на практике - в каких ситуциях лучше SRAM, в каких DRAM? В чем их преимущества и недостатки?

Спасибо.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Aug 22 2009, 00:38
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Цитата
ВОзможно ли его реализовать на AVR?

Нет. Забудьте.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
zheka
сообщение Aug 22 2009, 04:59
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 962
Регистрация: 14-01-06
Пользователь №: 13 164



ну может как-то на ПЛИС можно реализовать интерфес? Мне в контроллер данные читать не надо, данные будут идти из пемяти на драйвера, а контроллер только нооггами дергать. Скорость записи в память не важна.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 22 2009, 06:34
Сообщение #4


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 194
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Зачем Вам ПЛИС? Например, SDRAM вполне ногодрыгом окучивается - http://tinyvga.com/avr-sdram-vga

Да и работать с SDRAM проще, чем с DRAM, а скорости выдачи потока получаются байт на такт.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
zheka
сообщение Aug 22 2009, 08:00
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 962
Регистрация: 14-01-06
Пользователь №: 13 164



эээ я думал DRAM и SDRAM радикально не отличаются...
А SDRAM нужно постоянно регенерировать? ТО есть пока к памяти нет обращения и контроллер чем-то еще может заниматься?

Вот это мне подойдет? http://www.alldatasheet.com/datasheet-pdf/...K4S161622D.html

хм... так это вместо того, чтобы покупать микросхемы у поставщика, можно за бесценок куить дешевые компьютерные sdram и повыдергивать оттуда микросхемы?

Сообщение отредактировал zheka - Aug 22 2009, 07:45
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 22 2009, 09:00
Сообщение #6


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 194
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
А SDRAM нужно постоянно регенерировать?


Нужно. Как и DRAM.
Цитата
хм... так это вместо того, чтобы покупать микросхемы у поставщика, можно за бесценок куить дешевые компьютерные sdram и повыдергивать оттуда микросхемы?


Только что себе на гадюшнике донора для макета купил - планку SDRAM на 64 метра за два бакса. 8 микросхем. Главное только смотреть, чтобы на доноре были чипы с нужной шириной шины данных - бывают 4, 8 и 16 бит.

Хотя, честно говоря, отправился на гадюшник только из за того, что у любимого поставщика на складе закончились, две недели ждать - не стоит.

Поправка. У SDRAM есть режим саморегенерации без вмешательства собственно контроллера. Но только в этом режиме к ней доступа нет. Т.е. режим можно включить, а когда нужен будет доступ - выключить.
Ну и не забывайте, что доступ тоже регенерирует выбранный ряд. Подробности - в даташитах.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
zheka
сообщение Aug 22 2009, 09:19
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1 962
Регистрация: 14-01-06
Пользователь №: 13 164



А вы лично на АВР СДРАМ гоняли?
По поводу саморегенерации - значит у меня есть период 139 мкс когда микросхема должна простаивать. Дальше из нее читается 120 байт данных и опять простой. Частота камня 16 МГЦ. ПОлучится?


Как я понял, чтение и запись сложны. ТО есть снала нужно открыть указанный адрес, а потом считать или записать. Как при этом за один такт читается один байт мне непонятно.
Go to the top of the page
 
+Quote Post
zheka
сообщение Aug 22 2009, 12:06
Сообщение #8


Профессионал
*****

Группа: Участник
Сообщений: 1 962
Регистрация: 14-01-06
Пользователь №: 13 164



Хм... почитал, понял пока не все, но не вижу причин, чтобы это не работало на AVR. К тому же скорость мне нужна в 10 раз меньшая, чем можно выжать из SDRAM.
DpInRock, скажите, ваши слова точно относились именно к DRAM?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 22 2009, 12:44
Сообщение #9


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 194
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Как я понял, чтение и запись сложны. ТО есть снала нужно открыть указанный адрес, а потом считать или записать.


Вся динамическая память построена в виде матрицы - ряды (row) и столбцы (column). Когда начинается цикл чтения или записи, то происходит активация нужного ряда. Затем Вы можете в пределах активированного ряда перебирать столбцы без повторной активации. В пределах одного ряда можно перебирать 512 адресов (стандартный размер одного ряда для байтовой ширины микросхемы). Если надо больше, то делается активация нескольких банков и становится доступно 512*n адресов, где n - количество банков (обычно 4 банка).

Цитата
Как при этом за один такт читается один байт мне непонятно.

Ну если CLK SDRAM посадить на CLK процессора, то за один такт вполне можно перебирать адреса. Значит, скорость обновления информации на шине данных будет байт за такт.

Правда, перебирать адреса в больших количествах (больше, чем 32 разных адреса) за один такт получится только на процах, которые по OUT в PINx инвертируют состояние ножки. Остальным светит 2 такта на изменение адреса.

Проект, на который я Вам дал ссылку, использует вообще burst-режим для чтения данных, так что без вмешательства процессора все получается, почти DMA smile.gif Но, размер такого чтения не более одного ряда. Если надо больше 512 байт вычитать, то надо извращаться с ручной генерацией адресов.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
zheka
сообщение Aug 22 2009, 13:44
Сообщение #10


Профессионал
*****

Группа: Участник
Сообщений: 1 962
Регистрация: 14-01-06
Пользователь №: 13 164



Цитата
Ну если CLK SDRAM посадить на CLK процессора, то за один такт вполне можно перебирать адреса.


Я понял.... Я просто думал раньше что ряд нужно каждый раз активировать....

Цитата
Проект, на который я Вам дал ссылку, использует вообще burst-режим для чтения данных, так что без вмешательства процессора все получается, почти DMA Но, размер такого чтения не более одного ряда. Если надо больше 512 байт вычитать, то надо извращаться с ручной генерацией адресов.


У меня память напрямую будет соединена с микросхемой памяти, данные в контроллер читаться не будут. Контроллер будет лишь дрыгать ногами и загонять информацию в память. К ручной генерации адресов я готов - у меня ATMEGA 32, два порта я готов под это дело отдать.

Цитата
Правда, перебирать адреса в больших количествах (больше, чем 32 разных адреса) за один такт получится только на процах, которые по OUT в PINx инвертируют состояние ножки. Остальным светит 2 такта на изменение адреса.


Если честно, не въехал.... Объясните на примере ATMega32
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 22 2009, 14:22
Сообщение #11


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 194
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
У меня память напрямую будет соединена с микросхемой памяти, данные в контроллер читаться не будут.


Ну так Вам прямо просится реализация как в том проекте, с burst-режимом. Вообще контроллер будет бамбук курить - зарядили цикл и занимаетесь своим делом, по таймеру, например, остановили, потом зарядили новый. И т.д.

Цитата
Если честно, не въехал.... Объясните на примере ATMega32


Смотрите, чтобы быстро менять адреса есть 2 способа - либо все возможные адреса положить в регистры (это будет максимум 32 регистра) и непосредственно выводить нужный регистр в порт, к которому прикручена шина адреса. Если имеете полотенце команд OUT, то скорость будет 1 такт на байт (время выполнения OUT). Если же надо больше, то получается минимум 2 такта
Код
   OUT PORTx,R16
   INC R16
   OUT PORTx,R16
   INC R16
....
   OUT PORTx,R16
   INC R16
   OUT PORTx,R16


Итого, на смену адреса 2 такта - OUT+INC.

А вот если бы проц был поновее (умел по OUT PINx,Ry инвертировать биты), то можно было бы, задействовав 8 регистров (записав в них значения 1,2,4,8,16,32,64,128) и используя код Грея увеличивать адреса со скоростью 1 такт на адрес. Дело в том, что 2 соседних значения в коде Грея отличаются одним битом, следовательно, для перехода к следующему адресу достаточно изменить один бит, для чего нужно выполнить OUT в регистр PINx соответствующей маски (один из 8ми регистров).

Более того, в одном проекте (я его тут выкладывал), я использовал инкрементирование адреса в коде Грея для того, чтобы не было ситуаций, что одновременно переключается много линий адреса - это было сделано для снижения помех, наводимых на аналоговую часть.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
zheka
сообщение Aug 22 2009, 17:01
Сообщение #12


Профессионал
*****

Группа: Участник
Сообщений: 1 962
Регистрация: 14-01-06
Пользователь №: 13 164



Цитата
Если надо больше 512 байт вычитать, то надо извращаться с ручной генерацией адресов.


120 байт - можно 4 раза передать, потом генерировать адрес. Да легко. Тем более burst это один байт за 1 такт я правильно понял?


А вообще - ламерский вопрос - а где взять CLK ? Допустим я буду использовать двухтактовый режим - мне нужен будет CLK для памяти и CLK/2 для драйвера. Как программно этим делом управлять, чтобы не пришлось тратить отдельный такт на инверсию CLK?

Чем сложнее DRAM в отличие от SDRAM, что мне советовали про нее забыть?

Да, и самый главный вопрос - если я буду использовать микросхемы от компьютерых б/у планок - DDR подойдет? Я читал что отличие их - удвоенная частота. Это касается только разгонных возможостей микросхемы или же есть еще нюансы?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 22 2009, 18:28
Сообщение #13


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 194
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
А вообще - ламерский вопрос - а где взять CLK ? Допустим я буду использовать двухтактовый режим - мне нужен будет CLK для памяти и CLK/2 для драйвера.


Зачем 2 разных? Сделайте на таймере вывод CLK/2 и для драйвера, и для памяти. Таймер нужен с Output Compare и Clear on compare match. Управление выводом настраивается на переключение по сравнению, и в регистр сравнения заносится 0. Результатом будет тактовая частота, деленная на 2.

DDR-память тоже можно окучить, но с заметно большим геморроем.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Aug 22 2009, 18:39
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 674
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(zheka @ Aug 22 2009, 20:01) *
А вообще ...

И вообще фигней Вы занимаетесь.
Вместо освоения современного контроллера, в котором задача решается автоматически десятью строчками кода, и вдобавок получаете кучу бонусов в виде быстродействия в 5-7 раз выше, память десятки мегабайт, бОльшего набора периферии, Вы пытаетесь уехать на телеге AVR.
На фоне светодиодов, их качества, механики разница в стоимости 3 доллара на электронику просто смешна.
Странно, что кризис не отмел таких энтузиастов.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
zheka
сообщение Aug 22 2009, 18:56
Сообщение #15


Профессионал
*****

Группа: Участник
Сообщений: 1 962
Регистрация: 14-01-06
Пользователь №: 13 164



Цитата
Зачем 2 разных? Сделайте на таймере вывод CLK/2 и для драйвера, и для памяти.


Как зачем? Памяти нужно 2 клока на один байт, а в драйвер информация заносится с каждым клоком. Пустые ячейки через одну будут, или я не прав?


Цитата
На фоне светодиодов, их качества, механики разница в стоимости 3 доллара на электронику просто смешна.


Я смету знаю лучше вас, поверьте. Есть еще ряд факторов, которые вынуждают меня решать задачу именно таким образом.
НАфига мне навороченный камень, если AVR обеспечивает быстродействие в 139/12 раз большее чем мне надо? Хватило бы ног, а их хватит.
Нафига мне сороконожка ARM, которых сейчас все-больше и больше в BGA, под которые платы делать сложновато, либо в TQFP размерами по 2 см, с кучей ненужных мне ног и функций?
Впрочем, давайте не будем об этом, ладно?
Go to the top of the page
 
+Quote Post

7 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st October 2017 - 01:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01329 секунд с 7
ELECTRONIX ©2004-2016