Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

RTC M41T56 + ATmega8

Вс июн 03, 2018 07:50:06

Собрал часы на atmega8 с использованием часов реального времени m41t56(использовал как замену ds1307). По идее m41t56 аналог ds1307 (только с коррекцией хода). Взял код который использовал для ds1307, ведь регистры совпадают у этих часов. Но часы показывают 80:80, то есть значение переменной времени 80 и значение переменной часов тоже 80. Куда копать? В чем проблема?
СпойлерВот что выводит(на одном индикаторе сегмент сгорел)Изображение
Вложения
main.cpp
Код прошивки
(4.65 KiB) Скачиваний: 311

Re: RTC M41T56 + ATmega8

Вс июн 03, 2018 14:07:39

"часы показывают"
Ходят?

Re: RTC M41T56 + ATmega8

Вс июн 03, 2018 14:49:48

"часы показывают"
Ходят?

Не-а :( .
Тикали бы, вопросов не было бы :dont_know:

Re: RTC M41T56 + ATmega8

Вс июл 08, 2018 00:13:09

Батарейка подключена? Если нет, то третью ногу RTC нужно замкнуть на общий.

Re: RTC M41T56 + ATmega8

Пн июл 09, 2018 12:51:00

Батарейка подключена? Если нет, то третью ногу RTC нужно замкнуть на общий.

Нет, это схематическая особенность такая?

Re: RTC M41T56 + ATmega8

Пн июл 09, 2018 18:37:09

Наверное, можно и так сказать. Например, в даташите на DS1307 специально про это написано, и я сам получал проблемы, если нет батарейки и вход не заземлён.
В даташите M41T56 про это, вроде как, не сказано, но попробовать стоит.

Re: RTC M41T56 + ATmega8

Пн июл 09, 2018 19:02:23

Посмотрел ардуино-пример,если нет резервной батареи то они возвращают "80",после установки резервной батареи надо снова установить время

Re: RTC M41T56 + ATmega8

Вт июл 10, 2018 17:34:05

Спасибо, сейчас проверю отпишусь

Добавлено after 48 minutes 11 seconds:
Поставил батарейку, ничего не поменялось. Замкнул на землю, тоже без изменений

Re: RTC M41T56 + ATmega8

Вт июл 10, 2018 19:55:52

Жаль в си не разбираюсь,абсолютно!может и помог бы
просто поставить батарейку (она должна быть 3 вольта,вернее от 2,5 до 3,5 в) мало-надо установить время

Re: RTC M41T56 + ATmega8

Ср июл 11, 2018 05:40:30

Замкнул ногу батарейки на землю, в коде проинициализировал часы, потом установил время. Время не идет :(

Re: RTC M41T56 + ATmega8

Ср июл 11, 2018 05:58:56

А бит ST какой? Может часы просто остановлены?
Setting this bit to a '1' will cause the
oscillator to stop

Re: RTC M41T56 + ATmega8

Ср июл 11, 2018 12:07:04

В коде есть сброс этого бита:
Код:
   DS1307Read(0x00,&temp);
   temp &= ~(1 << 7); // обнуляем 7 бит
   DS1307Write(0x00,temp);


Отображаемое время после установки соответствует установленному? Или опять 80:80? Может, попробовать добавить задержку после подачи питания до начала обмена по шине?

Кстати, где в коде вызов функции I2CInit()? Без него не установится правильная тактовая частота шины.

Re: RTC M41T56 + ATmega8

Ср июл 11, 2018 20:08:37

I2CInit() дописал, ничего не изменилось. Часики показывают установленное время, а не 80 80

Re: RTC M41T56 + ATmega8

Ср июл 11, 2018 20:37:48

А Вы точно читаете? Ведь 0x80 это есть пустой регистр с установленным в нем 7-м битом... Как и записанное значение на индикатор выводится и "часы не идут".

Re: RTC M41T56 + ATmega8

Ср июл 11, 2018 22:45:05

Если после установки времени отображается это время, то запись и чтение работают - в переменной 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

Какая микросхема стоит все таки,М41Т или 1307?

Re: RTC M41T56 + ATmega8

Вт дек 04, 2018 19:36:18

полгода прошло однако тс не описался о резултат

Re: RTC M41T56 + ATmega8

Сб дек 08, 2018 15:37:27

Да не идут часы, вот и потерялся во времени
Ответить