Калламаш
Солнце 21 января 2018 13:56
Привет, моя настройка - Maple Mini с тактовой частотой до 128 МГц,
SPI (1) приводится в движение часовым прерыванием, кормление SREGS и ЦАПс.
SPI (2) кормит OLED и SD в цикле.
Я начал с 250 МБ.
Карты 4 ГБ, образованные для FAT32,16 Любое размер единицы, разные предварительные изделия SPI....начинать(); даже не возвращает правдоподобие. (2 совершенно новых карт SD);
Известный формированный SD вытащил модуль дедушки Eurorack Forom (Arduino и SD.h) не работает.
Любая подсказка?
SPI (1) приводится в движение часовым прерыванием, кормление SREGS и ЦАПс.
SPI (2) кормит OLED и SD в цикле.
Я начал с 250 МБ.
Карты 4 ГБ, образованные для FAT32,16 Любое размер единицы, разные предварительные изделия SPI....начинать(); даже не возвращает правдоподобие. (2 совершенно новых карт SD);
Известный формированный SD вытащил модуль дедушки Eurorack Forom (Arduino и SD.h) не работает.
Любая подсказка?
Пито
Солнце 21 января 2018 г. 14:26
Чем меньше SDCARD, тем быстрее. Попробуйте уменьшить часы.
Начать с 72 МГц основных часов и 9-18 МГц SPI для SDCARD.
Начать с 72 МГц основных часов и 9-18 МГц SPI для SDCARD.
Mrburnette
Солнце 21 января 2018 г. 15:01
Форматирование SD для любого встроенного устройства должно быть сделано с официальным форматером SD: ЗДЕСЬ
Сделайте это даже с новыми картами, чтобы установить базовую линию.
С SD, раковина может быть проблематичной, даже небольшая раковина с короткими прыгунами может внести достаточный сдвиг импеданса, чтобы карта может просто отказаться от правильной работы. Если вам абсолютно необходимо установить SD -читатель, обязательно сохраните минимальную проводку и чисто припаять соединения, ведущие обратно к UC. ИМО, разгрузка просто добавит к проблемам SD на встроенных системах, и я настоятельно рекомендую не делать этого.
Таблица емкости здесь.
Луча
Сделайте это даже с новыми картами, чтобы установить базовую линию.
С SD, раковина может быть проблематичной, даже небольшая раковина с короткими прыгунами может внести достаточный сдвиг импеданса, чтобы карта может просто отказаться от правильной работы. Если вам абсолютно необходимо установить SD -читатель, обязательно сохраните минимальную проводку и чисто припаять соединения, ведущие обратно к UC. ИМО, разгрузка просто добавит к проблемам SD на встроенных системах, и я настоятельно рекомендую не делать этого.
Таблица емкости здесь.
Луча
AG123
Солнце 21 января 2018 г. 15:33
Вы используете SD Fat Greiman?
https: // github.com/greiman/sdfat
, Есть несколько примеров, таких как чтение информации SD
https: // github.com/greiman/sdfat/tree/m ... LES/SDINFO
Возможно, стоит попробовать их так, как будто sdinfo не работает, проблема может быть самой подключением (E.глин. Скорость SPI и т. Д.)
Если подключение будет хорошо, то следующим будет выяснить другие вещи, такие как формат жира и т. Д
Я использую 4 -SD -карту 8 ГБ на SPI2, и казалось, что она работает, я использую 72 МГц по умолчанию по умолчанию
Инициализация выглядела примерно так, в значительной степени из примеров
https: // github.com/greiman/sdfat
, Есть несколько примеров, таких как чтение информации SD
https: // github.com/greiman/sdfat/tree/m ... LES/SDINFO
Возможно, стоит попробовать их так, как будто sdinfo не работает, проблема может быть самой подключением (E.глин. Скорость SPI и т. Д.)
Если подключение будет хорошо, то следующим будет выяснить другие вещи, такие как формат жира и т. Д
Я использую 4 -SD -карту 8 ГБ на SPI2, и казалось, что она работает, я использую 72 МГц по умолчанию по умолчанию
Инициализация выглядела примерно так, в значительной степени из примеров
// Initialize at the highest speed supported by the board that is
// not over 50 MHz. Try a lower speed if SPI errors occur.
if (!sd.begin(chipSelectpin, SD_SCK_MHZ(50))) {
sd.initErrorHalt();
}
Калламаш
Солнце 21 января 2018 г., 17:06
Ты тебя. Я переоделся на 72 МГц, карты уже были образованы официальными SDFormater.
После добавления вывода ошибки, последовательные плиты на меня это.
[AG123 - Солнце 21 января 2018 г. 15:33] - Возможно, стоит попробовать их так, как будто sdinfo не работает, проблема может быть самой подключением (E.глин. Скорость SPI и т. Д.)Я езжу на дисплее из того же порта с DMA и двойным буфером, но перед тем, как аксировать SD, он ждет, пока он закончит.
Если подключение будет хорошо, то следующим будет выяснить другие вещи, такие как формат жира и т. Д
Я использую 4 -SD -карту 8 ГБ на SPI2, и казалось, что она работает, я использую 72 МГц по умолчанию по умолчанию
Инициализация выглядела примерно так, в значительной степени из примеров
После добавления вывода ошибки, последовательные плиты на меня это.
Can't access SD card. Do not reformat.
SD errorCode: 0X43,0X5
Калламаш
Солнце 21 января 2018 г., 17:18
Кстати, я только что вытащил 16 ГБ один из старого телефона, и он работает без формирования на 64 МГц SPI Clock-нет.
AG123
Солнце 21 января 2018 г., 17:39
Я также в значительной степени новичок в технологии SD Cards, я думаю, что подсказка о том, что вполне может быть в SD упрощенных спецификациях
https: // www.SDCARD.орг/загрузки/pls/
В частности, часть 1 упрощенная физическая упрощенная спецификация
Раздел 4.7.4 Перечислите различные подробные описание команды, начало p.86
Раздел 4.9 ответов подробно описывают ответы, начальные p.98
Ответы, по -видимому, связаны с командами SDIO, поскольку разные команды имеют разные форматы ответов
Тем не менее, это, кажется, предполагает, что это как -то связано с самой картой *, а не с чем -то, что связано с форматом жира на карте.
Ваш последний ответ на карте 16 ГБ, казалось, подтвердил это
Раздел 4.10.1 карта Статус начала p101
Я делаю дикое предположение, это должно быть 32 -битное поле, но в ответ есть только более низкие 16 бит
Предполагая, что кулачный байт является самым низким байтом
0x43,0x5
0x43 ~ 0100 0011
первые 2 бита зарезервированы, поэтому 3 неизвестно
7 -е бит - событие вызвано
0x05 ~ 0000 0101
бит 0 - готов к данным
Бит 3 - Сброс стирания - последовательность стирания была очищена перед выполнением, потому что была получена команда с эксплуатационной последовательности
Это было бы немного странно, так как казалось, что SDFAT пытается написать что -то на карту, когда она инициализация
----------
Обратите внимание, что одна из этих вещей вполне может быть *плохими или свободными контактами *, я не слишком уверен, что SDFAT пытается написать что -то на карту, чтобы обнаружить, есть ли карта
https: // www.SDCARD.орг/загрузки/pls/
В частности, часть 1 упрощенная физическая упрощенная спецификация
Раздел 4.7.4 Перечислите различные подробные описание команды, начало p.86
Раздел 4.9 ответов подробно описывают ответы, начальные p.98
Ответы, по -видимому, связаны с командами SDIO, поскольку разные команды имеют разные форматы ответов
Тем не менее, это, кажется, предполагает, что это как -то связано с самой картой *, а не с чем -то, что связано с форматом жира на карте.
Ваш последний ответ на карте 16 ГБ, казалось, подтвердил это
Раздел 4.10.1 карта Статус начала p101
Я делаю дикое предположение, это должно быть 32 -битное поле, но в ответ есть только более низкие 16 бит
Предполагая, что кулачный байт является самым низким байтом
0x43,0x5
0x43 ~ 0100 0011
первые 2 бита зарезервированы, поэтому 3 неизвестно
7 -е бит - событие вызвано
0x05 ~ 0000 0101
бит 0 - готов к данным
Бит 3 - Сброс стирания - последовательность стирания была очищена перед выполнением, потому что была получена команда с эксплуатационной последовательности
Это было бы немного странно, так как казалось, что SDFAT пытается написать что -то на карту, когда она инициализация
----------
Обратите внимание, что одна из этих вещей вполне может быть *плохими или свободными контактами *, я не слишком уверен, что SDFAT пытается написать что -то на карту, чтобы обнаружить, есть ли карта
Стивестронг
Солнце 21 января 2018 18:17
0x43 - код для SD_CARD_ERROR_ACMD41.
https: // github.com/greiman/sdfat/blob/e ... Информация.h#171
Я бы опубликовал проблему на странице Greiman Github.
https: // github.com/greiman/sdfat/blob/e ... Информация.h#171
Я бы опубликовал проблему на странице Greiman Github.
Калламаш
Солнце 21 января 2018 г. 20:04
Я воссоздал настройку на программном обеспечении и чистом программном обеспечении и 4GB SD (проблематичная настройка - это прототип PCB) .
Я почти уверен, что настройки регистров SPI и DMA во время функции begin () не полностью переопределяют настройки, созданные Display.
Теперь, после отключения всех дисплейной связи 4GB SD Works!!
Все еще не считайте, что это решается, пока я не отследил SPI.Установка ответственности за отсутствие одного типа карт и носков.
Я почти уверен, что настройки регистров SPI и DMA во время функции begin () не полностью переопределяют настройки, созданные Display.
Теперь, после отключения всех дисплейной связи 4GB SD Works!!
Все еще не считайте, что это решается, пока я не отследил SPI.Установка ответственности за отсутствие одного типа карт и носков.
victor_pv
Пн 22 января 2018 г. 1:32
Примечание о осторожности, порт SPI1 не должен работать так быстро.
При тестировании того, что у меня было множество ошибок с помощью SD -карты.
Я решил проверить порт SPI в одиночку и подключил TX к RX, затем DMA переводил передачу. Результатом является то, что на максимальной скорости, с DMA для TX и RX и кто -то еще, что делает доступ к памяти (ЦП или другие DMA), иногда у вас есть переполнение буфера и терять байт RX. Я смог поймать, отправив буфер и сравнить то, что я получаю в RX, с тем, что я отправил в TX в конце, и, используя отладчик и глядя на регистры.
Поскольку спецификации MCU утверждают, что порты могут работать не более 18 Мбит / с, и у меня не было проблем с этой скоростью, я больше не проходил тестирование, чтобы попытаться найти способ избежать этого. Я проверил изменение приоритета канала RX DMA до самого высокого уровня и не решил проблему.
Попробуйте ту же самую настройку, которая у вас есть, но замедляйте порт до div4 или div8 и посмотрите, работает ли она. Если вам нужен более быстрый перевод из SDCARD, часто лучше получить лучшую карту с меньшей задержкой и запустить SPI на более низкой скорости, чем просто увеличить скорость SPI на медленной карте, поскольку карта просто добавит больше задержки к иметь время для обработки.
При тестировании того, что у меня было множество ошибок с помощью SD -карты.
Я решил проверить порт SPI в одиночку и подключил TX к RX, затем DMA переводил передачу. Результатом является то, что на максимальной скорости, с DMA для TX и RX и кто -то еще, что делает доступ к памяти (ЦП или другие DMA), иногда у вас есть переполнение буфера и терять байт RX. Я смог поймать, отправив буфер и сравнить то, что я получаю в RX, с тем, что я отправил в TX в конце, и, используя отладчик и глядя на регистры.
Поскольку спецификации MCU утверждают, что порты могут работать не более 18 Мбит / с, и у меня не было проблем с этой скоростью, я больше не проходил тестирование, чтобы попытаться найти способ избежать этого. Я проверил изменение приоритета канала RX DMA до самого высокого уровня и не решил проблему.
Попробуйте ту же самую настройку, которая у вас есть, но замедляйте порт до div4 или div8 и посмотрите, работает ли она. Если вам нужен более быстрый перевод из SDCARD, часто лучше получить лучшую карту с меньшей задержкой и запустить SPI на более низкой скорости, чем просто увеличить скорость SPI на медленной карте, поскольку карта просто добавит больше задержки к иметь время для обработки.
Асмаллри
Пт. 09 февраля 2018 г., 2:27
Наиболее распространенной причиной этого симптома является отсутствующий подтягивающий резистор на карте.