Перейти к содержанию
    

Проблемы с часами DS1307

Привет всем.

 

Не работают часы DS1307, подключенные к аппратному TWI МК ATMega8535.

Точнее сказать, я даже не знаю, работают они или нет.

При считывании любого регистра получаю какой-то случайный мусор.

Впрочем также как и при отсутствующей микросхеме часов (ыдергиваю из колодки).

 

Даю ссылку на архив с полным текстом микрокода (на cvAVR).

http://hd44780.narod.ru/DS1307-8535.ZIP

 

МК работает на частоте 4 MHz, внутренний генератор.

Схема подключена к COM-порту компа. Параметры связи и протокол обмена - см.

файл DS1307.txt в архиве.

 

Регистры DS считываются по командам компьютера. Считанные данные тоже перегоняются в комп.

Обе линии TWI имеют pull-up резисторы 10k, согласно доке по микроконтроллеру.

Между выходом OUT и +5в подключен светодиод через 1k резистор.

Резервная батарейка есть, напряжение на 3 ноге DS1307 - +3.06в.

Кварц припаян непосредственно к ногам 1 и 2 микросхемы.

Корпус кварца не заземлен.

 

При подаче команды CI часы запускаются (бит CH:=0), в упр. регистр DS

вписывается 10h - светодиод должен мигать с частотой 1 Hz. Но он не мигает, как и при включении питания, а просто светится.

 

Инициализация TWI - в конце функции setPeriferals, ds1307.c.

Считывание регистра DS - ds1307readRegister, ds1307lib.c

запись - ds1307writeRegister, ds1307lib.c

TWI на частоте 50 kHz.

 

 

Может я неправильно с TWI работаю, посмотрите пожалуйста.

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По всей видимости у Вас нет тактирования часов, если при чтении контроллера DS1307 когда он присутствует или отсутствует результат получается однотипным. Проверьте обвязку генератора, возможно необходим подстроечных емкосной триммер (нехватает сдвига фазы для запуска). На сколько припоминаю в описании на этот часовой контроллер к кварцевому резонатору предьявляются дополнительные требования (обратите на это внимание если это так).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Привет всем.

 

Не работают часы DS1307, подключенные к аппратному TWI МК ATMega8535.

Точнее сказать, я даже не знаю, работают они или нет.

При считывании любого регистра получаю какой-то случайный мусор.

Впрочем также как и при отсутствующей микросхеме часов (ыдергиваю из колодки).

 

Даю ссылку на архив с полным текстом микрокода (на cvAVR).

http://hd44780.narod.ru/DS1307-8535.ZIP

 

МК работает на частоте 4 MHz, внутренний генератор.

Схема подключена к COM-порту компа. Параметры связи и протокол обмена - см.

файл DS1307.txt в архиве.

 

Регистры DS считываются по командам компьютера. Считанные данные тоже перегоняются в комп.

Обе линии TWI имеют pull-up резисторы 10k, согласно доке по микроконтроллеру.

Между выходом OUT и +5в подключен светодиод через 1k резистор.

Резервная батарейка есть, напряжение на 3 ноге DS1307 - +3.06в.

Кварц припаян непосредственно к ногам 1 и 2 микросхемы.

Корпус кварца не заземлен.

 

При подаче команды CI часы запускаются (бит CH:=0), в упр. регистр DS

вписывается 10h - светодиод должен мигать с частотой 1 Hz. Но он не мигает, как и при включении питания, а просто светится.

 

Инициализация TWI - в конце функции setPeriferals, ds1307.c.

Считывание регистра DS - ds1307readRegister, ds1307lib.c

запись - ds1307writeRegister, ds1307lib.c

TWI на частоте 50 kHz.

 

 

Может я неправильно  с TWI работаю, посмотрите пожалуйста.

Спасибо.

 

 

Если по миганию светодиода - то при инициализации DS1307 частота выхода настраивается на 4.096 kHz (0xD5 - так я понимаю). Нада 0xD4, тогда два младших бита будут равны 0, а это и есть настройка на 1Hz.

Если после этого замигает - значит проблемы не с обменом с DS1307.

 

Смотри ds1307init() в ds1307lib.c

Изменено пользователем kalinka16

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Немного невнимательно первый раз прочитал Ваше изложение происходящего. Вы заверяете:

МК работает на частоте 4 MHz, внутренний генератор.

Следуя из документации на DS1307 необходимый кварц для ее работы - 32.768 kHz !

Далее Вы используете:

Схема подключена к COM-порту компа. Параметры связи и протокол обмена - см.

DS1307 имеет последовательную двунаправленную шину стандарта I2C ничего общего с UART не имеющим. Как вы присоединяете ее к COM своего PC? Если Вы на COM имеете преобразователь I2C (слава богу такие схемотехнические возможности имеют место) и соответствующий софт, то это замечание отпадает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Немного невнимательно первый раз прочитал Ваше изложение происходящего.

 

Теперь похоже еще невнимательней ;)

Пишет же человек - Не работают часы DS1307, подключенные к аппратному TWI МК ATMega8535 :laugh:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Привет всем.

 

Не работают часы DS1307, подключенные к аппратному TWI МК ATMega8535.

Точнее сказать, я даже не знаю, работают они или нет.

 

TWI на частоте 50 kHz.

 

 

А откуда взята частота для TWI в 50 кHz?

Если мне память не изменяет - по спецификации на шине I2C два режима - 100 и 400 kHz. DS1307 умеет только 100....

Правдя за давностью времени могу ошибаться....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Немного невнимательно первый раз прочитал Ваше изложение происходящего.

 

Теперь похоже еще невнимательней ;)

Пишет же человек - Не работают часы DS1307, подключенные к аппратному TWI МК ATMega8535 :laugh:

 

Да, прошу прощения что-то я перемудрил :wub:

Но первая рекомендация - остается в силе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

UART подключен к компу через MAX232 и прекрасно работает.

 

2 janus:

У AVR частота TWI программируется специальным регистром - см. доку на МК.

А как я понял DS1307 пашет на любой частоте от 0 до 100 kHz. Я взял 50 как золотую середину :) .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

UART подключен к компу через MAX232 и прекрасно работает.

 

2 janus:

У AVR частота TWI программируется специальным регистром - см. доку на МК.

А как я понял DS1307 пашет на любой частоте от 0 до 100 kHz. Я взял 50 как золотую середину  :) .

 

Привожу выдержку из фирменного описания DS1207:

"Each data transfer is initiated with a START condition and terminated with a STOP condition. The

number of data bytes transferred between START and STOP conditions is not limited, and is

determined by the master device. The information is transferred byte-wise and each receiver

acknowledges with a ninth bit. Within the 2-wire bus specifications a standard mode (100kHz clock

rate) and a fast mode (400kHz clock rate) are defined. The DS1307 operates in the standard mode

(100kHz) only."

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 janus:

У AVR частота TWI программируется специальным регистром - см. доку на МК.

А как я понял DS1307 пашет на любой частоте от 0 до 100 kHz. Я взял 50 как золотую середину  :) .

 

Про регистры TWI я знаю...

А в доке на 1307 ничего не сказано про _любую_ частоту в пределах 0-100.

 

И еще момент. У меня знакомые ребята сменили как минимум пару кварцев, пока 1307 запустилась...А у меня - заработало с первого раза...

Так что - попробуй сначала частоту поднять, потом кварц поменять...

Впрочем это уже танцы с бубном...=)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поставил частоту TWI 100 khz - ничего не изменилось, кварц попробую поменять, есть парочка в запасе.

 

насчет частоты 0-100 это я взял из таблицы на стр. 10 даташита.

Там написано: SCL clock frequency: min=0 kHz, max = 100 kHz, typ - не указан.

Может я смысла этого не понял?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

насчет частоты 0-100 это я взял из таблицы на стр. 10 даташита.

Там написано: SCL clock frequency: min=0 kHz, max = 100 kHz, typ - не указан.

Может я смысла этого не понял?

 

Пересмотрел даташит на 1307 - действительно, присутствует такое. Вечерком сегодня попробую запустить на 50 kHz, благо стенд еще не разобран....)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Внутренняя схема генератора DS1307 рассчитана на работу с кристаллом,имеющего номинальную емкость (CL) 12,5pF. Проверяли с другими емкостями,не хочет работать. Но в партиях кварца всегда попадались битые.И когда не работала ,сразу меняли.Работали и на частотах 50кГц и 100кГц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я свои проверял тестером, измерял емкость, как у конденсатора - 1 .. 3 pF.

А если параллельно кондер прицепить, нормально будет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...