Всё по DS1307 и прочим часам Dallas (Maxim)
- sphincs
- Нашел транзистор. Понюхал.
- Сообщения: 174
- Зарегистрирован: Вт сен 11, 2012 09:13:52
- Откуда: Брест, Беларусь
- Контактная информация:
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
BOB51, да, именно такие взял. буду пробовать.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
ЧИПиДИП — кладезь картинок элементов.
Спойлер

[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Тогда с кварцем вроде проблем быть не должно... 
Хотя с годик назад ходили слухи о бракованной партии... Но по счастью, пока не попадались.

Хотя с годик назад ходили слухи о бракованной партии... Но по счастью, пока не попадались.

Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Gudd-Head писал(а):Дык, куда ж без кондёров по питанию у (цифровых) микросхем???
Дак уже тупо привыкаешь верить даташиту. И про доп кондёр банально забываешь. Кроме того смотришь подобные схемы у других и не видишь чего надо - типа и так работает. Но на деле оказалось, что: курить даташит - не раскурить! И откуда глюки раскут не понятно, т.к. думаешь: но у других же работает? Теперь эти грабли (а может не надо его) пройдены - НАДО ОБЯЗАТЕЛЬНО НАВЕШИВАТЬ КОНДЁР!
Если в голове каша, значит ваш котелок варит!
- prinv
- Вымогатель припоя
- Сообщения: 677
- Зарегистрирован: Чт янв 20, 2011 09:07:08
- Откуда: Пермь
- Контактная информация:
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Котаны, добрый день!
Посмотрел видео о "лечении" модуля DS1307 - у меня именно такой модуль.
Реально необходимо вносить описанные в видео изменения?
И второй вопрос: нужно ли модуль DS1307 шунтировать по питанию кондёрами?
Посмотрел видео о "лечении" модуля DS1307 - у меня именно такой модуль.
Реально необходимо вносить описанные в видео изменения?
И второй вопрос: нужно ли модуль DS1307 шунтировать по питанию кондёрами?
Никакая контра не уйдёт от нас
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Здравствуйте, окончательно запутался с этими часами! Использую Кодвижн со встроенной библиотекой. Все вроде просто, но нихрена непонятно, собрал сразу на макетной плате, чтобы проверять часы. Сделал печатную плату под 1307 начитавшись рекомендаций. Просто хочу заставить их работать. Есть шаблон . Используя функции : rtc_set_time(3,0,0);rtc_set_date(6,13,10,13);
Часы запускаются и идут, но при выключения питания( питание 5 вольт , стабильное и даже при наличии батарейки на 3 в) Они перезапускаются заново, как раз по значениям этих функций. Но без этих строк , часы не хотят идти.
Как заставить их получать верное время после отключения питания.И при появлении питания снова?
Нашел на просторах интернета еще такую функцию - void rtc_write(unsigned char address,unsigned char data); - запись данных в микросхему часов, например выбрать 12 или 24 часовой формат времени, выбрать частоту импульсов на выходе OUT и тд
Но в справке под вижона про неё ничего нет, что очень странно.
Часы запускаются и идут, но при выключения питания( питание 5 вольт , стабильное и даже при наличии батарейки на 3 в) Они перезапускаются заново, как раз по значениям этих функций. Но без этих строк , часы не хотят идти.
Как заставить их получать верное время после отключения питания.И при появлении питания снова?
Нашел на просторах интернета еще такую функцию - void rtc_write(unsigned char address,unsigned char data); - запись данных в микросхему часов, например выбрать 12 или 24 часовой формат времени, выбрать частоту импульсов на выходе OUT и тд
Но в справке под вижона про неё ничего нет, что очень странно.
- Вложения
-
- 44.c
- (4.86 КБ) 375 скачиваний
- AlanDrakes
- Прорезались зубы
- Сообщения: 236
- Зарегистрирован: Пн июл 04, 2016 16:51:22
- Откуда: Россия, Омск
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Уже довольно давно описал несколько функций по работе с этими часами, и всё работает как положено.
Первый вариант был написан ещё на Ассемблере, до победы над встроенным в AVR I2C интерфейсом. Естественно, софтовый.
Потом переход на Си, победа над I2C... но часы работают всегда с пол пинка.
Проверьте, не пропадает ли резервное питание на микросхеме часов, что оно в пределах допусков (2.5~3.5V), что оно не дёргается при переключении на основное питание платы и прочее, прочее, прочее.
Так же, можно проверять, есть ли секундные импульсы на соответствующем пине (SQWE) микросхемы.
Мой опыт подсказывает, что часы работают на любой плате, с любым более-менее живым кварцем при достаточном питании.
Первый вариант был написан ещё на Ассемблере, до победы над встроенным в AVR I2C интерфейсом. Естественно, софтовый.
Потом переход на Си, победа над I2C... но часы работают всегда с пол пинка.
Проверьте, не пропадает ли резервное питание на микросхеме часов, что оно в пределах допусков (2.5~3.5V), что оно не дёргается при переключении на основное питание платы и прочее, прочее, прочее.
Так же, можно проверять, есть ли секундные импульсы на соответствующем пине (SQWE) микросхемы.
Мой опыт подсказывает, что часы работают на любой плате, с любым более-менее живым кварцем при достаточном питании.
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Контроллер запитан от солнечной панели на 12V через LDO 3.3V.
Поставил на питание для ds3231 суперконденсатор 5.5V 4F.
Хочу зарядить суперконденсатор через отдельное LDO хотя бы до 5V.
Однако, опробованные мной LDO имеют утечку при отключенном Vin; суперконденсатор разряжается.
Подумал про LDO на 6V и диод после LDO перед суперконденсатором для снижения зарядного напряжения.
Может, кто предложит более красивый и экономичный вариант?
Благодарю.
Поставил на питание для ds3231 суперконденсатор 5.5V 4F.
Хочу зарядить суперконденсатор через отдельное LDO хотя бы до 5V.
Однако, опробованные мной LDO имеют утечку при отключенном Vin; суперконденсатор разряжается.
Подумал про LDO на 6V и диод после LDO перед суперконденсатором для снижения зарядного напряжения.
Может, кто предложит более красивый и экономичный вариант?
Благодарю.
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Рекомендую покопаться на сайте у maxim-dallas или еще где... " Trickle
Charge" вроде называется...
Пока из старого накопалось по работе с RTC имеющими зарядник для ионистора:

Charge" вроде называется...
Пока из старого накопалось по работе с RTC имеющими зарядник для ионистора:
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Мне нравится именно ds3231, переходить на ds1302 или иную микросхему не планирую.
Возможно, есть у кого опыт по ldo с enable, которые не дают утечку при low на en?
Возможно, есть у кого опыт по ldo с enable, которые не дают утечку при low на en?
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
А речь идет не о 1302, а о примерах ппостроения систем заряд-разрядки дежурного конденсатора.

Кстати... У 3231 вроде батарейки достаточно...

Кстати... У 3231 вроде батарейки достаточно...
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Насколько я понял, там зарядка осуществляется через резистор и диод.
Так все равно нужно LDO, не вижу отличия от моего решения.
Вероятно, имея LDO на 6V с enable, меня бы все устроило.
Может, знаете LDO на 6V с enable?
Батарейку не хочу.
Следить, менять - кто будет?
Конденсатор припаял - и забыл.
Так все равно нужно LDO, не вижу отличия от моего решения.
Вероятно, имея LDO на 6V с enable, меня бы все устроило.
Может, знаете LDO на 6V с enable?
Батарейку не хочу.
Следить, менять - кто будет?
Конденсатор припаял - и забыл.
- AlanDrakes
- Прорезались зубы
- Сообщения: 236
- Зарегистрирован: Пн июл 04, 2016 16:51:22
- Откуда: Россия, Омск
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Ну так... поставьте в цепи зарядка конденсатора диод шотки, а перед ним стабилитрон на 5.2В. В чем проблема? То же LDO получите.
Естественно, перед стабилитроном - какой-нибудь ограничительный резистор.
Естественно, перед стабилитроном - какой-нибудь ограничительный резистор.
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
в 3231 по нажатию кнопки пытаюсь переключится с 24 режима на 12 часовой режим
http://dpaste.com/1ZB22XD
где может быть ошибка в коде ?
http://dpaste.com/1ZB22XD
где может быть ошибка в коде ?
Tell Me The Truth
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Я бы для начала вычитал регистр, поменял его, а потом уже записал.
Ну и надо не забыть сами часы в регистре пересчитать, чтобы заново время не наводить. Т.е. как-то так:
Но, возможно, вычисления будут и сложнее. Я не знаю, как именно считает часы DS-ка. Мой расчёт (и то, возможно, неправильный) для такого варианта:
Но, возможно, DS-ка считает как это принято в этих странных странах:
То есть, после 11AM идёт не 12AM, а 12PM, а затем 1PM.
Надо проводить эксперименты для такого варианта, и тогда пересчитывать регистр по-другому, с учётом этого перехода:
Ну, и в случае AM/PM надо не забыть при выводе на результат маску 0x1F накладывать.
А вообще, функция бесполезная и относительно много ресурсов требующая. Я бы забил.
P.S. А если так уж сильно надо - гораздо проще лезть в нутро DS-ки на этот счёт, а использовать "дефолтный" 24-часовой формат на её уровне, а уже при выводе времени, если надо - выводить его в 12-часовом формате. Внешне это будет выглядеть точно так же, но отнимет гораздо меньше сил и места в Flash контроллера.
Ну и надо не забыть сами часы в регистре пересчитать, чтобы заново время не наводить. Т.е. как-то так:
Код: Выделить всё
void kn_1_short(void) {
uint8_t reg02 = rtc_read(0x02);
if (reg02 & (1<<6)) { // 12h => 24h
reg02 = (reg02 & (0x1F)) + (reg & (1<<5) ? 12 : 0);
} else { // 24h => 12h
reg02 = reg02 % 12;
}
rtc_write(0x02, reg);
}Но, возможно, вычисления будут и сложнее. Я не знаю, как именно считает часы DS-ка. Мой расчёт (и то, возможно, неправильный) для такого варианта:
Код: Выделить всё
12h: 09a 10a 11a 12a 01p 02p ... 09p 10p 11p 12p 01a 02a ...
24h: 09 10 11 12 13 14 ... 21 22 23 00 01 02 ...Но, возможно, DS-ка считает как это принято в этих странных странах:
Код: Выделить всё
12h: 09a 10a 11a 12p 01p 02p ... 09p 10p 11p 12a 01a 02a ...
24h: 09 10 11 12 13 14 ... 21 22 23 00 01 02 ...То есть, после 11AM идёт не 12AM, а 12PM, а затем 1PM.
Надо проводить эксперименты для такого варианта, и тогда пересчитывать регистр по-другому, с учётом этого перехода:
Спойлер
Код: Выделить всё
Время 24h AM/PM
0 0x00 0x32
1 0x01 0x01
2 0x02 0x02
3 0x03 0x03
4 0x04 0x04
5 0x05 0x05
6 0x06 0x06
7 0x07 0x07
8 0x08 0x08
9 0x09 0x09
10 0x10 0x10
11 0x11 0x11
12 0x12 0x32
13 0x13 0x21
14 0x14 0x22
15 0x15 0x23
16 0x16 0x24
17 0x17 0x25
18 0x18 0x26
19 0x19 0x27
20 0x20 0x28
21 0x21 0x29
22 0x22 0x30
23 0x23 0x31А вообще, функция бесполезная и относительно много ресурсов требующая. Я бы забил.
P.S. А если так уж сильно надо - гораздо проще лезть в нутро DS-ки на этот счёт, а использовать "дефолтный" 24-часовой формат на её уровне, а уже при выводе времени, если надо - выводить его в 12-часовом формате. Внешне это будет выглядеть точно так же, но отнимет гораздо меньше сил и места в Flash контроллера.
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
WiseLord, у меня есть одна и таже функция, но написана по разному
как работает вторая мне ПОЛНОСТЬЮ понятно, а вот как работает первая - нет
можете растолковать по популярному ?
Код: Выделить всё
uint8_t bcd2bin(uint8_t value) {
return (value / 16) * 10 + (value % 16);
}
Код: Выделить всё
uint8_t BCD_to_BIN(uint8_t x) // BCD to Binary Conversion
{
return ((x) >> 4)*10 + ((x) & 0x0F);
}как работает вторая мне ПОЛНОСТЬЮ понятно, а вот как работает первая - нет
можете растолковать по популярному ?
Tell Me The Truth
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Обе записи эквивалентны друг другу.
Деление на 16 - сдвиг вправо на 4 бита.
Остаток от деления на 16 - взятие младших 4-ёх бит.
Деление на 16 - сдвиг вправо на 4 бита.
Остаток от деления на 16 - взятие младших 4-ёх бит.
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Мало того, вероятнее всего, скомпилированный код будет полностью одинаков. Компилятор обычно хорошо понимает такие вещи как умножение/деление на 2,4,8,16 и другие степени двойки и заменяет дорогое умножение и деление дешёвыми сдвигами.
- m.ix
- Друг Кота
- Сообщения: 16545
- Зарегистрирован: Вт сен 07, 2010 03:01:06
- Откуда: Moscow-Izmaylovo
- Контактная информация:
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
тут видео
на рынке что то подобное продавали
я возмутился почему там две микры.
сейчас снова возмутился увидев, накой туда ещё и 2432 вставили?
500р хотели 1302
на рынке что то подобное продавали
я возмутился почему там две микры.
сейчас снова возмутился увидев, накой туда ещё и 2432 вставили?
500р хотели 1302
Лечу лечить WWWашу покалеченную технику.
Re: Всё по DS1307 и прочим часам Dallas (Maxim)
1302 для кормежки от кондрынсатора (там и зарядное "на броту" предусмотрено) - хороша штука в конструкциях с ограниченным доступом и периодическим сетевым подкормом (или от фото/термо батарей).

