Два модуля времени DS3231 к одной ардуине

Binary Smile
Offline
Зарегистрирован: 15.05.2016

Добрый день!

Тут меня озадачило, что хочу подключить два модуля RTC DS3231 к одной ардуино и работать с ними одновременно.

Как я понимаю, i2c может одновременно на шине держать 8 устройств, но библиотека RTC вроде как жестка привязана к ногам А4 и А5. и отсутствует выбор устройства.

Есть ли какая-то альтернатива как комуницировать с двумя одновременно модулями? или надо вчитыватья в RTC.h и скорее всего переписывать, чего очень не хочется...

Задача изначально проста: задать на часах №2 тоже время, что и на часах №1, соответственно погрешность будет +- такт ардуино.

T.Rook
Offline
Зарегистрирован: 05.03.2016

Binary Smile пишет:

Как я понимаю, i2c может одновременно на шине держать 8 устройств

Немножко больше чем 8

Binary Smile пишет:

но библиотека RTC вроде как жестка привязана к ногам А4 и А5. и отсутствует выбор устройства.

Потому что именно на этих ногах сидит I2C

Binary Smile пишет:

Есть ли какая-то альтернатива как комуницировать с двумя одновременно модулями?

Насколько я знаю у DS3231 нет возможности изменить свой адрем на шине I2C . Но если "очень хочется два модуля", то наверное можно покопать в сторону soft реализации I2C на других пинах.

Binary Smile пишет:

Задача изначально проста: задать на часах №2 тоже время, что и на часах №1, соответственно погрешность будет +- такт ардуино.

Хм.. уверен что и тут, мягко говоря, сильно больше чем "+- такт"

А можете пояснить зачем нужно два модуля часов? Просто любопытно.

 

axill
Offline
Зарегистрирован: 05.09.2011

Зачем вам четыре ноги на одном туловище? Разработчики ds3231 думаю вас тоже самое бы спросили

Binary Smile
Offline
Зарегистрирован: 15.05.2016

T.Rook пишет:

Насколько я знаю у DS3231 нет возможности изменить свой адрем на шине I2C . Но если "очень хочется два модуля", то наверное можно покопать в сторону soft реализации I2C на других пинах.

Логично! буду копать сюда

 

T.Rook пишет:
А можете пояснить зачем нужно два модуля часов? Просто любопытно.

Самое простое и что я сейчас хочу, это есть 5-10 таких модулей времени, они разойдутся по разным углам и назначениям, но сначала мне надо, что бы на них время было синхронизированно.

По ряду причин и хотелке, я хочу это реализовать так, что есть ардуинка с часами и разъемом для часов. Подключаю часы в разъем, жму кнопку - на вторых часах заданно время с первого модуля.

oleg_kazakof
Offline
Зарегистрирован: 24.04.2015

Binary Smile пишет:

T.Rook пишет:

Насколько я знаю у DS3231 нет возможности изменить свой адрем на шине I2C . Но если "очень хочется два модуля", то наверное можно покопать в сторону soft реализации I2C на других пинах.

Логично! буду копать сюда

 

T.Rook пишет:
А можете пояснить зачем нужно два модуля часов? Просто любопытно.

наверно курсовая или дипломная работа (синхронизация вашим способом я думаю бессмыслена, кварцы в модуле имеют какай-то допуск по частоте ну а далше думайте сами). 

 

Самое простое и что я сейчас хочу, это есть 5-10 таких модулей времени, они разойдутся по разным углам и назначениям, но сначала мне надо, что бы на них время было синхронизированно.

По ряду причин и хотелке, я хочу это реализовать так, что есть ардуинка с часами и разъемом для часов. Подключаю часы в разъем, жму кнопку - на вторых часах заданно время с первого модуля.

T.Rook
Offline
Зарегистрирован: 05.03.2016

Binary Smile пишет:

По ряду причин и хотелке, я хочу это реализовать так, что есть ардуинка с часами и разъемом для часов. Подключаю часы в разъем, жму кнопку - на вторых часах заданно время с первого модуля.

Понятно. Ну если Вы понимаете, что это далеко не NTP синхронизация и это Вас устраивает, то удачи в интересном копании :)

axill
Offline
Зарегистрирован: 05.09.2011

Можно использовать мультиплексор/демультиплексор 74hc4052/4053 для переключения i2c шины

теоретически достаточно переключать только шину данных

но все же то для чего вам нужно все это мне думается можно сделать иначе. Можно сделать сервер времени подключенный к интернет с синхронизацией по ntp и все остальные rtc синхронизировать с ним например по радио