Navigation

    MangoPi.Club

    • Register
    • Login
    • Search
    • Popular
    • 最新
    • 版块
    • 用户
    • 话题
    • Home

    Widora_NEO: 挂载I2C接口RTC时钟模块

    中文
    3
    5
    1067
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • midas-zhou
      midas-zhou last edited by midas-zhou

      想给Widora_NEO外挂一个RTC模块,查看rtc-ds1307.c驱动文件,发现其兼容支持ds_1307/1337/1339/1340/1388/3231,m41t00,mcp7941x和rx_8025等芯片,正好手头有一片ds3231,将其连接到widora_neo的i2c接口上。参考这篇网文http://lib.csdn.net/article/embeddeddevelopment/26882进行设置, 基于openwrt_widora, 步骤如下:

      1. 在openwrt_widora目录下执行make kernel_menuconfig, 进入Device Drivers选项,[*]选Real Time Clock条目。

      2. 编辑~/openwrt_widora/package/kernel/linux/modules/other.mk 文件,找到define KernelPackage/rtc-ds1307条,将其中DEPENDS:=@RTC_SUPPORT +kmod-i2c-core 改写成DEPENDS:= +@RTC_SUPPORT +kmod-i2c-core

      3. make menuconfig可以发现此时在kernel modules -> other modules下面出现了kmod-rtc-ds1307模块选项,[*]选中。

      4. 编辑~/openwrt_widora/target/linux/ramips/dts/WIDORA32128.dts 文件,在i2c@900节点中加入rtc子节点. 0x68为RTC模块的I2C地址。

                      i2c@900 {
                              #address-cells=<1>;
                              #size-cells=<0>;
                              status = "okay";
                              rtc@68{
                                      compatible="dallas,ds3231";
                                      reg=<0x68>;
                              };
                      };
      
      
      1. 编译固体,并将其刷入Widora_NEO.
        ls /dev 可以看到生成了rtc0设备。
        执行hwclock -r 显示RTC模块的时间。
      root@Widora:~# hwclock -r
      Sat Jan  1 00:00:12 2000  0.000000 seconds
      

      执行hwclock -w 可用系统时间来矫正RTC模块的时间

      root@Widora:~# hwclock -w
      root@Widora:~# hwclock -r
      Mon Aug 20 14:36:39 2018  0.000000 seconds
      

      6.问题:
      可能是执行了make kernel_menuconfig的原因,每次编译的时候都会2次出现如下选项要求手动输入,不知道如何取消掉

      * Restart config...
      *
      *
      * ALSA for SoC audio support
      *
      ALSA for SoC audio support (SND_SOC) [M/n/?] m
        SoC Audio for the Atmel System-on-Chip (SND_ATMEL_SOC) [N/m/?] n
        Synopsys I2S Device Driver (SND_DESIGNWARE_I2S) [N/m/?] n
        SoC Audio (I2S protocol) for Ralink MT7620 SoC (SND_MT7620_SOC_I2S) [N/m/?] n
        SoC Audio support for Ralink WM8960 (SND_MT7620_SOC_WM8960) [N/m/?] n
        SoC Audio for MT76XX APSoC Machine (SND_MT76XX_SOC) [M/n/?] m
          Selected SoC type
          > 1. MT7620 (SND_MT76XX_SOC_MT7620) (NEW)
            2. MT7628 (SND_MT76XX_SOC_MT7628) (NEW)
          choice[1-2]: 
      
      

      0_1534755599186_rtc2.jpg

      M 1 Reply Last reply Reply Quote
      • M
        mangogeek @midas-zhou last edited by

        @midas-zhou 执行过kernel_menuconfig后,你使用git diff就会发现,由于config-3.18与内核基础的原本的存在微笑冲突,导致有SND相关的两句发生了变化,改回去那两句就好了。
        实际编译时,是以config-3.18为准的

        midas-zhou 1 Reply Last reply Reply Quote
        • midas-zhou
          midas-zhou @mangogeek last edited by midas-zhou

          @mango 实验,确实如此!把红色部分改回到target/linux/ramips/mt7688/config-3.18 就可以了。
          0_1534756183392_diff.jpg

          1 Reply Last reply Reply Quote
          • T
            tongjinlv last edited by

            添加tft驱动也会遇到这个问题 已解决 谢谢 @midas-zhou

            1 Reply Last reply Reply Quote
            • midas-zhou
              midas-zhou last edited by

              研究了一下openwrt_widora各个配置文件和相互关系,觉得将缺失配置写入target/linux/generic/config-3.18中才是长久之计.

              1 Reply Last reply Reply Quote
              • First post
                Last post
              紧急事务请联系:hello @ widora.io