Tank

NIOS II 学习--第五课 RTC

0
阅读(3066)

一、DS1302介绍

         DALLAS公司的高性能低功耗、带RAM的实时时钟芯片,具有闰年补偿功能,工作电压在2.5V---5.5V,内部具有一个31字节的用于临时存放数据的静态RAM寄存器。在电路中一般采用的是外接晶振的方式,32.768KHZ。

         该芯片共有8个管脚,其中VCC2为主电源,VCC1为备用电源。当VCC2大于VCC1 0.2V时由VCC2给芯片供电,而当VCC2小于VCC1时,由VCC1给芯片供电。因而可在VCC1端接上备用电池,这样在系统断电后,芯片仍然能工作。

         DS1302的输出数据采用的是8421编码,因此在读取到芯片的数据后,要进行处理后,才能送往显示单元进行显示。

二、硬件开发

在SOPC中添加三个PIO模块即可,但是数据端口要设置为双向口,sclk和rst设置为输出即可。

三、软件开发

在NIOS II IDE中建立一个RTC的工程,DS1302的驱动参考了C51的驱动。格式基本一样。需要注意的是:

  1. 读数据时:先发8位指令码,然后在sclk的周期内读取数据,指令码和数据都是低位在前,高位在后。
  2. 写数据时:在sclk的上升沿连续送出16位数据,其中8位地址,8位数据。
  3. DS1302的应用流程如下:

四、调试

       编写测试函数,把读取的时间显示出来或者发送到串口,通过串口调试助手来观察结果是否正常。

五、参考资料

       1、黑金动力社区              《NIOS II 那些事儿》

       2、wang1jin带您从零学单片机—DS1302.Pdf  www.wang1jin.com/n-919.html