Два модуля времени DS3231 к одной ардуине
- Войдите на сайт для отправки комментариев
Вс, 15/05/2016 - 21:23
Добрый день!
Тут меня озадачило, что хочу подключить два модуля RTC DS3231 к одной ардуино и работать с ними одновременно.
Как я понимаю, i2c может одновременно на шине держать 8 устройств, но библиотека RTC вроде как жестка привязана к ногам А4 и А5. и отсутствует выбор устройства.
Есть ли какая-то альтернатива как комуницировать с двумя одновременно модулями? или надо вчитыватья в RTC.h и скорее всего переписывать, чего очень не хочется...
Задача изначально проста: задать на часах №2 тоже время, что и на часах №1, соответственно погрешность будет +- такт ардуино.
Как я понимаю, i2c может одновременно на шине держать 8 устройств
Немножко больше чем 8
но библиотека RTC вроде как жестка привязана к ногам А4 и А5. и отсутствует выбор устройства.
Потому что именно на этих ногах сидит I2C
Есть ли какая-то альтернатива как комуницировать с двумя одновременно модулями?
Насколько я знаю у DS3231 нет возможности изменить свой адрем на шине I2C . Но если "очень хочется два модуля", то наверное можно покопать в сторону soft реализации I2C на других пинах.
Задача изначально проста: задать на часах №2 тоже время, что и на часах №1, соответственно погрешность будет +- такт ардуино.
Хм.. уверен что и тут, мягко говоря, сильно больше чем "+- такт"
А можете пояснить зачем нужно два модуля часов? Просто любопытно.
Зачем вам четыре ноги на одном туловище? Разработчики ds3231 думаю вас тоже самое бы спросили
Насколько я знаю у DS3231 нет возможности изменить свой адрем на шине I2C . Но если "очень хочется два модуля", то наверное можно покопать в сторону soft реализации I2C на других пинах.
Логично! буду копать сюда
Самое простое и что я сейчас хочу, это есть 5-10 таких модулей времени, они разойдутся по разным углам и назначениям, но сначала мне надо, что бы на них время было синхронизированно.
По ряду причин и хотелке, я хочу это реализовать так, что есть ардуинка с часами и разъемом для часов. Подключаю часы в разъем, жму кнопку - на вторых часах заданно время с первого модуля.
Насколько я знаю у DS3231 нет возможности изменить свой адрем на шине I2C . Но если "очень хочется два модуля", то наверное можно покопать в сторону soft реализации I2C на других пинах.
Логично! буду копать сюда
наверно курсовая или дипломная работа (синхронизация вашим способом я думаю бессмыслена, кварцы в модуле имеют какай-то допуск по частоте ну а далше думайте сами).
Самое простое и что я сейчас хочу, это есть 5-10 таких модулей времени, они разойдутся по разным углам и назначениям, но сначала мне надо, что бы на них время было синхронизированно.
По ряду причин и хотелке, я хочу это реализовать так, что есть ардуинка с часами и разъемом для часов. Подключаю часы в разъем, жму кнопку - на вторых часах заданно время с первого модуля.
По ряду причин и хотелке, я хочу это реализовать так, что есть ардуинка с часами и разъемом для часов. Подключаю часы в разъем, жму кнопку - на вторых часах заданно время с первого модуля.
Понятно. Ну если Вы понимаете, что это далеко не NTP синхронизация и это Вас устраивает, то удачи в интересном копании :)
Можно использовать мультиплексор/демультиплексор 74hc4052/4053 для переключения i2c шины
теоретически достаточно переключать только шину данных
но все же то для чего вам нужно все это мне думается можно сделать иначе. Можно сделать сервер времени подключенный к интернет с синхронизацией по ntp и все остальные rtc синхронизировать с ним например по радио