реклама на сайте
подробности

 
 
> DATA FLASH AT45-161 есть много простых вопросов
Склихасовский
сообщение Jan 10 2007, 20:55
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 29-11-06
Пользователь №: 22 912



Люди подскажите пожалуйста...
вот я начал писать на авр драйвер для дата флешки .
вроде пока все получается...
мне непонятно вот что...
процесс записи:
1. по опкоду $84(Buffer 1 Write) записываю 528 байт в буфер 1
2 по опкоду $82 (Main Memory Page Program Through Buffer 1) записываю это дело во флеш
3 по опкоду $d7 (Status Register Read) читаю статус и по 7 биту определяю, закончина запись или нет
.---
вопрос вот вчем:
все ли правильно я делаю
и ещё:
я перед этим, сектор в который пишу НЕ стираю - а запись все равно пишется, и вроде без ошибок
для чего тогда стирание?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
aaarrr
сообщение Jan 10 2007, 21:12
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Склихасовский @ 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) *
я перед этим, сектор в который пишу НЕ стираю - а запись все равно пишется, и вроде без ошибок
для чего тогда стирание?

Для ускорения записи.
Go to the top of the page
 
+Quote Post
Склихасовский
сообщение Jan 10 2007, 21:29
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 29-11-06
Пользователь №: 22 912



а можете ппростыми словами рассказать как работает команда 82 и почему
нужно отказаться от п1?
и ещё вопрос на сколько повысится скорость записи если странички предвариательно стирать
(я понимаю все это в шите есть, но я учу хранцузский чтоб его.... :- поэтому все тока на знакомых словах держится)

Сообщение отредактировал Склихасовский - Jan 10 2007, 21:30
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 10 2007, 21:42
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Команда 82 совмещает в себе действия 84 и 83, то есть помещает данные в буфер и немедленно начинает запись страницы памяти. При записи без стирания скорость возрастет примерно в полтора раза.
Go to the top of the page
 
+Quote Post
Склихасовский
сообщение Jan 10 2007, 21:44
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 29-11-06
Пользователь №: 22 912



Ага Спасибо!
завтра подправлю...
если чего - ещё спрошу....
:-)
Go to the top of the page
 
+Quote Post
sseett
сообщение Jan 11 2007, 07:34
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 165
Регистрация: 14-01-05
Из: РФ Приморский край (рег.25)
Пользователь №: 1 939



Цитата
я перед этим, сектор в который пишу НЕ стираю - а запись все равно пишется, и вроде без ошибок
для чего тогда стирание?

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

Для увеличения скорости записи удобно использовать оба буфера.
В один грузим и сразу шьем, пока шьется - грузим в другой буфер. После окончания прошивки шьем из другого и т.д.
Для выбора буфера удобно анализировать младший бит адреса страницы (четная или не четная страница пишется).
Удачи!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 20:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01364 секунд с 7
ELECTRONIX ©2004-2016