bigeblis 发表于 2013-4-28 00:13:24

DS3231读数据怎么设置地址?

根据手册,DS3231在读数据时,先写入器件地址并设置为读模式,器件会在ACK时钟过后开始输出数据,数据的来源地址为上次操作的地址
那么,有两个地方没高明白:
1、数据的来源地址可以自由改变么?比如我的设计要求每次开机后MCU都要配置DS3231的时钟输出端,此时地址寄存器的值就是0x0E了。然后我需要从DS3231里读取年月日时分秒这些数据,此时要求地址寄存器的值是0x00,怎么改变呢?先用写模式写入新地址,但是不写入数据,直接给STOP信号,然后重新给START信号,转换模式为读模式,这样可以么?
2、读模式下,DS3231输出数据的字节数,是否依然由MCU决定?MCU在若干字节后强行给STOP信号能不能终止传输?
请赐教!!

liangws201 发表于 2013-4-28 00:18:20

给你参考一下程序吧。

bigeblis 发表于 2013-4-28 00:19:25

另外,手册还提到在读取到最后一个字节时,要返回一个“NACK"信号,但是却没有说明这个NACK信号具体是怎么样的。。。。。。
这个也请解答一下

bigeblis 发表于 2013-4-28 00:33:07

liangws201 发表于 2013-4-28 00:18 static/image/common/back.gif
给你参考一下程序吧。

多谢指教,应该基本上可以了。。。

little_Monkey 发表于 2013-4-28 01:41:32

ACK是一个CLK来的时候输出一个负脉冲,NACK是主器件要发一个时钟但是从器件不响应,如果读取固定地址数据在手册里面有详细的说明

bigeblis 发表于 2013-4-28 16:20:15

已经搞定了,感谢热心网友
1、读取指定地址数据,我的设想是可以的,先写地址不写数据直接停止后,再重新开始读取程序即可
2、读模式下给NACK信号就可以停止传输
3、NACK信号就是给ACK时钟但是SDA始终为1,即从器件不响应

kerrwang1982 发表于 2013-12-7 18:49:51

liangws201 发表于 2013-4-28 00:18
给你参考一下程序吧。

太好,太及时了,用AT89S52一调就通,用ATMEGA16怎么调也不行,郁闷。

kerrwang1982 发表于 2013-12-7 18:56:22

bigeblis 发表于 2013-4-28 16:20
已经搞定了,感谢热心网友
1、读取指定地址数据,我的设想是可以的,先写地址不写数据直接停止后,再重新开 ...

IIC传输,头疼,不过在研究中。

labtech 发表于 2013-12-7 20:52:25

恭喜啊      

shenming420 发表于 2014-9-29 13:45:39

liangws201 发表于 2013-4-28 00:18
给你参考一下程序吧。

下载楼主的程序参考下,我用STC单片机控制。。。

nengcai0313 发表于 2016-4-3 19:52:29

kerrwang1982 发表于 2013-12-7 18:56
IIC传输,头疼,不过在研究中。

兄弟,你的mega16调通了吗?

kerrwang1982 发表于 2016-4-6 22:29:13

nengcai0313 发表于 2016-4-3 19:52
兄弟,你的mega16调通了吗?

现在iic来通信,最近通调通了.有时间把程序附上.

找了个mcp421的程序,然后更改代码,使用iic的标准代码,然后慢慢就搞通了.

看发代码,再看返回代码.

nengcai0313 发表于 2016-4-6 22:41:10

kerrwang1982 发表于 2016-4-6 22:29
现在iic来通信,最近通调通了.有时间把程序附上.

找了个mcp421的程序,然后更改代码,使用iic的标准代码,然 ...

我业余玩玩,这个IIC模拟通信搞的一头包。

nengcai0313 发表于 2016-4-12 22:03:19

kerrwang1982 发表于 2016-4-6 22:29
现在iic来通信,最近通调通了.有时间把程序附上.

找了个mcp421的程序,然后更改代码,使用iic的标准代码,然 ...

兄弟,什么时间方便能让我学习下这个代码吗?

kerrwang1982 发表于 2016-4-14 09:28:16

nengcai0313 发表于 2016-4-12 22:03
兄弟,什么时间方便能让我学习下这个代码吗?

自己研究下,一个用数码管,一个用12864。。

nengcai0313 发表于 2016-4-14 20:20:21

kerrwang1982 发表于 2016-4-14 09:28
自己研究下,一个用数码管,一个用12864。。

感谢,一定仔细阅读。
页: [1]
查看完整版本: DS3231读数据怎么设置地址?