Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: DATA FLASH AT45-161 есть много простых вопросов
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Склихасовский
Люди подскажите пожалуйста...
вот я начал писать на авр драйвер для дата флешки .
вроде пока все получается...
мне непонятно вот что...
процесс записи:
1. по опкоду $84(Buffer 1 Write) записываю 528 байт в буфер 1
2 по опкоду $82 (Main Memory Page Program Through Buffer 1) записываю это дело во флеш
3 по опкоду $d7 (Status Register Read) читаю статус и по 7 биту определяю, закончина запись или нет
.---
вопрос вот вчем:
все ли правильно я делаю
и ещё:
я перед этим, сектор в который пишу НЕ стираю - а запись все равно пишется, и вроде без ошибок
для чего тогда стирание?
aaarrr
Цитата(Склихасовский @ Jan 10 2007, 20:55) *
2 по опкоду $82 (Main Memory Page Program Through Buffer 1) записываю это дело во флеш

Здесь ошибка: нужно $83 (Buffer to Main Memory Page Program With Built-in Erase).
Или выбросить п.1 и загружать данные вместе с командой $82 (Main Memory Page Program Through Buffer 1).

Цитата(Склихасовский @ Jan 10 2007, 20:55) *
я перед этим, сектор в который пишу НЕ стираю - а запись все равно пишется, и вроде без ошибок
для чего тогда стирание?

Для ускорения записи.
Склихасовский
а можете ппростыми словами рассказать как работает команда 82 и почему
нужно отказаться от п1?
и ещё вопрос на сколько повысится скорость записи если странички предвариательно стирать
(я понимаю все это в шите есть, но я учу хранцузский чтоб его.... :- поэтому все тока на знакомых словах держится)
aaarrr
Команда 82 совмещает в себе действия 84 и 83, то есть помещает данные в буфер и немедленно начинает запись страницы памяти. При записи без стирания скорость возрастет примерно в полтора раза.
Склихасовский
Ага Спасибо!
завтра подправлю...
если чего - ещё спрошу....
:-)
sseett
Цитата
я перед этим, сектор в который пишу НЕ стираю - а запись все равно пишется, и вроде без ошибок
для чего тогда стирание?

Команда $82 (Main Memory Page Program Through Buffer 1) предусматривает предварительное стирание перед записью.
При переходе сигнала ~CS из лог. 0 к лог. 1 запускается внутреннее
стирание (к уровню. лог. 1) выбранной страницы, а затем запись из буфера1 во флеш.
Т.е. вы все-таки стираете.
Естественно если предварительно стереть и затем только прошивать, то дело пойдет быстрее.

Для увеличения скорости записи удобно использовать оба буфера.
В один грузим и сразу шьем, пока шьется - грузим в другой буфер. После окончания прошивки шьем из другого и т.д.
Для выбора буфера удобно анализировать младший бит адреса страницы (четная или не четная страница пишется).
Удачи!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.