| Автор |
Съобщение |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
 RTC DS1307 въпросче
Абе чета го, препрочитам го, ама не мога да намеря флаг който да ми показва спирал ли е часовника.
Има ли въобще такова нещо в това животно?
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пет Мар 09, 2007 7:59 pm |
|
 |
|
fuser
Ранг: Ориентиран
Регистриран на: Сря Юли 05, 2006 1:54 pm Мнения: 279
|
 Re: RTC DS1307 въпросче
тези нямат. М41Т81 направо ти запазва времето в което е изчезнало захранващото напрежение. Ако не се ползва тази екстра е малко неудобно защото винаги трябва да му даваш команда да обнови регистърите след подаване на захранването.
|
| Пет Мар 09, 2007 8:25 pm |
|
 |
|
Cvetanov
Ранг: Новодошъл
Регистриран на: Пон Фев 21, 2005 2:14 pm Мнения: 191 Местоположение: Varna
|
Мисля че CH е 1 след подаване на захранване.
_________________ Шанс едно на милион, обикновено се случва девет от десет пъти.
|
| Съб Мар 10, 2007 9:54 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Този е да, трябва да го смъкнеш в 0 за да запалиш осцилатора
|
| Съб Мар 10, 2007 10:27 am |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Гарантирано ли е? Май не. Защото в дейта шита пише
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.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Мар 12, 2007 11:56 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Това се отнася за "баш" първото му пускане, след като си го монтирал на платката с батерията. Един път като го настроиш и смъкнеш тоя флаг CH, няма да има неустановени регистри. Тоя CH не ми се е случвало досега да се вдигне сам, часовника си работи желязно...като изключим, че комуникацията по I2C позлволява max. 100KHz
|
| Пон Мар 12, 2007 1:49 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Е добре де, ама ако отпадне захранването (скапе се батерията, механична повреда и пр.), то баш на тая ситуация налитаме. Как тогава да позная че часовника е с реални или измислени показания? Ами ако юзера е вадил основното захранване, а допълнителната батерия е умряла.... То тогава съществува и вероятност след пускане тоя бит да си е активен. И проца няма как да е сигурен дали времето което чете от часовника е реално или не (та да накара юзера да го въведе наново).
Така както е написано, май нещата не са много "чисти". Освен това гледам че всички по-нови чипове (вкл. Maxim) изрично си хвалят че имат бит който маркира такъв проблем. А DS1307 няма такава "екстра".
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Мар 12, 2007 2:02 pm |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
Ползвам едно от братчетата на този RTC, а именно DS1305. Не съм търсил такава екстра. В RAM-а му пазя някои данни с контролна сума. И ползвам нея за определяне дали часовника е оставал без захранване. На вдигане на CH бита мисля че не може да се разчита.
|
| Пон Мар 12, 2007 2:18 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Здрав, и аз мислех за подобен подход. Обаче рама се нуждае от много ниско напрежение за да подържа съдържанието си - под 1,5В. А при тази стойност осцилатора вече няма гаранция че ще работи. Та при едно плавно разреждане на батерията подържаща часовника, може да се стигне до там че осцилатора да блокира, а рам да остане непокътнат. После като се пусне главното захранване, осцилатора ще заработи, рама ще си е наред и проца няма как да узнае дали времето е истинско.
Незнам, може би малко теоретизирам, ама както казах, притеснява ме липсата на изричен флаг за "oscillator fault". Иначе чипа е стар ама за сметка на това най-евтиното което се намира на пазара. 
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Мар 12, 2007 2:36 pm |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
При мен не е критично спирането на часовника и затова този подход ми е достатъчен. Сега препрочетох datasheet-овете на DS1307 и DS1305. Значи има някои разлики в описанията. При DS1305 изрично е казано че бита nEOSC(Enable Oscilator) се вдига при подаване на захранване. Докато при DS1307 не са си направили труда да го уточнят.
Predator_MF ще каже дали това е така или не при този RTC. А аз по-добре да си затварям устата че току виж съм подвел някого. 
|
| Пон Мар 12, 2007 4:13 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Имам го сложено в две устройства, там където работи е предвидено да се отчита и отпадане на главното захранване. При инициализация на проца имам една функция, която проверява дали тоя флаг CH е 1, ако е се смъква в 0 и се записва грешка при часовника (в няколко "сервизни" байта си го водя това, даже в RAM-а на самия часовник). Проверявам също и дали след включване на захранването час/дата са преди тези при отпадането и също пиша грешка в един бит. Устройствата имат PC потребителски интерфейс и при пускането му се проверява за тая грешка и часовника се сверява според този на PC, като се пише и в един LOG файл за тази случка...почти две години работа без да са бутани и тоя флаг за грешка нито един път не се е обадил. В случая на Цецо обаче има и отпадане на захранването и механична повреда, не мога да кажа в такива ситуации как би се държал чипа
|
| Пон Мар 12, 2007 5:25 pm |
|
 |
|
Cvetanov
Ранг: Новодошъл
Регистриран на: Пон Фев 21, 2005 2:14 pm Мнения: 191 Местоположение: Varna
|
Според мен имат предвид състоянието на регистрите на часовника. Този бит предполагам, че физически не е в регистъра за секунди на часовника. Данните се буферират и при четене бита се вмъква в буфера. Преди няколко месеца пробвах часовника и ми направи впечатление, че след подаване на захранването винаги се четат секундите като 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 месец в склада преди да отиде при клиента. С този бит ти се гарантира, че осцилатора на часовника няма да смуче батерията.
_________________ Шанс едно на милион, обикновено се случва девет от десет пъти.
|
| Пон Мар 12, 2007 6:47 pm |
|
|