DS1307 кварц - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Модератор форума: terrarus 
Форум Picbasic.ru » Электроника » Об электронике в целом » DS1307 кварц (глюки)
DS1307 кварц
demanik Дата: Пн, 28.01.2008, 23:38  |                                                                                                                Сообщение # 1
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

У меня при снятии основного питания с платы иногда обнуляется DS1307. Какойто системы не заметил. Пробовал менять микруху, кварц, батарею ничего не помогает.

Попробуй всё и вся... может быть пол...

ЯНДЕКС Дата: 28.01.2008
ADMIN Дата: Вт, 29.01.2008, 02:29  |                                                                                                                Сообщение # 2
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1097
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

А программа на басике? Может посмотрим?
demanik Дата: Чт, 31.01.2008, 22:23  |                                                                                                                Сообщение # 3
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

кусок проги:

'@ device PIC16F876A, XT_osc, wdt_on, wrt_off, lvp_off, pwrt_on, protect_off

SCL VAR PORTC.4 ' I2C clock pin
SDA VAR PORTC.3 ' I2C data pin
rtc_read CON %11010000 '
sec VAR BYTE ' seconds
sec2 var byte
mins VAR BYTE ' minutes
mins1 var byte
hr VAR BYTE ' hours
hr1 VAR BYTE '
day VAR BYTE ' day
date VAR BYTE ' date
date1 VAR BYTE '
mon VAR BYTE ' month
mon1 var byte
yr VAR BYTE ' year
yr1 VAR BYTE '
d_hi VAR BYTE
d_lo VAR BYTE
'------------------------------------------------------------

gosub read_time
if sec.7 then phase0 = 10: BRANCHL br, [set_time]

main:'-------------- главная программа----------------------------------
END

set_time:'-----------меню установки часов--------------------------------

return'----------------------------------------------------------

read_time:'---------------------------------------------------------
I2CRead SDA, SCL, rtc_read, 0, [sec,mins,hr,day,date,mon,yr]
d_hi = sec / 16: d_lo = sec // 16: sec2 =d_hi * 10 + d_lo
d_hi = mins / 16: d_lo = mins // 16: mins1 =d_hi * 10 + d_lo
d_hi = hr / 16: d_lo = hr // 16: hr1 =d_hi * 10 + d_lo
d_hi = date / 16: d_lo = date // 16: date1 =d_hi * 10 + d_lo
d_hi = mon / 16: d_lo = mon // 16: mon1 =d_hi * 10 + d_lo
d_hi = yr / 16: d_lo = yr // 16: yr1 =d_hi * 10 + d_lo
return'----------------------------------------------------------

но как я понял проблема не в проге у меня такойже кусок в другом устройстве работает. тут быстрее глюк железа или разводки платы. у меня при переходе на автономное питание иногда пропадает генерация на кварце.


Попробуй всё и вся... может быть пол...

terrarus Дата: Пт, 29.08.2008, 16:44  |                                                                                                                Сообщение # 4
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 542
Репутация: 16   ±
Замечания:   ±
На сайте с 21.08.2008

Статус: Offline

Не могли бы Вы привести здесь, или выслать на мой емайл ( terrarus@mail.ru ) программу на PicBasic Pro получения данных из часов реального времени DS1307 и управления DS1307 . Мне как начинающему еще не понятно как это сделать, но очень хочется разобраться.

Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
ADMIN Дата: Сб, 30.08.2008, 17:47  |                                                                                                                Сообщение # 5
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1097
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

по току, может, не вывозит? Имею в виду DS. Кондер есть? Давно сюда не заглядывал...
ADMIN Дата: Сб, 30.08.2008, 17:51  |                                                                                                                Сообщение # 6
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1097
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

terrarus, попробую найти, а вообще, по-моему в примерах (samples) есть...
terrarus Дата: Вс, 31.08.2008, 11:08  |                                                                                                                Сообщение # 7
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 542
Репутация: 16   ±
Замечания:   ±
На сайте с 21.08.2008

Статус: Offline

Уважаемый basicpic.

К моему сожалению в папках SAMPLES: PBP244, PicBasicPro_243, Mecanique, PicBasicProton мне не удалось обнаружить программу управления часами реального времени DS1307.

Я и другие начинающие будут благодарны если Вы найдете её в другой литературе и опубликуете здесь.

С уважением
Анатолий Медведев.


Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
demanik Дата: Вс, 31.08.2008, 13:14  |                                                                                                                Сообщение # 8
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (terrarus)
Не могли бы Вы привести здесь, или выслать на мой емайл ( terrarus@mail.ru ) программу на PicBasic Pro получения данных из часов реального времени DS1307 и управления DS1307

Привожу кусок рабочего кода а именно получение данных с часов и запись туда ваших значений:

SCL VAR PORTC.3 ' ножка clock
SDA VAR PORTC.4 ' ножкка data
rtc_read CON %11010000 ' Адрес часов для чтения
rtc_write con %11010001 ' Адрес часов для записи
sec VAR BYTE ' секунды
mins VAR BYTE ' минуты в формате DS1307
mins1 var byte ' минуты в десятичном формате
hr VAR BYTE ' часы в формате DS1307
hr1 VAR BYTE ' часы в десятичном формате
day VAR BYTE ' день недели
date VAR BYTE ' дата в формате DS1307
date1 VAR BYTE ' дата в десятичном формате
mon VAR BYTE ' месяц в формате DS1307
mon1 var byte ' месяц в десятичном формате
yr VAR BYTE ' год в формате DS1307
yr1 VAR BYTE ' год в десятичном формате
tmp var byte
tmp1 var byte

main:
' ваша программа
end

read_time:'---------------------------------------------------------
I2CRead SDA, SCL, RTC_read, 0, [sec,mins,hr,day,date,mon,yr]
tmp = mins
GOSUB fix_bcd_in
mins1 = tmp
tmp = hr
GOSUB fix_bcd_in
hr1 = tmp
tmp = date
GOSUB fix_bcd_in
date1 = tmp
tmp = mon
GOSUB fix_bcd_in
mon1 = tmp
tmp = yr
GOSUB fix_bcd_in
yr1 = tmp
return'----------------------------------------------------------

write_time:'---------------------------------------------
tmp = mins1
GOSUB fix_bcd_out
mins = tmp
tmp = hr1
GOSUB fix_bcd_out
hr = tmp
tmp = date1
GOSUB fix_bcd_out
date = tmp
tmp = mon1
GOSUB fix_bcd_out
mon = tmp
tmp = yr1
GOSUB fix_bcd_out
yr = tmp
sec = 0
I2CWrite SDA, SCL, RTC_write, 0, [sec,mins,hr,day,date,mon,yr]
Return'----------------------------------------------------------

fix_bcd_in:'-------------------------------------------------------------------------
tmp1 = tmp & 15
tmp = tmp >> 4
tmp = tmp1 + 10 * tmp
RETURN

fix_bcd_out:'------------------------------------------------------------------------
tmp1 = tmp / $A
tmp = tmp - (tmp1 * $A)
tmp = tmp + (tmp1 << 4)
RETURN


Попробуй всё и вся... может быть пол...

terrarus Дата: Вс, 31.08.2008, 15:39  |                                                                                                                Сообщение # 9
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 542
Репутация: 16   ±
Замечания:   ±
На сайте с 21.08.2008

Статус: Offline

Спасибо. теперь буду разбираться и пробовать в железе.

Анатолий.


Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
brown Дата: Вт, 02.09.2008, 04:01  |                                                                                                                Сообщение # 10
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 335
Репутация: 10   ±
Замечания:   ±
На сайте с 18.09.2007

Статус: Offline

На каком-то форуме читал, что капризная микруха. Требует качественного кварца 12,5 пФ

Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
Aleks_ey Дата: Вт, 02.09.2008, 06:49  |                                                                                                                Сообщение # 11
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 31
Репутация: 1   ±
Замечания:   ±
На сайте с 15.11.2007

Статус: Offline

Я с этой микросхеме схем 5 собрал и кварцы не подбирал ставил какие были. Самое главное чтоб была батарейка 3V к ней подключена.
brown Дата: Сб, 20.09.2008, 19:06  |                                                                                                                Сообщение # 12
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 335
Репутация: 10   ±
Замечания:   ±
На сайте с 18.09.2007

Статус: Offline

Порылся у себя и нашел проги для DS1307. Разбирайтесь сами.
Прикрепления: DS1307.rar(13Kb)


Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
fire_on_line Дата: Вт, 17.02.2009, 19:28  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Новенький
Сообщений: 3
Репутация: 0   ±
Замечания:   ±
На сайте с 17.02.2009

Статус: Offline

Quote (demanik)
Привожу кусок рабочего кода а именно получение данных с часов и запись туда ваших значений:

SCL VAR PORTC.3 ' ножка clock
SDA VAR PORTC.4 ' ножкка data
rtc_read CON %11010000 ' Адрес часов для чтения
rtc_write con %11010001 ' Адрес часов для записи
sec VAR BYTE ' секунды
mins VAR BYTE ' минуты в формате DS1307
mins1 var byte ' минуты в десятичном формате
hr VAR BYTE ' часы в формате DS1307
hr1 VAR BYTE ' часы в десятичном формате
day VAR BYTE ' день недели
date VAR BYTE ' дата в формате DS1307
date1 VAR BYTE ' дата в десятичном формате
mon VAR BYTE ' месяц в формате DS1307
mon1 var byte ' месяц в десятичном формате
yr VAR BYTE ' год в формате DS1307
yr1 VAR BYTE ' год в десятичном формате
tmp var byte
tmp1 var byte

main:
' ваша программа
end

read_time:'---------------------------------------------------------
I2CRead SDA, SCL, RTC_read, 0, [sec,mins,hr,day,date,mon,yr]
tmp = mins
GOSUB fix_bcd_in
mins1 = tmp
tmp = hr
GOSUB fix_bcd_in
hr1 = tmp
tmp = date
GOSUB fix_bcd_in
date1 = tmp
tmp = mon
GOSUB fix_bcd_in
mon1 = tmp
tmp = yr
GOSUB fix_bcd_in
yr1 = tmp
return'----------------------------------------------------------

write_time:'---------------------------------------------
tmp = mins1
GOSUB fix_bcd_out
mins = tmp
tmp = hr1
GOSUB fix_bcd_out
hr = tmp
tmp = date1
GOSUB fix_bcd_out
date = tmp
tmp = mon1
GOSUB fix_bcd_out
mon = tmp
tmp = yr1
GOSUB fix_bcd_out
yr = tmp
sec = 0
I2CWrite SDA, SCL, RTC_write, 0, [sec,mins,hr,day,date,mon,yr]
Return'----------------------------------------------------------

fix_bcd_in:'--------------------------------------------------------- ----------------
tmp1 = tmp & 15
tmp = tmp >> 4
tmp = tmp1 + 10 * tmp
RETURN

fix_bcd_out:'------------------------------------------------------------------------
tmp1 = tmp / $A
tmp = tmp - (tmp1 * $A)
tmp = tmp + (tmp1 << 4)
RETURN

Подскажите, данный код для PicBasicPro?

demanik Дата: Вт, 17.02.2009, 19:53  |                                                                                                                Сообщение # 14
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Проблема решилась просто: запитал микруху через резистор 100 Ом и кандер 1 Мкф на корпус, глюки исчезли. happy

Добавлено (17.02.2009, 7:53:19)
---------------------------------------------

Quote (fire_on_line)
Подскажите, данный код для PicBasicPro?

Да


Попробуй всё и вся... может быть пол...

pic_anton Дата: Чт, 25.03.2010, 15:07  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 63
Репутация: 0   ±
Замечания:   ±
На сайте с 18.02.2010

Статус: Offline

помогите разобраться с 1307 и в обще с 12с не могу понять как он вобще работает как подавать код на рисунке показана таблица как ее понимать
Прикрепления: 6882691.png(8Kb)


Век живи, Век учись, и всего не постичь!!!
Форум Picbasic.ru » Электроника » Об электронике в целом » DS1307 кварц (глюки)
Страница 1 из 212»
Поиск: