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

 
 
 
Reply to this topicStart new topic
> Внешний SRAM. Нужен ли?
inventor
сообщение May 13 2013, 08:46
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Такой вопрос знатокам: хотим использовать CortextM4 от STM
у них есть уже на борту немного памяти - 256 кбайт.
Я не знаю, можно ли поставить дополнительную внешнюю память к этому камню.(т.е есть ли у них интерфейс SRAM)
Задача такая-4 канала на частоте 4 кгц по 4 байт sm.gif сбрасывать на SD карту.
Ну а чтобы данные не терялись при записи на SD - это можно
обойти ТОЛЬКО с помошью памяти большого объема, где можно накопить большую
порцию данных и сбросить их на SD - и как можно реже.
Соответсвтенно если скидывать раз в 10 секунд - то надежность гораздо
выше чем скидывать раз в 1 секунду.
Кто может посоветовать что сделать в этом случае?
Go to the top of the page
 
+Quote Post
InsolentS
сообщение May 13 2013, 08:56
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Я думаю, Вам нужна двойная буферизация - пока один буфер накапливается, другой скидывается на SD карту.
У контроллера памяти stm32, к сожалению, нет возможности подключить SDRAM, а статика нынче дорого стоит.
Наверное, есть смысл обратить внимание на C-M4 от NXP или ещё какие-нибудь.
Поток данных у Вас 64кб/с, может быть и уместитесь во внутренней памяти, но я бы не рисковал.


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
inventor
сообщение May 13 2013, 09:07
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Цитата(InsolentS @ May 13 2013, 12:56) *
Я думаю, Вам нужна двойная буферизация - пока один буфер накапливается, другой скидывается на SD карту.
У контроллера памяти stm32, к сожалению, нет возможности подключить SDRAM, а статика нынче дорого стоит.
Наверное, есть смысл обратить внимание на C-M4 от NXP или ещё какие-нибудь.
Поток данных у Вас 64кб/с, может быть и уместитесь во внутренней памяти, но я бы не рисковал.

2 буфера пинг-понг-это понятно,
но вот 256 кбайт без внешнего срам это конечно плохо sad.gif

Сообщение отредактировал IgorKossak - May 13 2013, 19:20
Go to the top of the page
 
+Quote Post
SSerge
сообщение May 13 2013, 09:37
Сообщение #4


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

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



В 4xx семействе все, у кого ног для этого хватает, умеют работать с внешней
SRAM,PSRAM, Compact Flash/NOR/NAND memories,
а некоторые (429/439) ещё и SDRAM тоже поддерживают.
Впрочем, при потребности всего в несколько мегабайт с SDRAM нет смысла связываться, обычная SRAM или PSRAM гораздо удобнее, поскольку если не гнаться за скоростью, их можно на 16- или даже 8-битную шину посадить.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
InsolentS
сообщение May 13 2013, 09:46
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Цитата(SSerge @ May 13 2013, 15:37) *
а некоторые (429/439) ещё и SDRAM тоже поддерживают.

Как, я понял, они только-только анонсированы и в продаже будут доступны не скоро.


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
_pv
сообщение May 13 2013, 09:50
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



на таких скоростях внешняя память может быть и последовательной.
http://media.digikey.com/pdf/Data%20Sheets...s/P5Q%20PCM.pdf
немного экзотика конечно.
еще можно eepromов набрать, на 2мбита вроде вполне существуют.
upd да и 2Гбита тоже http://www.toshiba.com/taec/components/Dat...NVG1S3ETAI0.pdf
Go to the top of the page
 
+Quote Post
inventor
сообщение May 13 2013, 09:51
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Цитата(SSerge @ May 13 2013, 13:37) *
В 4xx семействе все, у кого ног для этого хватает, умеют работать с внешней
SRAM,PSRAM, Compact Flash/NOR/NAND memories,
а некоторые (429/439) ещё и SDRAM тоже поддерживают.
Впрочем, при потребности всего в несколько мегабайт с SDRAM нет смысла связываться, обычная SRAM или PSRAM гораздо удобнее, поскольку если не гнаться за скоростью, их можно на 16- или даже 8-битную шину посадить.

Спасибо, но SDRAM не катит-оно много потребляет.
Ну а если SRAM можно мегов ~4 то это очень хорошо!
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 13 2013, 11:56
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(inventor @ May 13 2013, 14:46) *
Такой вопрос знатокам: хотим использовать CortextM4 от STM
у них есть уже на борту немного памяти - 256 кбайт.
Я не знаю, можно ли поставить дополнительную внешнюю память к этому камню.(т.е есть ли у них интерфейс SRAM)
Задача такая-4 канала на частоте 4 кгц по 4 байт sm.gif сбрасывать на SD карту.
Ну а чтобы данные не терялись при записи на SD - это можно
обойти ТОЛЬКО с помошью памяти большого объема, где можно накопить большую
Интересное заключение... А почему они должны теряться??? wacko.gif
И как поможет это обойти большая память?
Или у Вас на SD файловая система и Вы боитесь произвольных отключений питания?
Так выкиньте её нафиг и будет Вам 100%-я надёжность.
В крайнем случае - журналирующая файловая система.
Да даже обычную FS можно бэкапить хоть раз в секунду хоть раз в миллисекунду.
А лучше (если есть возможность аппаратной модификации) - монитор питания.

Для Вашей задачи даже 64кил - выше крыши если с умом подходить к делу.
Go to the top of the page
 
+Quote Post
vlad_new
сообщение May 13 2013, 16:17
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127



При вашей скорости в 64кбайта вам внешняя оперативка не нужна.
По спецификации операция записи на SD может занимать до 250мс. Это в худшем случае. Реальное время записи на современную карточку 4 класса не превышает 5о мс. Ваша программа должна обеспечивать буферизацию данных как минимум на это время.
Следовательно надо 2 буфера по 16кило. На всякий пожарный сделайте 2 буфера по 32 кило. Что касается кол-ва циклов перезаписи, то они не зависят от объема ваших буферов, поскольку их колличество определяется внутренним механизмом карточки ( колличеством стираний блоков ). Естественно при условии, что вы не будите каждый раз закрывать файл все должно хватить с большим запасом.
Go to the top of the page
 
+Quote Post
CO2040
сообщение May 14 2013, 19:12
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 105
Регистрация: 28-01-05
Из: Tula region
Пользователь №: 2 267



да с этим камнем и 8 кб сделать буфер - хватит, DMA позволяет циклически буфер писать и читать, ставите прерывания по середине и концу - и переключаетесь легко какую часть читать в файл, а какую писать. При той производительности cortex M4 никакой дополнительной памяти не надо. И вообще проблема медленной SD карточки - это проблема правильной организации интерфейса. Я раньше намучался когда карту ставил в SPI режиме, теперь только SDIO !!! Тем более что в любом самом захудалом cortex M3-M4 от STM это есть ! А так по железу : у меня на ARM7DTMI 48МГц при доступной для буфера памяти в 2кб и тормозном SPI- интерфейсе с SD картой нормально работала запись 8кГц в 24 бита ! И еще запас оставался, так что я бы 2 ваших канала туда уложил легко. При таких убогих ресурсах !
Второй вопрос помимо интерфейса с SD - использование нормальной файловой системы, работающей с SDHC картами. Все новые (от 5.2 и выше версии IAR PowerPac это делают, хоть и пинают эту ФС многие именно за скорость - но у меня все именно на ней тестируется.)

Сообщение отредактировал CO2040 - May 14 2013, 19:15


--------------------
Ждёт наркомана - анаша. Токсикомана - клей.
Дубина, нож и автомат минуты ждут своей !
Go to the top of the page
 
+Quote Post
inventor
сообщение May 24 2013, 14:34
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Сейчас я работаю с Блекфином 504.
там всего 32+32 кбайт памяти.
Я 4 кбайт засунул в scrachpad под стек
ну а 32 и 32 под память данных и память программ.
У меня 2 буфера и на большой скорости и если например пишу на 1 кгц 4 канала
бывают потери данных.
На новых карточках такое не бывает. но если карту несколько раз записывал-то стопудово
она будет сбоить.
Так что описываемые вами карты 4-го класса и памяти 64 кбайт
не хватит.
На sd карте есть свой процессор, который сам распределяет куда ему писать информацию.
И если у него сбойный сектор-то он задумается и данные которые я хочу писать просто пропадут.
Поэтому мне и нужет вариант процессора который поддерживает sram-хорошую быструю память
с малыми потреблением.
Go to the top of the page
 
+Quote Post
CO2040
сообщение May 24 2013, 21:54
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 105
Регистрация: 28-01-05
Из: Tula region
Пользователь №: 2 267



тогда зачем вообще SRAM - ставьте SDRAM несколько Мб, туда все пишите а потом выгружайте на SD если надо.
и еще раз - важен интерфейс с самой SD картой.


--------------------
Ждёт наркомана - анаша. Токсикомана - клей.
Дубина, нож и автомат минуты ждут своей !
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 25 2013, 05:53
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(inventor @ May 24 2013, 20:34) *
На sd карте есть свой процессор, который сам распределяет куда ему писать информацию.
И если у него сбойный сектор-то он задумается и данные которые я хочу писать просто пропадут.
Поэтому мне и нужет вариант процессора который поддерживает sram-хорошую быструю память
с малыми потреблением.

Ну вот - наконец-то Вы написали причину "потерь". После определения причины можно начинать думать как с ней бороться...
Значит главная причина - задержки записи на SD и как следствие - потери данных из-за переполнения буфера. А не сбои питания.
Путей решения несколько:
1. Как вам тут уже предложили - отказаться от SD и писать на обычную flash (SPI). Если устраивает её размер. Задержки записи/стирания такой flash порядка десятков мсек. Можете сами подсчитать размер буфера во внутренней ОЗУ по величинам этих задержек.
2. Для буферизации использовать внешнюю память без задержек записи/стирания (не обязательно RAM и не обязательно параллельную). Можно прицепить её по SPI или даже I2C. Можно RAM или FRAM. Размер определяется скоростью потока и величинами задержек основной памяти. При перезаписи на SD (если Вы всё-таки не откажетесь от неё), при недостатке внутренней ОЗУ, можно не держать весь записываемый на SD блок в ОЗУ, а подкачивать его частями из внешней памяти. Т.е. - во внешней памяти организуется обычный кольцевой буфер из блоков данных (стандартное решение по согласованию двух потоков данных с различными скоростями и латентностями), у вас в CPU одна задача будет записывать блоки в этот буфер, а задача пишущая на основную флеш-память - проверять заполненность этого буфера и переписывать на SD (к примеру).
3. ...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 21:37
Рейтинг@Mail.ru


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