aaarrr 63 31 января, 2018 Опубликовано 31 января, 2018 · Жалоба Проще гонять в сдвиговом регистре полином сразу по 4м линиям, чем 4мя по каждой из линий... Что может быть проще, чем иметь четыре сдвиговых регистра на выходе сериализатора? Минимум манипуляций с данными, минимум логики. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 1 февраля, 2018 Опубликовано 1 февраля, 2018 · Жалоба Что может быть проще, чем иметь четыре сдвиговых регистра на выходе сериализатора? Минимум манипуляций с данными, минимум логики. Смеётесь?.... В 4 раза больше логики в вашем случае! (16 триггеров против 64х). Есть только одно объяснение этому "безобразию",- вариант применения одной линии данных вместо четырех. Тогда берется для этого один регистр из четырех. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 1 февраля, 2018 Опубликовано 1 февраля, 2018 · Жалоба Смеётесь?.... В 4 раза больше логики в вашем случае! (16 триггеров против 64х). 16? Т.е. тактировать свой вычислитель с 4x частотой интерфейса - это не безобразие? А логику, которая будет перекладывать полученное значение CRC в сериализатор, решили и не считать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 10 1 февраля, 2018 Опубликовано 1 февраля, 2018 · Жалоба Смеётесь?.... А смысл обсуждать это? Есть стандарт - нужно ему следовать. Если 4 вычислителя не охота делать принципиально, то можно с картой общаться в SPI-режиме, и вообще без какой-либо проверки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 34 1 февраля, 2018 Опубликовано 1 февраля, 2018 · Жалоба А смысл обсуждать это? Есть стандарт - нужно ему следовать. Если 4 вычислителя не охота делать принципиально, то можно с картой общаться в SPI-режиме, и вообще без какой-либо проверки. Если только скорость вообще не важна Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 1 февраля, 2018 Опубликовано 1 февраля, 2018 · Жалоба Если только скорость вообще не важна А какой реальный выигрыш от использования SDIO вместо SPI не на коне в вакууме, а на типичном Cortex-M? Загруженном кроме гоняния байтов с SD ещё и другими задачами. В Мб/сек или в %. Есть-ли вообще смысл тратить гораздо больше ног МК, которые, как правило, всегда в дефиците? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 10 1 февраля, 2018 Опубликовано 1 февраля, 2018 · Жалоба А какой реальный выигрыш от использования SDIO вместо SPI не на коне в вакууме Действительно, реальная карта очень медленная. Т.е. по быстрому интерфейсу ей прилетает команда, спустя какое-то время карта по быстрому интерфейсу отвечает, а данные сектора выдаст гораааздо позже, но очень быстро. Применение SDIO в связке с DMA позволяет сильно разгрузить МК, хотя я делал и на SPI+DMA+ISR с деревом из callback-функций. С учетом того, что карта может приспокойно "задуматься" на полсекунды даже в режиме чтения, jcxz весьма справедлив. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 1 февраля, 2018 Опубликовано 1 февраля, 2018 · Жалоба С учетом того, что карта может приспокойно "задуматься" на полсекунды даже в режиме чтения, jcxz весьма справедлив. Я даже не об этом говорю, а о том что на практике я писал драйвер SD через SPI на Cortex-M 120МГц. И получал скорость потокового чтения с карты немного больше 1МБ/сек (естественно SPI+DMA). Даже просто прокачка такого потока через средний Cortex-M сильно его нагрузит. Не говоря уже о том, что наверное МК должен как-то ещё и обрабатывать этот поток. При более-менее содержательной обработке читаемых/записываемых данных, скорость обработки этих данных вряд-ли будет выше 1МБ/сек, а скорей всего - гораздо ниже. Тогда такой скорости SPI вполне хватает. И это при том, что я даже не оптимизировал свой драйвер - возможно получил бы гораздо бОльшую скорость (SPI-флешки у меня работают на SCLK до 40МГц). Вобщем: при реальной работе с SD, а не мерянии попугаев, сама обработка данных будет больше тормозить, чем обмен с SD по SPI. Имха. Так что польза от SDIO на типичных Cortex-M - сомнительна. Тоже - имхо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 25 1 февраля, 2018 Опубликовано 1 февраля, 2018 · Жалоба А какой реальный выигрыш от использования 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. С учетом того, что карта может приспокойно "задуматься" на полсекунды даже в режиме чтения, jcxz весьма справедлив. Моя карта имеет право задуматься на 250мс в режиме чтения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 1 февраля, 2018 Опубликовано 1 февраля, 2018 · Жалоба Насколькоя я знаю скорость 50.00МГц предусмотрена стандартом только в режиме SDIO. Просто передаёт с SD на USB? Это карт-ридер? :rolleyes: Конечно, если делать карт-ридер, то здесь имеет смысл. Я же писал про использование SD для нужд хранения и содержательной обработки данных самой программой МК. Единственный вариант: это если данные медленно накапливать на SD при работе устройства, а потом быстро слить в комп не вынимая карты. Моя карта имеет право задуматься на 250мс в режиме чтения. Да уж.... :crying: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 25 1 февраля, 2018 Опубликовано 1 февраля, 2018 · Жалоба Единственный вариант: это если данные медленно накапливать на SD при работе устройства, а потом быстро слить в комп не вынимая карты. Да что-то подобное. Просто передаёт с SD на USB? Это карт-ридер? :rolleyes: В режиме чтения накопленной или обработанной информации - что-то типа карт-ридера. И естественно, чем быстрее считается - тем удобнее. Конечно, если делать карт-ридер, то здесь имеет смысл. Я же писал про использование SD для нужд хранения и содержательной обработки данных самой программой МК. Для нужд записи - тоже имеет смысл при ограничении по потреблению и пульсациям по питанию. Вот ток потребления в режиме SPI: А вот в режиме SDIO: Видно, что среднее потребление при записи - в режиме SDIO в 2.5 раза меньше, за счёт меньшего времени передачи данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 1 февраля, 2018 Опубликовано 1 февраля, 2018 · Жалоба Для нужд записи - тоже имеет смысл при ограничении по потреблению и пульсациям по питанию. ... Видно, что среднее потребление при записи - в режиме SDIO в 2.5 раза меньше, за счёт меньшего времени передачи данных. Зато судя по картинкам - пульсация тока в режиме SDIO в ~2 раза больше :rolleyes: Да и судя по длительностям осциллограмм - сравниваете SDIO работающий на высокой скорости и SPI работающий на медленной скорости - так сравнивать не корректно. Вы сами писали, что скорость SDIO у вас максимум была 10МБ/сек. А SPI может работать с SCLK до 25МГц - т.е. около 3МБ/сек. Разница в длительности картинок должна быть соответственно 1/3 или 1/4 (судя по кол-ву линий IO). Возможно, что если запустите SPI на макс. скорости, то получите сравнимые показатели тока потребления. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 34 1 февраля, 2018 Опубликовано 1 февраля, 2018 · Жалоба Вы сами писали, что скорость SDIO у вас максимум была 10МБ/сек. А SPI может работать с SCLK до 25МГц - т.е. около 3МБ/сек. Разница в длительности картинок должна быть соответственно 1/3 или 1/4 (судя по кол-ву линий IO). Возможно, что если запустите SPI на макс. скорости, то получите сравнимые показатели тока потребления. Только заметьте разницу - "корость SDIO у вас максимум была 10МБ/сек" и "А SPI может работать с SCLK до 25МГц - т.е. около 3МБ/сек" - только первое реально работает, а второе - только ваш прогноз, который не учитывает обработку команды в карте и накладные расходы, а именно больше полутора мегов в сек не получите по спи. Другое дело - если задача скинуть файл пару кб раз в сек. то какой интерфейс - без разницы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 1 февраля, 2018 Опубликовано 1 февраля, 2018 · Жалоба Насколькоя я знаю скорость 50.00МГц предусмотрена стандартом только в режиме SDIO. Нет, режим High-Speed распространяется в том числе и на подключение через SPI. P.S. SDIO и SD - это все-таки совершенно разные вещи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 2 февраля, 2018 Опубликовано 2 февраля, 2018 · Жалоба Только данные, по каждой линии отдельно. Тут есть путаница, .....хотя бы потому, что для вывода всего CRC16(CCITT) по ОДНОЙ линии требуется 16 тактов, хотя на эпюрах на это выделяется 4 такта. Неувязочка явная! Ответ на этот вопрос резко бы упростился, если кто-нибудь дал пример РЕАЛЬНОЙ последовательности в четыре провода от начала до конца. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться