[noticered]В этой теме: вопросы, ответы, готовые решения по работе Postal2 с SPI FLASH xx25Xxx [/noticered]
[cvetblue]
Инструкция по работе в режиме "SPI FLASH"
Итак, начнём. Берём джиг на 74НС244 (либо подключаем к нужному разъёму, при использовании maTrieha в качестве прогера), флешь вытаскиваем из платы и ставим в панельку прогера (для примера в панель вставлена метровая (1М) EN25T80), подключаем к LPT порту, подаём питание. Запускаем прогу Postal2
Основные функции проги описаны в этой теме, так что дублировать не буду. Выбираем режим SPI Flash и переходим к вкладке Setting (Настройки)
Здесь выбираем нужный порт и джиг, а так же рекомендую оставить автоопределение флеши (галочка в AutoSize), режим Clear-Restore (стирание-запись) или All Clear (просто полное стирание) в зависимости от того, что хотим сделать. Режим Vcc=0 используем для безопасного извлечения микросхемы (при необходимости)
Можем не ставить автоопределение, а выбрать её размер из списка. Так же можно стереть только сектор Sector Erase или разблокировать микросхему Unblock (если в ней активированы биты защиты, хотя встречаются они достаточно редко). После всех настроек жмём ОК и переходим к следующему шагу
Жмём Version, в лог-окне видим, что всё в порядке, далее - Read
Идёт чтение (внизу видно, как будет дразниться слитый дамп: backup_SPI_001. С каждой последующей считкой номер backup_SPI увеличится на "1" и так далее, пока не будет сделан сброс)
После считки происходит верефикация (повторное считывание и сравнение), если галочка в окошке Auto не убрана
Ну вот, прога говорит, что у нас всё получилось, считка и проверка прошли успешно
Считаный дамп находится в том же месте, где и прога
Переходим к записи. Выбираем нужный файл (жмём open и указываем путь) и жмём Write (запись)
Так как у нас выбран режим Clear-Restore (стирание-запись), то сначала происходит стирание
А уже потом непосредственно запись. (Либо сначала нужно было стереть всю или сектор, а потом жать на запись)
Проходит проверка считыванием записанного дампа
Процесс записи успешно завершён. Дамп во флеши, инфа - в окне
Не забываем пополнять обменник свежими прошивками, желаю успехов [/cvetblue]
Галку байтовой записи для SST тоже необязательно ставить - при установленной он просто пропустит некоторые тесты, а так всё равно найдёт, чего микре надо
________
Как пользоваться режимом SPI Flash. Чтобы осторожно сменить чип, используйте кнопку Vcc=0 в свойствах. Напряжение на всех управляемых пинах будет установлено =0 , но только для LPT, на который сконфигурирован режим SPI, даже если вошли в свойства с другого режима. Можно сделать Vcc=0 для другого LPT, временно выбрав его в свойствах SPI, сохранять не обязательно. После нажатия Vcc=0 не нужно ничего трогать и выходить из свойств до смены чипа. Чтобы проверить контакт чипа в сокете, используйте кнопку "Status", поскольку запрос версии чипа у каждого свой, ответил - хорошо, нет - может, потом добавим для него соотв. команду. Для удобства чтения статус-регистра приведён также бинарный вид, чтоб наглядно была видна блокировка секторов ( опять же у всех по-разному, но если 0 - то всё чисто точно, блокировки нет ) . Если блокировка видна - выберите в свойствах, что с ним (статус-регистром) делать ( касается записи и стирания ) .
По режиму стирания (SPI) - нет ничего страшного, если запустить его повторно (не трогая статус). Чип будет проверен на стёртость. Это можно сделать, выполнив чтение - но при чтении создаётся лишний файл. Насчёт файлов - бэкапы никогда не затирают друг друга, удаляются "вручную" . Используется "current directory", прога "щупает" её при старте, и всё валит туда улыбка . Текущие номера бэкапов запоминаются только если сохраняется конфиг, по "save" например. После обнуления номера тоже нужен "save".
******** ЕЩЁ РАЗ ПРО СТАТУС-РЕГИСТР ******* Когда проверяете контакт с микрой нажимая "статус" - именно содержимое статус-регистра и будет показано. У большинства новых (не у всех !) мсх он будет весь =0, или "00000000". Это значит, что микра открыта для записи-стирания полностью. Но если видны единицы - например "00111100", то записать-стереть микру сразу не получится, поскольку она "заблокирована". Целиком или частично - зависит уже от производителя. Самый правый ноль удобен тем, что он всегда ноль улыбка . Устанавливается в "1" только когда запись "в прогрессе". Ну и рядом с ним обычно ноль, это защёлка разрешения записи обычно. Если микра не контачит, то нажатие "статус" даст "11111111" из-за подтяжки сигнала, берущегося с микры, к "1". Ну тоесть как и если ничего не подключено. Прога работает со статус-регистром несколько необычно. Это связано с необходимостью режима, восстанавливающего биты как перед записью - "Clear-restore". Clear-restore запускается _ВСЕГДА_ и _ТОЛЬКО_ при выполнении записи либо стирания. Однако поскольку стирание находится в свойствах, оно берёт установку немедленно, для записи необходимо выйти из свойств кнопкой "Окей" с сохранением в конфиг-файл. То есть сама по себе установка режима работы со статусом ничего не делает, а повлияет при последующей записи (стирании). А если микросхема новая, а хочется её заблокировать ? Выбираем "All Set" и прога в конце операции (напр. записи) пошлёт в статус "FF", всё што возможно при этом установится. А если мы хотим заблокировать, но уже всё записано ? -Нет проблем, "All Set" и начинаем запись тем же файлом, и тут же прерываем запись, а завершающая процедура установит статус . Также не забываем, что у микры есть ножка write protect, которая в разных мсх работает по-разному, но чтобы не мешала, надо цеплять её к Vcc (то есть плюс питания), а распаянная микра может иметь её на земле (легко). ***************** ПОЭТОМУ : - "не читать" прога не может, по причине того, что операция стандартная, то есть читает _точно_. - прежде чем говорить "не пишет" - проверьте, не заблокирован ли статус и выберите режим его обнуления. - если всё-таки не идёт - ссылку на даташит надо мне и скорректируем под конкретную микру, хотя вроде я учёл всех. Добавка может быть сделана быстро, если действительно найдётся "хитрая" микра. - запись по скорости больше типом микры ограничена, хотя размер пакета действительно прога не оптимизирует - в 90% случаев выигрыш очень мал, чтоб заморачиваться. Можно посмотреть даташит и убедиться - запись идёт внутри микры, оочень долго улыбка . Прога просто ждёт в это время. Вроде всё.
У меня вопрос к Poltal2. Каково назначение полевого тр-ра 2N7000 в JIG_ADDON? Можно ли его заменить обычным n-p-n транзистором? такое же, как и в большинстве телевизоров - уровни согласовывать, 3 к 5. Обычным заменять не стОит, чтобы не расшатывать надёжность. Если LPT 3-вольтовый, то всё можно питать от 3-х, и level shifter не нужен. А так вообще согласование уровня для SPI критично.