Влияет ли слишком частый опрос DS1307 на точность?

Я провел небольшое исследование и нашел противоречивые ответы в Интернете. Я опрашиваю DS1307 по циклу с помощью Arduino, для запуска которого требуется около 20 мс, поэтому в основном я опрашиваю интерфейс I2C 50 раз в секунду. Влияет ли это на точность времени IC?

ДОПОЛНЕНИЕ Я провел много тестов, и I2C не вызывал дрейфа часов, моя низкая точность была вызвана другой причиной, см. этот вопрос .

Это интересный вопрос, и похоже, что у вас уже есть идеальная установка для проведения некоторых экспериментов, таких как сравнение отклонения часов после 24 часов работы с опросом 50 Гц и без опроса.
@Kaz На самом деле это эксперимент, который я провожу, но вы знаете, что 24 часа еще долго :) В конце концов, я отвечу сам с результатами.
У вас есть линия I2C на 100 кГц? Это максимум, но обычно вы можете использовать более высокую частоту. Так что просто проверить ;)
24 часа слишком долго, чтобы сидеть и ждать результата. Хм. Я знаю, получить кооператив студент!

Ответы (2)

Это не должно. Тайминги i2c DS1307 измеряются в микро- и наносекундах. Интервалы в 20 мс ничто по сравнению с этим. Пока вы даете не менее 4,7 мкс между сигналами остановки и запуска I2C, все будет в порядке.

Кроме того:

При чтении или записи регистров времени и даты используются вторичные (пользовательские) буферы для предотвращения ошибок при обновлении внутренних регистров. При чтении регистров времени и даты пользовательские буферы синхронизируются с внутренними регистрами при любом запуске I2C. Информация о времени считывается из этих вторичных регистров, пока часы продолжают работать. Это устраняет необходимость повторного чтения регистров в случае обновления внутренних регистров во время чтения. Цепочка делителей сбрасывается всякий раз, когда записывается регистр секунд. Передача записи происходит при подтверждении I2C от DS1307. После сброса цепочки делителей, чтобы избежать проблем с переносом, оставшиеся регистры времени и даты должны быть записаны в течение одной секунды.

Учитывая, что Dallas/Maxim не указывает минимальное время опроса ниже, можно предположить, что у вас все в порядке.

Но вопрос, зачем так часто его опрашивать?

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