Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

RTC DS1307 въпросче
http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=3842
Страница 1 от 1

Автор:  Цецо [ Пет Мар 09, 2007 7:59 pm ]
Заглавие:  RTC DS1307 въпросче

Абе чета го, препрочитам го, ама не мога да намеря флаг който да ми показва спирал ли е часовника.

Има ли въобще такова нещо в това животно?

Автор:  fuser [ Пет Мар 09, 2007 8:25 pm ]
Заглавие:  Re: RTC DS1307 въпросче

Цецо написа:
Абе чета го, препрочитам го, ама не мога да намеря флаг който да ми показва спирал ли е часовника.

Има ли въобще такова нещо в това животно?

тези нямат. М41Т81 направо ти запазва времето в което е изчезнало захранващото напрежение. Ако не се ползва тази екстра е малко неудобно защото винаги трябва да му даваш команда да обнови регистърите след подаване на захранването.

Автор:  Cvetanov [ Съб Мар 10, 2007 9:54 am ]
Заглавие: 

Мисля че CH е 1 след подаване на захранване.

Автор:  Predator_MF [ Съб Мар 10, 2007 10:27 am ]
Заглавие: 

Cvetanov написа:
Мисля че CH е 1 след подаване на захранване.

Този е да, трябва да го смъкнеш в 0 за да запалиш осцилатора

Автор:  Цецо [ Пон Мар 12, 2007 11:56 am ]
Заглавие: 

Гарантирано ли е? Май не. Защото в дейта шита пише

Please note that the initial power-on state of all registers is not defined. Therefore, it is important to
enable the oscillator (CH bit = 0) during initial configuration.


Това аз лично го разбирам - няма гаранция за състоянието след power - on.

Автор:  Predator_MF [ Пон Мар 12, 2007 1:49 pm ]
Заглавие: 

Това се отнася за "баш" първото му пускане, след като си го монтирал на платката с батерията. Един път като го настроиш и смъкнеш тоя флаг CH, няма да има неустановени регистри. Тоя CH не ми се е случвало досега да се вдигне сам, часовника си работи желязно...като изключим, че комуникацията по I2C позлволява max. 100KHz

Автор:  Цецо [ Пон Мар 12, 2007 2:02 pm ]
Заглавие: 

Е добре де, ама ако отпадне захранването (скапе се батерията, механична повреда и пр.), то баш на тая ситуация налитаме. Как тогава да позная че часовника е с реални или измислени показания? Ами ако юзера е вадил основното захранване, а допълнителната батерия е умряла.... То тогава съществува и вероятност след пускане тоя бит да си е активен. И проца няма как да е сигурен дали времето което чете от часовника е реално или не (та да накара юзера да го въведе наново).

Така както е написано, май нещата не са много "чисти". Освен това гледам че всички по-нови чипове (вкл. Maxim) изрично си хвалят че имат бит който маркира такъв проблем. А DS1307 няма такава "екстра".

Автор:  Zdrav [ Пон Мар 12, 2007 2:18 pm ]
Заглавие: 

Ползвам едно от братчетата на този RTC, а именно DS1305. Не съм търсил такава екстра. В RAM-а му пазя някои данни с контролна сума. И ползвам нея за определяне дали часовника е оставал без захранване. На вдигане на CH бита мисля че не може да се разчита.

Автор:  Цецо [ Пон Мар 12, 2007 2:36 pm ]
Заглавие: 

Здрав, и аз мислех за подобен подход. Обаче рама се нуждае от много ниско напрежение за да подържа съдържанието си - под 1,5В. А при тази стойност осцилатора вече няма гаранция че ще работи. Та при едно плавно разреждане на батерията подържаща часовника, може да се стигне до там че осцилатора да блокира, а рам да остане непокътнат. После като се пусне главното захранване, осцилатора ще заработи, рама ще си е наред и проца няма как да узнае дали времето е истинско.

Незнам, може би малко теоретизирам, ама както казах, притеснява ме липсата на изричен флаг за "oscillator fault". Иначе чипа е стар ама за сметка на това най-евтиното което се намира на пазара. :)

Автор:  Zdrav [ Пон Мар 12, 2007 4:13 pm ]
Заглавие: 

При мен не е критично спирането на часовника и затова този подход ми е достатъчен. Сега препрочетох datasheet-овете на DS1307 и DS1305. Значи има някои разлики в описанията. При DS1305 изрично е казано че бита nEOSC(Enable Oscilator) се вдига при подаване на захранване. Докато при DS1307 не са си направили труда да го уточнят.
Predator_MF ще каже дали това е така или не при този RTC. А аз по-добре да си затварям устата че току виж съм подвел някого. :?

Автор:  Predator_MF [ Пон Мар 12, 2007 5:25 pm ]
Заглавие: 

Имам го сложено в две устройства, там където работи е предвидено да се отчита и отпадане на главното захранване. При инициализация на проца имам една функция, която проверява дали тоя флаг CH е 1, ако е се смъква в 0 и се записва грешка при часовника (в няколко "сервизни" байта си го водя това, даже в RAM-а на самия часовник). Проверявам също и дали след включване на захранването час/дата са преди тези при отпадането и също пиша грешка в един бит. Устройствата имат PC потребителски интерфейс и при пускането му се проверява за тая грешка и часовника се сверява според този на PC, като се пише и в един LOG файл за тази случка...почти две години работа без да са бутани и тоя флаг за грешка нито един път не се е обадил. В случая на Цецо обаче има и отпадане на захранването и механична повреда, не мога да кажа в такива ситуации как би се държал чипа

Автор:  Cvetanov [ Пон Мар 12, 2007 6:47 pm ]
Заглавие: 

Цецо написа:
Гарантирано ли е? Май не. Защото в дейта шита пише

Please note that the initial power-on state of all registers is not defined. Therefore, it is important to
enable the oscillator (CH bit = 0) during initial configuration.


Това аз лично го разбирам - няма гаранция за състоянието след power - on.


Според мен имат предвид състоянието на регистрите на часовника. Този бит предполагам, че физически не е в регистъра за секунди на часовника. Данните се буферират и при четене бита се вмъква в буфера. Преди няколко месеца пробвах часовника и ми направи впечатление, че след подаване на захранването винаги се четат секундите като 0х80.


http://www.maxim-ic.com/appnotes.cfm/appnote_number/504
Many clocks include an oscillator control bit, usually called the clock halt (CH) or enable oscillator (EOSC) bit. This bit is usually located in bit 7 of the seconds register, or in a control register. In almost all clocks with this bit, it is preferable that the oscillator be off when the battery is initially attached. This conserves the battery until the system is powered up.

Това го разбирам така: Произвеждаш изделието, монтираш батерията и го слагаш за 1 месец в склада преди да отиде при клиента. С този бит ти се гарантира, че осцилатора на часовника няма да смуче батерията.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/