Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Вс янв 09, 2011 17:59:29

Danko, O-LED. Спасибо. :beer:

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Вт янв 11, 2011 06:35:40

не там сообщение создал, уже удалил. Извините!
Последний раз редактировалось Sounds Вт янв 11, 2011 07:19:15, всего редактировалось 1 раз.

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Вт янв 11, 2011 06:44:39

Удивлён что до сих пор в данной ветке не появилась данная ссылка:
http://www.piclist.ru/D-DS-DS1307-RUS/D ... 7-RUS.html

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Вт янв 11, 2011 07:53:23

Vov123, может все таки ветку начинать читать с первого сообщения, а не с последнего ?

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Вт янв 11, 2011 08:00:21

Что-ж поделать,невнимательность-моя фишка.

Добавлю,что вывод SQW/OUT.установив в 1гц,удобно использовать для внешнего прерывания.Считывание времени производить в обработчике прерывания,а остальное время спать.
Я тут собрал подобные часики с термометром ds1820,попробовал на at89s52.В качестве индикатора использовал MT-10T7 и WH1601.В первом случае ток потребления был 12mA,а во втором 14,это без sleep.

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Чт мар 22, 2012 21:29:15

Нигде не могу найти ответа на пару вопросов.
1. Выводы DS1307 (SDA и SCL) необходимо подключать к таким же выводам МК (SDA и SCL) или можно к любим пинам?
2. Как конфигурировать выводы МК, к которым подключены SDA и SCL м/с DS1307? Входы, выходы?

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Пт мар 23, 2012 16:20:43

I2C существует как аппаратный так и програмный и по сему в первом случае выводы RTC нужно соединять с одноименными выводами МК, во втором случае (програмном) можно соединять с любыми.

В первом случает выводы модно не инициализировать, а во втором SCL на вывод т.к. МК будет мастером сети, ну SDA в зависимости от направления.

Если писать на Си и использовать готовые библиотеки, то такие вопросы чаще всего не возникают, а если на ассемблере, то тут Вам нужно читать и читать книги.

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Пт мар 23, 2012 22:38:11

Danko писал(а):
Если писать на Си и использовать готовые библиотеки, то такие вопросы чаще всего не возникают, а если на ассемблере, то тут Вам нужно читать и читать книги.

Спасибо, понятно. Не понятно только, как можно забить на конфигурацию порта? Как я понял, тот же КодВижновский генератор начального кода порты не конфигурирует под те или иные установки, к примеру, какие порты не задавай для ЖКИ, в тексте программы будут и DDRN = 0x00 и PORTN = 0x00...
По сути вопроса. Вот нарыл в инете проект для часов DS1307 и именно для КодВижна. Вроде бы все правильно работает, но через несколько секунд считываемые с часов данные приобретают хаотичный характер. Причем на ЖКИ индицируются загадочные показания вреиени и календаря, а в окошке Протеуса содержимое байт приобретает заоблачные четырехзначные и более значения, хотя переменные-то однобайтные unsigned char.
Изображение
DS1307.rar
(783.88 KiB) Скачиваний: 297

Скажите, это глюк симуляции в Протеусе или что-то не то в коде программы? Хотя там же стандартная КодВиженская бибилотека, именно под DS1307. В реале сейчас этой мс нет, поэтому и вопрос такой.

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Вс мар 25, 2012 17:58:21

R_ura писал(а): Скажите, это глюк симуляции в Протеусе или что-то не то в коде программы? Хотя там же стандартная КодВиженская бибилотека, именно под DS1307. В реале сейчас этой мс нет, поэтому и вопрос такой.

Это глюк прошивки. Учитывая то что вы используете программный i2c то вполне возможно. У меня тоже неправильные значения.

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Вс мар 25, 2012 19:40:09

loshvitalik писал(а):Это глюк прошивки. Учитывая то что вы используете программный i2c то вполне возможно. У меня тоже неправильные значения.

Не совсем понял, т.е. и в железе будет тоже. что и в Протеусе?
Как с этим бороться? Уже несколько вариантов прошивки поменял -то же самое.
Неужели в КодВижн нерабочая библиотека програмного i2c?

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Вс мар 25, 2012 19:44:13

R_ura писал(а):
loshvitalik писал(а):Это глюк прошивки. Учитывая то что вы используете программный i2c то вполне возможно. У меня тоже неправильные значения.

Не совсем понял, т.е. и в железе будет тоже. что и в Протеусе?
Как с этим бороться? Уже несколько вариантов прошивки поменял -то же самое.
Неужели в КодВижн нерабочая библиотека програмного i2c?


Хотя, вполне возможно, что протеус плохо понимает аппаратный и2ц. Но кнопки все-таки работают и значения инкрементируются, но месяцев почему-то намного больше 13.
Попробуйте перенести в железо - может быть, контроллер при инициализации шлет в часы мусор.

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Вс мар 25, 2012 22:42:10

R_ura писал(а): Скажите, это глюк симуляции в Протеусе или что-то не то в коде программы? Хотя там же стандартная КодВиженская бибилотека, именно под DS1307. В реале сейчас этой мс нет, поэтому и вопрос такой.
Да именно глюк в логике программы.

Изучил Ваш код.

Подправил.

Обратите внимание на один момент: если не нажимать кнопки сколько раз в секунду в Вашем коде идет опрос шины I2C ?

Ответ: постоянно, без задержек.

А теперь рекомендации:
1. вам в реале не будет нужна частота 8 МГц. Ваш код будет работать и на 1 МГц, а возможно и на 1 кГц. Пусть Интел гонится за Гигагерцами, Вы же не Win7 инсталируете :)
2. пересмотрите логику работы и удалите постоянную очистку экрана. Идеальный вариант это выводить информации только при ее смене т.е. в Вашем случае это нажатие кнопок и изменение секунд.

Из практики могу сказать, что если полностью отказаться от функции очистки экрана, то контрастность можно выкрутить на минимум и еще: есть инверсные экраны так вот на них Вам просто придется отказаться от полной очистки.

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Пн мар 26, 2012 06:46:08

Спасибо, разобрался..

И снова DS1307

Вт апр 17, 2012 17:41:51

Собрал часы, в них стоит DS1307. Периодически на индикаторах появляется белиберда в виде ненужных цифр (например, было 12 часов, но вдруг проскакивает 45 часов). В часах есть повышающий преобразователь на MAX1771. Как исправить этот глюк?
Программу прилагаю.
программа.c
(19.17 KiB) Скачиваний: 572


Сюда перенес.

aen

Re: И снова DS1307

Вт апр 17, 2012 18:30:08

*Trigger* писал(а):Собрал часы, в них стоит DS1307. Периодически на индикаторах появляется белиберда в виде ненужных цифр (например, было 12 часов, но вдруг проскакивает 45 часов).

Плохой контакт на 80% .И вообще давайте на радость модераторам нак каждый вопрос по датчику создавать новые темы?В помойке же интереснее !!! :evil:

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Вт апр 17, 2012 18:47:35

Пропаял, не помогло. Ещё выяснил, чем больше частота прерываний, тем больше глюков. Странно, раньше в своих часах я этого не замечал. Ведь I2C глубоко плевать на задержки... Или я не прав?

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Вт апр 17, 2012 20:03:48

*Trigger* писал(а): Ещё выяснил, чем больше частота прерываний, тем больше глюков. Странно, раньше в своих часах я этого не замечал. Ведь I2C глубоко плевать на задержки... Или я не прав?
Конечно не прав.Сколько по даташиту минимальне время опроса датчика?

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Вт апр 17, 2012 20:22:04

Что за минимальное время опроса? я не понимаю.

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Вт апр 17, 2012 20:28:24

*Trigger* писал(а):Что за минимальное время опроса? я не понимаю.

Читайте даташит,там написано сколько время датчик передаёт инфу(время+дата+день недели),и если Вы не обеспечите ему это время,то мк считает его некоректно(например 45часов 86 минут).

Re: #Часы реального времени DS1307 от Dallas Semiconductor#

Вт апр 17, 2012 20:39:02

Так ведь интерфейс I2C, значит, временнЫе интервалы зависят от тактовых импульсов с МК.
Ответить