Jump to content
tcoder

Использование Модуля Озу Без Компьютера

Recommended Posts

Добрый вечер, ув. форумчане. Назрела идея сделать кое-какой девайс, которому требуется огромный объем оперативной памяти. Что делает девайс, афишировать пока не буду, т.к. его реальность в домашних условиях весьма туманна.

Собственно вопрос: пытался ли кто нибудь из вас подключить готовую планку например к МК?. Реально ли раздобыть протокол/порядок обмена с планкой?

Посмотрел вариант с отдельными микросхемами, и датащиты вроде есть, но их продают партиями и по неплохим (для продавцов) ценам, да еще доставка от двух недель.

Как другой вариант, прикинул использовать готовый модуль ОЗУ для компа (их и достать несложно и несколько микросхем уже связаны в систему). На планке судя по всему нет ничего кроме N-чипов ОЗУ, ряда дешифраторов и небольшой микросхемки с информацией о планке. Распиновка разъема свиду приблизительна похожа на распиновку отдельной микросхемы. Т.е. зная стандарт обмена с модулем или принцип работы самих микросхем ОЗУ с использованием планки по идее не должно возникнуть трудностей) Но этого как раз и нет:

1) Используется ли единый стандарт управления/обмена, или какие-то корректировки управления/обмена могут быть считаны с той же минимикросхемки кроме информации о планке.

2) В датащите отдельной микросхемы SDRAM (не с этой планки) инициализация чипа составляет 21 шаг. Можно сделать вывод, что планка должна пройти ту же процедуру, только с порядком действий, который соответствует установленным микросхемам (датащита на них я разумеется не нашел). Методом тыка никак, но поскольку разнофирмовых планок/типов много, опять надеюсь на некий существующий стандарт.

Есть у кого нибудь соображения или опыт в подобной затее? Заранее спасибо за ответы.

Share this post


Link to post
Share on other sites

Походу контроллер SDRAM достать еще сложнее, чем сами микросхемы SDRAM :) Вычиталось, что сейчас их в центральный процессор встраивают, и наличие их в отдельном виде сводится на нет. По самостоятельным контроллерам SDRAM "не для компа" что то не нагуглилось... (мож гуглить не умею? :) )

Share this post


Link to post
Share on other sites

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

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

Подробнее

Guest Серый

Гугли динамическую память. Можно скачать справочный листок на любую МС динамического ОЗУ, они много где применяются и изучить её работу.

Наример, одну из имеющейся в наличие планки. Принцип работы у них у вех одинаковый, изменения связаны только с увеличением производительности.

А там можно прикинуть, какой понадобится контроллер и решить, нужно ли самому это городить. Раньше делали самодельные контроллеры, сейчас

вроде такое никому в голову не приходит.

Share this post


Link to post
Share on other sites
Гугли динамическую память

Да нагуглил. И даже распиновка планки той же DDR2 относительно похожа на распиновку любой современной SDRAM. Только микросхемы на планках уж больно трудногуглимые, и весь затык именно в порядке инициализации в основном. Остальное более менее можно методом тыка найти. Вот я и попытался узнать, существует ли общий стандарт для планок, или они в зависимости от типа/фирмы несколько по разному обрабатываются в рамках того же стандарта. (вдруг кто-то пробовал сделать :rolleyes: )

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

Это еще одна потенциальная проблема. Вычитал, что производительность увеличивается за счет передачи одновременно нескольких ячеек, а также одновременно может происходить считывание текущей ячейки и уставновка адреса следующей и прочие подобные тонкости - вызывает ряд вопросов - может ли она без этих ухищрений работать, т.к. у меня приоритетная цель - большой объем памяти. Скорость обмена, необходимая мне - навскидку несколько десятков мгц, а то и меньше - смешная по сравнению с возможностями этих планок.

Спасибо Всем за ответы. Попробую на досуге собрать что нибудь для мучений планки и управлять ей по аналогии с датащитами других микросхем (названия контактов вроде схожи). 240 контактов однако... :(

Дополнение: выяснилось, что во встроенном EEPROM планки кроме информации о производителе и тд содержится информация о правильных таймингах типовых операций с памятью.... Вобщем, чего я и боялся... Каждый производитель в эту микросхему прошивает параметры работы интерфейса....

Вобщем буду писать в эту тему потихоньку о теоретических и практических достижениях.

Edited by tcoder

Share this post


Link to post
Share on other sites
                     

Приглашаем на вебинар Решения для построения ультразвуковых счетчиков жидкостей и газов на базе MSP430

Компэл совместно с Texas Instruments 23 октября 2019 приглашают на вебинар, посвященный системам-на-кристалле для построения ультразвуковых расходомеров жидкостей и газов на базе ядра MSP430. Вебинар проводит Йоханн Ципперер – эксперт по ультразвуковым технологиям, непосредственно участвовавший в создании данного решения. На вебинаре компания Texas Instruments представит однокристальное решение, позволяющее создавать точные недорогие счетчики жидкостей и газов.

Подробнее...

Чтобы говорить о "параметрах работы интерфейса", нужно понять, как вообще хранится информация в таких чипах (и сколько гимора с ней придется заработать). Одно только понятие регенерация заставляет отказаться от мысли работать с ними. А есть еще и строки, столбцы, синхронизация и тех, и других... Бр-р-р...

Share this post


Link to post
Share on other sites

Позвольте спросить!!!! Вы собираетесь моделировать математическую модель ядерного взрыва??? на кой ляд Вам такое быстродействие...... ну сколько у Вас там планка ???? Гиг? два???

так возьмите SD карту.... и 2 Гига есть и 32..... и главное проще в порядки раз.

Share this post


Link to post
Share on other sites

Сдохнет быстро, ему SRAM нужен...

Либо, если надо ворочать серьезными объемами, лучше смотреть в сторону ARM архитектуры, под которую все давно уже реализовано и вылизано, включая SoC компоненты... Например, если задача серьезная - ставим тот-же snapdragon 1 поколения, цепляем к нему dram и поверх ставим что угодно, хоть андроид, и делаем что требуется... Заодно сразу реализуем внешнюю связь и графику...

...И получаем очередной китайский недопланшет... :D

Edited by NebsteR

Share this post


Link to post
Share on other sites

тогда уж HDD... если ему механика противопоказана - тогда твердотельный....

Share this post


Link to post
Share on other sites
нужно понять, как вообще хранится информация в таких чипах

Об этом информации полно. Вполть до внешнего вида ячейки памяти на микроскопическом уровне. Принцип работы ясен предельно - конденсатор держит заряд, трактуемый как установленый бит. Из за саморазрядки конденсаторов требуется периодическая регенерация. Доступ - строб строки, строб столбца, выдача данных - это вкратце. На деле там пакетная передача данных, выдержанные временные задержки между стробами. Одновременная подача вместе со стробами столбца/строки дополнительных данных о банке и тд. Изучаю это дело на данный момент.

на кой ляд Вам такое быстродействие

Я написал что быстродействие мне не требуется, только чудовищный объем. Правда у меня возникли подозрения, что регенерировать её придется на высокой частоте. Т.к. НЧ может не хватить для подзарядки матрицы.

Сдохнет быстро, ему SRAM нужен...

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

тогда уж HDD

HDD рассматривал как вариант, но это крайний вариант - не устраивают габариты и вес и питание.

Касательно планки SDRAM - давняя мечта заставить её работать без компа. Можно даже целевой девайс отвести в тень, больно интересно реализована планка, затягивает.

Вот интересные стати попались, про память - относительно подробно, но не детально, а вот про формат данных в EEPROM планке очень даже ничего:

Неплохая обобщающая статья про память

Довольно подробная информация про EEPROM идентификационный

Пока решил порыться в теории.

Дополнение:

Сдохнет быстро, ему SRAM нужен...

Невнимательно прочитал - SRAM дорог, из доступных вариантов всё недостаточного объема, а "микрорайон" из микрух делать не катит. Достаточного объема - нашёл какого то монстра-эксперемент , который вообще толком не достать. Поэтому только DRAM остаётся.

Edited by tcoder

Share this post


Link to post
Share on other sites

еще раз скажу..... Твердотельный HDD....

https://www.google.ru/search?q=%D1%82%D0%B2%D0%B5%D1%80%D0%B4%D0%BE%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9+%D0%BD%D0%B0%D0%BA%D0%BE%D0%BF%D0%B8%D1%82%D0%B5%D0%BB%D1%8C&hl=ru&newwindow=1&safe=off&prmd=imvns&source=lnms&tbm=isch&sa=X&ei=pLRgUI3PN-TO4QSlhIHQDg&ved=0CAoQ_AUoAQ&biw=1366&bih=653

SSD HDD

Компания SMART одной из первых стала использовать типоразмер SATA Slim, стандартизованный отраслевой организацией JEDEC в спецификации MO-297-A. Стандартное исполнение упрощает использование модуля разработчиками и производителями, сокращает сроки вывода новых продуктов на рынок. По мнению SMART, особенно заметным выигрыш от использования XceedIOPS iSATA Slim будет в случае приложений, связанных с жесткими ограничениями по габаритам, включая системы ATCA, IPC, blade-системы, сетевое оборудование и терминалы.

В XceedIOPS iSATA Slim используется флэш-память типа SLC NAND в промышленном исполнении, что обеспечивает высокую скорость и надежность. Как утверждает производитель, по сравнению с потребительскими SSD на памяти типа MLC NAND новинка имеет в 30 раз больший срок службы.

По габаритам (39 х 54 х 4 мм) SSD примерно вчетверо меньше жесткого диска типоразмера 2,5 дюйма. Доступно несколько модификаций, максимальный объем — 64 ГБ. Потребляемая мощность равна 0,5 Вт. Скорости последовательного чтения и записи равны 120 и 115 МБ/с, а производительность в количестве операций в единицу времени (IOPS) — 14000 и 1400 соответственно.

(39 х 54 х 4 мм)

куда меньше....

Share this post


Link to post
Share on other sites
Твердотельный HDD....

Можно, как вариант. Осталось выяснить доступность, стоимость и действительный срок его службы. Если эта штука выдохнется... это уже не флешку поменять :)

З.Ы. Пока изучаем ОЗУ...

Share this post


Link to post
Share on other sites

Макарчик, а Вы все 64Gb регулярно перезаписывайте в течении года? :) Я же не накопитель на SDRAM собрался делать. В предполагаемом девайсе предполагается постоянная перезапись данных на протяжении всего объема и многократная обработка загруженных данных. (многократная - мягко сказано)

5. Есть ограничение на число циклов перезаписи для ssd на базе флэш-памяти - обычная флэш-память выдерживает 300.000 - 500.000 операций стирания/записи в одну и ту же ячейку. Такую проблему можно несколько разбавить, применяя алгоритмы равномерного износа. Суть методики в равномерном распределении часто перезаписываемых кластеров по всей памяти.

Интересно, как быстро сдохнет девайс за 5000р. Пожалуй SDRAM подольше прослужит. (На компе для эксперементов стоит единственная планка с 2003 года и ничего :))

Дополнение: спорить не буду, вполне неплохая альтернатива, но беспокоит ограниченный ресурс. Если многонедельные тыкания в документацию динамической памяти не дадут результатов, придется для начала поставить простой флеш, чтобы посмотреть, как быстро он сдохнет.

На мой взгляд если проблему ограниченного ресурса решили логическим путем - "развёрсткой" часто используемых зон, то в моем случае (использование полного пространства) это решение не сработает. Значит ресурс твердотельника будет приблизительно равен ресурсу обычной флеш, а значит портить более дешевую флеш выгоднее :) Конечно можно купить большой накопитель, и по мере порчи нужного объема памяти продвигаться в нетронутые зоны... но это как то конечно... мда) Не нравится мне всё это.

Edited by tcoder

Share this post


Link to post
Share on other sites

а Вы собрались жить вечно???? ну сдохнет через лет 5.... будет новый, более дешовый и долговечный....

нужна надежность - ставьте два и меняйте по очереди....

да и что бы что то обсуждать нужно видеть всю картину полностью.... может все можно сделать проще как всегда.....

Share this post


Link to post
Share on other sites

Тема называется "Использование модуля ОЗУ без компьютера", а не "Помогите выбрать тип памяти для Х-девайса". Зачем спор эскалируете?:) Я же уже написал, что FLASH применю только в случае, если с планкой ничего не получится. Способность работать с планками ОЗУ мне может пригодится теоретически в других проектах. А если вдруг понадобится быстродействие, превышающее скорость записи FLASH (при большом объеме) и тд. И в конце концов мне просто интересно её применить. (где то я про мечту печатал тут). Но за совет спасибо.

Share this post


Link to post
Share on other sites

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

Edited by Лалюна

Share this post


Link to post
Share on other sites
нужны для того что бы выжать из ОЗУшки макс скорость

Так и есть. Вычитал, что Феникс-биос не читает эти параметры и выставляет какие то удовлетворяющие всем типам планок тайминги. Значит эти данные можно игнорировать.

Но конечно время регенерации нужно соблюсти...

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

Походу придется и ту часть, которая занимается вводом-выводом данных и выдачей команд по скорости уровнять с регенерацией... т.е. получается это одно целое. Своего рода буфер, который должен принять от более медленной части данные и уже быстренько их передать в память.

Постоянно саморегенерация еще фигурирует, но подробно не расписано. Что то не верится, что оно будет все матрицы само гонять без участия внешнего устройства, т.к. в этой EEPROM с настройками и тайминги регенерации хранятся, а значит комп сам генерит команды регенерации... Туманно весьма..

Edited by tcoder

Share this post


Link to post
Share on other sites

В ранних версиях DRAM регенерация происходила просто по обращению к адресам строк, далее схема регенерации внутри чипа выполняла всё сама (думается так оно и осталось). Если Вы считываете/записываете последовательно данные (от 0 до максимума),то вместе с этим происходит и регенерация.Так же помнится что у старых микросхем DRAM время рег равнялось мс(а то и десятки),то есть довольно большое...

Edited by Лалюна

Share this post


Link to post
Share on other sites
Если Вы считываете/записываете последовательно данные (от 0 до максимума)

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

Вычитал, что сейчас есть два типа команд и для чтения и для записи - одни без "пострегенерации", другие с "пострегенерацией" строки. С "пострегенерацией" они вероятно медленнее, но поскольку скорость некритично, можно использовать такой тип команд. А вот во время хоть даже кратчайшего простоя всё равно придется в холостую посылать регенерацию либо командой регенерации либо тем же чтением.

З.Ы. Продолжаю пристально вглядываться в теорию :)

Дополнение: судя по тому, что про регенерацию в момент простоя не пишут не слова, складывается ощущение, что пока банк памяти никто не трогает, он регенерируется автоматически. Пока это основной вопрос... А команда возврата в "ожидание новых команд" и регенерация банка (или строки, непонятно) - выполняются одновременно. Т.е. однозначно после считывания записи или нужно самому подать сигнал освобождение/регенерация (так и называется PRECHRGE), или он может быть подан автоматически после операции.

Edited by tcoder

Share this post


Link to post
Share on other sites
не для "песочницы"

Ну я в песочницу выложил потому, что на момент публикации у меня были знания, близкие к нулю касательно динамич памяти.... извиняюсь на всякий случай.

spd eeprom

А что с ней?

Share this post


Link to post
Share on other sites

Постоянно саморегенерация еще фигурирует, но подробно не расписано. Что то не верится, что оно будет все матрицы само гонять без участия внешнего устройства, т.к. в этой EEPROM с настройками и тайминги регенерации хранятся, а значит комп сам генерит команды регенерации... Туманно весьма..

Где-то в журнале Радио была схемка цифрового ревербератора (80-е годы). Там модуль регенерации был независимым от текущего обрабатываемого адреса. Можешь посмотреть для примера решения, чтобы не забивать МК этой функцией. Насколько помнится регенерировать достаточно только строки, а не все ячейки.

Edited by Геннадий

Share this post


Link to post
Share on other sites

Если частоту регенерации сделать кратной частоте записи/чтения это упростит контроллер памяти. Для 1-4 гигов памяти разрядность шины адреса строк/столбцов равна примерно 16-18 разрядам (сорри за туфтологию).То есть достаточно двоичного счётчика на 16-18 выходов с генератором и с регенерацией вопрос решён. Можно посмотреть как решают одновременную запись и регенерацию (можно глянуть SDRAM - память видюх), только не понятно для чего Вы будете использовать сие уство.Если знать, что оно будет делать ,можно найти оптимальное решение....Я вот раньше хотел сделать анализатор цифровых сигналов (такая приблуда которая записывает в память , логические состояния цифровых выходов какого либо уства с определённой дискретизацией.Потом можно посмотреть что , на каких выводах было в любой момент времени),Вы не подобное ваяете?

Edited by Лалюна

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.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  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.

Loading...

  • Similar Content

    • By aydana
      Добрый день! На предприятии есть некий, довольно таки старый контроллер. В нем в качестве ОЗУ используется линейка из 8 ми 8 мегабайтных sdram типа HY57V641620E.Так вот, эти линейки очень часто выходят из строя. Производитель видно знал об этой особенности поэтому в комплекте было очень мгого таких линеек. Но время идет, все когда нибудь кончается.Настало время когда нужно ремонтировать эти линейки, но не понятно одно какая из 8 ми микросхем не рабочая. Это очень затрудняет весь процесс ремонта. Вопрос как проверить работоспособность таких озу?Пока ответ один - никак. Ребята предложили сделать приборчик на микроконтроллере, что то типа программатора но им нужно объяснить как она работает. Ну адресные входы A0-A11, вход-выход данных DQ0-DQ15 я смогла понять. А все остальное не получается.
      Кто нибудь сможет мне объяснить как все это работает? Даташит на HY57V641620E прикрепила.
      HY57V641620ET.pdf
    • By Алекс__
      Помогите найти микросхему устройства c заданными параметрами:
      Тип памяти: ПЗУ
      Емкость: 8K*4
      Конфигурация м/с: 1K*4
    • By iilgizar
      Нужен модуль памяти PC1600, аналогичный показанному на фото - с 9 микросхемами памяти.


    • By voltex
      Всем привет! Подскажите, пожалуйста, как правильно считать данные с внешней eeprom по шине spi, в данном случае 25LC256.
      Написал код ссылаясь на даташит. Собрал схему в протеусе, подключил spi отладчик и вот что получил в итоге. Так же не могу проверить получается записать данные в память или нет. Весь код прикрепил.
       

      main.c
×
×
  • Create New...