RTC M41T56 + ATmega8

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

Собрал часы на atmega8 с использованием часов реального времени m41t56(использовал как замену ds1307). По идее m41t56 аналог ds1307 (только с коррекцией хода). Взял код который использовал для ds1307, ведь регистры совпадают у этих часов. Но часы показывают 80:80, то есть значение переменной времени 80 и значение переменной часов тоже 80. Куда копать? В чем проблема?
СпойлерВот что выводит(на одном индикаторе сегмент сгорел)Изображение
Вложения
main.cpp
Код прошивки
(4.65 КБ) 354 скачивания
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

"часы показывают"
Ходят?
Docendo discimus
Контактная информация:
Реклама
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

[uquote="pyzhman",url="/forum/viewtopic.php?p=3392047#p3392047"]"часы показывают"
Ходят?[/uquote]
Не-а :( .
Тикали бы, вопросов не было бы :dont_know:
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Сообщение *Trigger* »

Батарейка подключена? Если нет, то третью ногу RTC нужно замкнуть на общий.
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Реклама
Эиком - электронные компоненты и радиодетали
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

[uquote="*Trigger*",url="/forum/viewtopic.php?p=3415820#p3415820"]Батарейка подключена? Если нет, то третью ногу RTC нужно замкнуть на общий.[/uquote]
Нет, это схематическая особенность такая?
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Сообщение *Trigger* »

Наверное, можно и так сказать. Например, в даташите на DS1307 специально про это написано, и я сам получал проблемы, если нет батарейки и вход не заземлён.
В даташите M41T56 про это, вроде как, не сказано, но попробовать стоит.
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Реклама
Мудрый кот
Сообщения: 1712
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

Сообщение Novice user »

Посмотрел ардуино-пример,если нет резервной батареи то они возвращают "80",после установки резервной батареи надо снова установить время
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

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

Добавлено after 48 minutes 11 seconds:
Поставил батарейку, ничего не поменялось. Замкнул на землю, тоже без изменений
Контактная информация:
Мудрый кот
Сообщения: 1712
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

Сообщение Novice user »

Жаль в си не разбираюсь,абсолютно!может и помог бы
просто поставить батарейку (она должна быть 3 вольта,вернее от 2,5 до 3,5 в) мало-надо установить время
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

Замкнул ногу батарейки на землю, в коде проинициализировал часы, потом установил время. Время не идет :(
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Сообщение dr.doc »

А бит ST какой? Может часы просто остановлены?
Setting this bit to a '1' will cause the
oscillator to stop
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Друг Кота
Аватара пользователя
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Сообщение *Trigger* »

В коде есть сброс этого бита:

Код: Выделить всё

	DS1307Read(0x00,&temp);
	temp &= ~(1 << 7); // обнуляем 7 бит
	DS1307Write(0x00,temp);
Отображаемое время после установки соответствует установленному? Или опять 80:80? Может, попробовать добавить задержку после подачи питания до начала обмена по шине?

Кстати, где в коде вызов функции I2CInit()? Без него не установится правильная тактовая частота шины.
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

I2CInit() дописал, ничего не изменилось. Часики показывают установленное время, а не 80 80
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Сообщение dr.doc »

А Вы точно читаете? Ведь 0x80 это есть пустой регистр с установленным в нем 7-м битом... Как и записанное значение на индикатор выводится и "часы не идут".
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Друг Кота
Аватара пользователя
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Сообщение *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);
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Ср фев 11, 2015 20:50:17
Откуда: центр Урала

Сообщение BVG_15 »

Какая микросхема стоит все таки,М41Т или 1307?
С уважением Вл.Георг.
Друг Кота
Аватара пользователя
Сообщения: 39197
Зарегистрирован: Сб сен 13, 2014 16:27:32
Откуда: СпиртоГонск созвездия Омега

Сообщение musor »

полгода прошло однако тс не описался о резултат
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

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

Вернуться в «Периферия»