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

 
 
> Внешний 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
 
Start new topic
Ответов
CO2040
сообщение May 14 2013, 19:12
Сообщение #2


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

Группа: Участник
Сообщений: 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
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 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
jcxz
сообщение May 25 2013, 05:53
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 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 Текстовая версия Сейчас: 28th July 2025 - 05:49
Рейтинг@Mail.ru


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