rtc ds3231 & raspberry pi 3 Сбивается время РЕШЕНО

Тема в разделе "Raspberry Pi", создана пользователем 521, 25 июн 2019.

  1. 521

    521 Нерд

    Здравствуйте. Использую raspberry pi 3 b, microSD transcend 10 класса с высокой скоростью чтения/записи и возникла проблема. Установил rtc ds3231 согласно инструкции, но ИНОГДА время сбивается на 1970 год при отключении от сети. Есть подозрения что либо чтение/запись не отрабатывает корректно из за того, что что-то грузится быстрее. Делал задержку, сначала включался модуль rtc, через 5 секунд уже сама raspberry, но проблема осталась. Подскажите пожалуйста, как победить эту проблему? а то и толку то от модуля rtc нет. rtc.png
     
  2. Daniil

    Daniil Гуру

    Может сами ртс китайские? Так не должно быть. Время записывается в еепром, ей плевать на питание.
     
  3. 521

    521 Нерд

    Ну что китайские то это да, но работают с atmega2561 без проблем.
     
  4. Daniil

    Daniil Гуру

    Может добавить фильтр по питанию? Начать с кондеров 100 мкФ и 100нФ. Если во время отключения питания появляется бросок напряжения то могут произойти всякие непредвиденные пакости.
     
  5. 521

    521 Нерд

    Я пробовал от разных источников питания, не помогает:( а при при включении raspberry не записывает в модуль не какой гадости?
     
  6. Daniil

    Daniil Гуру

    Проблема. Когда питание МК шатается или выходит за допустимые пределы, то мк может себя аномально вести. Могут выполняться команды из разных ячеек памяти, поэтому - да, может.
    Решение.
    Есть такие штуки как мониторы (супервизоры) питания. Их подключают к выводу RST мк. При появлении намека на то что появилось/пропадает питание они вводят мк в режим перезагрузки и выводят когда напряжение стабилизировалось.
    Я не знаю есть ли, да и нужны ли они малине.
    Ваша проблема не такая частая, чтобы грешить на "случайную запись от малины".
    Все источники китайские? Да и не в них может быть дело. Если есть где-то в цепи индуктивность (мотор, катушка, очень длинный провод по питанию и т.п.), то резкое пропадание напряжения питания приведет к тому, что эта индуктивность сгенерирует напряжение в ответ (это связано с тем, что ток в индуктивности не может меняться скачкообразно) - это может давать сбой.
    Я предложил поставить кондеры по питанию к часам, чтобы отфильтровать такие скачки, т.к. на кондерах напряжение не может меняться скачкообразно.
     
  7. parovoZZ

    parovoZZ Гуру

    Ищи проблему в коде.
     
  8. 521

    521 Нерд

    Проблема решена. Не были установлены i2c-tools и python-smbus
    Заработало так:
    sudo su

    raspi-config

    ищем и включаем i2c

    reboot

    проверяем i2c

    i2cdetect –y 1

    если высвечивается «command not found» подключаем raspberry pi к интернету и устанавливаем apt-get install python-smbus

    далее делаем apt-get install i2c-tools

    далее редактируем nano /etc/modules и перед строкой i2c-dev добавляем i2c-bcm2708 сохраняемся ctrl+x yes

    далее снова открываем nano /boot/config.txt и смотрим чтобы были прописаны такие строки:

    # Enable audio (loads snd _bcm2835)

    dtparam=audio=on

    dtparam=i2cl=on

    dtparam=i2c_arm=on

    сохраняемся ctrl+x yes

    перезагружаемся

    снова открываем терминал и проверяем i2c i2cdetect–y1 и если все сделали правильно, то при подключенном модуле ds3231 должна появится табличка, в которой будет видно что по i2c подключено устройство ( в табличке вас должны порадовать цифры 68 это адрес ds3231 ).

    На этом еще не все

    Открываем терминал

    nano

    В конце файла /boot/config.txt дописать строку: dtoverlay=i2c-rtc,ds3231

    Удалить fake-hwclock: sudo apt-get purge fake-hwclock
    ( можете и отключить )

    Отредактировать файл/etc/rc.local, вставив перед строкой“exit 0” строку: /sbin/hwclock -s

    Отредактировать файл /etc/default/hwclock and set HWCLOCKACCESS to no: HWCLOCKACCESS=no

    Устанавливаем время sudo su

    Date MMDDhhmmYYYY и нажимаем enter

    Записываем время в ds3231

    sudo hwclock–w

    перезагружаемся и смотрим sudo hwclock –r ( время с ds3231)

    при необходимости устанавливаем свою time zone

    sudo dpkg-reconfigure tzdata

    Выключаем малинку от питания ждем минутку и включаемся , проверяем время date все должно работать :)
    Если чего не так, поправьте меня:)
     
    Последнее редактирование: 1 июл 2019
    Daniil нравится это.