Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

База данных в at24с1024

Непрочитано 18.07.2008, 14:18  
dimonbest
Гражданин KAZUS.RUN
 
Аватар для dimonbest
 
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
dimonbest на пути к лучшему
По умолчанию База данных в at24с1024

Как лучше организовать?
В общем проблема то вот в чем. Память имеет ограничение количества записей - 100 000. Мне необходимо делать около 5 000 записей в день, одна запись 5 байт. И устройство должно работать лет 10. Вот и задачка.
При таком раскладе памяти хватит на 20 дней.

Память микросхемы 131072 байт.
Можно эти 5 байт записывать не в одну ячейку, а каждый раз в новую. Тогда нужен указатель. Если указатель будем записывать в ту же память, то выйдет то же самое.
Если под указатель выделить например 2000 байт и перемещать его, предыдущее значение затирая 0xFF, и искать указатель, перебирая ячейки пока не будет значение не 0xFF, проблему решает. Но появляется другая проблема. После события в программе запись должна произойти не позднее чем через 200мс после события. А считывание 2000 байт по и2с занимает около 800мс, многовато времени...
Может у кого то есть еще идеи, как можно это все побороть?
Реклама:
dimonbest вне форума  
Непрочитано 18.07.2008, 16:46  
julbu
Прописка
 
Регистрация: 19.08.2004
Сообщений: 154
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
julbu на пути к лучшему
По умолчанию

Взять память типо этой http://ramtron.com/files/datasheets/FM24C256ds_r3.2.pdf
Хватит на долго :-)
julbu вне форума  
Непрочитано 20.07.2008, 18:55  
woroba
Гражданин KAZUS.RUN
 
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 862
Сказал спасибо: 98
Сказали Спасибо 216 раз(а) в 139 сообщении(ях)
woroba на пути к лучшему
По умолчанию Re: База данных в at24с1024

Сообщение от dimonbest
Как лучше организовать?
В общем проблема то вот в чем. Память имеет ограничение количества записей - 100 000. Мне необходимо делать около 5 000 записей в день, одна запись 5 байт. И устройство должно работать лет 10. Вот и задачка.
При таком раскладе памяти хватит на 20 дней.

Память микросхемы 131072 байт.
Можно эти 5 байт записывать не в одну ячейку, а каждый раз в новую. Тогда нужен указатель. Если указатель будем записывать в ту же память, то выйдет то же самое.
Если под указатель выделить например 2000 байт и перемещать его, предыдущее значение затирая 0xFF, и искать указатель, перебирая ячейки пока не будет значение не 0xFF, проблему решает. Но появляется другая проблема. После события в программе запись должна произойти не позднее чем через 200мс после события. А считывание 2000 байт по и2с занимает около 800мс, многовато времени...
Может у кого то есть еще идеи, как можно это все побороть?
Указатель тоже меняешь.( я это делал через 256х256 записей)
В CVAVR это выглядить так.
Правда это делалось для внутреней EEPROM, но принцип тот же.
//////////////////////////////////////////////////////////////////////
void wr_poz (unsigned int b)
{
#asm ("cli")
if (BASEPOZ[ADR]‹64) BASEPOZ[ADR]=b; //ЗДЕСЬ НОМЕР ПОЗИЦИИ
else BASEPOZ[ADR]=b+128;
i=BASEPOZ[ADR+1];
i++;
if (i›255)i=0;
BASEPOZ[ADR+1]=i;//МЛАДШИЙ БАЙТ СЧЕТЧИКА ЗАПИСИ
if (BASEPOZ[ADR+1]==0)
{
i=BASEPOZ[ADR+2];//СТАРШИЙ БАЙТ СЧЕТЧИКА ЗАПИСИ
i++;
if (i›255)i=0;
BASEPOZ[ADR+2]=i;
}
if (BASEPOZ[ADR+2]==0&&BASEPOZ[ADR+1]==0) //ЕСЛИ ЭТО 65536 ЗАПИСЬ ТО МЕНЯЕМ
{ //АДРЕСС EEPROM
i=ADR;
i=i+2;
if (i›496) res_end();//i=0;
ADR=i; //ЗДЕСЬ НОМЕР ПОЗИЦИИ
BASEPOZ[ADR]=BASEPOZ[ADR-2];//b; //ЗДЕСЬ НОМЕР ПОЗИЦИИ
BASEPOZ[ADR+1]=0;
BASEPOZ[ADR+2]=0;
BASEPOZ[ADR-1]=255;
BASEPOZ[ADR-2]=255;
}
#asm ("sei")

}
__________________
Не ошибается лишь тот, кто ни чего не делает!
woroba вне форума  
Непрочитано 21.07.2008, 10:56  
demaven
Временная регистрация
 
Регистрация: 06.05.2005
Сообщений: 93
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
demaven на пути к лучшему
По умолчанию

Увеличить размер записываемого сообщения до 6 байт и в этот 6-ой байт писать порядковый номер сообщения, искать в массиве самый большой номер и от него продолжать запись. Это при перезагрузке программы, если не было перезагрузки, то текущий адрес записи хранить в озу, удобнее ЕЕПРОМ перед использованием обнулить, либо искать наименьший номер и номер уменьшать
demaven вне форума  
Непрочитано 21.07.2008, 12:55  
dimonbest
Гражданин KAZUS.RUN
 
Аватар для dimonbest
 
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
dimonbest на пути к лучшему
По умолчанию

Сообщение от demaven
...искать в массиве самый большой номер...
С поиском как раз таки и проблема, много времени на него тратится.
Сообщение от demaven
Это при перезагрузке программы, если не было перезагрузки, то текущий адрес записи хранить в озу
А это - идея
dimonbest вне форума  
Непрочитано 21.07.2008, 12:59  
dimonbest
Гражданин KAZUS.RUN
 
Аватар для dimonbest
 
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
dimonbest на пути к лучшему
По умолчанию

Сообщение от julbu
Взять память типо этой http://ramtron.com/files/datasheets/FM24C256ds_r3.2.pdf
Хватит на долго
Можно, только у нее обьем меньше, а цена выше:

FM24C512-G RAMTRON SO8 55.95грн. (~11$)
dimonbest вне форума  
Непрочитано 21.07.2008, 13:04  
dimonbest
Гражданин KAZUS.RUN
 
Аватар для dimonbest
 
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
dimonbest на пути к лучшему
По умолчанию

to woroba
За код спасибо. Но наверное проще всего хранить адрес в ОЗУ! Пока остановлюсь на этом.
dimonbest вне форума  
Непрочитано 21.07.2008, 14:53  
Slava1355
Прописка
 
Аватар для Slava1355
 
Регистрация: 13.06.2004
Адрес: Москва
Сообщений: 193
Сказал спасибо: 12
Сказали Спасибо 32 раз(а) в 18 сообщении(ях)
Slava1355 на пути к лучшему
По умолчанию

Сообщение от dimonbest
Сообщение от julbu
Взять память типо этой http://ramtron.com/files/datasheets/FM24C256ds_r3.2.pdf
Хватит на долго
Можно, только у нее обьем меньше, а цена выше:

FM24C512-G RAMTRON SO8 55.95грн. (~11$)
Могу посоветовать промежуточный вариант - м/сх 93С76
"• 10,000,000 ERASE/WRITE cycles guaranteed", а цена ~0,5USD.

Прикрепленный файл: 4628615.pdf
Slava1355 вне форума  
Непрочитано 21.07.2008, 15:22  
urry
Почётный гражданин KAZUS.RUN
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 107 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

я не хотел писать в эту тему, но все-таки - как говорится, имхо - вообще бы не связывался с еепром в таком раскладе (всего 5 байт, можно хранить в регистрах) - поставил бы батарейку и переводил в слип при отсутствии напруги.При появлении просыпался .
urry вне форума  
Непрочитано 21.07.2008, 16:21  
demaven
Временная регистрация
 
Регистрация: 06.05.2005
Сообщений: 93
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
demaven на пути к лучшему
По умолчанию

Сообщение от urry
(всего 5 байт, можно хранить в регистрах) - поставил бы батарейку и переводил в слип при отсутствии напруги.При появлении просыпался .
Вся беда в том, что батарейка имеет весьма неприятное свойство - садится и при этом теряются все данные.
Поиск осуществляется один раз после включения, а затем счетчик адреса хранится в озу
demaven вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Современная элементная база j2153 Информация по радиокомпонентам 30 25.01.2018 18:28
Упаковка данных (сжатие данных) satnettv Proteus, KiCAD и другие ECAD 4 06.09.2007 20:15
база-от радиоудленителя сони-6810,что можно с нее сваргани evgenii_volynec Делимся опытом 1 26.04.2007 09:57
[Решено] база данных для радиоэлектронных компонентов kzi Отвлекитесь, эмбеддеры! 11 21.12.2006 19:00
как переделать сотовый-по драдиотелефон,есть база -сони6810 evgenii_volynec Автоматика и аппаратура связи 8 24.08.2006 11:12


Часовой пояс GMT +4, время: 02:15.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.