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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

Аlex писал(а):Вы не внимательно смотрите. Инкремент в конце процедуры.
Да, действительно, не доглядел. Извиняюсь :oops:

Viper70 писал(а):Потому что нет ASK от RTC
Ещё не факт. Может модуль не ловит, или в обработке проблема. Чтобы точно быть уверенным, нужно осциллом смотреть.
Камень какой ?
И инит модуля киньте сюда.

PS: Да, и ещё. А что если поигнорировать АСК от RTC и в наглую с ней пообщаться ?
Аватара пользователя
Viper70
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Чт фев 23, 2017 20:03:07
Откуда: Украина

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

Сообщение Viper70 »

Аlex писал(а):
Аlex писал(а):Вы не внимательно смотрите. Инкремент в конце процедуры.
Да, действительно, не доглядел. Извиняюсь :oops:

Viper70 писал(а):Потому что нет ASK от RTC
Ещё не факт. Может модуль не ловит, или в обработке проблема. Чтобы точно быть уверенным, нужно осциллом смотреть.

На той же шине стоит флешка. На плате рядом с часами. Работает и на чтение и на запись. Используется аппаратный I2C
Так что на код и инит я не грешу

Аlex писал(а):PS: Да, и ещё. А что если поигнорировать АСК от RTC и в наглую с ней пообщаться ?

Вот енто могу попробовать

Еще у меня контакт SQW в воздухе, как у многих видел. Его не пользую. При выключенном состоянии на нем земля. Это нормально?
Одна голова - хорошо, а две - это уже V6
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

Viper70 писал(а):Вот енто могу попробовать
Конечно попробуйте.
Это, вообще, нужно было первым делом попробовать :)

И ещё. У Вас есть небольшое недопонимание процесса в целом.
Вот это :

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

SSPBUF=bufEE[EEp-4]; ACKDT=1; ACKEN=1;
ошибочные операции.
Ошибки даже две :
1. Мастер при записи никогда не устанавливает ACK-бит, только его читает. Установка идёт только при чтении данных и только после их прочтения (после установки флага).
2. Запись в буфер и установка АСК - два отдельных шага, с последующими установками флага SSPIF после каждого. Возможно, в Вашем камне это не так, но Вы почему-то его название держите в секрете :)
Так что, учтите это в дальнейшем.

ЗЫ: Можете показать код чтения ? И камень, в конце концов, назовите :)

Добавлено after 7 minutes 57 seconds:
Viper70 писал(а):Еще у меня контакт SQW в воздухе, как у многих видел. Его не пользую. При выключенном состоянии на нем земля. Это нормально?
На нём всегда будет земля, если он висит в воздухе. Этот вывод с открытым стоком.
У меня в конструкциях этот вывод всегда в воздухе висит, на работу никак не влияет.
Аватара пользователя
Viper70
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Чт фев 23, 2017 20:03:07
Откуда: Украина

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

Сообщение Viper70 »

Аlex писал(а):У Вас есть небольшое недопонимание процесса в целом.
Вот это :

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

SSPBUF=bufEE[EEp-4]; ACKDT=1; ACKEN=1;
ошибочные операции.
Ошибки даже две :

Это не ошибки, это мусор остался. Там выставление АСК не нужно. Удалю. Спасибо что заметили
А вот при чтении данных читаем буфер и тут же выставляем АСК. Это наверное от чтения строка осталась
Тем более до этого шага программа не доходит.

Аlex писал(а):И камень, в конце концов, назовите :)
PIC18F4620

Аlex писал(а):
Viper70 писал(а):Еще у меня контакт SQW в воздухе, как у многих видел. Его не пользую. При выключенном состоянии на нем земля. Это нормально?
На нём всегда будет земля, если он висит в воздухе. Этот вывод с открытым стоком.
У меня в конструкциях этот вывод всегда в воздухе висит, на работу никак не влияет.

Спасибо что уточнили

Пробовал игнорить АСК. Записал в часы, потом прочитал. Там мусор какой-то. Получилось 45:85 и дата 45.25.165 если правильно запомнил
Одна голова - хорошо, а две - это уже V6
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

Можно схемку ? А лучше проект протеуса.
Тут некоторые даже прогу тестовую обещали написать :)))

PS: Может, для теста, попробовать сделать маленькую программку, которая просто читает время с микрухи и выводит её на дисплей ? И без всяких прерываний. А лучше даже ещё и с программным I2C.
Тогда будет уже точно известно кто виновен.
Аватара пользователя
Viper70
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Чт фев 23, 2017 20:03:07
Откуда: Украина

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

Сообщение Viper70 »

Аlex писал(а):Можно схемку ? А лучше проект протеуса.

В Протеусе все работает без проблем.
Да и проект не маленький. Там очень много всего. И программа на 2000 строк... пока.
Так что не хочу вас грузить.
Сегодня все прозвонил, перечистил опять, перепроверил. С чем черт не шутит.

Заказал из Китая платку RTC. Проверю ее и по одному компоненту перепаяю на свою плату. Жаль только ждать долго
Нужно еще почитать мануал по арбитражу на шине и по ошибкам

Спасибо всем кто откликнулся. До замены ДС-ки буду делать другой кусок софта. Там еще валом :)
Одна голова - хорошо, а две - это уже V6
ma5a97
Прорезались зубы
Сообщения: 217
Зарегистрирован: Чт мар 12, 2015 01:37:52
Откуда: Донецк

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

Сообщение ma5a97 »

Почти месяц прошел , нет ни схемы ни исходников от Viper70. Решил выложить свой кусок для проверки часов на 8меге . В порт б вывел единицы секунд , кнопкой обнуляем секунды и заодно бит 7 в регистре 0 . Сразу скажу эту программу в железе не проверял , но подобное проделывал в нескольких устройствах и все они работаю нормально . Как появится под рукой такая мелкосхема , сразу проведу испытания в железе , но теоретически все должно заработать и так :roll: Не забываем поставить резисторы последовательно светодиодам .
Вложения
test_rtc.rar
(80.62 КБ) 138 скачиваний
Аватара пользователя
Viper70
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Чт фев 23, 2017 20:03:07
Откуда: Украина

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

Сообщение Viper70 »

Разобрался с часами. Все заработало как перепаял DS1307 на новую.
Может прошлая пришла с глюком (никогда не работала), а может перегрел, когда перепаивал на другую плату.
Надоело возиться. Так получилось, что с ней и кварц на 12.5 pF приехал. Его тоже заменил.
Кварц стоит не близко и полигона под ним нет. Все работало, но когда обесточиваю плату - часы останавливаются.
Просто припаял корпус кварца к ближайшей земле - теперь все Ок. Несколько раз обесточивал на пол часа, потом запускал - все точно!
Проблема решена. Просто детальки ехали долго, потом прислали не то...
Думал пока жду - попробую запустить то что есть. Но не тут то было :)
Одна голова - хорошо, а две - это уже V6
Аватара пользователя
Viper70
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Чт фев 23, 2017 20:03:07
Откуда: Украина

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

Сообщение Viper70 »

Какой-то глюк остался. Когда отключил устройство от всех потребителей - часы через время стали.
Запустил часы снова. Отключил все на час. Потом запустил - все в порядке. Записал время, чтоб засечь через сколько остановятся.
Думаю раз проблема вылезла - то будет доставать периодически. Нужно разбираться сразу

Какие есть предложения? Только без фанатизма, типа обвешать все фильтрами и полигонами! :)))
Интересует практический опыт, а не догадки. Догадки долго проверять, если виснит оно только через несколько часов
Одна голова - хорошо, а две - это уже V6
ma5a97
Прорезались зубы
Сообщения: 217
Зарегистрирован: Чт мар 12, 2015 01:37:52
Откуда: Донецк

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

Сообщение ma5a97 »

Может батарейка отходит ? Какой флюс использовался для пайки активный ? У меня такой проблемы никогда не было .
Аватара пользователя
Viper70
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Чт фев 23, 2017 20:03:07
Откуда: Украина

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

Сообщение Viper70 »

Батарейка не отходит, на ней ровно 3 вольта
Паял с кислотой, но совсем чуточку. После вычищал все спиртом
Одна голова - хорошо, а две - это уже V6
ma5a97
Прорезались зубы
Сообщения: 217
Зарегистрирован: Чт мар 12, 2015 01:37:52
Откуда: Донецк

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

Сообщение ma5a97 »

Пробуй раствором соды промыть , а потом обильно водой и высушить феном . Микросхема работает с микротоками , этот чуток может быть перемычкой .
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

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

Сообщение alex_ »

Как то мне попался подобный кадер: приходит ко мне и говорит: "нужна схемка простенького таймера". Я ему схемку нарисовал(пару транзисторов, резисторов и конденсатор), схему ему развёл, он по моим "чертежам" сделал печатку, всё запаял и потом звонит и говорит, что не работает. Я посмотрел, всё сделано как надо впаяно всё правильно но не работает. Я начал выпаивать транзисторы и проверять их, всё нормально. Впаиваю не работает, потом выпаял все детали собрал схему на соплях и всё работает. Потом решил тестером прозвонить дорожки платы, и тут я понял в чём было дело: все дорожки звонились между собой но не на короткое точно не помню но вроде около килоомов показывало. Когда я его спросил: "Ты чем паял плату?" на что он мне ответил: кислотой - :shock: :o :kill: WTF
После промывку всей платы и контрольной прозвонки детали были впаяны и всё сразу заработало.
Аватара пользователя
Viper70
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Чт фев 23, 2017 20:03:07
Откуда: Украина

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

Сообщение Viper70 »

Да вымываю всегда начисто. И остатки канифоли убираю. Не люблю грязь на плате.

По кислоте вот что написано: ортофосфорная кислота при нагреве выше 200 гр переходит пирофосфорную, которая легко растворяется в воде.

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

Обычно использую зубную щетку и спирт

PS Примерно 17 часов после вчерашнего подключения - часики тикают норм.
Еще понаблюдаю, пока буду собирать модуль на диодах. Неспешно принимаю еще версии :))
Одна голова - хорошо, а две - это уже V6
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

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

Сообщение alex_ »

Ну кислота кислоте рознь, в моём случае товарищ паяльной кислотой паял(хлорид цинка) который применяют для пайки железа, этот то точно никуда не испариться. С вашей возможно и не всё так страшно. Но помниться мне что кислоты не применяют для пайки радиодеталей, а только малоактивные флюсы типа ЛТИ.
Аватара пользователя
Viper70
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Чт фев 23, 2017 20:03:07
Откуда: Украина

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

Сообщение Viper70 »

Странно, но которые сутки нет проблемы. Все работает. Буду наблюдать :)
Одна голова - хорошо, а две - это уже V6
Аватара пользователя
Viper70
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Чт фев 23, 2017 20:03:07
Откуда: Украина

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

Сообщение Viper70 »

Наблюдается такой глюк
Часы стоят в приборке машины. Ни разу не останавливались совсем
Весь день ездил - все работало правильно. Под вечер стояла около часа. Сел и заметил, что часы отстают на час
Выставил снова, проехал до гаража - нормально. Ночь простояла - нормально. Потом 3-4 коротких поездки - заметил что отстали на 15 мин.
Каждую поездку не проверял, когда именно сбиваются - не могу сказать

Какие есть мысли?
Одна голова - хорошо, а две - это уже V6
Ответить

Вернуться в «AVR»