DS3231
- Войдите на сайт для отправки комментариев
Втр, 04/10/2016 - 23:50
есть готовый модуль, но нужен ли он?
нужно ли будет делать дополнитльную обвязку для этого
есть готовый модуль, но нужен ли он?
нужно ли будет делать дополнитльную обвязку для этого
Кроме кварца, держателя батарейки и батарейки больше ничего нет.
Но при цене готового модуля меньше 50 рублей, возиться еще с пайкой смысла не вижу.
https://ru.aliexpress.com/item/DS1302-Real-Time-Clock-Module-for-Arduino...
а разве кварц там не внутри?
вы мне кинули ссыль на модуль со старой микорсхемй, она крайне не точна
Вы заметили. что по Вашим ссылкам готовый модуль стоит вдвое дешевле микросхемы?
А вообще, я не понимаю вопроса, каждый выбирает для себя.
Например, в магазине можно купить готовый хлеб, можно тесто, можно муку, а можно пшеницу в зёрнах. Кому что нужно/интересно, тот то и покупает.
а разве кварц там не внутри?
вы мне кинули ссыль на модуль со старой микорсхемй, она крайне не точна
вот
https://ru.aliexpress.com/item/DS3231-AT24C32-IIC-Module-Precision-Clock-Module-DS3231SN-for-Arduino-Memory-module-Free-Shipping/32418233172.html?spm=2114.30010708.3.2.HiY5Pb&ws_ab_test=searchweb0_0,searchweb201602_4_10039_10056_10065_10055_10068_10054_10069_10059_10073_10017_10070_10060_10061_10052_10062_10053_10050_10051,searchweb201603_6&btsid=75664068-1061-472f-8ead-4d5e5eb339cd
По этой ссылке модуль продают без аккумулятора. Проще купить на али с аккумулятором в комплекте, чем здесь искать аккум неизвестно где.
По этой ссылке модуль продают без аккумулятора. Проще купить на али с аккумулятором в комплекте, чем здесь искать аккум неизвестно где.
СR2032 продается практически в любом ларьке :))))
СR2032 продается практически в любом ларьке :))))
Да, уж лучше купить именно аккумулятор LIR2032, а то батарейка там вздувается - она ж постоянно на подзарядке. Ну, или дорожку резать, но не люблю этих плясок с бубнами.
стоит то он дешевле, но это единственное место, где у нас я его нашел, ждать еще нужно и платить +100за самовывоз
А купить в Китае ещё дешевле? Срок доставки смущает или просто религиозные соображения? Впрочем, дело Ваше, я уже писал.
как раз таки сроки поставки, время начинает подходить к концу
Дабрый день все, може не по теме, но все-же.
Может глупый вопрос, но я еще только начинающий)
Возможно подключить данный модуль и BMP085 вместе, по подключениям глянут и тот и другой в andurino uno используют A4 и A5 выходы. Можно как то подключиться к другим выходам? Или получится подключить что-то одно?
Дабрый день все, може не по теме, но все-же.
Может глупый вопрос, но я еще только начинающий)
Возможно подключить данный модуль и BMP085 вместе, по подключениям глянут и тот и другой в andurino uno используют A4 и A5 выходы. Можно как то подключиться к другим выходам? Или получится подключить что-то одно?
можно, I2C поддерживает до 127 устройств на одной шине
тоесть параллельно все подключить и норм будет работать, никаких танцев с бубном не должно быть?
тоесть параллельно все подключить и норм будет работать, никаких танцев с бубном не должно быть?
да, главное чтобы адреса не совпадали
ок, спасибо большое, успокоил) теперь надо дождаться второй датчик, и буду пробовать)
ок, спасибо большое, успокоил) теперь надо дождаться второй датчик, и буду пробовать)
Не парься, работают, вот два датчика или двое часов, не прокатит. Жесткие у них адреса.((((
Я использую голые чипы ds3231 успешно. Ставлю только подтягивающие резисторы на sda, sdl и батарейку 3.3 в (если хотите помнить время)
По этой ссылке модуль продают без аккумулятора. Проще купить на али с аккумулятором в комплекте, чем здесь искать аккум неизвестно где.
СR2032 продается практически в любом ларьке :))))
Тогда нужно будет сразу определиться, какой ларек находится поближе. Бегать за батарейками придется часто. Как-то так сложилось, что батарейки не очень любят, когда их начинают заряжать, отчего пухнут и дохнут в рассвете лет.
Ну написал же -- аккумулятор. Модули под аккумулятор. С какого еще хрена там батарейки возникли?
Для разработок на голом чипе, так лучше ионистор. 0,22F - 12 часов без проблем, на большее свет не отключали.))))
Модуль с аккумом брал на пробу, аккум оказался потекшим. Убрал цепь зарядную и резюк с нижнего плеча, года три уже с батарейкой валяется для макетирования.
достал я этот модуль, вопрос такой, получается у этой штуки есть какой-то приоритет на питании? если есть ток от самого МК, то от него, если нет, то от батарейки?
в общем очень нужна ваша помощь, горит все)
Напишу, как смогу, все тот же вышеуказанный модуль, я как понимаю, что нормально то, что при питании только от батарейки запросить время с модуля нельзя? Получается для минимального энергопотребления мне нужно непосредственно перед запросои времени подавать на модуль питание? Или же можно как-то усыплять их?
Усыплять вроде нельзя, а вот будить МК по будильнику, DS3231 умеет.
будильник там вроде оч много кода занимает, мне по сути нужно бы запитать это добро от основного источника питания, но для этого хочу понять, кушать то сколько оно будет
будильник там вроде оч много кода занимает, мне по сути нужно бы запитать это добро от основного источника питания, но для этого хочу понять, кушать то сколько оно будет
Знатоки, подскажите для чего на микросхемке DS3231 имеется нога RST ?
Знатоки, подскажите для чего на микросхемке DS3231 имеется нога RST ?
для сброса контроллера I2C, время не сбрасывает
для сброса контроллера I2C, время не сбрасывает
Но не понял как? В смысле, приходит сигнал 0 на ногу RST микросхемки DS3231, и ее контроллер сбрасывается? В типовой схеме, как я понял, нога RST часиков соединяется с ногой RST микроконтроллера?
В типовой схеме, как я понял, нога RST часиков соединяется с ногой RST микроконтроллера?
да
В типовой схеме, как я понял, нога RST часиков соединяется с ногой RST микроконтроллера?
да
С этого места можно подробнее. Просто я его в воздухе оставляю, вроде все без проблем работает.
В типовой схеме, как я понял, нога RST часиков соединяется с ногой RST микроконтроллера?
да
С этого места можно подробнее. Просто я его в воздухе оставляю, вроде все без проблем работает.
в воздухе нельзя, или подтягивать через резистор к vcc или соединить с rst МК, который уже подтянут к vcc
Т.е. теоретически, может гадить на I2C от наводок, правильно?
не испытывал, может и гадит, хз
блин блин...это очень много...0,3 мА, а может есть более экономичные модули??
#define DS3231_I2C_ADDRESS 0x68
void
readDS3231time(
byte
*second,
byte
*minute,
byte
*hour,
byte
*dayOfWeek,
byte
*dayOfMonth,
byte
*month,
byte
*year)
163
{
164
I2CStart();
165
I2CWrite((DS3231_I2C_ADDRESS << 1));
166
I2CWrite(0);
167
I2CStop ();
168
I2CStart();
169
I2CWrite((DS3231_I2C_ADDRESS << 1) + 1);
170
*second = bcdToDec(I2CRead(1) & 0x7f);
171
*minute = bcdToDec(I2CRead(1));
172
*hour = bcdToDec(I2CRead(1) & 0x3f);
173
*dayOfWeek = bcdToDec(I2CRead(1));
174
*dayOfMonth = bcdToDec(I2CRead(1));
175
*month = bcdToDec(I2CRead(1));
176
*year = bcdToDec(I2CRead(0));
177
I2CStop ();
178
}
вот так мы читаем время из 3231, объясните,I2CWrite((DS3231_I2C_ADDRESS << 1));вот эта строчка, она что делает?
0x68, как понимаю адрес для этого устройства стандартный, но что делает тут сдвиг "<<" никак не пойму
По интерфейсу I2C адрес передается в старших битах, а в переменной он храниться в младших. Адрес занимает семь бит и чтобы устранить разницу в представлении, перед передачей его сдвигают влево на один бит.
бъясните,I2CWrite((DS3231_I2C_ADDRESS << 1));вот эта строчка, она что делает?
0x68, как понимаю адрес для этого устройства стандартный, но что делает тут сдвиг "<<" никак не пойму
Переводит 8-битный адрес устройства в 7-битный. Вот кое-что объяснено:
http://ru.dlnware.com/theory/I2C-Address
П.С. Опередили с ответом. Не буду удалять свой комментарий, может все-таки пригодится :)
я как понял поначалу, что 8 бит(если счиатть с 1)передает при старте запись или чтение
"0x68" а как в 8 битах это число выглядит?
*second = bcdToDec(I2CRead(1) & 0x7f);
вот эта строчка тоже не ясна, ведь вроде как мы должны как сделать(иое представление)
запускаем ic2/ передаем адрес устройство, устройство отзывается, передаем адрес регистра, к которому будем обращаться, на что ведомый нам уже посылает этот самый бит из регитсра
запустить все запустили, адрес устройства послали, перезапустили ic2? но где же обращенеи к регистру секунд, ведь у 3231 ээтот регистр имеет адрес 00H(я понима, что все тут есть ибо работает, но непонятно мне))
0х7f это у нас число в 16тиричной системе счисления?и здесь оно испольщуется просто как маска?
byte
I2CRead(boolean ack)
105
{
106
byte
i = 8;
107
byte
b = 0;
108
while
(i--)
109
{
110
b <<= 1;
111
SCL_Lo();
112
SDA_Hi();
113
I2CDelay();
114
SCL_Hi();
115
//while(!SCL_In());
116
if
(SDA_In()) b |= 1;
117
I2CDelay();
118
SCL_Lo();
119
}
120
if
(ack) SDA_Lo();
121
else
SDA_Hi();
122
I2CDelay();
123
SCL_Hi();
124
//while(!SCL_In());
125
I2CDelay();
126
SCL_Lo();
127
return
(b);
128
}
думаю тут нужно все рассматривать с самой функцией)
друзья, ну вы что
В чём может быть дело. При уходе Arduino в сон, примерно через минуту на выводе SQW платы Ds3231 устанавливается логический 0 не зависимо от того, на какое время был установлен будильник. Или SCL и SDA нужно подтягивать к +пит.? Если МК в спячку не загонять, всё работает нормально, лог. 0 на выводе SQW появляется в момент срабатывания будильника.
Viktor1306, на этом выводе единицы и не должно быть, читаем даташит "This open-drain pin requires an external pullup
resistor connected to a supply at 5.5V or less"
А вообще, я не понимаю вопроса, каждый выбирает для себя.
...женщину, судьбу или дорогу...служить или пророку, каждый выбирает для себя )))
Евгений Петрович извиняюсь за оффтоп но уж очень точно подметили ...
[...женщину, судьбу или дорогу...служить или пророку, каждый выбирает для себя )))
Евгений Петрович извиняюсь за оффтоп но уж очень точно подметили ...
Дык, это не я, это Юрий Левитанский подметил.
Я разве про единицу писал? Её там не может быть если выход с открытым коллектором. Меня интересует другое, 0 там появляться должен при сработке таймера. Но это выполняется если я таймер ставлю на малые интервалы, до 45 сек. Мне нужен таймер на 2 часа. А 0 появляется в интервале от 45 сек до 1 минуты, после того, как МК уснёт. Я повесил на вывод SQW светодиод (между + и SQW). По прохождении данного интервала он загорается, если я бужу МК, то диод гаснет. Если отключаю сон, то выход работает нормально, светодиод загорается через 2 часа по будильнику. Мне же нужно, чтоб часы будили МК каждые 2 часа.
Viktor1306, У вас есть внешняя подтяжка или нет? Ознакомьтесь с даташитом на ds3231, подключите всё как там рекомендуется.
Плата и пин на котором висит вывод SQW DS3231 ?
Подтягивающий резюк весит ? Как настроен порт ?
Если "0 появляется в интервале от 45 сек до 1 минуты, после того, как МК уснёт.", то логично что МК должен проснутся.
Просыпается ?
Плата Arduino pro mini 3.3v резюки ставил не помогло, МК просыпается от того, что появися 0, если отключаю вывод SQW от 2 го вывода ардуины не просыпается. Возможно я резюки подтягивающие ставил большие, на 100 кОм. Порт стандартный выводы А4 и А5.
Viktor1306, если подтяжке есть -значит ваш аларм в ds3231 настроен не на то время, которое вы думаете. Третьего как говорится не дано.
Я думаю он подтягивает SDA, SLC на I2C, т.к. пишет во множественном числе.
Надо с вывода SQW кинуть резюк 10к на + .