快速瀏覽

RTC 喚醒


 

  • 在以下 Odroid 板上確認操作。
    • Odroid-C4
    • Odroid-HC4

您可以使用我們的RTC Shield喚醒您的 Odroid 板。


首先,要在 Odroid 板上啟用 RTC 屏蔽,請按照專用指南進行操作。


設置系統時間

按照以下命令將系統時間設置為本地時間。

sudo dpkg-reconfigure tzdata

那麼最終的輸出將是這樣的。

$ sudo dpkg-reconfigure tzdata
 
Current default time zone: 'Asia/Seoul'
Local time is now:      Wed Jun  9 11:11:19 KST 2021.
Universal Time is now:  Wed Jun  9 02:11:19 UTC 2021.
設置板子可以通過GPIO引腳喚醒
  • 此步驟僅適用於Odroid-C4/HC4

要通過 Shield 的中斷信號喚醒,您必須將 GPIO 引腳編號設置為 U-boot 引導加載程序讀取的腳本文件。

### in case of GPIOX.5 (Pin 7) of 2x20 pins connector ###
setenv gpiopower "481"
setenv bootargs ${bootargs} gpiopower=${gpiopower}

這樣結果應該是這樣的。

# Boot Args
setenv bootargs "..."

### in case of GPIOX.5 (Pin 7) of 2x20 pins connector ###
setenv gpiopower "481"
setenv bootargs ${bootargs} gpiopower=${gpiopower}

# Load kernel, dtb and initrd
...

然後,如果向設置引腳提供適當的信號,電路板就會從關閉狀態喚醒。

配置 RTC 屏蔽

將當前系統時間寫入您的 RTC 屏蔽。

sudo hwclock -w -f /dev/rtc0
  • 如果檢測到 RTC 硬件,那麼將有一個 RTC 設備文件,如/dev/rtc? .
  • 由於/dev/rtc0 通常是默認的 RTC 設備,因此您可以省略上述命令-f選項。

並檢查日期是否寫正確。下面的代碼將比較 shield has 和 Odroid 系統之間的時間信息。

$ hwclock -r ; date
2021-06-09 11:24:48.431452+09:00
Wed Jun  9 11:24:48 KST 2021

然後把你願意喚醒你的 Odroid 的 DateTime 放入/sys/class/rtc/rtc0/wakealarm文件中。

這是啟用喚醒警報功能的示例,這讓 Odroid 在 3 分鐘內啟動。

echo 0 | sudo tee /sys/class/rtc/rtc0/wakealarm
echo $(date '+%s' -d '+ 3 minutes') | sudo tee /sys/class/rtc/rtc0/wakealarm

讀取 RTC 狀態。

cat /proc/driver/rtc

然後它的結果如下所示。要檢查是否啟用了喚醒警報功能,請參閱alarm_IRQ屬性。應該是的

rtc_time        : 02:26:18
rtc_date        : 2021-06-09
alrm_time       : 02:29:13
alrm_date       : 2021-06-09
alarm_IRQ       : yes
alrm_pending    : no
update IRQ enabled      : no
periodic IRQ enabled    : no
periodic IRQ frequency  : 1
max user IRQ frequency  : 64
24hr            : yes

關閉您的 Odroid 並觀看它以檢查它是否自動喚醒。如果一切順利,您的 Odroid 板將在 3 分鐘內被屏蔽的中斷信號喚醒。

sudo poweroff

這是常見的故障排除列表,這些可以在控制台的 dmesg 或標準輸出中找到。
hwclock: ioctl(RTC_RD_TIME) 到 /dev/rtc 讀取時間失敗:參數無效
由於某種原因未連接 RTC 備用電池或未將 RTC 配置為可訪問。
無法訪問“/dev/rtc1”:沒有這樣的文件或目錄

首先,您應該檢查給定的 RTC 設備文件是否正確。如果 RTC shield 似乎沒有設備文件,請參閱RTC Shieldwiki 頁面以檢查所有設置是否正確。並且要檢查RTC shield 是否可以通過I2C 協議與Odroid 板良好通信,您可以使用I2C 設備檢測器工具進行檢查,如以下命令。

sudo apt install i2c-tools
sudo i2cdetect -y 0
  • 帶有-y選項的給定數字應與您的 Odroid 板匹配。
$ ls  -al  / dev / i2c * 
crw-rw---- 1 root i2c 89 , 0 Apr   2   2020  / dev / i2c- 0

那麼結果應該和下面的內容一樣。

$ sudo i2cdetect -y 0 
     0 1 2 3 4 5 6 7 8 9 abcdef 
00: -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- - - -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- - -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: - - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- --

結果UU表明它是正常的。

rtc-pcf8563 3-0051:檢測到低電壓,日期/時間不可靠

此錯誤可能不准確,但您應該自己檢查實際電壓。它應該接近3V。

RTC 時間在啟動時未同步

內核的 hctosys 在 RTC 硬件初始化之前工作,因為 I2C/RTC 驅動程序作為一個模塊工作。

您可以編輯/etc/rc.local以在啟動時將硬件 RTC 時間與系統時間同步。

請參考以下代碼。當然,您可以檢查 RTC 設備文件是否正確。

if [ -f /aafirstboot ]; then /aafirstboot start ; fi
 
hwclock -s -f /dev/rtc0
 
exit 0

為了應用更改,請重新啟動您的 Odroid。

sudo reboot
快速瀏覽

ODROID-C4

四核ARM CORTEX-A55 |4GB RAM |4 USB3 PORTS