现在的位置: 首页 > 综合 > 正文

DS1339

2014年02月10日 ⁄ 综合 ⁄ 共 3488字 ⁄ 字号 评论关闭
文章目录

DS1339

    接口:I2C总线

    数据:seconds,minutes,hours,day,date,month,year

    格式:12 or 24-hour format(AM/PM),时间和日期采用BCD格式

 

    寄存器

地址

B7

B6

B5

B4

B3

B2

B1

B0

功能

范围

00H

0

10秒

0059

 

01H

0

10分

00-59

 

02H

0

12/

/PM

10小时

小时

小时

1-12+AM/PM

00-23

 

10小时

 

03H

0

0

0

0

0

星期

星期

1-7

 

04H

0

0

10天

0-31

 

05H

世纪

0

0

10月

月/世纪

01-12+CENTURY

 

06H

10年

00-99

 

07H

A1M1

10秒

报警1秒

00-59

 

08H

A1M2

10分

报警1分

00-59

 

09H

A1M3

12/

/PM

10小时

小时

报警1小时

1-12+AM/PM00-23

 

10小时

 

0AH

A1M4

DY/DT

10天

星期,天

报警1星期,报警1天

1-7,1-31

 

0BH

A2M2

10分

报警2分

00-59

 

0CH

A2M3

12/

/PM

10小时

小时

报警2小时

1-12+AM/PM00-23

 

10小时

 

0DH

A2M4

DY/

10天

星期,天

报警2星期,报警2天

1-7,1-31

 

0EH

0

BBSQI

RS2

RS1

INTCN

A2IE

A1IE

控制

 

 

0FH

OSF

0

0

0

0

0

A2F

A1F

状态

 

 

10H

TCS3

TCS2

TCS1

TCS0

DS1

DS0

ROUT1

ROUT0

涓流充电器

 

 

 

说明:

☆ 时间寄存器的B6选择12或24小时模式,1=12小时模式,0=24小时模式;

☆ 12小时模式时,AM/PM位=1是PM,0=AM

☆ 24小时模式时,小时寄存器的B5是10小时位(20到23时);

☆ 当12/24模式改变时,所有的小时值(包括报警)都必须重新输入;

☆ 当从99年到00年时,就触发月寄存器的B7(世纪);

☆ 星期寄存器在午夜递增,和星期对应的值是可以自定义的,但必须是顺序的(如1对应星期天,则2就对应星期一,等等);

☆ 控制寄存器的INTCN位使能报警;

☆ 控制寄存器0EH

    EOSC:晶振使能0=启动晶振,1=停止晶振,缺省=0;

    BBSQI:1=当没有VCC使用VBACKUP时输出方波或中断,0=当VCC低于VPF时SQW/INT脚变成高阻态。缺省是0;

    RS2:RS1:控制方波输出频率,如下表所示,缺省是11

 

SQW/INT输出

INTCN

RS2

RS1

SQW/ 输出

A2IE

A1IE

0

0

0

1Hz

X

X

0

0

1

4.096kHz

X

X

0

1

0

8.192kHz

X

X

0

1

1

32.768kHz

X

X

1

X

X

0

1

1

X

X

1

0

1

X

X

+

1

1

 

    INTCN:1=时间寄存器和报警1或报警2之间匹配时激活SQW/INT脚(假设报警使能),0=SQW/INT输出方波。缺省是0;

    A2IE:1=允许报警2标志(A2F)激活SQW/INT,0=A2F不能激活中断,缺省是0;

    A1IE:1=允许报警1标志(A1F)激活SQW/INT,0=A1F不能激活中断,缺省是0;

☆ 状态寄存器

    OSF:晶振停止标志,1=晶振停止了或者是停止过,开机后应软件清零;

    A2F:1=表示时间和报警2寄存器匹配,可以软件清零;

    A1F:1=表示时间和报警1寄存器匹配,可以软件清零;

☆ 涓流充电器寄存器

   

B7

B6

B5

B4

B3

B2

B1

B0

功能

X

X

X

X

0

0

X

X

禁止

X

X

X

X

1

1

X

X

禁止

X

X

X

X

X

X

0

0

禁止

1

0

1

0

0

1

0

1

没有二极管,250Ω电阻

1

0

1

0

1

0

0

1

一个二极管,250Ω电阻

1

0

1

0

0

1

1

0

没有二极管,2kΩ电阻

1

0

1

0

1

0

1

0

一个二极管,2kΩ电阻

1

0

1

0

0

1

1

1

没有二极管,4kΩ电阻

1

0

1

0

1

0

1

1

一个二极管,4kΩ电阻

0

0

0

0

0

0

0

0

上电初始化值

 

二极管和电阻根据电池的最大充电电流决定,如假设VCC=3.3V,假设选择了二极管和R2(2KΩ),则:

IMAX=(3.3V-二极管压降)/R2≈(3.3V-0.7V)/2KΩ≈1.3mA

 

I2C总线:

    SDA和SCL是开漏open-drain输出;

    在传输数据时,当时钟为高时,数据线必须保持稳定,如果发生改变,就认为是控制信号;

    总线状态:

        ☆ 总线不忙:数据和时钟线都是高电平;

        ☆ 开始数据传输:时钟为高电平,数据线有一个下降沿(从高到低);

        ☆ 停止数据传输:时钟为高电平,数据线有一个上升沿(从低到高);

        ☆ 数据有效:在开始条件后,在时钟为高电平期间,数据线一直是稳定的,就表示数据有效,数据线必须在时钟为低电平时改变,每个数据位一个时钟脉冲,每个数据从开始条件开始,由停止条件终止;开始和停止之间所传输的数据字节数不限。传输按字节响应,接收者在第九位返回一个应答。

        ☆ 应答:每个接收设备在接收到每个字节后必须产生一个应答。主设备必须为应答送出一个时钟脉冲;

            在应答时,应答设备在应答时钟脉冲期间拉低SDA线,这样在应答时钟脉冲中,SDA线一直是稳定的低电平;

            主设备通知从设备数据传输结束:最后一个字节后主设备不应答;

        ☆ 数据传输时先送高位;

 

DS1339作为从设备(写模式):

主设备先送地址,地址由1101000(7位)+R/ (方向位,0=写)组成,在确认地址后,DS1339会给出一个应答;然后主设备可以送寄存器地址给DS1339,同样DS1339会给一个应答;然后主设备还可以送出0到几个字节数据,DS1339会对每个字节应答,地址指针每接收到一个字节就递增一次。

DS1339作为从设备(读模式):

    第一个字节和上面一样,但方向位=1;在应答第一个字节后,DS1339就开始送出寄存器指针所指向的寄存器数据,如果在读之前没有写寄存器指针,这寄存器指针就使用用来的值;每送出一个字节,寄存器指针就递增,DS1339用“不应答”结束一次读。

    上面两个过程如下图所示:

 

    数据写

 

从地址

R/W

 

寄存器地址

 

数据

 

 

数据

 

 

S

1101000

0

A

XXXXXXXX

A

XXXXXXXX

A

XXXXXXXX

A

P

S开始,A应答,P停止;

主到从,■从到主;

   

    数据读

 

从地址

R/W

 

数据

 

数据

 

 

数据

 

 

S

1101000

1

A

XXXXXXXX

A

XXXXXXXX

A

XXXXXXXX

 

P

S开始,A应答,P停止;

主到从,■从到主;

 

    数据读(写指针,然后读)

 

 

从地址

R/W

 

寄存器地址

 

 

从地址

 

R/W

 

 

S

1101000

0

A

XXXXXXXX

A

S

1101000

1

A

 

 

 

 

 

 

 

 

 

 

 

 

 

数据

 

数据

 

 

数据

 

 

 

 

 

XXXXXX

A

XXXXXX

A

XXXXXX

 

P

 

 

 

S开始,A应答,P停止;

主到从,■从到主;

 

 

PIC18F2525 I2C

寄存器

SSPSTAT(状态寄存器),SSPCON1和SSPCON2(控制寄存器);

 

SPI模式

寄存器

    SSPCON1/SSPSTAT/SSPBUF/SSPSR(不能直接访问)

    接收时,SSPSR和SSPBUF构成双缓冲,数据先到SSPSR,然后送到SSPBUF

    发送时,数据同时写到SSPBUF和SSPSR

 

    SSPSTAT(SPI模式)

B7

 

 

 

 

 

 

B0

SMP

CKE

D/

P

S

R/

UA

BF

SMP:采样

    SPI主模式:

        1=在数据输出结尾采样输入数据;

        0=在数据输出中间采样输入数据;

    SPI从模式:

        必须=0;

CKE:SPI时钟选择位

    1=当时钟状态从激活变到空闲时传输;

    0=当时钟状态从空闲变到激活时传输;

    时钟状态的极性由CKP位设置。

D/A:地址/数据位

    只用在I2C模式中。

P:停止位

    只用在I2C模式中。

S:开始位

    只用在I2C模式中。

R/W:读/写信息位

    只用在I2C模式中。

UA:更新地址位

    只用在I2C模式中。

BF:缓冲区满状态位(接收模式)

    1=接收完成,SSPBUF满;

    0=接收没有完成,SSPBUF空;

 

SSPCON1:

B7

 

 

 

 

 

 

B0

WCOL

SSPOV

SSPEN

CKP

SSPM3

SSPM2

SSPM1

SSPM0

WCOL:写冲突检测位(发送模式)

    1=写SSPBUF时仍在发送前一个数据(必须软件清除);

    0=没有冲突;

SSPOV:接收溢出

抱歉!评论已关闭.