|
|
  |
Внешний SRAM. Нужен ли? |
|
|
|
May 13 2013, 08:46
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Такой вопрос знатокам: хотим использовать CortextM4 от STM у них есть уже на борту немного памяти - 256 кбайт. Я не знаю, можно ли поставить дополнительную внешнюю память к этому камню.(т.е есть ли у них интерфейс SRAM) Задача такая-4 канала на частоте 4 кгц по 4 байт  сбрасывать на SD карту. Ну а чтобы данные не терялись при записи на SD - это можно обойти ТОЛЬКО с помошью памяти большого объема, где можно накопить большую порцию данных и сбросить их на SD - и как можно реже. Соответсвтенно если скидывать раз в 10 секунд - то надежность гораздо выше чем скидывать раз в 1 секунду. Кто может посоветовать что сделать в этом случае?
|
|
|
|
|
May 13 2013, 09:07
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Цитата(InsolentS @ May 13 2013, 12:56)  Я думаю, Вам нужна двойная буферизация - пока один буфер накапливается, другой скидывается на SD карту. У контроллера памяти stm32, к сожалению, нет возможности подключить SDRAM, а статика нынче дорого стоит. Наверное, есть смысл обратить внимание на C-M4 от NXP или ещё какие-нибудь. Поток данных у Вас 64кб/с, может быть и уместитесь во внутренней памяти, но я бы не рисковал. 2 буфера пинг-понг-это понятно, но вот 256 кбайт без внешнего срам это конечно плохо
Сообщение отредактировал IgorKossak - May 13 2013, 19:20
|
|
|
|
|
May 13 2013, 09:37
|
Профессионал
    
Группа: Свой
Сообщений: 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.
|
|
|
|
|
May 13 2013, 09:46
|

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

|
Цитата(SSerge @ May 13 2013, 15:37)  а некоторые (429/439) ещё и SDRAM тоже поддерживают. Как, я понял, они только-только анонсированы и в продаже будут доступны не скоро.
--------------------
Курильщик даташитов со стажем
|
|
|
|
|
May 13 2013, 09:51
|
Знающий
   
Группа: Свой
Сообщений: 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 то это очень хорошо!
|
|
|
|
|
May 13 2013, 11:56
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(inventor @ May 13 2013, 14:46)  Такой вопрос знатокам: хотим использовать CortextM4 от STM у них есть уже на борту немного памяти - 256 кбайт. Я не знаю, можно ли поставить дополнительную внешнюю память к этому камню.(т.е есть ли у них интерфейс SRAM) Задача такая-4 канала на частоте 4 кгц по 4 байт  сбрасывать на SD карту. Ну а чтобы данные не терялись при записи на SD - это можно обойти ТОЛЬКО с помошью памяти большого объема, где можно накопить большую Интересное заключение... А почему они должны теряться??? И как поможет это обойти большая память? Или у Вас на SD файловая система и Вы боитесь произвольных отключений питания? Так выкиньте её нафиг и будет Вам 100%-я надёжность. В крайнем случае - журналирующая файловая система. Да даже обычную FS можно бэкапить хоть раз в секунду хоть раз в миллисекунду. А лучше (если есть возможность аппаратной модификации) - монитор питания. Для Вашей задачи даже 64кил - выше крыши если с умом подходить к делу.
|
|
|
|
|
May 14 2013, 19:12
|
Частый гость
 
Группа: Участник
Сообщений: 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
--------------------
Ждёт наркомана - анаша. Токсикомана - клей. Дубина, нож и автомат минуты ждут своей !
|
|
|
|
|
May 24 2013, 21:54
|
Частый гость
 
Группа: Участник
Сообщений: 105
Регистрация: 28-01-05
Из: Tula region
Пользователь №: 2 267

|
тогда зачем вообще SRAM - ставьте SDRAM несколько Мб, туда все пишите а потом выгружайте на SD если надо. и еще раз - важен интерфейс с самой SD картой.
--------------------
Ждёт наркомана - анаша. Токсикомана - клей. Дубина, нож и автомат минуты ждут своей !
|
|
|
|
|
May 25 2013, 05:53
|
Гуру
     
Группа: Свой
Сообщений: 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. ...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|