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

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

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

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

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

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

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

 
Опции темы
Непрочитано 18.07.2008, 14:18  
dimonbest
Гражданин KAZUS.RU
 
Аватар для 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
Сообщений: 156
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
julbu на пути к лучшему
По умолчанию

Взять память типо этой http://ramtron.com/files/datasheets/FM24C256ds_r3.2.pdf
Хватит на долго :-)
julbu вне форума  
Непрочитано 20.07.2008, 18:55  
woroba
Гражданин KAZUS.RU
 
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 866
Сказал спасибо: 99
Сказали Спасибо 216 раз(а) в 140 сообщении(ях)
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.RU
 
Аватар для dimonbest
 
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
dimonbest на пути к лучшему
По умолчанию

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

to woroba
За код спасибо. Но наверное проще всего хранить адрес в ОЗУ! Пока остановлюсь на этом.
dimonbest вне форума  
Непрочитано 21.07.2008, 14:53  
Slava1355
Прописка
 
Аватар для Slava1355
 
Регистрация: 13.06.2004
Адрес: Москва
Сообщений: 193
Сказал спасибо: 11
Сказали Спасибо 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.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 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, время: 00:54.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot