Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: M41T56 аналог DS1307
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
masterpc
Когда вынимаю батарейку и выключаю питание, не могу определить, что питание пропадало - часы продолжают идти, хотя в даташите вроде как написано, что не должны, и начальная програмная инициализация не происходит. Вот привожу кусок кода, взятый в теме "исходники".


//Инициализация часов
void rtc_init(void)
{
unsigned char temp;
i2c_start();
i2c_tx_addr(DS1307_ADDR|WR);
i2c_tx(0); //адрес регистра состояния
i2c_start();
i2c_tx_addr(DS1307_ADDR|RD);
temp=i2c_rx(NOT_ACK); //читаем его
i2c_stop();

if(temp & (1<<CH)) //если питание часов пропадало
{
rtc_set_time(0, 0, 0); //устанавливаем время
rtc_set_date(1, 1, 2000); //устанавливаем дату

i2c_start();
i2c_tx_addr(DS1307_ADDR|WR);
i2c_tx(DS1307_CONTROL);
i2c_tx(0x90);
i2c_stop();

}
}



Даже когда питание пропадало, я все равно не попадаю в начальную инициализацию... 07.gif
masterpc
Разобрался сам, но другим способом. Управляющий регистр в M41T56 отличается от управляющего регистра DS1307. У первого есть калибровка, кроме того, 7-й бит после отключения питаниявыставляется в уровень лог. 1. Вот по этому признаку я и отслеживаю состояние батарейки.
bzx
Цитата(masterpc @ Feb 29 2008, 11:51) *
Когда вынимаю батарейку и выключаю питание...

А как вообще Вы умудряетесь запустить устройство без питания?

rtc без всякой инициализации при подачи питания или Vbat начинают тикать. Выбросьте Вы "исходники", в t56 нет бита CH. Обычно, пропадание питания или отсутствие Vbat проверяют по совпадению "волшебного" слова, которое должно сидеть в ram. Т.е. подали питание, слово не обнаружили, значит, либо это первое включение вообще, либо проблемы с Vbat, далее, заносим в ram своё словечко и выставляем часы.
masterpc
Цитата(bzx @ Feb 29 2008, 12:33) *
Выбросьте Вы "исходники", в t56 нет бита CH. Обычно, пропадание питания или отсутствие Vbat проверяют по совпадению "волшебного" слова, которое должно сидеть в ram. Т.е. подали питание, слово не обнаружили, значит, либо это первое включение вообще, либо проблемы с Vbat, далее, заносим в ram своё словечко и выставляем часы.


Зато в даташите для М41T56 есть вот, что:
3.3 Initial power-on defaults
Upon initial application of power to the device, the FT Bit will be set to a '0' and the OUT Bit
will be set to a '1.' All other Register bits will initially power-on in a random state.


Я теперь смотрю не за "волшебным словом" (хотя была такая идея), а за OUT Bit.
bzx
Цитата(masterpc @ Feb 29 2008, 13:43) *
Я теперь смотрю ... за OUT Bit.

А как контролировать Vbat планируется?
masterpc
Цитата(bzx @ Feb 29 2008, 13:01) *
А как контролировать Vbat планируется?


Да вот так и контролирую, уже проверял, все ок.
masterpc
Цитата(masterpc @ Feb 29 2008, 14:02) *
Да вот так и контролирую, уже проверял, все ок.


Каюсь, ниче оно так не работает, пришлось применять запись в RAM и потом проверять. Простите за упрямство smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.