|
Проблемы с часами DS1307, Не читается, пишется или нет непонятно . |
|
|
|
Aug 26 2005, 09:40
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980

|
Привет всем. Не работают часы 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 работаю, посмотрите пожалуйста. Спасибо.
|
|
|
|
|
Aug 26 2005, 10:47
|
Участник

Группа: Новичок
Сообщений: 42
Регистрация: 30-06-05
Пользователь №: 6 414

|
Цитата(hd44780 @ Aug 26 2005, 12:40) Привет всем. Не работают часы 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 - Aug 26 2005, 10:52
|
|
|
|
|
Aug 26 2005, 10:57
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Немного невнимательно первый раз прочитал Ваше изложение происходящего. Вы заверяете: Цитата(hd44780 @ Aug 26 2005, 13:40) МК работает на частоте 4 MHz, внутренний генератор. Следуя из документации на DS1307 необходимый кварц для ее работы - 32.768 kHz ! Далее Вы используете: Цитата(hd44780 @ Aug 26 2005, 13:40) Схема подключена к COM-порту компа. Параметры связи и протокол обмена - см. DS1307 имеет последовательную двунаправленную шину стандарта I2C ничего общего с UART не имеющим. Как вы присоединяете ее к COM своего PC? Если Вы на COM имеете преобразователь I2C (слава богу такие схемотехнические возможности имеют место) и соответствующий софт, то это замечание отпадает.
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Aug 26 2005, 11:05
|
Участник

Группа: Новичок
Сообщений: 42
Регистрация: 30-06-05
Пользователь №: 6 414

|
Цитата(BVU @ Aug 26 2005, 13:57) Немного невнимательно первый раз прочитал Ваше изложение происходящего. Теперь похоже еще невнимательней Пишет же человек - Не работают часы DS1307, подключенные к аппратному TWI МК ATMega8535
|
|
|
|
|
Aug 26 2005, 11:10
|

Частый гость
 
Группа: Свой
Сообщений: 133
Регистрация: 6-12-04
Пользователь №: 1 357

|
Цитата(hd44780 @ Aug 26 2005, 13:40) Привет всем. Не работают часы DS1307, подключенные к аппратному TWI МК ATMega8535. Точнее сказать, я даже не знаю, работают они или нет. TWI на частоте 50 kHz. А откуда взята частота для TWI в 50 кHz? Если мне память не изменяет - по спецификации на шине I2C два режима - 100 и 400 kHz. DS1307 умеет только 100.... Правдя за давностью времени могу ошибаться....
|
|
|
|
|
Aug 26 2005, 11:12
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(kalinka16 @ Aug 26 2005, 15:05) Цитата(BVU @ Aug 26 2005, 13:57) Немного невнимательно первый раз прочитал Ваше изложение происходящего. Теперь похоже еще невнимательней Пишет же человек - Не работают часы DS1307, подключенные к аппратному TWI МК ATMega8535  Да, прошу прощения что-то я перемудрил  Но первая рекомендация - остается в силе.
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Aug 26 2005, 11:48
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980

|
UART подключен к компу через MAX232 и прекрасно работает. 2 janus: У AVR частота TWI программируется специальным регистром - см. доку на МК. А как я понял DS1307 пашет на любой частоте от 0 до 100 kHz. Я взял 50 как золотую середину  .
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|
|
|
|
|
Aug 26 2005, 12:13
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(hd44780 @ Aug 26 2005, 15:48) 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."
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Aug 26 2005, 12:34
|

Частый гость
 
Группа: Свой
Сообщений: 133
Регистрация: 6-12-04
Пользователь №: 1 357

|
Цитата(hd44780 @ Aug 26 2005, 15:48) 2 janus: У AVR частота TWI программируется специальным регистром - см. доку на МК. А как я понял DS1307 пашет на любой частоте от 0 до 100 kHz. Я взял 50 как золотую середину  . Про регистры TWI я знаю... А в доке на 1307 ничего не сказано про _любую_ частоту в пределах 0-100. И еще момент. У меня знакомые ребята сменили как минимум пару кварцев, пока 1307 запустилась...А у меня - заработало с первого раза... Так что - попробуй сначала частоту поднять, потом кварц поменять... Впрочем это уже танцы с бубном...=)))
|
|
|
|
|
Aug 26 2005, 13:20
|

Частый гость
 
Группа: Свой
Сообщений: 133
Регистрация: 6-12-04
Пользователь №: 1 357

|
Цитата насчет частоты 0-100 это я взял из таблицы на стр. 10 даташита. Там написано: SCL clock frequency: min=0 kHz, max = 100 kHz, typ - не указан. Может я смысла этого не понял? Пересмотрел даташит на 1307 - действительно, присутствует такое. Вечерком сегодня попробую запустить на 50 kHz, благо стенд еще не разобран....)
|
|
|
|
|
Aug 26 2005, 13:23
|
Участник

Группа: Свой
Сообщений: 47
Регистрация: 12-07-05
Пользователь №: 6 725

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