Всё по DS1307 и прочим часам Dallas (Maxim)

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2064
Зарегистрирован: Пт апр 24, 2009 11:39:16
Откуда: г.Оренбург

Сообщение Pika4u »

enq писал(а):Проблема: DS1307 считает время только при отключенном основном питании. При работе в активном режиме - все команды и ответы проходят, время переводится, но часы стоят. Перешел на батарею - пошли. Подал основное - остановились. Дело наверно в питании, но что с ним может быть не так? питаю от USB экранированным кабелем, на плате 10 мкФ тантал по входу питания и 1 мкФ кермика около микросхемы. Пробовал разные кварцы в разных вариантах подключения (земля, кондЕнсаторы... ), думаю дело не в этом. Помогите кто чем может.
Может я и опоздал, но у меня было такое. В этих часах, в одном из байтов, есть бит, который отвечает за то, идут часы или стоят. Гляньте код, мб в коде этот байт вы и перезаписываете.
Steve Jobs. 1955-2011. Мы помним, как ты преобразовал наш мир....
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Только что столкнулся с интересным багом: в устройстве, которое работало пару лет 24/7 микросхема DS1337 отвечала, но время не тикало. Сначала грешил на кварц, поменял его — не помогло. Поставил новую микру — всё заработало :kill:
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15615
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Бывает и похуже - тикают до определенной даты/времени и дальше - ни шагу... :cry:
Помогает только замена микросхемы (иногда перевод параметров вручную).
8)
Мучитель микросхем
Аватара пользователя
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область

Сообщение Gordon Shumway »

Доброго времени суток, уважаемые знатоки !

Глупый вопрос по подключению DS1307.
ATMega32 и дисплей питаются от 3,3в, DS1307 - от 5в. Как ее с микроконтроллером связать ? Нужны какие-то преобразователи напряжения ? Куда вешать подтягивающие резисторы - на 5в или на 3,3в ?

(DS1338z33 под рукой нету...)

Спасибо !
С уважением,
Алексей.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Почему 1307 не запитать от 3.3 В?
В принципе, резисторы можно вешать и туда (1307 понимает лог. "1" с 2.2 В). Единственно что если подтянуть к +5, то в мегу череза защитные диоды будет течь ток. Так что лучше к 3.3 В.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область

Сообщение Gordon Shumway »

Gudd-Head писал(а):Почему 1307 не запитать от 3.3 В?
Упирается ногами, не работает. Проверил. Резервная батарея 3в, значит питание должно быть 3*1,25= 3,75в минимум, что губительно для дисплея (3.3v max).
Попробую подключить по вашей рекомендации, спасибо !
С уважением,
Алексей.
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Gordon Shumway писал(а):Упирается ногами, не работает.
Да, точно. Не досмотрел ДШ. Просто я всё больше с 1337 работаю.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Родился
Сообщения: 6
Зарегистрирован: Ср дек 10, 2014 22:07:12

Сообщение sedojkot »

Последний опыт. DS1307N куплены одновременно две микросхемы. Мучал обе DSки кодом пол года. Не хотели переходить на питание от резервной батареи. Измучил плату, измучил программу. Обе микросхемы сбрасывали часы в ноль при отключении питания. Купил DS1307, без N. Прошил контроллер уже отточенной программой, на той же плате - всё чудесно работает. Вопрос - в чём глюк?
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

ХЗ, с N просто промышленного исполнения (-40...+85 °С).
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Друг Кота
Аватара пользователя
Сообщения: 15615
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Надо схемку бы поглядеть - никаких проблем ни с N, ни с "обычной" не встречалось. Насчет программки... тут сложнее - пишу под ассемблером. :dont_know:
Да еще... Окромя Максим-Даллас 1307 еще много кто выпускает, вот к примеру:
vs1307.pdf
(287.69 КБ) 585 скачиваний
так что еще всякое может быть...
:roll:
Родился
Сообщения: 6
Зарегистрирован: Ср дек 10, 2014 22:07:12

Сообщение sedojkot »

Схемка обычная, можно сказать стандартная, с выхода 7 снимается секундный импульс для контроля частоты. схему прилагаю. Да и микруха с виду обычная, на ней надпись в три строчки DS1307N 0545A6 404AE. Неделю радуюсь, что не надо каждый раз устанавливать время и дату при считывании данных, извините за каламбур "работает как часы".
Родился
Сообщения: 6
Зарегистрирован: Ср дек 10, 2014 22:07:12

Сообщение sedojkot »

Забыл приложить схему
Вложения
Shema TD.JPG
Термодаталоггер
(106.59 КБ) 777 скачиваний
Друг Кота
Аватара пользователя
Сообщения: 15615
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

:)
Ну уж и "стандартная"... :facepalm:
А как насчет случайного состояния "повторный старт" (Sr согласно протокола), обусловленного совмещением сигналов управления сегментом Е индикатора и линией SDA часиков? Тем более, что у 1307 некоторое "самостоятельное трактование" I2C протокола имеется... 8)
:oops:
Проглядел... :oops: :facepalm:
Все на своих местах...
Последний раз редактировалось BOB51 Пт дек 12, 2014 11:40:06, всего редактировалось 1 раз.
Мучитель микросхем
Аватара пользователя
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область

Сообщение Gordon Shumway »

BOB51 писал(а): А как насчет случайного состояния "повторный старт" (Sr согласно протокола), обусловленного совмещением сигналов управления сегментом Е индикатора и линией SDA часиков?
Так он вроде не к SDA, а к SQW/OUT подключил, судя по схеме. Там, если я правильно понял, выход 1гц сконфигурирован.
А вообще странно. Сам недели две назад в Чипе N-ки брал в соике - проблем не было.
С уважением,
Алексей.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15615
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Исправил...
Но все равно, чей-то там имеется...
У меня "выносной кубик" на длинном шлейфе как отдельный блок на макетке - и то работает... даже после абсолютно самостоятельной отлежки отдельно от устройства - потом когда надо подтыкнул при выключенном питании и работает уже с RTC.
Правда программа под асемблером и маркер сразу с "N" в конце маркировки в наличии не имеется - у имеющегося сейчас в наличии экземпляра эта буковка в самом конце третьей строчки маркировки впечатана.
:dont_know:
Родился
Сообщения: 6
Зарегистрирован: Ср дек 10, 2014 22:07:12

Сообщение sedojkot »

Попробую на днях удалить всё из программы и оставить только часы, а потом поиграюсь с разными DS1307. И пороюсь в памяти DSок.
Родился
Сообщения: 6
Зарегистрирован: Ср дек 10, 2014 22:07:12

Сообщение sedojkot »

Купил ещё две микросхемы, продавец сказал, что DS1307N, хотя в маркировке N отсутствует. Всё работает правильно. Те, предыдущие, две микросхемы по-прежнему сбрасываются в ноль, на той же плате и прошивке, как будто нет резервной батарейки. Покупал микросхемы на радио базаре, видимо мне слили не кондицию, а может партия бракованная. Больше играться не буду, где- то использую эти микрухи в качестве генератора 1 сек импульса.
Друг Кота
Аватара пользователя
Сообщения: 15615
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Возможно порог сработки схемы переключения внутри 1307 в чем-то "барахлит" или скорость падения напруги ей не нравится... :roll:
Родился
Сообщения: 6
Зарегистрирован: Ср дек 10, 2014 22:07:12

Сообщение sedojkot »

Возможно. Может быть и простой обрыв третьей ноги. В памяти DS покопался, ничего интересного не нашел. Память DS записывал на SD карту. При отсутствии питания память обычно заполняется чем попало. Обнулял все регистры. На нормальных DSках батарейка поддерживает изменённые значения, на моих «бракованных» сразу после отключения основного питания всё заполняется произвольными значениями.
Код и схема управления часами рабочие. Копать дальше не буду. Результат достигнут.
Кстати, запускать часы можно обычным циклом обнуления всех 64 регистров, с последующей одноразовой установкой времени и даты.
BOB51, спасибо за тему «Разные вопросы по МК» и «Всё по DS1307 и прочим часам Dallas (Maxim)», почитал с удовольствием, нашел много интересных узелков для себя.
Мучитель микросхем
Аватара пользователя
Сообщения: 447
Зарегистрирован: Сб фев 09, 2013 11:39:13
Откуда: Украина, Марганец

Сообщение tantrum »

Здравствуйте, уважаемые Коты :))
Не могу прочитать из ds1307 данные календаря.
Пробую так:
DS1307Read(0x03,&temp); // Чтение регистра дня недели
week = (((temp & 0xF0) >> 4)*10)+(temp & 0x0F);
lcd_gotoxy(0,1);
if(week == 00001) lcd_string("SUN",3);
else if (week == 00010) lcd_string("MON",3);
else if (week == 00011) lcd_string("TUE",3);
else if (week == 00100) lcd_string("WED",3);
else if (week == 00101) lcd_string("THU",3);
else if (week == 00110) lcd_string("FRI",3);
else if (week == 00111) lcd_string("SAT",3);
Ничего не работает.
То есть, двоично-десятичный формат был преобразован в двоичный, но if не видит там подобного...
Ответить

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