|
|
|
microSD SDIO, Помогите начать |
|
|
|
Feb 1 2018, 07:46
|
Знающий
Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847
|
Цитата(aaarrr @ Jan 31 2018, 23:11) Что может быть проще, чем иметь четыре сдвиговых регистра на выходе сериализатора? Минимум манипуляций с данными, минимум логики. Смеётесь?.... В 4 раза больше логики в вашем случае! (16 триггеров против 64х). Есть только одно объяснение этому "безобразию",- вариант применения одной линии данных вместо четырех. Тогда берется для этого один регистр из четырех.
|
|
|
|
|
Feb 1 2018, 12:46
|
Гуру
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713
|
Цитата(mantech @ Feb 1 2018, 13:55) Если только скорость вообще не важна А какой реальный выигрыш от использования SDIO вместо SPI не на коне в вакууме, а на типичном Cortex-M? Загруженном кроме гоняния байтов с SD ещё и другими задачами. В Мб/сек или в %. Есть-ли вообще смысл тратить гораздо больше ног МК, которые, как правило, всегда в дефиците?
|
|
|
|
|
Feb 1 2018, 13:03
|
Гуру
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702
|
Цитата(jcxz @ Feb 1 2018, 15:46) А какой реальный выигрыш от использования SDIO вместо SPI не на коне в вакууме Действительно, реальная карта очень медленная. Т.е. по быстрому интерфейсу ей прилетает команда, спустя какое-то время карта по быстрому интерфейсу отвечает, а данные сектора выдаст гораааздо позже, но очень быстро. Применение SDIO в связке с DMA позволяет сильно разгрузить МК, хотя я делал и на SPI+DMA+ISR с деревом из callback-функций. С учетом того, что карта может приспокойно "задуматься" на полсекунды даже в режиме чтения, jcxz весьма справедлив.
|
|
|
|
|
Feb 1 2018, 13:15
|
Гуру
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713
|
Цитата(adnega @ Feb 1 2018, 15:03) С учетом того, что карта может приспокойно "задуматься" на полсекунды даже в режиме чтения, jcxz весьма справедлив. Я даже не об этом говорю, а о том что на практике я писал драйвер SD через SPI на Cortex-M 120МГц. И получал скорость потокового чтения с карты немного больше 1МБ/сек (естественно SPI+DMA). Даже просто прокачка такого потока через средний Cortex-M сильно его нагрузит. Не говоря уже о том, что наверное МК должен как-то ещё и обрабатывать этот поток. При более-менее содержательной обработке читаемых/записываемых данных, скорость обработки этих данных вряд-ли будет выше 1МБ/сек, а скорей всего - гораздо ниже. Тогда такой скорости SPI вполне хватает. И это при том, что я даже не оптимизировал свой драйвер - возможно получил бы гораздо бОльшую скорость (SPI-флешки у меня работают на SCLK до 40МГц). Вобщем: при реальной работе с SD, а не мерянии попугаев, сама обработка данных будет больше тормозить, чем обмен с SD по SPI. Имха. Так что польза от SDIO на типичных Cortex-M - сомнительна. Тоже - имхо.
|
|
|
|
|
Feb 1 2018, 13:32
|
Профессионал
Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565
|
Цитата(jcxz @ Feb 1 2018, 15:46) А какой реальный выигрыш от использования SDIO вместо SPI не на коне в вакууме, а на типичном Cortex-M? Загруженном кроме гоняния байтов с SD ещё и другими задачами. В Мб/сек или в %. Есть-ли вообще смысл тратить гораздо больше ног МК, которые, как правило, всегда в дефиците? Есть проект на Cortex-M7 вида eMMC -> M7 -> HSUSB, без двойной буверизации, т.е. блок читается с флешки и отдаётся в USB. При подключении по 4 проводам SDIO средня скорость чтения файла длиной 1Гб, в зависимости от частоты шины SDIO, составила: 24.43МГц - 6.50М/с; 25.00МГц - 7.18М/с; 50.00МГц - 10.56М/с. Насколькоя я знаю скорость 50.00МГц предусмотрена стандартом только в режиме SDIO. Цитата(adnega @ Feb 1 2018, 16:03) С учетом того, что карта может приспокойно "задуматься" на полсекунды даже в режиме чтения, jcxz весьма справедлив. Моя карта имеет право задуматься на 250мс в режиме чтения.
|
|
|
|
|
Feb 1 2018, 13:47
|
Гуру
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713
|
Цитата(_4afc_ @ Feb 1 2018, 15:32) Насколькоя я знаю скорость 50.00МГц предусмотрена стандартом только в режиме SDIO. Просто передаёт с SD на USB? Это карт-ридер? Конечно, если делать карт-ридер, то здесь имеет смысл. Я же писал про использование SD для нужд хранения и содержательной обработки данных самой программой МК. Единственный вариант: это если данные медленно накапливать на SD при работе устройства, а потом быстро слить в комп не вынимая карты. Цитата(_4afc_ @ Feb 1 2018, 15:32) Моя карта имеет право задуматься на 250мс в режиме чтения. Да уж....
|
|
|
|
|
Feb 1 2018, 14:09
|
Профессионал
Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565
|
Цитата(jcxz @ Feb 1 2018, 16:47) Единственный вариант: это если данные медленно накапливать на SD при работе устройства, а потом быстро слить в комп не вынимая карты. Да что-то подобное. Цитата(jcxz @ Feb 1 2018, 16:47) Просто передаёт с SD на USB? Это карт-ридер? В режиме чтения накопленной или обработанной информации - что-то типа карт-ридера. И естественно, чем быстрее считается - тем удобнее. Цитата(jcxz @ Feb 1 2018, 16:47) Конечно, если делать карт-ридер, то здесь имеет смысл. Я же писал про использование SD для нужд хранения и содержательной обработки данных самой программой МК. Для нужд записи - тоже имеет смысл при ограничении по потреблению и пульсациям по питанию. Вот ток потребления в режиме SPI:
А вот в режиме SDIO:
Видно, что среднее потребление при записи - в режиме SDIO в 2.5 раза меньше, за счёт меньшего времени передачи данных.
|
|
|
|
|
Feb 1 2018, 14:17
|
Гуру
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713
|
Цитата(_4afc_ @ Feb 1 2018, 16:09) Для нужд записи - тоже имеет смысл при ограничении по потреблению и пульсациям по питанию. ... Видно, что среднее потребление при записи - в режиме SDIO в 2.5 раза меньше, за счёт меньшего времени передачи данных. Зато судя по картинкам - пульсация тока в режиме SDIO в ~2 раза больше Да и судя по длительностям осциллограмм - сравниваете SDIO работающий на высокой скорости и SPI работающий на медленной скорости - так сравнивать не корректно. Вы сами писали, что скорость SDIO у вас максимум была 10МБ/сек. А SPI может работать с SCLK до 25МГц - т.е. около 3МБ/сек. Разница в длительности картинок должна быть соответственно 1/3 или 1/4 (судя по кол-ву линий IO). Возможно, что если запустите SPI на макс. скорости, то получите сравнимые показатели тока потребления.
|
|
|
|
|
Feb 2 2018, 07:49
|
Знающий
Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847
|
Цитата(aaarrr @ Jan 31 2018, 11:34) Только данные, по каждой линии отдельно. Тут есть путаница, .....хотя бы потому, что для вывода всего CRC16(CCITT) по ОДНОЙ линии требуется 16 тактов, хотя на эпюрах на это выделяется 4 такта. Неувязочка явная! Ответ на этот вопрос резко бы упростился, если кто-нибудь дал пример РЕАЛЬНОЙ последовательности в четыре провода от начала до конца.
|
|
|
|
|
|
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|