Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Работа с RTC DS1305
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Измеритель верёвочками
Господа, в приборе стоит флешка AT45, в неё "по кругу" пишутся данные. Положение сохраняю в ОЗУ микросхемы RTC DS1305.
На Vcc1 подано питание 3 Вольта, на Vcc2 подключена батарейка, Vbat подключен на землю.
Происходит вот что: иногда происходит съезжание записей, т.е. теряются некоторые данные. Можно ли "доверять" ОЗУ таких микросхем? Как лучше организовать хранение данных (ячейка, страница) о местоположении конца записи?
Сергей Борщ
Цитата(Измеритель верёвочками @ Nov 30 2008, 00:54) *
Как лучше организовать хранение данных (ячейка, страница) о местоположении конца записи?
Это можно сделать и без DS1305. Нужно нумеровать страницы по модулю, не кратному количеству страниц в микросхеме. Например страниц 4, а нумеруем по модулю 3 (0,1,2,0,1,2). При чтении ищем место, где последовательность нарушается - там и будет самая новая страница.

P.S. про DS1305 не подскажу - не работал.
Baser
Цитата(Измеритель верёвочками @ Nov 30 2008, 00:54) *
в приборе стоит флешка AT45, в неё "по кругу" пишутся данные. ...... Как лучше организовать хранение данных (ячейка, страница) о местоположении конца записи?

Здесь почитайте, может какие идеи пригодятся:
Хранение указателя на конец данных в AT45xx DataFlash, Как лучше организовать?
Сейчас у меня все организовано по принципу, как предлагал defunct, т.е. сохранение номеров страниц флеша. Отличие в том, что этот номер я сохраняю в служебной области той-же страницы флеша. А при рестарте вычитываю только эти номера и по ним определяю границы данных. Для 32мбит флешки получилось всего около 500-700 мс времени при работе SPI на ~4MHz.

Правда при отладке вылезли кое-какие особенности моей реализации алгоритма, которые мне не нравятся.
Поэтому я окончательные итоги темы так и не подвел. Может быть будет время, подчищу свой алгоритм и отпишу...
Измеритель верёвочками
Пипец, дело было в маленькой задержке между концом записи байта и снятием сигнала СЕ. По даташиту, даже при питании 2 Вольта минимальное время - 240 нс. С учётом выхода из цикла for это время в программе составляет порядка 1мкс минимум. Вставил после цикла перед снятием СЕ десяток нопов вместо двух, стоящих чисто для точки останова, и всё, пишется нормально.

Заказчик прошивки берёт RTC где подешевле, у меня поставка из ITC (они, вроде как, от немчуры всё возят). У меня ни одного съезжания за время отладки, у заказчика два прибора из первого десятка изготовленных теряют записи через раз.
Грешу только на китайские поставки.
chert_kol
Не стоит доверять таким озу. Я сейчас работаю с DS1302 ... та же история...

Цитата(Измеритель верёвочками @ Nov 30 2008, 01:54) *
Господа, в приборе стоит флешка AT45, в неё "по кругу" пишутся данные. Положение сохраняю в ОЗУ микросхемы RTC DS1305.
На Vcc1 подано питание 3 Вольта, на Vcc2 подключена батарейка, Vbat подключен на землю.
Происходит вот что: иногда происходит съезжание записей, т.е. теряются некоторые данные. Можно ли "доверять" ОЗУ таких микросхем? Как лучше организовать хранение данных (ячейка, страница) о местоположении конца записи?



не стоит ... Сам сейчас воюю с DS 1302, те же проблемы...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.