全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

将DS1868 3线器件连接至SPI总线

时间:2023-03-29 11:06

人气:

作者:admin

标签: 总线  电位器  半导体 

导读:DS1868采用双通道数字电位器,具有3线(移位寄存器)接口。本应用笔记描述了将DS1868以及达拉斯半导体的3线器件连接至摩托罗拉SPI总线所需的逻辑和固件。...

DS1868采用双通道数字电位器,具有3线(移位寄存器接口。本应用笔记描述了将DS1868以及达拉斯半导体的3线器件连接至摩托罗拉SPI总线所需的逻辑和固件。

DS1868简介

DS1868为双通道数字电位器,具有3线接口。本应用笔记将介绍如何将达拉斯半导体3线器件与具有SPITM接口的微控制器连接。

比较SPI和3线接口

SPI和3线是不同的串行接口,但它们是兼容的。以下部分介绍这些差异。

串行外设接口 (SPI)

SPI 有 4 个信号SDO、SDI、SCK 和/SS。SDO信号是数据输出,SDI是数据输入,SCK是时钟,/SS是从选择。

3线串行接口

3线串行接口有4个信号:DQ、Cout、/RST和CLK。数据输入在DQ信号上,数据输出在Cout信号上,/RST信号使能3线接口,CLK是时钟。

串行接口 信号名称 信号描述 总线速度(典型值) 数据格式
3线 DQ 数据输入 500kHz 至 5 MHz LSB 在前,MSB 在后
库特 数据输出
/RST有效 /有效复位
时钟 时钟
SPI 空间数据指数 数据输入 10兆赫 MSB 在前,LSB 在后
性别歧视条例 数据输出
/SS有效 /从选择有效
SCK 时钟
注意:在本应用笔记中,不使用/SS(仅在从模式下使用)。

写入/读取字节数

将数据写入DS1868

微控制器包含一个SPI接口,以8位的倍数发送和接收数据。因此,需要将 7 个额外的位与 17 位数据一起发送,总共 3 个字节。微控制器首先发送MSB。当微控制器将数据写入DS1868时,第一个字节的前7位被推出移位寄存器,b0包含第一个字节的LSB(见图1)。

poYBAGQjqzSAUartAAAPE0VzJCw808.gif

图1.在写入过程中移位寄存器,增加 7 位。

从DS1868读取数据

当微控制器从DS1868读取数据时,首先传输堆栈选择位(b0),然后传输电位1(b1)的MSB,依此类推(见图2)。读取时,额外的 7 位位于第三个字节中。

pYYBAGQjqzWADwbtAAARFmbJjXo850.gif

图2.17位移位寄存器。

下面是如何写入和读取字节的示例。在本例中,堆栈选择位选择锅 1。电位器1编程为0Fh,电位器0编程为55h。所选电位器刮水器的值将在 S 上外针。写入DS1868的三个字节分别为01h、0Fh和55h。01h 的前导零是另外 7 位。微控制器首先发送MSB,因此首先发送前导的7个零。这些前导零从末端掉落,“1”以 b0 结束。底池 1 的前 4 位填充为 0,后 4 位填充 1。电位 0 中的 MSB 将为“0”,其余位在 1 和 0 之间交替。

字节 0: 00000001b (01h) 其他位带有下划线。
字节 1: 00001111b (0Fh) 字节 2: 01010101b (55h)

读取数据时,b0 是第一个输出位。输出的 3 个字节现在将如下所示:

字节 0: 10000111 (87h) 字节 1: 10101010 (AAh) 字节 2: 10000000 (80h)

其他位带有下划线。
另外 7 位现在位于字节 2 的末尾。

表 2 中提供了更多将写入数据转换为读取数据的示例。

软件将写入的字节与从DS1868读取的字节进行比较(参见附录)。

写入 3 个字节(十六进制) 写入 3 字节(二进制) 锅设置
不锈钢锅1 锅0
3 字节读取(十六进制) 3 字节读取(二进制)
01h FFh 80h 00000001
11111111
10000000
1 FFh 80h FFh C0h 00h 11111111
11000000
00000000
01h 80h 80h 00000001
10000000
10000000
1 FFh 80h C0h 40h 00h 11000000
01000000
00000000
00h 80h 0Fh 00000000
10000000
00001111
0 80h 0Fh 40h 07h 80h 01000000
00000111
10000000

硬件配置

该板的原理图如图3所示。

poYBAGQjqzaAewKlAAB3NiEdpk8320.gif

图3.电路板原理图。

软件配置

软件配置适用于 PIC16F872。

端口设置

TRISx 寄存器将引脚设置为输入 (1) 或输出 (0)。PORTA 寄存器将驱动/RST和LED至5V或0V。

TRISA = --1xxx00—RA5/SS设置为输入。这用于启用串行端口。RA0 和 RA1 已设置 至/RST和LED
的输出 TRISB = 未使用
TRISC = xx010xxx — 清除 SCK 和 SDO,设置 SDI

/RST引脚需要在发送/接收数据之前设置,然后在交易完成后需要清除。

SPI 设置

SSPSTAT = 01000000 (40h) - 位 SMP = 0,位 CKE = 1

当 SMP = 0 时,在数据输出时间结束时对输入数据进行采样。

当 CKE = 1 时,当 CKP = 0 时,从活动时钟状态转换到空闲时钟状态时会发生传输。

SSPSTAT寄存器设置时钟和数据,使其具有正确的时序,以便与DS1868接口。

SSPCON = 00100001 (21h) - 位 SSPEN = 1,位 SSPM3-0 = 0001

SSPEN = 1 启用串行端口。

SSPM3-0选择了时钟频率。SSPM3-0 = 0001 = Fosc/16 = 20MHz/16 = 1.25MHz

DS1868的最大时钟速率为10MHz。

法典

附录包含用于写入、读取和比较电位计数据的汇编代码。

除了SPI端口之外,还需要初始化使用的每个端口。电位计也需要初始化为零。然后可以将数据写入电位计。

SPI 时序

使用上述寄存器设置,微控制器产生以下定时信号。

pYYBAGQjqzeARYqXAAARh8oqHXA484.gif

图4.SPI 时序图。

SDO上的数据传输在时钟的下降沿完成。数据在时钟周期内由SDI接收。 以下是接收和发送的电位计数据的图表。图5所示为01h、FFh和80h被发送到SDO线路上的DS1868。SDI包含DS1868发送回微控制器的数据。SDI上的数据是FFh,C0h和00h。有关转换数据的详细信息,请参阅表 2。

pYYBAGQjqziAB8TTAAB9Q1sJIoU774.gif

图5.传输/接收的数据。

SDO上的数据传输在时钟的下降沿完成。数据在时钟周期内由SDI接收。 以下是接收和发送的电位计数据的图表。图5所示为01h、FFh和80h被发送到SDO线路上的DS1868。SDI包含DS1868发送回微控制器的数据。SDI上的数据是FFh,C0h和00h。有关转换数据的详细信息,请参阅表 2。

图6所示为01h、80h和80h被发送到DS1868。然后将数据与 C0h、40h 和 00h 进行比较。 有关转换数据的详细信息,请参阅表 2。

poYBAGQjtM2AN2sNAAIHUC4Y80A399.png

图6.传输/接收的数据(详细信息)。

审核编辑:郭婷

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信