原创 自带晶振温补极端精确的实时钟芯片DS3234

2013-1-16 10:12 3740 21 27 分类: 消费电子

前段时间做了一个小东西,设计要求系统精确计时且体积要小,最后选择了以前没有接触过的一款时钟芯片——DS3234SN。系统所用的MCU为ATmega8,与3234之间通过SPI总线通信。此款芯片应用极为方便。先将部分使用心得整理出来。

 

首先焊接电路时,一定要仔细,以防虚焊,本人当初就以为3234的DIN脚虚焊折腾了将近半个月。

 

————————SPI初始化

 

void Init_SPI(){
DDRB |= _BV(PB5) | _BV(PB3) | _BV(PB2);//单片机的PB5连芯片的SCK,PB3(MOSI)                连芯片的DIN,PB2(MISO)连芯片的CS
SPCR = _BV(SPE) | _BV(MSTR) | _BV(SPR0) | _BV(CPOL) | _BV(CPHA);
//SPI使能,主机模式,16分频,模式3(也可设置为模式1),MSB首发
}
————————发送
INT8U SPI_Send(INT8U dat){//主机向芯片发送一个字节,同时主机接收到芯片交换回来的一个字节
SPDR=dat;//启动数据传输
while(!(SPSR & _BV(SPIF)));//等待结束
SPSR |= _BV(SPIF);//清中断标志
return SPDR;//返回接收缓冲器中的数据
}
——————向3234写入一个字节
void DS3234_write_byte(INT8U addr,INT8U date){
SPDR=addr;
while(!(SPSR & _BV(SPIF)));
SPSR |= _BV(SPIF);
SPI_Send(date);
}
—————从3234读出一个字节
INT8U DS3234_read_byte(INT8U addr){
INT8U date;
SPDR=addr;
date=SPI_Send(0XFF);
return date;
}
—————设置时间
void Set_DS3234(){//需要一次依次写入所有时间位
......
SPI_EN();
SPI_Send(0X80);
SPI_Send(Time[1]);//s
SPI_Send(Time[2]);//m
SPI_Send(Time[3]);//h
SPI_Send(0X02);//dow 星期位未用到 一直设置为2
SPI_Send(Time[4]);//d
SPI_Send(Time[5]);//m
SPI_Send(Time[6]);//y
SPI_DS();
}
————读时间
void ReadTime(){//这两个函数功能相同,只是为了方便后面的操作
......
SPI_EN();
Time[1]=DS3234_read_byte(0X00);
SPI_DS();
SPI_EN();
Time[2]=DS3234_read_byte(0X01);
SPI_DS();
SPI_EN();
Time[3]=DS3234_read_byte(0X02);
SPI_DS();
SPI_EN();
Time[4]=DS3234_read_byte(0X04);
SPI_DS();
SPI_EN();
Time[5]=DS3234_read_byte(0X05);
SPI_DS();
SPI_EN();
Time[6]=DS3234_read_byte(0X06);
SPI_DS();
}
 

文章评论6条评论)

登录后参与讨论

用户1826196 2016-1-23 21:14

本人初学看得不是很懂,推荐一下,互相交流,希望能弄明白

用户1406868 2014-1-13 15:50

讲的很好,谢谢!

用户1624075 2013-4-19 18:20

推荐,值得初学者看

用户1525219 2013-4-18 08:59

学习了,秀好

用户1116435 2013-4-10 14:48

把抽象的东西描述的很生动,很贴切。有收获。

用户1447659 2013-4-8 13:11

硬件设计都会遇到

用户1670484 2013-4-8 13:00

mark。谢谢分享。

用户1664440 2013-4-6 21:28

很好,很强大!

用户975682 2013-4-4 11:13

PCB干扰的理论性较强,适合深入研究

用户1406868 2013-4-1 11:27

不 错,
相关推荐阅读
yu_saisai_725130858 2018-04-03 21:54
意识修炼
通过意识层面反复提醒自己,形成潜意识的自觉。1.行动前思考的意识。我要干什么;我要什么样的效果;有哪些方法;怎么优化流程;外部帮助等。 2.抬头看路的意识。不能只顾埋头走路忘了抬头看路。3....
yu_saisai_725130858 2018-04-03 21:48
训练大脑应对压力的咒语
研究表明,在头脑中想着能够代表自我价值的一句话,然后不断重复,会导致生理上的变化,它能够降低皮质醇水平(即减轻压力),强化特定神经通路,增加人的忍耐力。看来我也需要这样的咒语,来创造并强化积极健康的新...
yu_saisai_725130858 2014-05-31 14:58
最后一站
        来W市出差也将近一个月了,主要负责一套新系统的安装调试。         现在工作完成了。可是说实在的,虽然系统调通时,后台软件收到每个站点的信息时,心里松了一口气,但紧接着的...
yu_saisai_725130858 2013-12-20 10:26
写在2013
        这一年,毕业了,站在学校北院门前,对自己说要和大学生活说再见了,那些过往的轻飘飘的欢喜忧伤从此不再了,许多想做而未做事情也许都不会有机会了……迟来的沉重才第一次落在心头。手机里《让...
yu_saisai_725130858 2013-07-19 16:35
单片机内存不足引起的……
忙了好几天终于看到了结果:替换一款产品的单片机,程序移植完,调试发现一个奇怪的现象,系统采集的数据老是出错,屏蔽主程序中的部分代码后,数据采集正确。最后意识到是单片机的内存不足导致的出错,原单片机...
yu_saisai_725130858 2013-03-25 15:23
随笔一篇
好久没写点什么了,虽然最近也一直忙着,但每次要总结一下技术方面的收获,又觉得无从说起,毕竟都是些很有针对性的知识,那就随便说说最近的生活吧。 其实,从我第一次接触到FPGA,就喜欢上这种技术的与...
我要评论
6
21
关闭 站长推荐上一条 /2 下一条