[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено dvg 25 июня 2002 г. 19:10
В ответ на: Ответ: Буду биться и проверять... отправлено DimaT 25 июня 2002 г. 11:25

2) Вы пробовали провести более однозначный эксперимент - считывать ридером в цикле первые 16 байт нулевого блока карты и смотреть осциллографом? Вот именно такой эксперимент (естественно, он должен быть проведен на заведомо правильно отформатированной карте с заведомо исправным нулевым блоком) Вы проводили?
>2) Такой эксперимент проводил (адрес1=00, адрес2=00, адрес3=00). Осциллограф молчал...

Вот это уже что-то. Поскольку это очевидно неверный результат конкретно при чтении, то, мне кажется, стоит попытаться добиться правильного именно здесь. Навскидку видятся 2 причины такого результата:
1) Вам "повезло", и у Вас оказалась карточка с дефектным нулевым блоком (для той довольно старой карточки, о которой Вы говорили, Samsung это еще допускал; для более новых и карточек большего объема это уже невозможно). В этом случае стоит попробовать другую карточку;
2) Вы допустили ошибку в эксперименте с осциллографом, например: Вы ведь для проведения этого эксперимента написали специальный тест, который читает блок в цикле. Предположим, что Вы допустили ошибку в этом тесте (текста его Вы не нам не давали) и блок правильно читается только первый раз, а остальные не читается. Понятно, что на осциллографе Вы ничего не увидите. Можно попробовать зафиксировать результат первого же чтения каким-то образом (передавать результат чтения по какому-то другому каналу, вывести первый прочитанный байт на ножки порта и не менять его, воспользоваться логическим анализатором или эмулятором, наконец :). Ну и я бы осциллографом (двухлучевым) попробовал посмотреть соотношение сигналов we и busy. Хоть у Вас там в программе опросов busy и много, но вдруг чего-то все же не учли.


P.S.: Мне в начале казалось, что неправильная установка адреса, но вроде все толково (иначе как же при записи я попадаю на тот блок, который хочу? А при чтении используется та же подпрограмма задачи адреса, что и при записи). Ладно, буду биться дальше...

Ну в общем да - это загадка. Но по опыту могу сказать, что попытки решать загадки по их внешним признакам удается очень редко :) Правильнее все же с самого идти с самого низа по маленьким шагам. И конечно, именно в таких редких случаях эмулятор может реально помочь, поскольку позволяет ставить более прозрачные эксперименты.

P.S. Ну а вообще эти карты работают, причем в полном соответствии со спецификацией. Так что не расстраивайтесь - все у Вас получится :)

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru