打印
[技术问答]

【已解决】NUC505的RTC初始化有问题

[复制链接]
1548|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
springvirus|  楼主 | 2018-6-25 14:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 springvirus 于 2018-6-26 10:45 编辑

【已解决】需要按下板子上的RTC-WAKEUP按键,RTC才正常工作

调试了下NUC505的RTC,遇到些问题
NUC505BSPV3.02.000中rtc.c的RTC_Open()

对RTC->INIT写入RTC_INIT_KEY后,读出第0位的ACTIVE总是0,直到超时,再次写入后,还是超时,原因不明
对于RTC->SYNC也是一样的情况   

哪位童鞋弄过这块,一起来说说

代码如下


void RTC_Open (S_RTC_TIME_DATA_T *sPt)
{
    xxxxxxxxx;

    if((RTC->INIT & RTC_INIT_ACTIVE_Msk)!= RTC_INIT_ACTIVE_Msk)
  {
        RTC->INIT = RTC_INIT_KEY;

        while((RTC->INIT & RTC_INIT_ACTIVE_Msk) != RTC_INIT_ACTIVE_Msk)
        {
                        /* Waiting for RTC settings stable */
                        while(i32delay--)
                        {
                                if((RTC->INIT & RTC_INIT_ACTIVE_Msk) == RTC_INIT_ACTIVE_Msk)
                                                break;
                        }                                                               

                        i32delay = 1000;
                        RTC->INIT = RTC_INIT_KEY;
                }                                       
                                
                i32delay = 1000;
                RTC_SyncReg();

        }


       xxxxxxxxxx;

}

void RTC_SyncReg(void)
{
        uint32_t u32i = 0, u32Wait = 0;
        
    u32Wait = RTC->SYNC & RTC_SYNC_SYNC_Msk;

    while(u32Wait!=RTC_SYNC_SYNC_Msk)
    {
                u32Wait = RTC->SYNC & RTC_SYNC_SYNC_Msk;
                u32i++;
                if(u32i > 500000)
                        break;
    }   
}


沙发
heimaojingzhang| | 2018-6-25 14:44 | 只看该作者
查查供电有没有问题

使用特权

评论回复
板凳
springvirus|  楼主 | 2018-6-25 15:00 | 只看该作者
heimaojingzhang 发表于 2018-6-25 14:44
查查供电有没有问题

用的nulinkme的USB 5V供电,pin23的RTC VDD33未接3.3V

使用特权

评论回复
地板
heimaojingzhang| | 2018-6-25 15:10 | 只看该作者
springvirus 发表于 2018-6-25 15:00
用的nulinkme的USB 5V供电,pin23的RTC VDD33未接3.3V

恭喜楼主找到问题所在

使用特权

评论回复
5
springvirus|  楼主 | 2018-6-25 15:50 | 只看该作者
heimaojingzhang 发表于 2018-6-25 15:10
恭喜楼主找到问题所在

我试了下,RTC VDD33接3.3V后,没有作用

使用特权

评论回复
6
heimaojingzhang| | 2018-6-25 15:54 | 只看该作者
楼主有条件的话  换一个芯片试试

使用特权

评论回复
7
springvirus|  楼主 | 2018-6-25 16:02 | 只看该作者
本帖最后由 springvirus 于 2018-6-25 16:07 编辑

截止目前测试的现象是
若nulinkme下电重新上电后,INIT那里还是不断地循环并超时,按下板子上的RTC-WAKEUP后,初始化可以通过,同时pin23的RTC VDD33需接入3.3V
获取时间后,可以看到在走时了,但时间值不是初始化时设置的值
另外复位后,有现象是,对RWEN写入0xa965后,读到RWENF一直为0,不为1的情况

问题还有很多,待进一步探究

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

127

主题

4356

帖子

13

粉丝