Доброго времени суток, уважаемые коллеги!
Предлагаю в данной теме обсуждать вопросы связанные с картами SD.
И начну, пожалуй, со своей проблемы.
Занимаюсь я проектом по разработке электронной системы управления преобразователем, в частности есть задача регистрирования и архивирования событий (температура, аварии, мощность). Данные сохраняются во внешнюю ПЗУ память. В любой момент записи можно записывать на внешний носитель, коим является SD карта памяти. И тут есть некоторые проблемы.
Что мне необходимо.
1. Искать/создавать файл на флешке.
2. Записывать данные в файл в кодировке ASCII.
Другими словами работать со структурой файловой системы FAT16/32
По началу пытался привязать библиотеку чана, но, по не понятным причинам, она не может найти файл на флешке, и уж тем более создать. Но при этом монтирование устройства происходит нормально.
Бог с ним, начал сам разбираться со структурой файловой системы и разрабатывать алгоритм поиска создания и записи данных в файл. Все шло хорошо, до момента, пока не перенес тестовый код с макета на рабочий экземпляр.
Т.е. карта инициализируется нормально, данные на нее записываются нормально, на команды возвращает 0x00 как и положено. НО когда пытаюсь считать данные карта возвращает некорректный маркер: 0xFD вместо 0xFE.
Попытался принудительно считывать информацию, которую карта отсылает. В итоге получаю что то отдаленно похожее на данные, но сдвинутые словно на один бит влево, а местами импульсы совсем короткие получаются, словно помеха.
На макетной плате без пайки все работает нормально.
Схема соединения с МК
Частота импульсов при инициализации: 125-150 кГц,
Частота импульсов во время обмена данными: Пробовал и 125-150 кГц и 1 Мгц
Напряжение питания МК: 5 В
Контроллер на макетной плате: ATmega8
Контроллер на опытном образце: ATmega128