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

 
 
 
Reply to this topicStart new topic
> переход с AT89S8252 на AT89S8253, взаимодействие с EEPROM
_VoRoN_
сообщение Aug 17 2006, 16:04
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 3-07-06
Из: Россия, Краснодар
Пользователь №: 18 530



Если кто сталкивался с такой проблемой, поделитесь пожалуйста опытом, касательно изменения существующих программ под новый чип, особенно в части взаимодействия с EEPROM. help.gif
Go to the top of the page
 
+Quote Post
Andy-L
сообщение Aug 18 2006, 07:57
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 64
Регистрация: 18-05-06
Пользователь №: 17 211



Цитата(_VoRoN_ @ Aug 17 2006, 20:04) *
Если кто сталкивался с такой проблемой, поделитесь пожалуйста опытом, касательно изменения существующих программ под новый чип, особенно в части взаимодействия с EEPROM. help.gif


Посмотрите по ссылке в статье п. 17.2 отличия ЭСППЗУ
http://www.ineltek.ru/html.cgi/txt/publ/_ineltek/recom.htm
Go to the top of the page
 
+Quote Post
K_AV
сообщение Aug 19 2006, 11:00
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 492
Регистрация: 19-08-06
Пользователь №: 19 667



Объясните непонятливому, как пользоваться этой "страничной" записью в EEPROM, если мне вовсе не требуется писать все 32 бита. Требуется только 1 или 2.
Просто пишем в буфер любое требуемое кол-во байт (не более 32) и разрешаем сброс буфера в EEPROM?
Go to the top of the page
 
+Quote Post
_VoRoN_
сообщение Aug 22 2006, 12:35
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 3-07-06
Из: Россия, Краснодар
Пользователь №: 18 530



Цитата(Andy-L @ Aug 18 2006, 11:57) *
Цитата(_VoRoN_ @ Aug 17 2006, 20:04) *

Если кто сталкивался с такой проблемой, поделитесь пожалуйста опытом, касательно изменения существующих программ под новый чип, особенно в части взаимодействия с EEPROM. help.gif


Посмотрите по ссылке в статье п. 17.2 отличия ЭСППЗУ
http://www.ineltek.ru/html.cgi/txt/publ/_ineltek/recom.htm


Да, на эту ссылку я уже натыкался, но вот проблемы это не решило.
Go to the top of the page
 
+Quote Post
K_AV
сообщение Aug 22 2006, 12:55
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 492
Регистрация: 19-08-06
Пользователь №: 19 667



Мне в другом месте уже пояснили (не относительно этого чипа, а в общем) таким образом: Это только _возможность_ писать целую страницу целиком (т.е. НЕ 32 байта, а ДО 32 байт за раз). Косвенно это подтверждается тем, что в даташите написано, что при работе программы (изнутри чипа) обеспечивается автоматическое стирание при записи каждого байта EEPROM.
Я попробовал - побайтная запись изнутри программы в отдельные ячейки EEPROM заработала в старой программе (написанной для 89S8252)без дополнительных переделок программы. Все, что сделал - поправил символические имена регистров спецфункций (раньше регистр управления был общий для EEPROM и WDT, теерь - раздельный).
Go to the top of the page
 
+Quote Post
_VoRoN_
сообщение Aug 23 2006, 05:56
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 3-07-06
Из: Россия, Краснодар
Пользователь №: 18 530



Цитата(K_AV @ Aug 22 2006, 16:55) *
Мне в другом месте уже пояснили (не относительно этого чипа, а в общем) таким образом: Это только _возможность_ писать целую страницу целиком (т.е. НЕ 32 байта, а ДО 32 байт за раз). Косвенно это подтверждается тем, что в даташите написано, что при работе программы (изнутри чипа) обеспечивается автоматическое стирание при записи каждого байта EEPROM.
Я попробовал - побайтная запись изнутри программы в отдельные ячейки EEPROM заработала в старой программе (написанной для 89S8252)без дополнительных переделок программы. Все, что сделал - поправил символические имена регистров спецфункций (раньше регистр управления был общий для EEPROM и WDT, теерь - раздельный).


А как вы осуществляли проверку состояния (rdy/bsy)? И начало и окончание записи, или только окончание?
Go to the top of the page
 
+Quote Post
_VoRoN_
сообщение Aug 23 2006, 11:00
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 3-07-06
Из: Россия, Краснодар
Пользователь №: 18 530



Заработала побайтная запись. Действительно необходимо ожидать начала и окончания записи. А так, отличия от at 89S8252 только в регистрах настроек eeprom и сторожевого таймера.
Go to the top of the page
 
+Quote Post
Pretorianec
сообщение Dec 4 2006, 13:00
Сообщение #8





Группа: Участник
Сообщений: 14
Регистрация: 18-01-06
Пользователь №: 13 317



Цитата
Заработала побайтная запись. Действительно необходимо ожидать начала и окончания записи. А так, отличия от at 89S8252 только в регистрах настроек eeprom и сторожевого таймера.


Если быть точным, то надо сначала записать 1 байт, потом проверить RDY/BUSY == 1, потом RDY/BUSY == 0, а затем RDY/BUSY = 1, и только после этого что-то делать.
Go to the top of the page
 
+Quote Post
-Tумблер-
сообщение Dec 8 2006, 18:59
Сообщение #9


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

Группа: Свой
Сообщений: 146
Регистрация: 4-11-04
Из: Московская область
Пользователь №: 1 040



Цитата(Pretorianec @ Dec 4 2006, 13:00) *
Если быть точным, то надо сначала записать 1 байт, потом проверить RDY/BUSY == 1, потом RDY/BUSY == 0, а затем RDY/BUSY = 1, и только после этого что-то делать.


У жука 8253 почему-то медленно сбрасывается флаг RDY/BUSY.
Поэтому, после начала записи надо дождаться RDY=0, потом дождаться RDY=1.
Это будет означать, что байт записан и можно начинать следующую
операцию записи.
Например, приблизительно так (IAR C):
Код
/*-------------------------------------*/
void eeprom_rdy (void)
{
for (;;) {if ((EECON & (1 << EERDY)) != 0) break;}
}
/*-------------------------------------*/
void eeprom_rdy0 (void)
{
for (;;) {if ((EECON & (1 << EERDY)) == 0) break;}
}
/*-------------------------------------*/
write_byte (word ad, byte dat)
{
data byte *pxdata;

pxdata = (byte *) (0x010000 | ad);

DI
EECON |= (1 << EEMEN) | (1 << EEMWE);
EI

*pxdata   = dat;

eeprom_rdy0 ();
eeprom_rdy   ();

DI
EECON &= ~((1 << EEMEN) | (1 << EEMWE));
EI
}
/*-------------------------------------*/


--------------------

- ЗАМЕНЯТЬ ДЕТАЛИ НА ХОДУ ВОСПРЕЩАЕТСЯ !!! -
Go to the top of the page
 
+Quote Post

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

 


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


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