Romeo13Cs 0 20 июля, 2023 Опубликовано 20 июля, 2023 · Жалоба Доброго времени суток, товарищи программисты. Тема имеет посредственное отношение к AVR, но не нашелся куда еще написать (надеюсь модераторы поправят если что) Ситуация следующая: имею плату с ATMega88, к которой прикручен разъем под микро SD карту (подключение по SPI, питание 3.3 В вся плата). Пользуясь разными источниками, накидал функции инициализации карточки и чтения блоков (запись пока не очень интересует). Вставляю отформатированную виндой в FAT32 флешку на 32 Гб. Инициализация проходит успешно, карта переходит в режим Idle, затем возвращает, что инициализирована и флаг HC, то есть до этого момента всё ожидаемо. Далее считываю блок по адресу 0, отправляю по UART буфер для контроля, сравниваю с тем, что прочел с этой же карты с помощью программы HxD, и данные отличаются. Причем очень. Более того, я выполнил поиск полученных данных по всей карте, и нашел этот кусок данных совсем в другом блоке, причем со смещением. То есть данные, которые идут в начале полученного по UART блока, располагаются совсем в другом блоке и не с нулевого смещения. Но что больше всего меня вводит в ступор, полученный по UART блок данных заканчивается стандартным 55 AA 😵 Резюмирую: Считанный авркой блок 512 байт по адресу 0: [кусок 1] [кусок 2] [55 AA]. Считанный HxD блок 512 байт по адресу не 0: [кусок ?] [кусок 1] [кусок ?] [55 AA]. Вставлял другую карту на 16 Гб, ситуация повторилась, правда я не искал полученные данные по всей карте. Но данные отличались. В симуляторе Proteus работает нормально, правда образ SD я ему подсовывал полученный в WinImage объемом в несколько десятков Мб. Пробовал взять готовый пример с SD картой, как есть откомпилил залил, всё тоже самое. Есть у кого нибудь мысли, как такое может быть? Я мог бы понять проблему со смещениями при передачи адреса блока, но я считываю нулевой блок, как ни крути, но это должно быть самое начало памяти карты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 21 июля, 2023 Опубликовано 21 июля, 2023 · Жалоба В 20.07.2023 в 04:08, Romeo13Cs сказал: сравниваю с тем, что прочел с этой же карты с помощью программы HxD, и данные отличаются. Причем очень. А уверены в том, что программа читает физические сектора, а не логические? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Romeo13Cs 0 24 июля, 2023 Опубликовано 24 июля, 2023 · Жалоба On 7/21/2023 at 4:09 PM, mantech said: А уверены в том, что программа читает физические сектора, а не логические? Блин, точно, ларчик просто открывался. Там есть вариант открыть физический или логический диск, и я разумеется открывал логический. Получается проблем с чтением нет, есть проблема с пониманием как найти начало логического диска на физическом. Я просто использовал стороннюю библиотеку FAT32, думал подсовываю ей нулевой сектор и всё должно работать. Спасибо большое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться