Перейти к содержанию
    

CF глючит - запарился уже

post-4760-1198168604_thumb.jpgСуть проблемы: имеется плата с Atmega128 на борту, которая работает с CompactFlash. Плата разработана достаточно давно и до сих пор работала без проблем.

Недавно были закуплены карточки Transcend 1Gb 80x, с которой замечается следующих глюк: после включения питания плата работает нормально, память читается и пишется. Если карточку вытащить, а затем вставить "по-горячему", в 50-70% случаев возможно некорректное считывание определенных секторов (пропускаюся байты, причем всегда одни и те же). Стабильность проявляется и в том, какой именно сектор читается криво, следующие за ним сектора читаются нормально. Выводится карточка из комы выключением/включением питания. Иногда удается это сделать ее повторным вытаскиванием/вставлением. Проблема проявляется на 7 имеющихся платах и с шестью карточками (все одинаковые - Transcend 1Gb 80x). Другие карты (Transcend 256M 45x, Kingston 256M, A-Data 2Gb 120x) при подобных опытах ведут себя совершенно нормально.

На картинке приведен результат считывания сектора - внизу при нормальном чтении, свеху при кривом.

Народ, какие есть идеи? Голова уже распухла :07:

 

Вдогонку...

Заметил, что при неправильном чтении сектора теряются байты исключительно со значением 0xFF, то есть если идет подряд 5 байт 0xFF, реально считывается только 4. Поскольку глюк наблюдается при чтении корневой записи в системе FAT16, такие последовательности встречаются только у длинных имен или если имя содержит заглавные символы.

Переформатировал карточку, привел все имена в соответствии с FAT16 - не более 8 символов, без заглавных. Пока не глючит.

Хрень какая-то.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Были глюки чуть другого характера, но тоже проявлялись лишь на Transcend 80x.

У меня, правда, с ней работала ПЛИСина, но не важно. Я формировал срез сигналов CE и OE одновременно, поскольку в спецификации указано, что сетап одного относительно другого 0 нс. Все это работало на разных карточках, пока не попалась Transcend 80x - ей такое обращение не понравилось. Были очень "хитрые" глюки, сейчас не вспомню, какие именно. Пришлось чуть подвинуть срез ОЕ, сделать его попозже.

Может, мой опыт пригодится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вроде разобрался...

Подал на CF питание 5В вместо 3,3В. Atmega также 5-вольтовая, видимо трабл заключался в уровнях сигналов.

 

Пока работает стабильно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...