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

 
 
6 страниц V  « < 2 3 4 5 6 >  
Reply to this topicStart new topic
> stm32f4 + Chan's FatFS, работа с большими SD картами
V_N
сообщение Sep 11 2018, 07:46
Сообщение #46


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

Группа: Свой
Сообщений: 162
Регистрация: 12-01-09
Из: Харьков
Пользователь №: 43 270



Цитата
Единственный плюс SDIO в сравнении с SPI - бОльшая низкоуровневая скорость. А как я говорил выше - для embedded это редко реально нужно.


Вы не правы . Например: автономная система сбора информации с сохранением на SD. 400 раз в секунду измерить напряжение (3 канала по 16 бит) накопить в буфер и переписать в SD. Процессор STM32L476 просыпается на время измерения и записи в SD. Применение SDIO в два раза увеличивает продолжительность автономной работы при заданном источнике питания.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Sep 11 2018, 08:16
Сообщение #47


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (jcxz @ Sep 11 2018, 14:51) *
Не особо большой.

Кстати! Стоп rolleyes.gif Отклик R мы ещё можем через DMA "ждать", т.к. оверхед будет не более 8 байт. А вот как тогда ждать Data Response Token Start Block Token и т.п., да ещё и следовать логике их обработке. Честно говоря, у меня в голове уже не укладывается, как тут DMA использовать. Тем более эти "токкены" не приходят в течение 8 байт. Значит издержки будут уже больше.
QUOTE (V_N @ Sep 11 2018, 15:46) *
Процессор STM32L476 просыпается на время измерения и записи в SD.

Возможно всё это зависит от SDIO, а следовательно - от модели микроконтроллера.
И да, всё-таки не процессор rolleyes.gif


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 11 2018, 09:10
Сообщение #48


Гуру
******

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



Цитата(V_N @ Sep 11 2018, 10:46) *
Вы не правы . Например: автономная система сбора информации с сохранением на SD. 400 раз в секунду измерить напряжение (3 канала по 16 бит) накопить в буфер и переписать в SD. Процессор STM32L476 просыпается на время измерения и записи в SD. Применение SDIO в два раза увеличивает продолжительность автономной работы при заданном источнике питания.

Да ладно! Так уж и в два раза? Как измеряли? rolleyes.gif
А сколько из всего этого времени что нужно на измерение, обработку, запись (особенно через ФС) составляет собственно пересылка? Сколько %? Я собственно об этом и писал - читайте внимательнее.
А сколько нужно времени на включение и стабилизацию питания карты?
А после записи нужно ещё дождаться статуса "завершение записи", время появления которого вообще никак не связано со скоростью пересылки, а только со скоростью карты. Ну сэкономите целых 10мкс на пересылке, а карта писать/стирать будет ещё 200мс. biggrin.gif
И сколько процентов прироста скорости даёт SDIO vs SPI? 1% или целых 2%? Боюсь что даже 1% выигрыша не будет от SDIO.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 11 2018, 09:45
Сообщение #49


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(jcxz @ Sep 11 2018, 12:10) *
И сколько процентов прироста скорости даёт SDIO vs SPI? 1% или целых 2%? Боюсь что даже 1% выигрыша не будет от SDIO.

На чтении внезапно дает примерно столько, во сколько раз больше линий передачи.

Просто полный набор штампов:
SD - плохо, лучше SPI
FS - плохо, будем колхозить свой велосипед
Скорость больше 1Мбайт/с в эмбеддед не бывает и не нужна

Это для PIC16 актуально, а не для STM32F4.

P.S. SD, не SDIO
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 11 2018, 12:31
Сообщение #50


Гуру
******

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



Цитата(aaarrr @ Sep 11 2018, 12:45) *
На чтении внезапно дает примерно столько, во сколько раз больше линий передачи.

На чтении чего? Какая прикладная задача? В синтетическом тесте? И кто бы сомневался.
И вообще-то отвечаете Вы на пост о системе сбора информации. На кой там чтение???

Цитата(aaarrr @ Sep 11 2018, 12:45) *
Просто полный набор штампов:
SD - плохо, лучше SPI

Вы похоже не умеете читать... Где я писал что "плохо" или "хорошо"? Ещё раз- я писал: в большинстве прикладных задач время передачи данных по интерфейсу карты - не принципиально, так как вносит очень малый вклад в общее быстродействие задачи.
Если есть что сказать по теме - расскажите в каких таких задачах бОльшая скорость чтения по SDIO принесёт заметный плюс?

Цитата(aaarrr @ Sep 11 2018, 12:45) *
Это для PIC16 актуально, а не для STM32F4.

Это актуально для чего угодно, пока не изобрели МК с бесконечно большим числом ног.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 11 2018, 14:06
Сообщение #51


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(jcxz @ Sep 11 2018, 15:31) *
И вообще-то отвечаете Вы на пост о системе сбора информации. На кой там чтение???

Думаете, запись не ускорится? Ускорится, просто не так показательно.

Цитата(jcxz @ Sep 11 2018, 15:31) *
Вы похоже не умеете читать... Где я писал что "плохо" или "хорошо"? Ещё раз- я писал: в большинстве прикладных задач время передачи данных по интерфейсу карты - не принципиально, так как вносит очень малый вклад в общее быстродействие задачи.

Вы писали буквльно следущее:
Цитата
Если уж есть нужда в увеличении скорости обмена с картой, то первым делом нужно от FS избавляться.

А это, уж извините, бред. Не вносит FS заметного оверхеда, как раз таки единицы процентов.

Цитата(jcxz @ Sep 11 2018, 15:31) *
Это актуально для чего угодно, пока не изобрели МК с бесконечно большим числом ног.

Так используйте однобитный SD для экономии. SPI - это в любом случае костыль, придуманный в мрачные времена.
Да, а ручной подсчет CRC не напрягает?
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Sep 11 2018, 14:16
Сообщение #52


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (aaarrr @ Sep 11 2018, 22:06) *
Так используйте однобитный SD для экономии.

Кстати, а это идея!
В проекте, над которым работаю, хоть и получил масштабный опыт руления через один SPI низкоскоростными (сигма-дельта АЦП) и высокоскоростными (NAND, SD) устройствами, переключениями на одни и те же ножки SPIFI прямо по ходу работы, всё же лишний раз такое насильно бы повторять не стал))))


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 11 2018, 15:21
Сообщение #53


Гуру
******

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



Цитата(aaarrr @ Sep 11 2018, 17:06) *
Думаете, запись не ускорится? Ускорится, просто не так показательно.

Ага, не на 2%, а на 1% biggrin.gif
Какой процент времени при записи на карту составляет время пересылки по интерфейсу в общем времени включения карты+пересылки+ожидания_завершения+выключении?

Цитата(aaarrr @ Sep 11 2018, 17:06) *
Вы писали буквльно следущее:
А это, уж извините, бред. Не вносит FS заметного оверхеда, как раз таки единицы процентов.

Да ладно - единицы процента? biggrin.gif
Вот касательно приведённого выше V_N примера системы сбора данных со сном, предположим что при каждом просыпании система пишет один сектор данных в файл, после чего засыпает. Перед засыпанием закрывает файл, получается - обновляется запись каталога (дата/время файла+размер) и FAT-таблица (размещение). Итого - получаем запись до 3-х секторов вместо одного если бы делали просто на кольцевой цепочке секторов.
И не надо выдёргивать мои слова из контекста. Главный смысл их был в том, что выигрыш по скорости обмена по интерфейсу карты незначителен для большинства прикладных embedded-задач.
"Прикладная задача" к Вашему сведению - это не запись или чтение файла. Или может Вы в руководствах по эксплуатации своих устройств пишете "оно пишет и читает файлы со встроенной SD". biggrin.gif
Если карта внутренняя, то заказчику фиолетово - пишет оно файлы или что-то другое, ему важна функция, которую оно реализует.
А вот решение этой функции через ФС очень часто приводит к увеличению оверхеда по чтениям/записям. Поэтому я и говорю, что работа с SD наиболее оптимальным для задачи способом, а не обязательно через ФС, может даст гораздо бОльший выигрыш в плане общей скорости работы.

Цитата(aaarrr @ Sep 11 2018, 17:06) *
Да, а ручной подсчет CRC не напрягает?

Вы вообще о чём? Где я писал про ручной CRC? wacko.gif
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 11 2018, 15:34
Сообщение #54


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(jcxz @ Sep 11 2018, 18:21) *
Ага, не на 2%, а на 1% biggrin.gif

На 50%, например.

Цитата(jcxz @ Sep 11 2018, 18:21) *
Да ладно - единицы процента? biggrin.gif
Вот касательно приведённого выше V_N примера системы сбора данных со сном, предположим...

Предположим, спит, предположим, выключает при этом питание, предположим, закрывает и не кэширует. Что еще предположим?

Цитата(jcxz @ Sep 11 2018, 18:21) *
"Прикладная задача" к Вашему сведению - это не запись или чтение файла. Или может Вы в руководствах по эксплуатации своих устройств пишете "оно пишет и читает файлы со встроенной SD". biggrin.gif

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

Цитата(jcxz @ Sep 11 2018, 18:21) *
Если карта внутренняя, то заказчику фиолетово - пишет оно файлы или что-то другое, ему важна функция, которую оно реализует.

Внутренняя - это как? Как на фото выше, намертво припаянная? Такого вообще не должно быть.

Цитата(jcxz @ Sep 11 2018, 18:21) *
Вы вообще о чём? Где я писал про ручной CRC? wacko.gif

А где я писал про включение-выключение питания?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 11 2018, 17:37
Сообщение #55


Гуру
******

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



Цитата(aaarrr @ Sep 11 2018, 18:34) *
Вы, надо полагать, в руководствах пишете: "для извлечения информации со встроенной SD-карты воспользуйтесь утилитой XXX (протестировано на Windows 7, требует прав администратора)".

Я ничего не пишу, так как встроенная карта == неизвлекаемая карта.

Цитата(aaarrr @ Sep 11 2018, 18:34) *
Внутренняя - это как? Как на фото выше, намертво припаянная? Такого вообще не должно быть.

Может объясните это Micron-у, что его e.MMC чипов не должно быть? Оне же намертво припаиваются! как можна! biggrin.gif
Да и обычная карта может находиться внутри корпуса устройства, без возможности снятия. И не обязательно припаиваться.

Цитата(aaarrr @ Sep 11 2018, 18:34) *
А где я писал про включение-выключение питания?

Вы даже не соизволили обратить внимание к чему относился мой пост на который Вы изначально решили ответить? Если бы соизволили, то увидели бы что это был ответ на сообщение системе сбора данных на SD с режимом энергосбережения.
И изначально я спрашивал: приведите реальные примеры где высокая скорость обмена по интерфейсу даст реальный выигрыш. На что и был приведён тот пример.
Стоит хоть немного читать то, на что отвечаешь....
Go to the top of the page
 
+Quote Post
Aner
сообщение Sep 11 2018, 18:17
Сообщение #56


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



QUOTE (aaarrr @ Sep 11 2018, 18:34) *
Внутренняя - это как? Как на фото выше, намертво припаянная? Такого вообще не должно быть.

Намертво припаянные регулярно встречаю в серийных изделиях. Далеко ходить не нужно берем DJI и его дроны, Фантомы 3, 4, Мавики ... ; катры 16Gb, 32Gb micro SD внутренние запаяны намертво, + наружные в разъеме. Нехило так, внутри до 4 ARM процов сидит в одном изделии.
Go to the top of the page
 
+Quote Post
V_N
сообщение Sep 11 2018, 18:28
Сообщение #57


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

Группа: Свой
Сообщений: 162
Регистрация: 12-01-09
Из: Харьков
Пользователь №: 43 270



Цитата
Вот касательно приведённого выше V_N примера системы сбора данных со сном, предположим что при каждом просыпании система пишет один сектор данных в файл, после чего засыпает. Перед засыпанием закрывает файл, получается - обновляется запись каталога (дата/время файла+размер) и FAT-таблица (размещение). Итого - получаем запись до 3-х секторов вместо одного если бы делали просто на кольцевой цепочке секторов.

Файл не закрывается, питание с карты не снимается, дописывется 16 кбайт в конец файла( каждые пол часа проводится закрытие файла ). Частота ЦП скорость SDIO оптимизированы с целью увеличения времени непрырывной работы . Конкретно в этом примере переход отSPI к SDIO даловозможность увеличить время автономной работы .
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 11 2018, 18:44
Сообщение #58


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(jcxz @ Sep 11 2018, 20:37) *
Может объясните это Micron-у, что его e.MMC чипов не должно быть? Оне же намертво припаиваются! как можна! biggrin.gif

Стесняюсь спросить, а почему, например, не Samsung'у или Toshib'е?

Цитата(jcxz @ Sep 11 2018, 20:37) *
Да и обычная карта может находиться внутри корпуса устройства, без возможности снятия. И не обязательно припаиваться.

Карты превращаются в eMMC, а потом снова в карты. Но в ящике.

Цитата(jcxz @ Sep 11 2018, 20:37) *
Вы даже не соизволили обратить внимание к чему относился мой пост на который Вы изначально решили ответить? Если бы соизволили, то увидели бы что это был ответ на сообщение системе сбора данных на SD с режимом энергосбережения.

Почему же, обратил. И именно в вашем ответе внезапно возникло включение и выключение питания карты.
Но и до этого много прекрасного, не мог пройти мимо:
Цитата
SDIO мало где реально нужно в embedded области.

Цитата
А писать это дело в FatFS, внутренние операции которой Вы не контролируете - это стрелять себе в ногу.

Цитата
25МГц - это всего-лишь SCLK. При этом получается скорость передачи около 1МБ/сек.

Очень сильно постараться надо, чтобы получилось настолько плохо.
Цитата
значительно бОльший расход пинов

В 1-битном режиме он таки меньше
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 11 2018, 19:17
Сообщение #59


Гуру
******

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



Цитата(V_N @ Sep 11 2018, 21:28) *
Файл не закрывается, питание с карты не снимается,

Тогда о чём разговор? Зачем тогда процессор усыплять если невыключенная карта сожрёт в разы больше энергии?
И если файл не закрывается, то что с этим файлом будет если карту возьмут и выдернут когда этот файл не закрыт?
Или у Вас она - встроенная и её нельзя внезапно выдернуть? Так ув. aaarrr запретил так делать! biggrin.gif
И если Вы не послушались aaarrr и она всё-таки встроенная, то зачем тогда там вообще ФС?

Цитата(V_N @ Sep 11 2018, 21:28) *
Конкретно в этом примере переход отSPI к SDIO даловозможность увеличить время автономной работы .

Ну да - а невыключение карты сократило это время в разы больше чем получили выигрыш от SDIO. Опять экономия на пуговицах.

Цитата(aaarrr @ Sep 11 2018, 21:44) *
В 1-битном режиме он таки меньше

И можно обойтись всего одним пином??? Нет? А с SPI - можно (дополнительным CS), так как это - шина, и на неё можно повесить несколько слэйвов.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 11 2018, 19:37
Сообщение #60


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(jcxz @ Sep 11 2018, 22:17) *
И можно обойтись всего одним пином??? Нет?

Забыли посчитать тот пин, которым выключаете питание biggrin.gif

Цитата(jcxz @ Sep 11 2018, 22:17) *
А с SPI - можно, так как это - шина, и на неё можно повесить несколько слэйвов.

Можно. Но если карта не припаяна к плате (а я ведь запретил sm.gif ), то придется раскошелиться еще и на буфер.
Go to the top of the page
 
+Quote Post

6 страниц V  « < 2 3 4 5 6 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 10:57
Рейтинг@Mail.ru


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