Перейти к содержанию

Rtc Ds3231 Пин Sqw


Рекомендуемые сообщения

Приветствую, уважаемые!

Вопрос возник по RTC DS3231. Устройство имеет 6 пинов GND, VCC, SDA, SCL, SQW, 32K.

С подключением первых четырех пинов особых вопросов не возникло. Время выставляется, температура измеряется, все пишется и в консоль и на LCD.

Выставляются будильники (их в RTC две штуки), срабатывают, поднимаются при этом регистры A1F и A2F (адрес 0x0F).

Поковырялся около пинов SQW и 32K. Кроме ежесекундного мигания светодиодом, подвешенным на пин SQW при выставленных вручную регистрах RS1 (0), RS2 (0) (по адресу 0x0E) от пина SQW не смог ничего добиться. Пин 32K дает постоянный высокочастотный сигнал, с которым тоже непонятно что делать.

Возникло три вопроса:

1. Можно ли как-то, по наличию сигнала на пине определять срабатывание аларма и только потом уже лезть в регистры смотреть, какой именно из будильников сработал?

2. Как можно использовать пины 32K и SQW?

3. Как инициировать выставление регистов A1IE, A2IE (адрес 0x0E) при наступлении события для аларма? Или они только вручную поднимаются в 1?

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Конечно читал. Иначе откуда бы я про них узнал? :)

Там написано, что при поднятом бите INTCN и срабатывании A1F или A2F поднимается SQW. Вроде как после этого должен сигнал на пине появляться. Но что-то как-то изменения в горении диода не замечаю.

При запуске RTC после сброса батарейки вот что в регистрах творится

Thu, 5/22/14 - 14:40:6 Temperature: 24.50; 136

A1M1: 0; A1M2: 0; A1M3: 0; A1M4: 0

A1: 0 | 0:0:0

A2M2: 0; A2M3: 0; A2M4: 0

A2: 2 | 0:0

EOSF:0; BBSQW:0; CONV:0; RS2:1; RS1:1; INTCN:1; A2IE:0; A1IE:0

OSF:1; 0:0; 0:0; 0:0; EN32kHz:1; BSY:0; A2F:0; A1F:0

т.е. у меня подняты на 0x0E регистры RS1, RS2 (сигнал на SQW будет 8kHz), поднят INTCN (который якобы нужен алармам для подачи сигнала). Подняты на 0x0F регистры OSF (индикатор остановки) и EN32kHz (на пин 32k идет сигнал 32kHz)

Если сработают алармы, A1F и A2F поднимутся в 1, но больше видимых изменений не происходит.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Кажется, разобрался.

При таких значениях диод мигает с частотой в 1 Hz (RS1=0;RS2=0)

Thu, 5/22/14 - 15:41:17 Temperature: 23.50; 136

A1M1: 0; A1M2: 0; A1M3: 0; A1M4: 0

0 | 0:0:0

A2M2: 0; A2M3: 0; A2M4: 0

0 | 0:0

EOSF:0; BBSQW:0; CONV:0; RS2:0; RS1:0; INTCN:0; A2IE:0; A1IE:0

OSF:1; 0:0; 0:0; 0:0; EN32kHz:1; BSY:0; A2F:0; A1F:0

Выставляю в 0x0E

EOSF:0; BBSQW:0; CONV:0; RS2:0; RS1:0; INTCN:1; A2IE:1; A1IE:1

Диод начинает гореть непрерывно.

При срабатывании аларма получаем

Thu, 5/22/14 - 15:42:1 Temperature: 23.50; 138

A1M1: 0; A1M2: 0; A1M3: 0; A1M4: 0

0 | 0:0:0

A2M2: 0; A2M3: 0; A2M4: 0

22 | 15:42

EOSF:0; BBSQW:0; CONV:0; RS2:0; RS1:0; INTCN:1; A2IE:1; A1IE:1

OSF:1; 0:0; 0:0; 0:0; EN32kHz:1; BSY:0; A2F:1; A1F:0

И светодиод гаснет!!!

Т.е. на SQW пропадает сигнал?

Следующий вопрос.. Раз у нас на SQW не постоянный сигнал, то на какой пин на Arduino его вешать?

На ШИМ?

Ссылка на комментарий
Поделиться на другие сайты

Написано же, что если бит INTCN установлен в 0, то на выводе INT/SQW будет сигнал с частотой 1 Гц.

Если бит INTCN установлен в 1, то при срабатывании будильника появится логический 0.

Подавайте на любой логический вход, при чем тут шим?

Ссылка на комментарий
Поделиться на другие сайты

Про PWM я погорячился. :)

При частоте 1 Hz у меня при считывании данных 0 периодически выскакивал. Поднял частоту сигнала с помощью RS1 и RS2 до килогерца и нулей стало не видно.

int Val=0;

int Pin = 3;

void setup()

{

Serial.begin(9600);

}

void loop()

{

Val = analogRead(Pin);

Serial.println(Val);

}

При срабатывании аларма на аналоговом входе четкий 0.

Вот как-то так это выглядит

-------------------------------------------------------------

Thu, 5/22/14 - 18:20:56 Temperature: 23.50; 136

A1M1: 0; A1M2: 0; A1M3: 0; A1M4: 0

Alarm1: 0 | 0:0:0

A2M2: 0; A2M3: 0; A2M4: 0

Alarm2: 22 | 18:21

EOSF:0; BBSQW:0; CONV:0; RS2:0; RS1:1; INTCN:1; A2IE:1; A1IE:1

OSF:1; 0:0; 0:0; 0:0; EN32kHz:1; BSY:0; A2F:0; A1F:0

Analog In (3): 767

-------------------------------------------------------------

Thu, 5/22/14 - 18:20:58 Temperature: 23.50; 136

A1M1: 0; A1M2: 0; A1M3: 0; A1M4: 0

Alarm1: 0 | 0:0:0

A2M2: 0; A2M3: 0; A2M4: 0

Alarm2: 22 | 18:21

EOSF:0; BBSQW:0; CONV:0; RS2:0; RS1:1; INTCN:1; A2IE:1; A1IE:1

OSF:1; 0:0; 0:0; 0:0; EN32kHz:1; BSY:0; A2F:1; A1F:0

Analog In (3): 0

Изменено пользователем Nodit
Ссылка на комментарий
Поделиться на другие сайты

  • 8 месяцев спустя...
  • 11 месяцев спустя...
Гость АлександрМ

Какую библиотеку для работы с ds используете?

Вам нужен меандр на sqw ноге оставьте его? или перезапишите бит регистра, чтоб только 0 давал.

При поднятии частоты получите 0/1 соответствующей частоты. прикрутите светодиод с резистором увидите разную яркость свечения (теоретически). Осцилом можете ткнуть все красивее будет. :-)

на ШИМ...?!? одни слюни и те... это выход. Что вы от него хотите.

Прикручивайте на любой int МК. разрешайте прерывание с ноги инт мк при 0 (настраивайте). При совпадении одного из будильников будет внешнее прерывание, обрабытывайте его.

Ссылка на комментарий
Поделиться на другие сайты

Гость АлександрМ

Еще нюанс - между пином SQW и Analog In A3 воткнул диод - без него даже после срабатывания аларма на входе читаются значения, отличные от 0.

...oh my got. Lets read datasheet first.

Ссылка на комментарий
Поделиться на другие сайты

Гость АлександрМ

Киньте исходник, никак не могу разобраться с будильником.

Начните моргать диодами....для начала. и желательно путем прямого доступа к портам, без функций дижиталврайт (ардуино иде)

Ссылка на комментарий
Поделиться на другие сайты

Гость АлександрМ

Киньте исходник, никак не могу разобраться с будильником.

Начните моргать диодами....для начала. и желательно путем прямого доступа к портам, без функций дижиталврайт (ардуино иде)

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...