Страница 1 из 1
RTC M41T56 + ATmega8
Добавлено: Вс июн 03, 2018 07:50:06
daaar
Собрал часы на atmega8 с использованием часов реального времени m41t56(использовал как замену ds1307). По идее m41t56 аналог ds1307 (только с коррекцией хода). Взял код который использовал для ds1307, ведь регистры совпадают у этих часов. Но часы показывают 80:80, то есть значение переменной времени 80 и значение переменной часов тоже 80. Куда копать? В чем проблема?
Спойлер
Вот что выводит(на одном индикаторе сегмент сгорел)
Re: RTC M41T56 + ATmega8
Добавлено: Вс июн 03, 2018 14:07:39
pyzhman
"часы показывают"
Ходят?
Re: RTC M41T56 + ATmega8
Добавлено: Вс июн 03, 2018 14:49:48
daaar
[uquote="pyzhman",url="/forum/viewtopic.php?p=3392047#p3392047"]"часы показывают"
Ходят?[/uquote]
Не-а

.
Тикали бы, вопросов не было бы

Re: RTC M41T56 + ATmega8
Добавлено: Вс июл 08, 2018 00:13:09
*Trigger*
Батарейка подключена? Если нет, то третью ногу RTC нужно замкнуть на общий.
Re: RTC M41T56 + ATmega8
Добавлено: Пн июл 09, 2018 12:51:00
daaar
[uquote="*Trigger*",url="/forum/viewtopic.php?p=3415820#p3415820"]Батарейка подключена? Если нет, то третью ногу RTC нужно замкнуть на общий.[/uquote]
Нет, это схематическая особенность такая?
Re: RTC M41T56 + ATmega8
Добавлено: Пн июл 09, 2018 18:37:09
*Trigger*
Наверное, можно и так сказать. Например, в даташите на DS1307 специально про это написано, и я сам получал проблемы, если нет батарейки и вход не заземлён.
В даташите M41T56 про это, вроде как, не сказано, но попробовать стоит.
Re: RTC M41T56 + ATmega8
Добавлено: Пн июл 09, 2018 19:02:23
Novice user
Посмотрел ардуино-пример,если нет резервной батареи то они возвращают "80",после установки резервной батареи надо снова установить время
Re: RTC M41T56 + ATmega8
Добавлено: Вт июл 10, 2018 17:34:05
daaar
Спасибо, сейчас проверю отпишусь
Добавлено after 48 minutes 11 seconds:
Поставил батарейку, ничего не поменялось. Замкнул на землю, тоже без изменений
Re: RTC M41T56 + ATmega8
Добавлено: Вт июл 10, 2018 19:55:52
Novice user
Жаль в си не разбираюсь,абсолютно!может и помог бы
просто поставить батарейку (она должна быть 3 вольта,вернее от 2,5 до 3,5 в) мало-надо установить время
Re: RTC M41T56 + ATmega8
Добавлено: Ср июл 11, 2018 05:40:30
daaar
Замкнул ногу батарейки на землю, в коде проинициализировал часы, потом установил время. Время не идет

Re: RTC M41T56 + ATmega8
Добавлено: Ср июл 11, 2018 05:58:56
dr.doc
А бит ST какой? Может часы просто остановлены?
Setting this bit to a '1' will cause the
oscillator to stop
Re: RTC M41T56 + ATmega8
Добавлено: Ср июл 11, 2018 12:07:04
*Trigger*
В коде есть сброс этого бита:
Код: Выделить всё
DS1307Read(0x00,&temp);
temp &= ~(1 << 7); // обнуляем 7 бит
DS1307Write(0x00,temp);
Отображаемое время после установки соответствует установленному? Или опять 80:80? Может, попробовать добавить задержку после подачи питания до начала обмена по шине?
Кстати, где в коде вызов функции I2CInit()? Без него не установится правильная тактовая частота шины.
Re: RTC M41T56 + ATmega8
Добавлено: Ср июл 11, 2018 20:08:37
daaar
I2CInit() дописал, ничего не изменилось. Часики показывают установленное время, а не 80 80
Re: RTC M41T56 + ATmega8
Добавлено: Ср июл 11, 2018 20:37:48
dr.doc
А Вы точно читаете? Ведь 0x80 это есть пустой регистр с установленным в нем 7-м битом... Как и записанное значение на индикатор выводится и "часы не идут".
Re: RTC M41T56 + ATmega8
Добавлено: Ср июл 11, 2018 22:45:05
*Trigger*
Если после установки времени отображается это время, то запись и чтение работают - в переменной temp, используемой для индикации, значение может появиться только из RTC. Выходит, проблема только в том, что часы по каким-то причинам не считают время.
Попробуйте установить бит FT в регистре по адресу 0x07 (
DS1307Write(0x07, 1 << 6)). Далее подключите седьмую ногу к питанию через резистор 4,7 - 22 кОм и проверьте наличие на ней импульсов частотой 512 Гц.
Кстати, получение часов и минут лучше сделать так (убрать масками лишние биты):
Код: Выделить всё
DS1307Read(0x01,&temp); // Чтение регистра минут
time_Minutes = (((temp & 0x70) >> 4)*10)+(temp & 0x0F);
DS1307Read(0x02,&temp); // Чтение регистра часов
time_Hours = (((temp & 0x30) >> 4)*10)+(temp & 0x0F);
Re: RTC M41T56 + ATmega8
Добавлено: Вт дек 04, 2018 17:08:35
BVG_15
Какая микросхема стоит все таки,М41Т или 1307?
Re: RTC M41T56 + ATmega8
Добавлено: Вт дек 04, 2018 19:36:18
musor
полгода прошло однако тс не описался о резултат
Re: RTC M41T56 + ATmega8
Добавлено: Сб дек 08, 2018 15:37:27
daaar
Да не идут часы, вот и потерялся во времени