реклама на сайте
подробности

 
 
> Проблема с MicroSD картой. Кто поможет?
М430
сообщение Jan 23 2008, 11:53
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 23-01-08
Пользователь №: 34 349



Уважаемые форумчане, есть к вам вопрос.

Итак, есть микроконтроллер msp430FG4618 и MicroSD карта Transcend.
Я пытаюсь организовать поддержку FAT16/32.
Для работы с карточкой я использовал техасовский пример для MMC, однако переделанный для моего конкретного применения и использования SDHC (ну это на будущее).
Для FAT-а я использовал исходники DOSFS Level 1 Version 1.02 от Lewin-а, однако также достаточно переработанные мною.

Вся эта канитель вроде бы работает нормально - создает файлы и папки, удаляет их, пишет в них небольшое количество данных.

Однако когда я запускаю запись, скажем, мегабайт 10, то в некоторый момент с карточкой что-то происходит: на ее выходе постоянно 0, не реагирует ни на какие команды, даже CMD0. Помогает только передергивание питания. Единственное похожее состояние карточки что я нашел в спецификации - это "Inactive State". Однако согласно той же спецификации карточка не может просто так войти в это состояние - только по CMD15 или несовпадения напряжения питания в команде CMD8. Но во время записи у меня посылаются только 2 команды - чтение блока CMD17 и запись блока CMD24.

Возникает такая ситуация каждый раз по-разному - может 100 секторов записать, может 5000. Но происходит все время при перезаписи сектора таблицы размещения - т.е. секторов, которые используются многократно. Может есть какая-то хитрость при работе с карточками? У кого есть опыт, поделитесь.

Заранее спасибо
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
etoja
сообщение Jan 24 2008, 05:13
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



Проверьте:
1)наличие подтягивающих резисторов и антизвоновых конденсаторов на сигнальных линиях карточки памяти, как это указано в прилагаемой документации.
2) наличие керамического конденсатора 1uF параллельно питанию карточки рядом с контактами разъёма карточки.

У меня непрерывная запись в файл длиной 1Гигабайт идёт устойчиво (использую FAT16).

Напишите тестовую программу: непрерывная запись и чтение сектора по абсолютному адресу.
Если она проходит удачно, значит у вас ошибка в реализации FAT.

Хотя может быть просто плохой контакт карточки в разъёме.
Прикрепленные файлы
Прикрепленный файл  SD_connection.pdf ( 253.73 килобайт ) Кол-во скачиваний: 695
 
Go to the top of the page
 
+Quote Post
М430
сообщение Jan 24 2008, 07:12
Сообщение #3





Группа: Участник
Сообщений: 14
Регистрация: 23-01-08
Пользователь №: 34 349



Цитата(etoja @ Jan 24 2008, 07:13) *
Проверьте:
1)наличие подтягивающих резисторов и антизвоновых конденсаторов на сигнальных линиях карточки памяти, как это указано в прилагаемой документации.
2) наличие керамического конденсатора 1uF параллельно питанию карточки рядом с контактами разъёма карточки.

У меня непрерывная запись в файл длиной 1Гигабайт идёт устойчиво (использую FAT16).

Напишите тестовую программу: непрерывная запись и чтение сектора по абсолютному адресу.
Если она проходит удачно, значит у вас ошибка в реализации FAT.

Хотя может быть просто плохой контакт карточки в разъёме.


Хорошая у вас документация. А в даташите на мой Transcend TS1GUSD вообще рекомендуемой схемы подключения нет.
Резисторы подтягивающие не ставил, т.к. 430 хорошо удерживает свои порты, еще ни разу не видел чтобы они у него плыли. Но попробую, если ничего не поможет. Конденсаторы на линии - это же только для больших частот обмена. Я пробовал запускать на 250 кГц SPI синхросигнала - и все равно то же самое.
Питание я заподозрил с самого начала, хотя там стоит 0,1 + 2,2 мкф параллельно. Даже тектрониксом смотрел насчет проседаания питания в моменты стирания/записи. И ничего не увидел. Но сегодня с утра пропаял конденсаторы еще раз - может поможет?

Ошибки в ФАТ нет, уже проверял. Виснет именно на низкоуровневых функциях чтения/записи сектора. Да и сомнительно, что неправильная реализация ФАТ могла бы так повесить карту.

А вот с контактами это грустно - надо выпаивать разъем, ведь так не проверить контакт. Хотя я шатал плату в момент работы и зависимости между зависанием и механическим воздействием не заметил.
Go to the top of the page
 
+Quote Post
yarunt
сообщение Jan 24 2008, 09:27
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476



Цитата(М430 @ Jan 24 2008, 10:12) *
Хорошая у вас документация. А в даташите на мой Transcend TS1GUSD вообще рекомендуемой схемы подключения нет.
Резисторы подтягивающие не ставил, т.к. 430 хорошо удерживает свои порты, еще ни разу не видел чтобы они у него плыли. Но попробую, если ничего не поможет. Конденсаторы на линии - это же только для больших частот обмена. Я пробовал запускать на 250 кГц SPI синхросигнала - и все равно то же самое.
Питание я заподозрил с самого начала, хотя там стоит 0,1 + 2,2 мкф параллельно. Даже тектрониксом смотрел насчет проседаания питания в моменты стирания/записи. И ничего не увидел. Но сегодня с утра пропаял конденсаторы еще раз - может поможет?

Ошибки в ФАТ нет, уже проверял. Виснет именно на низкоуровневых функциях чтения/записи сектора. Да и сомнительно, что неправильная реализация ФАТ могла бы так повесить карту.

А вот с контактами это грустно - надо выпаивать разъем, ведь так не проверить контакт. Хотя я шатал плату в момент работы и зависимости между зависанием и механическим воздействием не заметил.

В момент записи ток потребления выростает в 3 раза,может стабилизатор не справляется?


--------------------
Нельзя впихнуть,невпихуемое?МОЙ БЛОГ
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 11:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01368 секунд с 7
ELECTRONIX ©2004-2016