Вот тут меня мучает такой вопрос:
TWCR - он же не буферизированный? Как же тогда в сях одной командой установить TWEN, TWINT и сбросить TWEA (режим NOASK)???
Я так понимаю - в таком порядке не пройдет:
TWCR &= ~(1<<TWEA)
TWCR |= ((1<<TWINT) | (1<<TWEN))
тоже не должно работать. Ведь и в том и в другом случае мы обнуляем TWINT первой командой и сражу начинается работа модуля.
Прав я или где-то запутался???
Просто каждый раз одним оператором заносить нужное значение и всё.
Примерно так:
Код:
// мне проще считать, что прерывания обычно разрешены и запрещать // только если это нужно 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;
_________________ Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Я на днях собирал 20 приборчиков на DS1307 SMD+MEGA32 SMD. Первый собрал - часики тикают. Остальные собрал, а часики стоят. Целый день стучал в бубен, все форумы перечитал, приборчики один-в-один, уже собирался начать волосы выдирать, но бывалый дяденька электрик посоветовал промыть всё по старинке спиртом, и часики разумеется пошли. Оказалось, что остатки флюса под корпусом SMD не давали часикам тикать.
Заводской флюс - это кака...... его после монтажа тщательно смывать надо. Не удивлюсь что он еще и утечку реальную дает между ножками. Я например пользуюсь чистой самодельной спиртоканифолью, никогда проблем не было, хоть специально покрывай плату (что собственно говоря, иногда и делаю).
Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650.
Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.
Извиняюсь, если не в тему. Может ли кто порекомендовать жидкий флюс (чтобы самому не разводить). Сам пользуюсь ЛТИ-120 - очередной раз убеждаюсь, для подобных задач это не вариант. Вроде как спирто-канифоль продается в жидком виде, если я ничего не путаю.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Кстати, многие спорят - запускается ли DS-ка без батарейки. Лично у меня из 20-ти штук одна таки работала без батарейки (случайно забыл вставить). Остальные проверил для статистики - гарантированно не отвечают.
Собрал часы на DS1307 + Tiny2313. Проблема: при включении питания часы выводят "66:65", стоят на месте . Как я понял это последствия неправильного считывания из микры часов. Промывал плату от флюса --временно помогло, потом опять "66:65" при включении. С этой микрой работал раньше, проблем не было , такая же прога работает в других часах уже почти год без проблем. Проверяя все последовательно , заметил интересное : вынимаю батарейку, подаю питание, часы запускаются и идут нормально (счет начинается с 00:00) , только при отключении время не сохраняют. Выключаю, вставляю батарейку, включаю питание-- опять "66:65", стоит на месте. Керамика на 0,1 мкФ по питанию DS1307 стоит. Менял микур часов, кварц --не помогло Уж не знаю чего дальше делать/ на что думать .
А если кнопочками, новое время можно устанавливать? реагирует?
Не реагирует. Но я по-моему нашел причину некорректной работы. Мой случай описан в даташите к 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 помните про особенности её питания !!!
Проблема DS1307 заключается в работе компаратора напряжения основного питания и питания от батарейки 1 без батарейки работать будет - но НА 3 ВЫВОДЕ (ВХОД БАТАРЕЙКИ) УСТАНОВИТЬ КОНДЕНСАТОР примерно 10 нФ и паралельно резистор (номинал подобрать в зависимости от потребления когда станет батарейка 2 кварц обязательно заземлить (корпус припаять к земле 3 не увлекайтесь частотой 100кГц для неё оптимально 4 промывание спиртом помогает но ЕСЛИ ВЫ НЕ ПРЕДУСМОТРЕЛИ ЗЕМЛЯНОЙ ПОЛИГОН ВОЗЛЕ 1 И 2 НОЖКИ работа часов будет не стабильной 5 не располагайте микросхему близко к цепям переменного тока
Заголовок сообщения: Re: Не могу запустить RTC DS1307 на Atmega8
Добавлено: Вс июн 22, 2014 06:11:09
Сверлит текстолит когтями
Карма: 13
Рейтинг сообщений: 40
Зарегистрирован: Пн окт 13, 2008 11:45:54 Сообщений: 1287 Откуда: РФ, Крым, г.Бахчисарай
Рейтинг сообщения:0
Анатолий, просто интересно а кому Вы своё сообщение адресовали?
Вы думаета за 10 месяцев никто так эту задачу и не решил?
_________________ Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений. ---------- Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
на форуме нет чёткого ответа на решение проблемы Я сам столкнулся с этим , и ответа не нашёл , а народ ищет ответ .пусть 10 месяцев прошло ,но люди просматривают ветку форума - а там чёткого ответа нет
та же история. нет ответов по запуску 1307. у меня тоже подключен к меге 8. время устанавливается, а он не запускается.секунды стоят. собрал один в один с предыдущим вариантом, промыл в банке с ацетоном, не идут. кварц уж 7 штук менял, молчит. +5в , +3в есть, подтяжки резисторы стоят, кондер по питанию есть...молчит зараза...
Заголовок сообщения: Часы реального времени DS1307
Добавлено: Ср сен 30, 2015 14:05:04
Родился
Зарегистрирован: Ср сен 30, 2015 13:46:44 Сообщений: 6
Рейтинг сообщения:0
Добрый день. Собрал часы на ATtiny 2313 и DS 1307 не хотят работать. Собрал на ATmega 48 и DS 1307 тоже не работают. DS 1307 выписал у китайцев. Может они не исправные, или DS ку надо как то программировать? В интернете информации что DSка программируется я не нашёл . Схемки то простенькие ошибки быть не может. Помогите разобраться в чём дело.
Попробуйте такое шаманское дествие Хотя как раз с китайскими ДС( вернее купленными в Китае) я такого не замечал, у меня подозрение на кривую инициализацию ДС в программах.
Заголовок сообщения: Re: Не могу запустить RTC DS1307 на Atmega8
Добавлено: Чт окт 01, 2015 07:29:34
Родился
Зарегистрирован: Ср сен 30, 2015 13:46:44 Сообщений: 6
Рейтинг сообщения:0
Martin76 писал(а):
Попробуйте такое шаманское дествие Хотя как раз с китайскими ДС( вернее купленными в Китае) я такого не замечал, у меня подозрение на кривую инициализацию ДС в программах.
Спасибо за совет. Запрограммировал новую ATtiny .при подачи напряжения показывает время 16:23 и часы стоят. Попробовал совет с кондёрам часы так и не пошли. Менял кварцы результат тот же. Проверил напряжение на батарейке и питание,всё нормально. На PICе без DSки часы работают без проблем. Хотел собрать часы которые не сбрасывают время при отключении напряжения,но что то не получается. КАК МОЖНО ИХ ЗАПУСТИТЬ?
Цитата из даташита "Имейте в виду, что при включении питания начальное состояние всех регистров не определено. Поэтому необходимо принудительно включать тактовый генератор (бит CH = 0) во время начальной инициализации. " ,короче секунды нужно установить при первом включении RTC .
А можно ли как-нибудь подключить DS1307 без батарейки? Тему прочитал, вроде пишут, а что пишут понять не могу. Делаю часы на 155-ой серии, вот решил в качестве генератора поставить сию микрушку (генератор частоты 1 Гц). Надо чтобы работало без микроконтроллера и батарейки (там всё равно ве функции реализовать не получится). Вроде нашёл схему, работать будет? Батарейку нафиг!!!
И что надо подавать/снимать с контактов SCL и SDA? SWQ/OUT понятно что выход. Вот надо чтобы на этом SWQ/OUT был 1 Гц
_________________ память не сверло Имея один мультиметр, можно измерить всё, кроме платы самого мультиметра. Имея два мультиметра, можно измерить вообще всё.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения