Страница 2 из 5

Добавлено: Вт янв 12, 2010 01:31:57
AlexRu
Вот тут меня мучает такой вопрос:
TWCR - он же не буферизированный? Как же тогда в сях одной командой установить TWEN, TWINT и сбросить TWEA (режим NOASK)???
Я так понимаю - в таком порядке не пройдет:
TWCR &= ~(1<<TWEA)
TWCR |= ((1<<TWINT) | (1<<TWEN))

по идее в обратном:

TWCR |= ((1<<TWINT) | (1<<TWEN))
TWCR &= ~(1<<TWEA)

тоже не должно работать. Ведь и в том и в другом случае мы обнуляем TWINT первой командой и сражу начинается работа модуля.
Прав я или где-то запутался???


может так? :

TWCR &= ~((1<<TWEA) | (1<<TWINT))
TWCR |= ((1<<TWINT) | (1<<TWEN))

Добавлено: Вт янв 12, 2010 12:48:56
avreal
Просто каждый раз одним оператором заносить нужное значение и всё.
Примерно так:

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

// мне проще считать, что прерывания обычно разрешены и запрещать
// только если это нужно
enum { twcr_default = (1 << TWEN) | (1 << TWIE) | (1 << TWINT) };

....
    case TW_MR_DATA_ACK:
        *bufptr++ = TWDR;
        /* FALLTHROUGH */
    case TW_MR_SLA_ACK:
        if (--left) {
            TWCR = twcr_default | (1 << TWEA);
        } else {
            TWCR = twcr_default;
        }
        break;

    case TW_MR_DATA_NACK:
        *bufptr++ = TWDR;
        TWCR = (twcr_default & ~(1 << TWIE)) | (1 << TWSTO);
        done = true;
        break;

....

Re: Не могу запустить RTC DS1307 на Atmega8

Добавлено: Пн ноя 12, 2012 16:45:05
DOREN
Я на днях собирал 20 приборчиков на DS1307 SMD+MEGA32 SMD. Первый собрал - часики тикают. Остальные собрал, а часики стоят. Целый день стучал в бубен, все форумы перечитал, приборчики один-в-один, уже собирался начать волосы выдирать, но бывалый дяденька электрик посоветовал промыть всё по старинке спиртом, и часики разумеется пошли. Оказалось, что остатки флюса под корпусом SMD не давали часикам тикать.

Re: Не могу запустить RTC DS1307 на Atmega8

Добавлено: Пн ноя 12, 2012 20:00:40
shads
Заводской флюс - это кака...... его после монтажа тщательно смывать надо. Не удивлюсь что он еще и утечку реальную дает между ножками.
Я например пользуюсь чистой самодельной спиртоканифолью, никогда проблем не было, хоть специально покрывай плату (что собственно говоря, иногда и делаю).

Re: Не могу запустить RTC DS1307 на Atmega8

Добавлено: Ср ноя 14, 2012 12:29:11
DOREN
Извиняюсь, если не в тему. Может ли кто порекомендовать жидкий флюс (чтобы самому не разводить). Сам пользуюсь ЛТИ-120 - очередной раз убеждаюсь, для подобных задач это не вариант. Вроде как спирто-канифоль продается в жидком виде, если я ничего не путаю.

Re: Не могу запустить RTC DS1307 на Atmega8

Добавлено: Пн ноя 19, 2012 15:17:19
DOREN
Кстати, многие спорят - запускается ли DS-ка без батарейки. Лично у меня из 20-ти штук одна таки работала без батарейки (случайно забыл вставить). Остальные проверил для статистики - гарантированно не отвечают.

Re: Не могу запустить RTC DS1307 на Atmega8

Добавлено: Пн авг 12, 2013 22:28:00
Nixie
Собрал часы на DS1307 + Tiny2313. Проблема: при включении питания часы выводят "66:65", стоят на месте . Как я понял это последствия неправильного считывания из микры часов. Промывал плату от флюса --временно помогло, потом опять "66:65" при включении. С этой микрой работал раньше, проблем не было , такая же прога работает в других часах уже почти год без проблем.
Проверяя все последовательно , заметил интересное : вынимаю батарейку, подаю питание, часы запускаются и идут нормально (счет начинается с 00:00) , только при отключении время не сохраняют. Выключаю, вставляю батарейку, включаю питание-- опять "66:65", стоит на месте.
Керамика на 0,1 мкФ по питанию DS1307 стоит.
Менял микур часов, кварц --не помогло :( Уж не знаю чего дальше делать/ на что думать . :(

Re: Не могу запустить RTC DS1307 на Atmega8

Добавлено: Пн авг 12, 2013 22:36:52
C@at
Nixie писал(а): "66:65" при включении.
А если кнопочками, новое время можно устанавливать? реагирует?

Re: Не могу запустить RTC DS1307 на Atmega8

Добавлено: Вт авг 13, 2013 20:30:45
Nixie
C@at писал(а): А если кнопочками, новое время можно устанавливать? реагирует?
Не реагирует. Но я по-моему нашел причину некорректной работы. Мой случай описан в даташите к 1307 на 6 странице . В общем, если напряжение питания микры ниже чем Uбат *1,25 , то она не отвечает на запрос, чтобы предотвратить порчу данных, но продолжает считать время.
Особенностью моей конструкции (которой я вначале не придал значения) было то, что индикаторы часов--вакуумно-люминисцентные , 4 ИВ-12 и 1 ИВ-6 , а поэтому накал потребляет много тока. Часы запитаны от самодельного лабораторного БП.
Примерный сценарий появления глюков следующий : включаем питание, все ок , все работает---микра стабилизатора БП нагревается от большого потребления накала---вых. напряжение немного проседает---я не могу этого заметить по стрелочному индикатору вых. напряжения--микра не отвечает на запрос (точнее в ответ к процу приходит двоичное "255" из регистров часов и минут, что псле преобразования дает "66:65" на индикаторах).
Далее я в недоумении выключаю питание, включаю опять, из-за инерционности нити накала прогреваются около 1 секунды, так же растет и ток потребления и проседает напряжение БП , я успеваю увидеть норм. время, дальше все повторяется.
При длительном отключении микра стабилизатора БП успевает остыть, после включения все некоторое время опять работатет нормально.
Замер напряжения на резервной батарее показал 3,1 В что дает нам 3,1 В*1,25=3, 875 В. Замер вых. напряжения БП под нагрузкой часами показал 4,3 В--несмотря на то, что он укладывается в рекомендованный даташитом предел, глюки были.
При поднятии напряжения до 4,7 В глюки прошли :))
ВЫВОД Работатя с DS1307 помните про особенности её питания !!!

Re: Не могу запустить RTC DS1307 на Atmega8

Добавлено: Сб июн 21, 2014 00:35:45
Анатолий Красковский
Проблема DS1307 заключается в работе компаратора напряжения основного питания и питания от батарейки
1 без батарейки работать будет - но НА 3 ВЫВОДЕ (ВХОД БАТАРЕЙКИ) УСТАНОВИТЬ КОНДЕНСАТОР примерно 10 нФ и паралельно резистор (номинал подобрать в зависимости от потребления когда станет батарейка
2 кварц обязательно заземлить (корпус припаять к земле
3 не увлекайтесь частотой 100кГц для неё оптимально
4 промывание спиртом помогает но ЕСЛИ ВЫ НЕ ПРЕДУСМОТРЕЛИ ЗЕМЛЯНОЙ ПОЛИГОН ВОЗЛЕ 1 И 2 НОЖКИ работа часов будет не стабильной
5 не располагайте микросхему близко к цепям переменного тока

1 пункт самый важный

Re: Не могу запустить RTC DS1307 на Atmega8

Добавлено: Вс июн 22, 2014 06:11:09
Danko
Анатолий, просто интересно а кому Вы своё сообщение адресовали?

Вы думаета за 10 месяцев никто так эту задачу и не решил?
:)) :)) :))

Re: Не могу запустить RTC DS1307 на Atmega8

Добавлено: Чт июн 26, 2014 09:34:16
Анатолий Красковский
на форуме нет чёткого ответа на решение проблемы
Я сам столкнулся с этим , и ответа не нашёл , а народ ищет ответ .пусть 10 месяцев прошло ,но люди просматривают ветку форума - а там чёткого ответа нет

Re: Не могу запустить RTC DS1307 на Atmega8

Добавлено: Вт ноя 25, 2014 00:18:03
odvl
та же история. нет ответов по запуску 1307. у меня тоже подключен к меге 8. время устанавливается, а он не запускается.секунды стоят. собрал один в один с предыдущим вариантом, промыл в банке с ацетоном, не идут. кварц уж 7 штук менял, молчит. +5в , +3в есть, подтяжки резисторы стоят, кондер по питанию есть...молчит зараза...

Часы реального времени DS1307

Добавлено: Ср сен 30, 2015 14:05:04
jnson
Добрый день. Собрал часы на ATtiny 2313 и DS 1307 не хотят работать. Собрал на ATmega 48 и DS 1307 тоже не работают. DS 1307 выписал у китайцев. Может они не исправные, или DS ку надо как то программировать? В интернете информации что DSка программируется я не нашёл . Схемки то простенькие ошибки быть не может. Помогите разобраться в чём дело.

Re: Не могу запустить RTC DS1307 на Atmega8

Добавлено: Ср сен 30, 2015 14:29:22
Martin76
Попробуйте такое шаманское дествие :) Хотя как раз с китайскими ДС( вернее купленными в Китае) я такого не замечал, у меня подозрение на кривую инициализацию ДС в программах.

Re: Не могу запустить RTC DS1307 на Atmega8

Добавлено: Ср сен 30, 2015 14:46:07
pavel1979
у меня выводилось 169:169,неправильно инициализировал,сейчас все отлично,вот тема на вртп http://vrtp.ru/index.php?showtopic=25803&hl=

Re: Не могу запустить RTC DS1307 на Atmega8

Добавлено: Чт окт 01, 2015 07:29:34
jnson
Martin76 писал(а):Попробуйте такое шаманское дествие :) Хотя как раз с китайскими ДС( вернее купленными в Китае) я такого не замечал, у меня подозрение на кривую инициализацию ДС в программах.
Спасибо за совет. Запрограммировал новую ATtiny .при подачи напряжения показывает время 16:23 и часы стоят. Попробовал совет с кондёрам часы так и не пошли. Менял кварцы результат тот же. Проверил напряжение на батарейке и питание,всё нормально. На PICе без DSки часы работают без проблем. Хотел собрать часы которые не сбрасывают время при отключении напряжения,но что то не получается. КАК МОЖНО ИХ ЗАПУСТИТЬ?

Re: Не могу запустить RTC DS1307 на Atmega8

Добавлено: Вс июн 19, 2016 14:01:34
ma5a97
Цитата из даташита "Имейте в виду, что при включении питания начальное состояние всех регистров не
определено. Поэтому необходимо принудительно включать тактовый генератор (бит CH = 0) во
время начальной инициализации. " ,короче секунды нужно установить при первом включении RTC .

Re: Не могу запустить RTC DS1307 на Atmega8

Добавлено: Ср ноя 02, 2016 18:55:47
Dr.Tr.
А можно ли как-нибудь подключить DS1307 без батарейки? Тему прочитал, вроде пишут, а что пишут понять не могу. Делаю часы на 155-ой серии, вот решил в качестве генератора поставить сию микрушку (генератор частоты 1 Гц). Надо чтобы работало без микроконтроллера и батарейки (там всё равно ве функции реализовать не получится). Вроде нашёл схему, работать будет? Батарейку нафиг!!!
Изображение
И что надо подавать/снимать с контактов SCL и SDA? SWQ/OUT понятно что выход. Вот надо чтобы на этом SWQ/OUT был 1 Гц

Re: Не могу запустить RTC DS1307 на Atmega8

Добавлено: Ср ноя 02, 2016 19:14:57
Z_h_e
Dr.Tr. писал(а):вот решил в качестве генератора поставить сию микрушку
Почитайте тут. Если Вам удастся включить ее в часы на рассыпухе 155 без МК. Поздравляю, Вы тот еще "извращенец" :))) .