打印

PCF2123实时时钟

[复制链接]
1387|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
guyan1987|  楼主 | 2014-9-25 15:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好!最近在捣鼓PCF2123实时时钟芯片,用的是MSP430FR5723的硬件SP1口与之通信,现在问题是读不出时间,不知道在哪出来问题。
SP1主要通信如下:unsigned char SPITransfer(unsigned char aout)
{
    unsigned char data1;
    while (!(UCB0IFG&UCTXIFG));
    UCB0TXBUF=aout;
    while (!(UCB0IFG&UCRXIFG));
    data1= UCB0RXBUF;
    return(data1);
}
unsigned char RTCReadReg(unsigned char aReg)
{
    unsigned char result;
    P2OUT |=  BIT4;                           //ce=1;
    SPITransfer(aReg|0x90);                  //读数据指令
    result=SPITransfer(0xff);               //度一字节返回数据
    P2OUT &=  ~BIT4;                       //ce=0;
    return(result);
}
void RTCWriteReg(unsigned char aReg,unsigned char aValue)
{
    P2OUT |=  BIT4;              //ce=1;
    SPITransfer(aReg|0x10);     //写指令
    SPITransfer(aValue);   
    P2OUT &=  ~BIT4;            //ce=0;
}

时钟配置:
void RTCConfigure()
{           
    RTCWriteReg(0x00,0x00);
    RTCWriteReg(0x01,0x00);

    RTCWriteReg(0x02,0x04);
    RTCWriteReg(0x04,0x02);
    RTCWriteReg(0x03,0x03);


    RTCWriteReg(0x07,0x01);
    RTCWriteReg(0x05,0x01);
    RTCWriteReg(0x08,0x00);
   // RTCWriteReg(0x00,0x00);
}


int main(void)
{

  WDTCTL = WDTPW + WDTHOLD;                          // Stop watchdog timer to prevent time out reset
  sys_clock();
  GPIO_Init();
  SPI_Init();
  RTCConfigure();

//__enable_interrupt() ;
  while(1)
  {
    sec=RTCReadReg(0x02);
    min=RTCReadReg(0x03);
    hou=RTCReadReg(0x04);
    day=RTCReadReg(0x05);
    mon=RTCReadReg(0x07);
    year=RTCReadReg(0x08);

   }




相关帖子

沙发
guyan1987|  楼主 | 2014-9-25 15:40 | 只看该作者
若有大神用过该芯片做过项目,最好能提供的DEMO看下,非常感谢!

使用特权

评论回复
板凳
mmuuss586| | 2014-9-25 19:14 | 只看该作者
帮你转到430版块吧;

使用特权

评论回复
地板
dirtwillfly| | 2014-9-25 22:38 | 只看该作者
没用过PCF2123。
是SPI通信有问题吗?还是只是读不出时间?

使用特权

评论回复
5
songchenping| | 2014-9-26 16:00 | 只看该作者
我们用过PCF2129T,内部集成晶振,带温补功能。IIC接口。用起来挺方便的。不知道楼主是否初始化芯片了。

使用特权

评论回复
6
guyan1987|  楼主 | 2014-9-26 22:07 | 只看该作者
songchenping 发表于 2014-9-26 16:00
我们用过PCF2129T,内部集成晶振,带温补功能。IIC接口。用起来挺方便的。不知道楼主是否初始化芯片了。 ...

就是怀疑,初始化,哪些地方不到位,才导致读不出数据 的

使用特权

评论回复
7
specialfrin| | 2014-9-26 22:21 | 只看该作者
检查一下器件

使用特权

评论回复
8
acer4736| | 2014-9-26 22:31 | 只看该作者
是不是板子的问题呢

使用特权

评论回复
9
songchenping| | 2014-9-26 22:42 | 只看该作者
guyan1987 发表于 2014-9-26 22:07
就是怀疑,初始化,哪些地方不到位,才导致读不出数据 的

我觉得你可以先把SPI的SCLK的频率降低一点。用示波器测一下信号。然后按照时序图和datasheet把芯片初始化。硬件连接应该不存在错误吧。

使用特权

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

本版积分规则

29

主题

133

帖子

2

粉丝