1. 程式人生 > >嵌入式開發——rtc時鐘除錯筆記

嵌入式開發——rtc時鐘除錯筆記

前段時間在除錯AM335X的rtc時鐘功能,一開始是使用晶片內部的rtc時鐘模組,後來發現功耗有點高,轉而使用rtc時鐘晶片,型號為ds1672.。現在把兩者的除錯要點記錄下來,方便後續的查閱。

注:使用的linux核心版本為4.4.32

晶片內部RTC:

檢視官方的說明文件:http://processors.wiki.ti.com/index.php/AM335x_Schematic_Checklist#RTCrtc的模式應為RTC-only mode,引腳接法如下:
VDDS_RTC--------Always on RTC 1.8 V power supply(接電池轉換後的1.8V,持續供電VDD1V8_RTC)
CAP_VDD_RTC--------1 uF decoupling capacitor to VSS(接1uF電容到地)
RTC_KALDO_ENn--------VSS(接10k電阻到地)
RTC_PWRONRSTn--------1.8 V RTC power on reset(接電池轉換後的1.8V,保證不復位,VDD1V8_RTC)
PMIC_POWER_EN--------PMIC power enable input(接板子轉換後的1.8V,VDD1V8)
EXT_WAKEUP--------1.8 V wakeup event signal(接電池轉換後的1.8V,一直是喚醒狀態,VDD1V8_RTC)

核心的配置需選上CONFIG_RTC_DRV_OMAP這一欄,裝置樹下增加一個新的節點:

&rtc {
    system-power-controller;
    clocks = <&clk_32768_ck>;
    clock-names = "ext-clk", "int-clk";
    status = "okay";
};

使用外部的時鐘晶片(ds1672):

檢視核心的driver目錄,可以發現系統已經適配了ds1672這個i2c時鐘晶片,我們這裡只要配置正確了,就能正常使用它了。

配置方法如下:

1.去除裝置樹的rtc節點,在i2c0節點下增加ds1672子節點:

ds1672: [email protected] {
    compatible = "ds1672";
    reg = <0x68>;    
};

2.核心配置引入<*>   Dallas/Maxim DS1672
去掉omap-rtc驅動