|
|
  |
Работа с RTC DS1305 |
|
|
|
Nov 29 2008, 22:54
|
Группа: Новичок
Сообщений: 7
Регистрация: 25-10-08
Пользователь №: 41 188

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

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Измеритель верёвочками @ Nov 30 2008, 00:54)  Как лучше организовать хранение данных (ячейка, страница) о местоположении конца записи? Это можно сделать и без DS1305. Нужно нумеровать страницы по модулю, не кратному количеству страниц в микросхеме. Например страниц 4, а нумеруем по модулю 3 (0,1,2,0,1,2). При чтении ищем место, где последовательность нарушается - там и будет самая новая страница. P.S. про DS1305 не подскажу - не работал.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Nov 30 2008, 16:16
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Цитата(Измеритель верёвочками @ Nov 30 2008, 00:54)  в приборе стоит флешка AT45, в неё "по кругу" пишутся данные. ...... Как лучше организовать хранение данных (ячейка, страница) о местоположении конца записи? Здесь почитайте, может какие идеи пригодятся: Хранение указателя на конец данных в AT45xx DataFlash, Как лучше организовать?Сейчас у меня все организовано по принципу, как предлагал defunct, т.е. сохранение номеров страниц флеша. Отличие в том, что этот номер я сохраняю в служебной области той-же страницы флеша. А при рестарте вычитываю только эти номера и по ним определяю границы данных. Для 32мбит флешки получилось всего около 500-700 мс времени при работе SPI на ~4MHz. Правда при отладке вылезли кое-какие особенности моей реализации алгоритма, которые мне не нравятся. Поэтому я окончательные итоги темы так и не подвел. Может быть будет время, подчищу свой алгоритм и отпишу...
|
|
|
|
|
Dec 8 2008, 20:19
|
Группа: Новичок
Сообщений: 7
Регистрация: 25-10-08
Пользователь №: 41 188

|
Пипец, дело было в маленькой задержке между концом записи байта и снятием сигнала СЕ. По даташиту, даже при питании 2 Вольта минимальное время - 240 нс. С учётом выхода из цикла for это время в программе составляет порядка 1мкс минимум. Вставил после цикла перед снятием СЕ десяток нопов вместо двух, стоящих чисто для точки останова, и всё, пишется нормально.
Заказчик прошивки берёт RTC где подешевле, у меня поставка из ITC (они, вроде как, от немчуры всё возят). У меня ни одного съезжания за время отладки, у заказчика два прибора из первого десятка изготовленных теряют записи через раз. Грешу только на китайские поставки.
Сообщение отредактировал Измеритель верёвочками - Dec 8 2008, 20:20
|
|
|
|
|
Jan 23 2009, 11:14
|
Частый гость
 
Группа: Свой
Сообщений: 90
Регистрация: 23-01-09
Из: Санкт-Петербург
Пользователь №: 43 842

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