hd44780 0 26 августа, 2005 Опубликовано 26 августа, 2005 · Жалоба Привет всем. Не работают часы 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 работаю, посмотрите пожалуйста. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 26 августа, 2005 Опубликовано 26 августа, 2005 · Жалоба По всей видимости у Вас нет тактирования часов, если при чтении контроллера DS1307 когда он присутствует или отсутствует результат получается однотипным. Проверьте обвязку генератора, возможно необходим подстроечных емкосной триммер (нехватает сдвига фазы для запуска). На сколько припоминаю в описании на этот часовой контроллер к кварцевому резонатору предьявляются дополнительные требования (обратите на это внимание если это так). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 26 августа, 2005 Опубликовано 26 августа, 2005 · Жалоба Спасибо, посмотрю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kalinka16 0 26 августа, 2005 Опубликовано 26 августа, 2005 (изменено) · Жалоба Привет всем. Не работают часы 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 работаю, посмотрите пожалуйста. Спасибо. <{POST_SNAPBACK}> Если по миганию светодиода - то при инициализации DS1307 частота выхода настраивается на 4.096 kHz (0xD5 - так я понимаю). Нада 0xD4, тогда два младших бита будут равны 0, а это и есть настройка на 1Hz. Если после этого замигает - значит проблемы не с обменом с DS1307. Смотри ds1307init() в ds1307lib.c Изменено 26 августа, 2005 пользователем kalinka16 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 26 августа, 2005 Опубликовано 26 августа, 2005 · Жалоба Немного невнимательно первый раз прочитал Ваше изложение происходящего. Вы заверяете: МК работает на частоте 4 MHz, внутренний генератор. <{POST_SNAPBACK}> Следуя из документации на DS1307 необходимый кварц для ее работы - 32.768 kHz ! Далее Вы используете: Схема подключена к COM-порту компа. Параметры связи и протокол обмена - см. <{POST_SNAPBACK}> DS1307 имеет последовательную двунаправленную шину стандарта I2C ничего общего с UART не имеющим. Как вы присоединяете ее к COM своего PC? Если Вы на COM имеете преобразователь I2C (слава богу такие схемотехнические возможности имеют место) и соответствующий софт, то это замечание отпадает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kalinka16 0 26 августа, 2005 Опубликовано 26 августа, 2005 · Жалоба Немного невнимательно первый раз прочитал Ваше изложение происходящего. Теперь похоже еще невнимательней ;) Пишет же человек - Не работают часы DS1307, подключенные к аппратному TWI МК ATMega8535 :laugh: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
janus 0 26 августа, 2005 Опубликовано 26 августа, 2005 · Жалоба Привет всем. Не работают часы DS1307, подключенные к аппратному TWI МК ATMega8535. Точнее сказать, я даже не знаю, работают они или нет. TWI на частоте 50 kHz. <{POST_SNAPBACK}> А откуда взята частота для TWI в 50 кHz? Если мне память не изменяет - по спецификации на шине I2C два режима - 100 и 400 kHz. DS1307 умеет только 100.... Правдя за давностью времени могу ошибаться.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 26 августа, 2005 Опубликовано 26 августа, 2005 · Жалоба Немного невнимательно первый раз прочитал Ваше изложение происходящего. Теперь похоже еще невнимательней ;) Пишет же человек - Не работают часы DS1307, подключенные к аппратному TWI МК ATMega8535 :laugh: <{POST_SNAPBACK}> Да, прошу прощения что-то я перемудрил :wub: Но первая рекомендация - остается в силе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 26 августа, 2005 Опубликовано 26 августа, 2005 · Жалоба UART подключен к компу через MAX232 и прекрасно работает. 2 janus: У AVR частота TWI программируется специальным регистром - см. доку на МК. А как я понял DS1307 пашет на любой частоте от 0 до 100 kHz. Я взял 50 как золотую середину :) . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 26 августа, 2005 Опубликовано 26 августа, 2005 · Жалоба UART подключен к компу через MAX232 и прекрасно работает. 2 janus: У AVR частота TWI программируется специальным регистром - см. доку на МК. А как я понял DS1307 пашет на любой частоте от 0 до 100 kHz. Я взял 50 как золотую середину :) . <{POST_SNAPBACK}> Привожу выдержку из фирменного описания 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." Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
janus 0 26 августа, 2005 Опубликовано 26 августа, 2005 · Жалоба 2 janus: У AVR частота TWI программируется специальным регистром - см. доку на МК. А как я понял DS1307 пашет на любой частоте от 0 до 100 kHz. Я взял 50 как золотую середину :) . <{POST_SNAPBACK}> Про регистры TWI я знаю... А в доке на 1307 ничего не сказано про _любую_ частоту в пределах 0-100. И еще момент. У меня знакомые ребята сменили как минимум пару кварцев, пока 1307 запустилась...А у меня - заработало с первого раза... Так что - попробуй сначала частоту поднять, потом кварц поменять... Впрочем это уже танцы с бубном...=))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 26 августа, 2005 Опубликовано 26 августа, 2005 · Жалоба поставил частоту TWI 100 khz - ничего не изменилось, кварц попробую поменять, есть парочка в запасе. насчет частоты 0-100 это я взял из таблицы на стр. 10 даташита. Там написано: SCL clock frequency: min=0 kHz, max = 100 kHz, typ - не указан. Может я смысла этого не понял? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
janus 0 26 августа, 2005 Опубликовано 26 августа, 2005 · Жалоба насчет частоты 0-100 это я взял из таблицы на стр. 10 даташита. Там написано: SCL clock frequency: min=0 kHz, max = 100 kHz, typ - не указан. Может я смысла этого не понял? <{POST_SNAPBACK}> Пересмотрел даташит на 1307 - действительно, присутствует такое. Вечерком сегодня попробую запустить на 50 kHz, благо стенд еще не разобран....) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
damir2 0 26 августа, 2005 Опубликовано 26 августа, 2005 · Жалоба Внутренняя схема генератора DS1307 рассчитана на работу с кристаллом,имеющего номинальную емкость (CL) 12,5pF. Проверяли с другими емкостями,не хочет работать. Но в партиях кварца всегда попадались битые.И когда не работала ,сразу меняли.Работали и на частотах 50кГц и 100кГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 26 августа, 2005 Опубликовано 26 августа, 2005 · Жалоба Я свои проверял тестером, измерял емкость, как у конденсатора - 1 .. 3 pF. А если параллельно кондер прицепить, нормально будет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться