Руководство пользователя Orange Pi Zero 2

  Описание    Запуск      ОС Линукс      SDK Линукс    ОС Андроид    SDK Андроид    Фото  

Глава 3. ОС Линукс - Linux OS
Страница:   11    12    13    14    15    16    17    18    19    20    21    22    23    24    25    37    38    39    41    42    44    45    46    47    48    50    52    53    54    55    56    57    58  

3.35. Как использовать модуль часов реального времени Orange Pi DS1307 RTC (How to use the Orange Pi DS1307 RTC clock module)
  • 1) Модуль часов реального времени Orange Pi DS1307 RTC показан на рисунке ниже. Он использует интерфейс I2C для связи с платой разработки, адрес устройства I2C = 0x68. Модуль RTC по умолчанию не оснащен батареей, её установка требуется перед использованием.



  • 2) Подключите модуль RTC к 26-контактному выводу платы разработки по схеме (указаны контакты 26-контактного разъема)
  • 5В - 2
  • GND - 6
  • SDA - 3
  • SCL - 5
  • 3) После подключения модуля RTC используйте команду i2cdetect, чтобы проверить, можно ли определить адрес устройства модуля RTC.

    root@orangepi:~# apt update root@orangepi:~# apt install i2c-tools root@orangepi:~# i2cdetect -y 3



  • 4) Для микросхемы ds1307, используемой модулем RTC, сначала убедитесь, что включена конфигурация ядра RTC_DRV_DS1307

    root@orangepi:~# zcat /proc/config.gz | grep "RTC_DRV_DS1307" CONFIG_RTC_DRV_DS1307=y
  • 5) Подтвердите конфигурацию ядра OK порт, вам также необходимо добавить конфигурацию модуля rtc-ds1307 в папке dts.

    Сценарий с именем orangepi-add-overlay предустановлен в последней версии системы Linux.

    С помощью этого скрипта мы можем использовать наложение DT для динамического добавления некоторых функций, которых нет в dts.

    Создайте dts-файл для модуля rtc-ds1307, содержимое файла

    root@orangepi:~# cat i2c-ds1307.dts /dts-v1/; /plugin/; / { compatible = "allwinner,h616", "arm,sun50iw9p1"; fragment@1 {target = <&twi3>; __overlay__ { #address-cells = <1>; #size-cells = <0>; ds1307@68 { compatible = "dallas,ds1307"; reg = <0x68>; status = "okay"; }; }; }; };
    • a) Затем используйте orangepi-add-overlay для компиляции i2c-ds1307.dts в i2c-ds1307.dtbo, и установите соответствующие переменные запуска

      root@orangepi:~# orangepi-add-overlay i2c-ds1307.dts Compiling the overlay Copying the compiled overlay file to /boot/overlay-user/ Reboot is required to apply the changes
    • b) i2c-ds1307.dtbo будет скопирован в /boot/overlay-user после запуска orangepi-add-overlay. Для проверки, есть ли i2c-ds1307.dtbo в /boot/overlay-user

      root@orangepi:~# cd /boot/overlay-user/ root@orangepi:/boot/overlay-user# ls i2c-ds1307.dtbo
    • c) orangepi-add-overlay также добавит переменную user_overlays в /boot/orangepiEnv и установит значение i2c-ssd1307

      root@orangepi:~# cat /boot/orangepiEnv.txt | grep "user" user_overlays=i2c-ds1307
    • d) Затем перезапустите систему Linux, при загрузке вы можете увидеть вывод, связанный с DToverlay, в журнале u-boot.

      U-boot loaded from SD Boot script loaded from mmc 214 bytes read in 8 ms (25.4 KiB/s) 645 bytes read in 13 ms (47.9 KiB/s) Applying user provided DT overlay i2c-ds1307.dtbo 8482593 bytes read in 369 ms (21.9 MiB/s) 23638088 bytes read in 1005 ms (22.4 MiB/s) ## Booting kernel from Legacy Image at 41000000 ...
  • 6) После перезапуска вы можете увидеть информацию о загрузке модуля ds1307 из вывода журнала dmesg, а узел устройства, соответствующий ds1307, будет rtc0

    root@orangepi:~# dmesg | grep "rtc" [ 2.131445] rtc-ds1307 3-0068: rtc core: registered ds1307 as rtc0 [ 2.131470] rtc-ds1307 3-0068: 56 bytes nvram [ 2.132256] sunxi-rtc rtc: rtc core: registered sunxi-rtc as rtc1 [ 2.132329] sunxi-rtc rtc: RTC enabled [ 2.307120] rtc-ds1307 3-0068: setting system clock to 2000-00-00 06:33:46 UTC (1607063626)
  • 7) Когда система Linux запущена, если плата разработки подключена к сети, система Linux автоматически синхронизирует системное время с правильным временем через сеть.

    Время по умолчанию в системе Linux - UTC.

    В Китае нужно изменить часовой пояс на Азию/Шанхай и использовать данные.

    Время, полученное командой, правильное, метод следующий
    • a) Выполните следующую команду

      root@orangepi:~# dpkg-reconfigure tzdata
    • b) Затем выберите географический регион Азия.
    • c) Затем выберите часовой пояс Шанхай.
    • d) После завершения настройки используйте команду date для просмотра времени и это будет нормально

      root@orangepi:~# date






  • 8) Если текущее время системы неверно, сначала подключитесь к сети, а затем затем используйте следующую команду для синхронизации времени. Причина, по которой системное время выставлено правильно: здесь нужно подготовиться к синхронизации времени модуля RTC позже.

    root@orangepi:~# apt -y update root@orangepi:~# apt install ntpdate root@orangepi:~# ntpdate 0.cn.pool.ntp.org
  • 9) Команда для просмотра текущего времени модуля RTC

    root@orangepi:~# hwclock -r
  • 10) Время, считываемое модулем RTC в первый раз, определенно неверно. Вы можете использовать следующие команды для синхронизации текущего времени системы с модулем RTC. Перед синхронизацией необходимо убедиться, что текущее время в системе правильное.

    root@orangepi:~# date #First make sure the current system time is correct root@orangepi:~# hwclock -w #Then write the system time into the RTC module root@orangepi:~# hwclock -r #Finally read the time of the RTC module to confirm that the setting is correct
  • 11) На этом этапе вы можете отключить все сетевые подключения платы, подождите несколько минут, перезапустите систему, а затем проверьте системное время, и вы обнаружите, что системное время правильное, даже если нет сети.

  • Страница:   11    12    13    14    15    16    17    18    19    20    21    22    23    24    25    37    38    39    41    42    44    45    46    47    48    50    52    53    54    55    56    57    58