|
RTC в LPC, Проверка корректности. |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 21)
|
Nov 12 2007, 10:27
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(Leen @ Nov 12 2007, 12:30)  Так а что подразумевается под "сбились"? Уход от реального времени вследствие погрешности (постоянной/переменной, скажем, температурный уход частоты) задающего генератора или обнуление из-за сбоя питания? Если обнуление - то запоминать. Тем более, если часы считают годы - если век не соответствует записанному в энергонезависимую память, то точно пропадало питание часов. Ну а если просто уход на +/- полкилометра - то имхо только сравнение с эталоном, а как еще? Ну например. 30 июня при этом это 356 день года.
|
|
|
|
|
Nov 12 2007, 11:10
|
Частый гость
 
Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343

|
Цитата(alexander55 @ Nov 12 2007, 20:27)  Ну например. 30 июня при этом это 356 день года.  Хм. Ну если для вас сбой - это разница показанийй двух параллельных счетчиков - так это как раз проверить крайне просто. Можно контролировать по таблице длин месяцев (для простоты) - например, есть массив количества дней: в январе, в январе + в феврале (здесь и далее - год не високосный), по март, и т.д. Смотрим, какой месяц сейчас - берем соотв. число дней до этого месяца + кол-во дней из счетчика. Если нынче високосный год и февраль закончился - плюсадиним, сравниваем со счетчиком дней года. Вроде просто. А вот отставание или опережение из-за плохонького китайского часового кварца - это да, это проблема. Нужен эталон (который может быть дороже всего остального - цезиевые часы с термостабилизацией, или какие сейчас самые точные  ), или просто человека заставить иногда поправлять время, ориентируясть на радио Маяк.
|
|
|
|
|
Nov 12 2007, 11:45
|
Частый гость
 
Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343

|
Цитата(alexander55 @ Nov 12 2007, 21:38)  Вот и вопрос. Насколько это универсально.  В пределах одного семейства  , если по железу - тут же привязка к конкретной избыточчности. Из-за чего могут рассинхронизироваться два счетчика, тактируемые одним источником (часовым таймером в д.с.)? Да еще и так, чтобы ни один не был нулевым. Мне все же представляется, что такая ситуация - более редкое явление, нежели уход частоты тактов или пропадание питания (ионистор был бракованный  ). Ну только если сильные радиошумы, или радиация.
|
|
|
|
|
Nov 12 2007, 12:55
|
Местный
  
Группа: Свой
Сообщений: 201
Регистрация: 23-01-06
Из: Msk
Пользователь №: 13 490

|
Цитата(alexander55 @ Nov 12 2007, 10:19)  Добрый день ! Вопрос следующий. Каким способом при старте можно проверить, что часы реального времени в LPC не сбились ? Из моего опыта - только проверять валидность (диапазона) данных. Есть там один информационный бит, но при сбое (отключении батарейки) он то "слетал", то нет.
|
|
|
|
|
Nov 12 2007, 13:40
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(GetSmart @ Nov 12 2007, 16:29)  какой? 1. Срок изделия допустим 50 лет. Т.е. год в диапозоне 2007-2057. 2. День года должен соответствовать числу. Например: 31 декабря 2008 года - 366 день. Это - то, что на поверхности.
|
|
|
|
|
Nov 13 2007, 08:27
|
Участник

Группа: Свой
Сообщений: 54
Регистрация: 25-11-04
Из: Тула
Пользователь №: 1 228

|
Схожие проблемы, только часы внешние fm31xx. Если часы ушли (по причине не точности), без дублирование это не определить. Вот если сдохла батарейка или по каким то причинам прерывалось питания часов или чего то с кварцем часов, это надо отлавливать. Запускаю часы только при операции "установить время", что бы можно было отловить когда часы показывают ерунду. При работе прибора, периодически сравниваю временя измеренное RTC и таймером. Например, запускаю таймер на 60 сек, за это время показания RTC должно увеличиться тоже на 59..61 сек (дискретность часов в 1сек точнее не дает померить). Кроме проверки корректности значений в регистрах часов еще полезно проверять что считанное значение из RTC больше или равно предыдущему, плюс проверять напряжение на батарейке (у fm31xx есть битик "Low Backup Flag") Вообщем, если достоверность показания часов критична я думаю лучше ставить внешние часы: - дублирование часы + программное время - есть флаги достоверности времени, состояния батарии (например у MAX6916, MAX6917) - дополнительные функции такие как сторожевой таймер, энергонезависимая/батарейная память и т.п
Хотелось бы еще такой вопрос поднять, как правильнее считать время в случае использования внешних часов: опрашивать RTC или считать программно?
|
|
|
|
|
Nov 14 2007, 13:12
|
Местный
  
Группа: Свой
Сообщений: 201
Регистрация: 23-01-06
Из: Msk
Пользователь №: 13 490

|
Цитата(GetSmart @ Nov 14 2007, 13:34)  Я спрашивал какой бит в RTC LPC ? Сорри, быстро ответить не смогу, т.к. сижу дома с температурой. К пятнице доберусь до работы, там можно будет поднять переписку с техсупотом филипса...
|
|
|
|
|
Nov 14 2007, 13:19
|
Участник

Группа: Новичок
Сообщений: 21
Регистрация: 13-09-07
Пользователь №: 30 506

|
Цитата(Spb_Alex @ Nov 14 2007, 14:23)  Можно взять дешевый GPS (от 17$), время определяется очень точно. Ага. Вот только есть гарантия, что он спутник увидит? (из подвала, например)
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|