На мой взгляд, часы могут не идти по таким причинам, проверьте:
1. Неправильно подключена (или нет контакта в какой-либо цепи) DS1307.
Должно быть (смотри схему включения прикрепленный файл DS1307type.png
с цитатами из даташит):
- 1 и 2 ножки - "часовой" кварц на 32768 Гц
- 3 нога (VBat) - резервное питание - литиевая батарея 3 вольта
(например от компьютера СR2032),"+" на 3 ногу, "-" - на общий провод.
(Для нормальной работы DS1307 необходимо, чтобы напряжение батареи было в
диапазоне 2.0 ... 3.5 В.)
- 4 нога (GND) - общий провод
- 5 и 6 (SDA и SCL) - шина связи с МК (может у вас обрыв дорожек и
контроллер не может проинициализировать или прочитать DS1307). Они должны быть
подтянуты к +5 вольт через резисторы - по оригинальной схеме R4, R5 (номиналом
4,7-5,6 кОм).
- 7 нога (SQW/OUT) - не подключена, но когда включен, т.е. бит SQWE
установлен в 1, вывод SQW/OUT выдаёт прямоугольные импульсы с одной из четырёх
частот (1 Гц, 4 кГц, 8 кГц, 32 кГц). Вывод SQW/OUT - с открытым стоком и
требует внешнего подтягивающего резистора. SQW/OUT будет работать как при
питании от Vcc, так и при питании от VBat.
- 8 нога (Vcc ) - питание +5 вольт (в протеусе и у меня в оркаде ноги
питания и земли/общая - не рисуются, но программа знает, что на нее приходит
питание - смотрите рисунок печатной платы), Когда питающее напряжение выше
1.25 * VBat, устройство полностью доступно, и можно выполнять чтение и запись
данных. Когда к устройству подключена батарея на 3 В, и Vcc ниже, чем
1.25 * VBat, чтение и запись запрещены (чтобы предотвратить запись ошибочных
данных), причем в это время внешние сигналы не воспринимаются, однако функция
отсчёта времени продолжает работать. Как только Vcc падает ниже VBat, ОЗУ и RTC
переключаются на батарейное питание VBat.
При включении питания DS1307 переключается от батареи к Vcc, когда
значение Vcc превышает VBat + 0.2 В. Входящие сигналы начинают восприниматься
тогда, когда Vcc превышает 1.25 * VBat.
Исходя из выше изложенного, проверить напряжение питания DS1307, заодно
не мешало бы проверить исправность и соответствие частоте 32768 Гц кварца
который Вы подключаете к 1 и 2 ножкам DS1307 (может он далеко не "часовой").
2. Неисправна DS1307 (но ее уже меняли)
3. Реагируют ли часы на кнопки - как я понял DS1307 нужно инициализировать,
т.е. занести в нее начальные показания времени, чтобы часы шли (хотя здесь я
могу быть не совсем прав - даташит читал не очень внимательно).
4. Еще раз проверьте фьюзы - как я понял из исходника, при неправильной частоте
внутреннего генератора микроконтроллера (МК) AtTiny2313 не будет идти обмен
данными МК с U2 и/или U3.
5. Из совсем невероятных причин - неисправен МК 2313 (например ноги 16, 17) или
плохо прошилась программа в части работы с часами, попробуйте по новой
перезалить прошивку, перед этим очень рекомендую очистить программную память
контроллера.
ДЛЯ Администатора: архив обновлен, можно заменить ранее залитый (от 25.03.10)
- Вложения
-
- ClockCalTherm.rar
- Архив со всем вместе: плата, схема, фьюзы и фото девайса (часы, календарь, термометр) + рекомендации
- (192.48 KiB) Скачиваний: 1876
-
- ClockCalTherm_fuse.png
- Фьюзы, с которыми работает
- (11.12 KiB) Скачиваний: 2380
-
- DS1307type.png
- типовая схема включения DS1307
- (1.69 KiB) Скачиваний: 2130