Привет всем.
Не работают часы 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 работаю, посмотрите пожалуйста.
Спасибо.