Вопрос по DATAFLASH

Доброго всем дня!

Что-то я всю голову сломал. Имеется 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-го. Чего я не понимаю?
Reply to
Lomaka Vladimir
Loading thread data ...

Hello, Lomaka! You wrote to <All>to All on 15 Mar 06 09:14:41:

LV> бит. Все это и появляется, но только 98h а не 9Ch. И не понятно вот еще

В мануале последние три бита Х Х Х.

With best regards, . E-mail: snipped-for-privacy@p80.f.n6023.z2.fidonet.org

Reply to
Alexander Lavrov

AL> В мануале последние три бита Х Х Х.

Странно. У меня два мануала: последний (версия С от 5.05) и какая-то предыдущая. В обоих написано так: bit7 - RDY/BUSY bit6 - COMP bit5 - 0 bit4 - 1 bit3 - 1 bit2 - 1 bit1 - 0 bit0 - 0

У вас более новый даташит?

Reply to
Lomaka Vladimir

Hello, Lomaka! You wrote to "Alexander Lavrov" snipped-for-privacy@p80.f.n6023.z2.fidonet.org>to Alexander Lavrov on 15 Mar

06 12:27:18:

AL>> В мануале последние три бита Х Х Х.

LV> Странно. У меня два мануала: последний (версия С от 5.05) и какая-то LV> предыдущая. В обоих написано так: LV> bit7 - RDY/BUSY LV> bit6 - COMP LV> bit5 - 0 LV> bit4 - 1 LV> bit3 - 1 LV> bit2 - 1 LV> bit1 - 0 LV> bit0 - 0

LV> У вас более новый даташит? От 2000г. В общем не заморачивайся. Кроме RDY/BUSY и COMP здесь еще значащие bit5-3, говорят о том что это 041.

With best regards, . E-mail: snipped-for-privacy@p80.f.n6023.z2.fidonet.org

Reply to
Alexander Lavrov

AL> От 2000г. В общем не заморачивайся. Кроме RDY/BUSY и COMP AL> здесь еще значащие bit5-3, говорят о том что это 041.

Спасибо. Немного полегчало. Теперь дальше буду биться.

Reply to
Lomaka Vladimir

AL> От 2000г. В общем не заморачивайся. Кроме RDY/BUSY и COMP AL> здесь еще значащие bit5-3, говорят о том что это 041.

Раз пошла такая песня, не просветите меня зачем нужен режим Inactive Clock Polarity Low. Зачем нужен этот лишний импульс SCK (по сравнению с SPI mode 0)? И еще - он лишний только для последовательности передачи команды или для остальных случаев тоже нужно передавать дополнительный SCK?

Reply to
Lomaka Vladimir

Hello, Lomaka! You wrote to "Alexander Lavrov" snipped-for-privacy@p80.f.n6023.z2.fidonet.org>to Alexander Lavrov on 16 Mar

06 13:46:07:

LV> Раз пошла такая песня, не просветите меня зачем нужен режим Inactive LV> Clock Polarity Low. Зачем нужен этот лишний импульс SCK (по сравнению с LV> SPI mode 0)? И еще - он лишний только для последовательности передачи LV> команды или для остальных случаев тоже нужно передавать дополнительный LV> SCK? Hадо помнить простое правило: данные на входе SI берутся по фронту SCK, а данные на выход SO выставляются по спаду SCK. Если посчитать спады, то и в mode0 и в mode3 их одинаковое количество.

With best regards, . E-mail: snipped-for-privacy@p80.f.n6023.z2.fidonet.org

Reply to
Alexander Lavrov

AL> Hадо помнить простое правило: данные на входе SI берутся по фронту SCK, AL> а данные на выход SO выставляются по спаду SCK. Если посчитать спады, AL> то и в mode0 и в mode3 их одинаковое количество.

Да, это я понял. Я имел ввиду еще два режима, которые к SPI не относятся. У них и код команд чтения другой. Бьюсь уже третий день и все без толку. Записываю байт 0 - читается 0, 01 - 01, а записываю 02 - читается 03. Какой-то сдвиг происходит. Уже вручную эти чертовы биты подаю...

Reply to
Lomaka Vladimir

Hello, Lomaka! You wrote to "Alexander Lavrov" snipped-for-privacy@p80.f.n6023.z2.fidonet.org>to Alexander Lavrov on 16 Mar

06 17:19:18:

LV> Я имел ввиду еще два режима, которые к SPI не LV> относятся. У них и код команд чтения другой Это какие?

LV> Бьюсь уже третий день и все без толку. Записываю байт 0 - читается 0, LV> 01 - 01, а записываю 02 - читается 03. Какой-то сдвиг происходит. Уже LV> вручную эти чертовы биты подаю... Hу не знаю, у меня проблем с атмеловскими флешками не возникало. Вернее были, но совсем по другому поводу. Ищи ошибки в коде. К стати, на чем реализовано?

With best regards, . E-mail: snipped-for-privacy@p80.f.n6023.z2.fidonet.org

Reply to
Alexander Lavrov

AL> Это какие?

Ну например, чтение первого буфера: 54h - non SPI-mode, 0D4h - SPI-mode И это относится ко всем командам чтения. Команды записи не отличаются.

AL> Hу не знаю, у меня проблем с атмеловскими флешками не возникало. AL> Вернее были, но совсем по другому поводу. Ищи ошибки в коде.

Я тоже так думаю. Но вручную, побитно прогоняю, тоже нефига не получается.

AL> К стати, на чем реализовано?

Я в первом вопросе писал - программатор "Хамелеон". Он имеет возможность подключать к себе модули, написанные на СИ-подобном языке. Причин жаловаться на программатор - нет. На нем же зашивал и ATmega16 и кучу AT89LS53. Причем, модули самописные были под эти МК. Тут мне прислали пример работы с DATAFLASH. Поразбираюсь еще, где затык. Ну вообщем, ладно я снимаю этот вопрос. Попробовал через МК со встроенным SPI программировать DATAFLASH - все получилось. Проще мне будет прямо в системе залить данные в нее.

Reply to
Lomaka Vladimir

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.