Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: microSD задержки при обмене
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам
Страницы: 1, 2
MiklPolikov
Цитата(_4afc_ @ Sep 13 2016, 02:06) *
не знаю большой ли для вас LQFP100 14х14мм.

Разумеется, он огромный. Стал бы я мучится вопросом "как избавится от пропусков, от которых нельзя избавится ?", если бы можно было поставить буфер ?
_4afc_
Цитата(MiklPolikov @ Sep 13 2016, 03:17) *
Разумеется, он огромный. Стал бы я мучится вопросом "как избавится от пропусков, от которых нельзя избавится ?", если бы можно было поставить буфер?


ХЗ. Вы же пока не указали камень на котором без буфера пишете 1МБ/сек - непонятно на что ориентироваться... Может у вас AVR в sot23?
MiklPolikov
Цитата(_4afc_ @ Sep 13 2016, 02:33) *
Вы же пока не указали камень на котором без буфера пишете 1МБ/сек

STM32L476RET
Тема не про микросхемы, с ними-то всё понятно.
Эта тема про тонкости работы с картой.
_4afc_
Цитата(MiklPolikov @ Sep 13 2016, 03:44) *
STM32L476RET
Тема не про микросхемы, с ними-то всё понятно.
Эта тема про тонкости работы с картой.


Ну если про тонкости, то поскольку у вас вроде есть SDMMC интерфейс - вопрос: вы по SPI 1bit с картой связываетесь или по SDMMC 4 бит?
MiklPolikov
Цитата(_4afc_ @ Sep 13 2016, 03:23) *
вопрос: вы по SPI 1bit с картой связываетесь

SDMMC, написано в первом сообщении
_4afc_
Цитата(MiklPolikov @ Sep 13 2016, 04:59) *
SDMMC, написано в первом сообщении


Написано SDIO, а не SDMMC. Бит сколько? Я, например, 10 лет назад работая с флешкой через SPI 1 бит по документу SDA Physical Layer Specification V2.00 - тоже считал её SDIO, ибо зверь был без опознавательных - а теперь её потомки зовутся eMMC...

Колитесь: ширина шины и какими командами (CMDxx) 512 байт пишете.
jcxz
Цитата(makc @ Sep 13 2016, 00:11) *
FRAM по надежности (числу циклов перезаписи) != SRAM (NVSRAM), т.к. судя по документации того же Cypress оно ограничено числами порядка 10E14. Это, конечно, много, но это не бесконечность. Тем более если буфер будет расположен по фиксированному смещению в памяти, а не будет смещаться для выравнивания износа. Будьте внимательны.

Произведём нехитрые вычисления:
Примем для худшего случая что скорость потока у нас - максимально возможная для этих чипов: SCLK==40МГц.
Тогда: 40000000/8/2 = 2500000 Б/сек - макс.скорость записи для случая ТС (деление на 2, так как одновременно будет идти запись и чтение).
Тогда (если для кольцевого буфера выбрали чип ёмкостью 512КБ) получаем макс.частоту перезаписи чипа: 2500000/(512*1024) = 4.77 Гц.
Тогда общее время наработки до износа: 10^14/4.77/3600/24/365 = 664775 лет
А если учесть что ТСу нужна скорость потока не 2.5МБ/сек, а 1МБ/сек, то вообще больше миллиона лет получается.
Да и то - я находил сообщения, что этот предел указанный в даташитах FRAM - теоретический, т.к. реально не удалось достигнуть отказа ячейки FRAM.
А у Everest для её MRAM вообще в даташите написано: кол-во циклов перезаписи - неограничено.

Что значит "если буфер будет расположен по фиксированному смещению в памяти"?
ТСу нужно буферизировать поток! В этом случае буфер конечно будет находиться по фиксированному смещению ==0 и занимать весь объём чипа.

Цитата(_4afc_ @ Sep 13 2016, 05:06) *
Просто HSMCI 4бит - даёт реальный выигрышь перед SPI по задержкам и снижает требования к памяти.

Задержки связанные со стираниями/записью во флешь не зависят от интерфейса SPI или SDIO.
Время приостановки потока будет конечно зависеть от скорости передачи, но разница будет не принципиальна - ну получится вместо 500мсек задержки, например 450мсек - это проблему не решит.
makc
Цитата(jcxz @ Sep 13 2016, 07:29) *
Что значит "если буфер будет расположен по фиксированному смещению в памяти"?
ТСу нужно буферизировать поток! В этом случае буфер конечно будет находиться по фиксированному смещению ==0 и занимать весь объём чипа.


Буфер может быть организован по-разному, в.ч. его можно организовать в виде эластичного FIFO, которое будет сглаживать задержки карты и в этом случае вовсе не обязательно все время писать все данные сначала в FRAM, а потом переписывать их оттуда на SD. В FRAM данные будут писать только когда карта не успевает принимать данные и возникает задержка. Это позволит избежать лишних накладных расходов, но при этом возможно протирание буферной памяти, если реализация эластичного FIFO не будет это учитывать.
jcxz
Цитата(_4afc_ @ Sep 13 2016, 05:06) *
Если бы не ваше требование про отсутствие BGA - я бы поставил 9х9мм 384kB ATSAMS70N20A-CN и поднял бы на нём без пропусков 1.5МБайт/с на своей eMMC, не знаю большой ли для вас LQFP100 14х14мм. Просто HSMCI 4бит - даёт реальный выигрышь перед SPI по задержкам и снижает требования к памяти.

По традиции, когда заходит речь о большом объёме встроенной ОЗУ, здесь принято советовать что-то из Nuvoton, например: NUC976DK62Y
Или что угодно из: http://www.nuvoton.com/hq/products/micropr...es/?__locale=en
64МБ думаю хватит на любой буфер. И корпус LQFP128 есть. И частота ядра ==300МГц и наличие SDIO - всё позволяет легко прокачать 1МБ/сек.

Цитата(makc @ Sep 13 2016, 10:41) *
Это позволит избежать лишних накладных расходов, но при этом возможно протирание буферной памяти, если реализация эластичного FIFO не будет это учитывать.

Это понятно, но как я показал, даже если он непрерывно будет всё подряд писать во FRAM, всё равно не протрёт. Я для худшего случая рассчитал. А у MRAM вообще нет предела по циклам перезаписи.
И вполне возможно, что лет через 5 и SD-карточки уже будут делать на FRAM/MRAM или чём-то подобном.
_4afc_
Цитата(jcxz @ Sep 13 2016, 08:29) *
Задержки связанные со стираниями/записью во флешь не зависят от интерфейса SPI или SDIO.
Время приостановки потока будет конечно зависеть от скорости передачи, но разница будет не принципиальна - ну получится вместо 500мсек задержки, например 450мсек - это проблему не решит.


Для начала нужен ответ на вопросы:

1 какого типа карта у нас используется - (SD,SDHC,SDXC)
2 в случае SD - какое время на запись дано в CSD
3 превышает ли испытуемая система регламентированное стандартом допустимое время записи.

Цитата
SD Specifications Part 1 Physical Layer Simplified Specification Version 4.10
4.6.2.2 Write
For a Standard Capacity SD Memory Card, the times after which a timeout condition for write operations occurs are (card independent) either 100 times longer than the typical program times for these operations given below or 250 ms (the lower of the two). The R2W_FACTOR field in the CSD is used to calculate the typical block program time obtained by multiplying the read access time by this factor. It applies to all write commands (e.g. SET(CLR)_WRITE_PROTECT, PROGRAM_CSD and the block write commands). High Capacity SD Memory Card and Extended Capacity SD Memory Card indicate R2W_FACTOR as a fixed value.
In case of High Capacity SD Memory Card, maximum length of busy is defined as 250ms for all write operation.
While the card should try to maintain that busy indication of write operation does not exceed 250ms in the case of SDXC card, if the card is not possible to maintain operations with 250ms busy, the card can indicate write busy up to 500ms including single and multiple block write in the following scenarios:
a)The last busy in any write operation up to 500ms including single and multiple block write.
b)When multiple block write is stopped by CMD12, the busy from the response of CMD12 is up to 500ms.
c)When multiple block write is stopped by CMD23, the busy after the last data block is up to 500ms.
d)Busy indication at block gap in multiple block write is up to 250ms except a following case. When the card executes consecutive two blocks write (2*512Bytes) and it spans across the physical block boundary, the busy after the each block can be indicated up to 500ms.
Especially regardless of the above definition, a speed class writing mode specified by CMD20 shall keep write busy up to 250ms in any case until the end of speed class write is indicated.
There are two types of busies in a multiple block write operation. (1) Write busy at block gap (without CMD12) is maximum 250ms (2) Write busy after CMD12 is maximum 250ms (500ms for SDXC)
If CMD12 is issued during a multiple block write operation's busy period, the host timeout counter is reset and the 250ms (500ms for SDXC) timeout period is measured from the response of CMD12.

The host should use a fixed timeout for write operations rather than using a timeout calculated from the R2W_FACTOR parameter.
It is strongly recommended for hosts to implement more than 500ms timeout value even if the card indicates the 250ms maximum busy length.
Even if the card supports Speed Class, any multiple block write operation may indicate a busy period of up to a maximum of 250ms. The sum of the busy periods over an AU is limited by Speed Class.


Если запись блока не укладывается в вышеприведенные времена - можно допилить до 250ms на SDHC меняя интерфейсы, команды и т.д.
Если укладывается (например SDXC), то для создания надёжной системы, единственный выход: увеличение внутреннего буфера.
Если укладывается (SDHC 250ms) но дело портит файловая система - ускорять/менять файловую.
mantech
Цитата(jcxz @ Sep 13 2016, 07:29) *
Да и то - я находил сообщения, что этот предел указанный в даташитах FRAM - теоретический, т.к. реально не удалось достигнуть отказа ячейки FRAM.
А у Everest для её MRAM вообще в даташите написано: кол-во циклов перезаписи - неограничено.


Сорри за офтоп, но если эта такая замечательная память, почему ее до сих пор не используют в качестве флеша на МК или подобных применениях? Сколь не читал даташитов, в МК только 10000 перезаписей и кирдык..
jcxz
Цитата(mantech @ Sep 13 2016, 16:20) *
Сорри за офтоп, но если эта такая замечательная память, почему ее до сих пор не используют в качестве флеша на МК или подобных применениях? Сколь не читал даташитов, в МК только 10000 перезаписей и кирдык..

Почему не используют? Я же приводит выше линейку МК где вместо флешь имеется FRAM-программ. Очень удобно - единая память и данные в неё писать можно и после выключения/включения они не теряются.
Но видимо она имеет меньшую плотность чем FLASH, поэтому максимум, что я видел - МК с 64КБ FRAM в качестве памяти программ (линейка MSP430FRxxx). А если так, то скажем если вместо одной ячейки FRAM на кристалле можно разместить 4 ячейки FLASH, значит сделать больше память программ МК - а это преимущество. А стирать часто память программ - это очень редко когда нужно.
Да и похоже есть какие-то патентные ограничения, что не позволяет её использовать крупным производителям МК. Из крупных МК-строителей только TI делает такие МК, видно или купил технологию или как-то обошёл.

А для данных память замечательная - полностью как RAM, только при выключении содержимое не теряется. В остальном - нет отличий от ОЗУ. Ну и дороже флеша тоже конечно существенно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.