Foxx 0 20 декабря, 2007 Опубликовано 20 декабря, 2007 · Жалоба Суть проблемы: имеется плата с 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 символов, без заглавных. Пока не глючит. Хрень какая-то. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_LD 0 20 декабря, 2007 Опубликовано 20 декабря, 2007 · Жалоба Были глюки чуть другого характера, но тоже проявлялись лишь на Transcend 80x. У меня, правда, с ней работала ПЛИСина, но не важно. Я формировал срез сигналов CE и OE одновременно, поскольку в спецификации указано, что сетап одного относительно другого 0 нс. Все это работало на разных карточках, пока не попалась Transcend 80x - ей такое обращение не понравилось. Были очень "хитрые" глюки, сейчас не вспомню, какие именно. Пришлось чуть подвинуть срез ОЕ, сделать его попозже. Может, мой опыт пригодится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Foxx 0 21 декабря, 2007 Опубликовано 21 декабря, 2007 · Жалоба Вроде разобрался... Подал на CF питание 5В вместо 3,3В. Atmega также 5-вольтовая, видимо трабл заключался в уровнях сигналов. Пока работает стабильно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться