поставил частоту TWI 100 khz - ничего не изменилось, кварц попробую поменять, есть парочка в запасе.
насчет частоты 0-100 это я взял из таблицы на стр. 10 даташита.
Там написано: SCL clock frequency: min=0 kHz, max = 100 kHz, typ - не указан.
Может я смысла этого не понял?
UART подключен к компу через MAX232 и прекрасно работает.
2 janus:
У AVR частота TWI программируется специальным регистром - см. доку на МК.
А как я понял DS1307 пашет на любой частоте от 0 до 100 kHz. Я взял 50 как золотую середину :) .
Привет всем.
Не работают часы 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 работаю, посмотрите пожалуйста.
Спасибо.