Доброго всем дня!
Что-то я всю голову сломал. Имеется AT45DB041B. Хотел предварительно ее запрограммировать, прежде чем в разрабатываемый девайс впаивать. Есть такой программатор "Хамелеон". В нем на Си подобном языке можно писать собственные модули для программирования микросхем. Есть кабель STK200/300 совместимый. Написал модуль для этой ИМС. Ну не получается записать и считать одно и тоже. Полагаю, что конечно возможны ошибки в логике. Хорошо. В программаторе есть возможность вручную выставлять и читать все биты LPT-порта. Так я уже вручную смоделировал ситуацию чтения регистра состояния. Считывается 98h, хотя должно быть 9Ch (судя по мануалу). Ну не получается 9Ch никак. Кабель нормальный, претензий к "Хамеленону" нет - я им уже несколько видов контроллеров зашивал. Может что есть какие-нибудь тонкости для работы с DATAFLASH? Пните что-ль, не обижусь. Сам я вот как делаю. Выставляю CS=1, SCK=0, SI=0. Затем CS=0, код команды D7h побитно, старшим битом вперед, тактируется последовательностью SCK=1, SCK=0. На 8 такте, по заднему фронту SCK на SO должен появиться старший бит из регистра состояния (это опять же судя по графикам в мануале). Затем еще семь импульсов и оставшиеся 7 бит. Все это и появляется, но только 98h а не 9Ch. И не понятно вот еще что, на графике в мануале 0-й бит появляется после 16-го импульса SCK. Я специально нарисовал на бумаге этот график - получается после
15-го. Чего я не понимаю?