当前位置:首页 >> 信息与通信 >>

第七章串行扩展之二SPI


串行总线---SPI

SPI总线概述
SPI(SerialPeripheralInterface――串行外设接 口)总线是Motorola公司推出的一种同步串行接口 技术。是一种同步串行外设接口,允许MCU与各 种外围设备以串行方式进行通信、数据交换。 美国国家半导体公司NSC也开发了一种MicroWire 串行接口,它与SPI兼容。前许多单片机

厂商推出 了许多带有SPI总线接口的单片机和种类繁多且功 能丰富的基于SPI接口的外围芯片。其外围设备包 括FLASHRAM、A/D转换器、网络控制器、MCU 等。

SPI总线的结构原理
SPI总线系统是一种同步串行外设接口,允许MCU与 SPI总线系统是一种同步串行外设接口,允许MCU与 总线系统是一种同步串行外设接口 MCU 各种外围设备以同步串行方式进行通信来交换信息。 各种外围设备以同步串行方式进行通信来交换信息。 SPI总线接口一般使用 根线:串行时钟线SCK 总线接口一般使用4 SCK、 SPI总线接口一般使用4根线:串行时钟线SCK、主 机输入/从机输出数据线MISO 主机输出/ MISO、 机输入/从机输出数据线MISO、主机输出/从机输入 数据线MOSI 低电平有效的从机选择线SS MOSI和 SS。 数据线MOSI和低电平有效的从机选择线SS。 由于SPI系统总线只需3 SPI系统总线只需 由于SPI系统总线只需3根公共的时钟数据线和若干 位独立的从机选择线, SPI从设备较少而没有总 位独立的从机选择线,在SPI从设备较少而没有总 线扩展能力的单片机系统中使用特别方便。 线扩展能力的单片机系统中使用特别方便。 SPI总线包括 根串行同步时钟信号线以及2 总线包括1 SPI总线包括1根串行同步时钟信号线以及2根数据 SPI总线接口电路结构如下图所示 总线接口电路结构如下图所示。 线。SPI总线接口电路结构如下图所示。

SPI总线接口电路结构

SPI模块为了和外设进行数据交换, SPI模块为了和外设进行数据交换,根据外设工作 模块为了和外设进行数据交换 要求, 要求,其输出的串行同步时钟极性和相位可以进行 配置。 配置。 时钟极性(CPOL)对传输协议没有重大的影响。 (CPOL)对传输协议没有重大的影响 时钟极性(CPOL)对传输协议没有重大的影响。 如果CPOL=0 串行同步时钟的空闲状态为低电平; CPOL=0, 如果CPOL=0,串行同步时钟的空闲状态为低电平; 如果CPOL=1 串行同步时钟的空闲状态为高电平。 CPOL=1, 如果CPOL=1,串行同步时钟的空闲状态为高电平。 时钟相位(CPHA) (CPHA)能够用于选择两种不同的传输协议 时钟相位(CPHA)能够用于选择两种不同的传输协议 进行数据传输。 进行数据传输。 如果CPHA=0 在串行同步时钟的第一个跳变沿( CPHA=0, 如果CPHA=0,在串行同步时钟的第一个跳变沿(上 升或下降)数据被采样; 升或下降)数据被采样; 如果CPHA=1 在串行同步时钟的第二个跳变沿( CPHA=1, 如果CPHA=1,在串行同步时钟的第二个跳变沿(上 升或下降)数据被采样。 升或下降)数据被采样。 SPI主模块和与之通信的外设间时钟相位和极性应 SPI主模块和与之通信的外设间时钟相位和极性应 该一致。 该一致。

特点:由于SPI系统总线一共只需3~4位数据线和 特点:由于SPI系统总线一共只需3 SPI系统总线一共只需 控制线即可实现与具有SPI总线接口功能的各种I/O SPI总线接口功能的各种 控制线即可实现与具有SPI总线接口功能的各种I/O 器件进行连接,而扩展并行总线则需要8根数据线、 器件进行连接,而扩展并行总线则需要8根数据线、 16位地址线 位地址线、 位控制线,因此,采用SPI SPI总 8~16位地址线、2~3位控制线,因此,采用SPI总 线接口可以简化电路设计, 线接口可以简化电路设计,节省很多常规电路中的 接口器件和I/O口线,提高设计的可靠性。 接口器件和I/O口线,提高设计的可靠性。 I/O口线 应用: MCS–51系列等不具有SPI 51系列等不具有SPI接口的单片机组 应用:在MCS 51系列等不具有SPI接口的单片机组 成的智能仪器和工业测控系统中, 成的智能仪器和工业测控系统中,当传输速度要求 不是太高时,使用SPI SPI总线可以增加应用系统接口 不是太高时,使用SPI总线可以增加应用系统接口 器件的种类,提高应用系统的性能。 器件的种类,提高应用系统的性能。

SPI总线的接口特性
利用SPI总线可在软件的控制下构成各种系统。通 常可使用1个MCU作为主控机来控制数据,并向1 个或几个从外围器件传送该数据。从器件只有在主 机发命令时才能接收或发送数据。其数据的传输格 式是高位(MSB)在前,低位(LSB)在后。 当一个主控机通过SPI与几种不同的串行I/O器件 SPI I/O 相连时,必须使用每个器件片的允许控制端,这可 通过MCU的I/O端口输出线来实现。否则MCU的 MISO端只能连接1个输入芯片。如果输出芯片的 串行数据输入有允许控制端时,只有在此芯片允许 时,SCK脉冲才把串行数据移入该芯片;在禁止时, SCK对芯片无影响。

SPI总线的数据传输
SPI是一个环形总线结构,其时序主要是在SCK的控制下,两个双向移位 寄存器进行数据交换。SPI数据传输原理很简单,它需要至少4根线, 事实上3根也可以。也是所有基于SPI的设备共有的,它们是SDI (数据输入)、SDO(数据输出)、SCK(时钟)、CS(片选)。 其中CS是控制芯片是否被选中的。由SCK提供时钟脉冲,SDI、 SDO则基于此脉冲完成数据传输。数据输出通过SDO线,数据在时 钟上沿或下沿时改变,在紧接着的下沿或上沿被读取。完成一位数据 传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上 沿和下沿为一次),就可以完成8位数据的传输。假设8位寄存器内 装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先 发送。那么第一个上升沿来的时候数据将会是高位数据SDO=1。下 降沿到来的时候,SDI上的电平将被存到寄存器中去,那么这时寄存 器=0101010SDI,这样在8个时钟脉冲以后,两个寄存器的内容互 相交换一次。这样就完成了一个SPI时序。

SPI总线串行外围扩展
SPI总线为同步串行数据传输总线,用于单片 机的外围扩展。其通用外围扩展器件有 SRAM、EEPROM、ADC、DAC、RTC、 I/O口、DTMF等。外围设备模块有LCD驱 动控制器构成的LCD显示器,各种LCD驱动 控制器构成的段式、图形点阵、字符点阵液 晶显示器等。通过SPI总线通用I/O口器件 可构成许多通用接口如键盘、码盘、打印机 接口和LCD接口等。

SPI总线数据虚拟技术
对于不带SPI串行总线接口的MCS51系列单片机来说,可以使用软件 来模拟SPI的操作,包括串行时钟、数据输入和数据输出。 定义三个普通I/O口用来模拟SPI器件的SCK、MISO、MOSI。对于 不同的串行接口外围芯片,它们的时钟时序是不同的。 (1)对于在SCK的上升沿输入(接收)数据和在下降沿输出(发送) 数据的器件,一般应将其串行时钟输出口的初始状态设置为1,而在允 许接口后再置为0。这样,MCU在输出1位SCK时钟的同时,将使接口 芯片串行左移,从而输出1位数据至单片机的模拟MISO线,此后再置 SCK为1,使单片机从模拟的MOSI线输出1位数据(先为高位)至串 行接口芯片。至此,模拟1位数据输入输出便宣告完成。此后再置 SCK为0,模拟下1位数据的输入输出……,依此循环8次,即可完成1 次通过SPI总线传输8位数据的操作。

(2)对于在SCK的下降沿输入数据和上升沿输出 数据的器件,则应取串行时钟输出的初始状态为0, 即在接口芯片允许时,先置SCK为1,以便外围接 口芯片输出1位数据(MCU接收1位数据),之后 再置时钟为0,使外围接口芯片接收1位数据 (MCU发送1位数据),从而完成1位数据的传送。 SPI总线的虚拟应按照SPI总线数据传送时序、操 作格式设计出时序模拟子程序、主发送主接收子程 序,并将这些子程序归纳成虚拟SPI总线的软件包, 在软件包的基础上给出归一化的SPI总线操作命令。

时序图

SPI总线的 种数据/时钟 总线的4种数据 时钟时序图 总线的 种数据 时钟

通用软件包VSPI组成
虚拟SPI总线的通用软件包由以下三个子程序 组成: ①MCU串行输入子程序SPIIN ②MCU串行输出子程序SPIOUT ③MCU串行输入/输出子程序SPIIO。

软件包使用说明
①软件包使用条件如下: P1.0模拟MCU的数据输出端(MOSI),P1.1模拟 SPI的SCK输出端,P1.2模拟SPI的从机选择端, P1.3模拟SPI的数据输入端(MISO)。 MOSI BIT P1.0 ;模拟SPI的数据输出端 SCK BIT P1.1 ;模拟SPI的SCK输出端 SS BIT P1.2 ;模拟SPI的从机选择端 MISO BIT P1.3 ;模拟SPI的数据输入端 ②通用读写子程序使用实例 MOV SPIMTD,#data ;给发送寄存器存数 LCALL SPIOUT ;调用SPI发送子程序

①MCU串行输入子程序SPIIN
从外设的SPISO线上接收8位数据并放入数据 接收寄存器SPIMRD中的应用子程序如下:
SPIIN: SETB SCK CLR SS MOV R1,#08H R1 #08H SPIIN1:CLR SCK NOP NOP MOV C,MISO RLC A SETB SCK DJNZ R1,SPIIN1 MOV SPIMRD,A RET ;使SCK(时钟)输出为1 ;选择从机 ;置循环次数 ; ;使SCK(时钟)输出为0 ;延时 ;从机输出SPISO送进位C ;左移至累加器ACC ;使SCK(时钟)输出为1 ;判断是否循环8次(8位数据) ;8位数据送SPIMRD

②MCU串行输出子程序SPIOUT
将MCS-51单片机中数据发送寄存器SPIMTD 的内容传送到外设的SPISI线上的程序如下:
SPIOUT:SETB SCK CLR SS MOV R1,#08H MOV A,SPIMTD SPIOUT1:CLR SCK NOP NOP RLC A MOV MOSI,C SETB SCK DJNZ R1,SPIOUT1 RET ;使SCK(时钟)输出为1 ;选择从机 ;置循环次数 ;8位数据送累加器ACC ;使SCK(时钟)输出为0 ;延时 ;左移至累加器ACC最高位至C ;进位C送从机输入SPISI线上 ;使SCK(时钟)输出为1 ;判是否循环8次(8位数据)

③MCU串行输入/输出子程序SPIIO
将MCS-51单片机数据发送寄存器SPIMTD的 内容传送到外设的SPI总线的SI中,同时从 外设的SPI总线的SO接收8位数据到接收寄 存器SPIMRD中的程序如下:

SPIIO: SETB CLR SS MOV R1,#08H MOV A,SPIMTD SPIIO1:CLR SCK NOP NOP MOV C,MISO RLC A MOV MOSI,C SETB SCK DJNZ R1,SPIIO1 MOV SPIMRD,A RET

SCK ;使SCK(时钟)输出为1 ;选择从机 ;置循环次数 ;8位数据送累加器ACC ;使SCK(时钟)输出为0 ;延时 ;从机输出SPISO送进位C ;左移至累加器ACC最高位至C ;进位C送从机输入 ;使SCK(时钟)输出为1 ;判断是否循环8次(8位数据)

例1 EEPROM扩展
Atmel公司生产的EEPROM具有SPI接口,存储容量为4Kb Atmel公司生产的EEPROM具有SPI接口,存储容量为4Kb 公司生产的EEPROM具有SPI接口 的AT25040就有SPI接口,MCS–51系列单片机与 AT25040就有SPI接口,MCS 51系列单片机与 就有SPI接口 51 AT25010的SPI总线接口接线如下图所示 总线接口接线如下图所示。 AT25010的SPI总线接口接线如下图所示。
8051 P1.0 P1.1 P1.2 P1.3 AT25010 SI SCK CS SO

图中,P1.0模拟SPI的数据输出端(MOSI),P1.1模 图中,P1.0模拟SPI的数据输出端(MOSI),P1.1模 模拟SPI的数据输出端(MOSI) SPI的SCK输出端 P1.2模拟SPI的从机选择端 输出端, 模拟SPI 拟SPI的SCK输出端,P1.2模拟SPI的从机选择端 (SS),P1.3模拟SPI的数据输入端(MISO)。 模拟SPI的数据输入端(MISO) (SS),P1.3模拟SPI的数据输入端(MISO)。下面给 出模拟SPI串行输入、串行输出和串行输入/ SPI串行输入 出模拟SPI串行输入、串行输出和串行输入/输出的 个子程序。 3个子程序。

SPI总线的软件模拟

MCU串行输入子程序 串行输入子程序SPIIN 1. MCU串行输入子程序SPIIN
从AT25040的SO端接收8位数据并放入寄存器R0中。参考程序: AT25040的SO端接收8位数据并放入寄存器R0中 参考程序: 端接收 R0
SPIIN: : SETB CLR MOV SPIIN1: : CLR NOP NOP MOV RLC SETB DJNZ MOV RET C,P1.3 A P1.1 R1,SPIIN1 R0,A ;从机输出送进位 从机输出送进位C 从机输出送进位 ;左移至累加器 左移至累加器A 左移至累加器 ;使P1.0(时钟 输出为 使 时钟)输出为 时钟 输出为1 ;判断是否循环 次 (8位数据 判断是否循环8次 位数据) 判断是否循环 位数据 ;8位数据送 位数据送R0 位数据送 P1.1 P1.2 R1,#08H P1.1 ;使P1.1(时钟 输出为 使 时钟)输出为 时钟 输出为1 ;选择从机 选择从机 ;置循环次数 置循环次数 ;使P1.1(时钟 输出为 使 时钟)输出为 时钟 输出为0 ;延时 延时

MCU串行输出子程序 串行输出子程序SPIOUT 2. MCU串行输出子程序SPIOUT
51单片机中R0寄存器的内容传送到AT25040的 将MCS–51单片机中R0寄存器的内容传送到AT25040的SI端。 MCS 51单片机中R0寄存器的内容传送到AT25040 SI端
SPIOUT: : SETB CLR MOV MOV SPIOUT1: : CLR NOP NOP RLC MOV SETB DJNZ RET A P1.0,C P1.1 R1,SPIOUT1 ;左移至累加器 最高位至 左移至累加器A最高位至 左移至累加器 最高位至C ;进位 送从机输入 进位C送从机输入 进位 ;使P1.1(时钟 输出为 使 时钟)输出为 时钟 输出为1 ;判是否循环 次(8位数据 判是否循环8次 位数据 位数据) 判是否循环 P1.1 P1.2 R1,#08H A,R0 P1.1 ;使P1.1(时钟 输出为 使 时钟)输出为 时钟 输出为1 ;选择从机 选择从机 ;置循环次数 置循环次数 ;8位数据送累加器 位数据送累加器A 位数据送累加器 ;使P1.1(时钟 输出为 使 时钟)输出为 时钟 输出为0 ;延时 延时

MCU串行输入 输出子程序SPIIO 串行输入/ 3. MCU串行输入/输出子程序SPIIO
51单片机R0寄存器的内容传送到AT25040的 将MCS–51单片机R0寄存器的内容传送到AT25040的SI端,同时从 MCS 51单片机R0寄存器的内容传送到AT25040 SI端 AT25040的SO端接收 位数据。 端接收8 AT25040的SO端接收8位数据。
SPIIO: : SETB CLR MOV MOV SPIIO1: : CLR NOP NOP MOV RLC MOV SETB DJNZ RET C,P1.3 A P1.0,C P1.1 R1,SPIIO1 ;从机输出送进位 从机输出送进位C 从机输出送进位 ;左移至累加器 最高位至 左移至累加器A最高位至 左移至累加器 最高位至C ;进位 送从机输入 进位C送从机输入 进位 ;使P1.1(时钟 输出为 使 时钟)输出为 时钟 输出为1 ;判断是否循环 次(8位数据 判断是否循环8次 位数据 位数据) 判断是否循环 P1.1 P1.2 R1,#08H A,R0 P1.1 ;使P1.1(时钟 输出为 使 时钟)输出为 时钟 输出为1 ;选择从机 选择从机 ;置循环次数 ;置循环次数 ;8位数据送累加器 位数据送累加器A 位数据送累加器 ;使P1.1(时钟 输出为 使 时钟)输出为 时钟 输出为0 ;延时 延时

这些子程序适用于在串行时钟的上升沿输入 和下降沿输出的各种串行外围接口芯片( 和下降沿输出的各种串行外围接口芯片(如 D/A和A/D转换芯片 实时时钟芯片、LED显 转换芯片、 D/A和A/D转换芯片、实时时钟芯片、LED显 示驱动芯片等) 示驱动芯片等)。 对于下降沿输入、 对于下降沿输入、上升沿输出的各种串行外 围接口芯片,只要改变P1.1的输出电平顺序, P1.1的输出电平顺序 围接口芯片,只要改变P1.1的输出电平顺序, 这些子程序也同样适用。如先置P1.1 P1.1为低电 这些子程序也同样适用。如先置P1.1为低电 之后再次置P1.1为高电平,再置P1.1 P1.1为高电平 P1.1为 平,之后再次置P1.1为高电平,再置P1.1为 低电平等等。 低电平等等。

TLC5615 D/A转换芯片 转换芯片
TLC5615是带有缓冲基准输入的 位电压输出型 是带有缓冲基准输入的10位电压输出型 是带有缓冲基准输入的 D/A转换器。器件可在单 电源下工作,且具有 转换器。 电源下工作, 转换器 器件可在单5V电源下工作 上电复位功能。 上电复位功能。TLC5615的控制是通过三线串行 的控制是通过三线串行 总线进行,可使用的数字通信协议包括SPI、 总线进行,可使用的数字通信协议包括 、 QSPI以及Microwire标准。低功耗, 5V供电 QSPI以及Microwire标准。低功耗,在5V供电 以及 标准 时功耗仅1.75mW,数据更新速率为 时功耗仅 ,数据更新速率为1.2MHz, , 典型的建立时间为12.5us。TLC5615广泛应用 典型的建立时间为 。 广泛应用 于电池供电测试仪表、数字增益调整、 于电池供电测试仪表、数字增益调整、电池远程工 业控制和移动电话等领域。 业控制和移动电话等领域。

TLC5615的内部结构 的内部结构
位移位寄存器、 位 寄存器、 转换权电阻、 由16位移位寄存器、10位D/A寄存器、D/A转换权电阻、基 位移位寄存器 寄存器 转换权电阻 准缓冲器、控制逻辑和2倍程放大器等电路组成 倍程放大器等电路组成。 准缓冲器、控制逻辑和 倍程放大器等电路组成。

引脚说明
TLC5615的管脚与 的管脚与Maxim公司的 公司的MAX515完全兼容,如图 完全兼容, 的管脚与 公司的 完全兼容 所示。各管脚的功能介绍如下。 所示。各管脚的功能介绍如下。 DIN:串行数据输入脚 : SCLK:串行时钟输入脚 : CS:片选端,低电平有效 :片选端, DOUT:用于菊花链的串行数据 : 输出端 AGND:模拟地 : REFIN:基准输入端,一般接 :基准输入端,一般接2V 到VCC-2V - VCC:电源端,一般接 :电源端,一般接+5V

TLC5615与AT89C52典型接口电路 与 典型接口电路

TLC5615通过固定增益为2的运放缓冲电阻网络, TLC5615通过固定增益为2的运放缓冲电阻网络,把 通过固定增益为 10位数字数据转换为模拟电压 位数字数据转换为模拟电压。 TLC5615芯片上 10位数字数据转换为模拟电压。在TLC5615芯片上 电时,内部电路把D/A寄存器复位为0 D/A寄存器复位为 电时,内部电路把D/A寄存器复位为0。其输出具有 与基准输入相同的极性, 与基准输入相同的极性,表达式为 VO=2×REF× VO=2×REF×CODE/1024 其中,CMOD是通过串行总线接口输入的待转换的 其中,CMOD是通过串行总线接口输入的待转换的 数据;REF是基准电压 是基准电压。 数据;REF是基准电压。 TLC5615最大的串行时钟速率不超过14MHz,10位 最大的串行时钟速率不超过14MHz TLC5615最大的串行时钟速率不超过14MHz,10位 DAC的建立时间为12.5?s 的建立时间为12.5 DAC的建立时间为12.5 s,通常更新速率限制至 80kHz以内 以内。 80kHz以内。 TLC5615的16位移位寄存器在SCLK的控制下从DIN引 位移位寄存器在SCLK的控制下从DIN TLC5615的16位移位寄存器在SCLK的控制下从DIN引 脚输入数据,高位在前,低位在后。16位移位寄存 脚输入数据,高位在前,低位在后。16位移位寄存 器中间的10位数据在上升沿的作用下输入10 10位数据在上升沿的作用下输入10位的 器中间的10位数据在上升沿的作用下输入10位的 D/A寄存器供给D/A转换 寄存器供给D/A转换。 D/A寄存器供给D/A转换。

输入的数据格式位为: 输入的数据格式位为:

SPI和AT89C52的接口传送 位字节形式的数据。 和 的接口传送8位字节形式的数据 的接口传送 位字节形式的数据。 因此,要把数据输入到D/A转换器需要两个写周 因此,要把数据输入到 转换器需要两个写周 接口具有从8位至 期。QSPI接口具有从 位至 位的可变输入数据 接口具有从 位至16位的可变输入数据 长度,可以在一个写周期之内装入好转换数据代码。 长度,可以在一个写周期之内装入好转换数据代码。 当系统不使用D/A转换器时,最好把 转换器时, 当系统不使用 转换器时 最好把D/A寄存器 寄存器 设置为全0, 设置为全 ,这样可以使基准电阻阵列和输出负载 的功耗降为最小。 的功耗降为最小。TLC5615的一个简单的应用编 的一个简单的应用编 程见下。 程见下。

DIN SCLK

BIT BIT

P1.4 P1.7 P1.5

;定义I/O口 定义 口

CS5615 BIT DataL

DataH EQU 30H EQU 31H ;准备操作TLC5615 准备操作TLC5615 ;选中TLC5615 选中 TLC5615: CLR SCLK CLR CS5615 MOV R7, #08H MOV A, DataH ;装入高8位数据 装入高 位数据 LOOPH: RLC A SETB MOV DIN, C SCLK ;产生上升沿,移入一位数据 LCALL DELAY ;延时 ;最高位移向5615 最高位移向

LCALL DELAY CLR SCLK DJNZ R7, LOOPH MOV R7, #08H MOV A, DataL ;装入低8位数据 装入低 位数据 LOOPL: RLC A SETB CLR MOV DIN, C SCLK SCLK ;结束5615的操作,同时将转换数据代码存入 结束 的操作, 的操作 10位DA寄存器,启动新一轮的DA转换 位 寄存器,启动新一轮的 转换 寄存器 RET ;产生上升沿,移入一位数据 产生上升沿, LCALL DELAY DJNZ R7, LOOPL SETB CS5615 LCALL DELAY ;延时 ;最高位移向5615 最高位移向

AD549 8位串行A/D的扩展
TLC549是以 位开关电容逐次逼近 是以8位开关电容逐次逼近 是以 位开关电容逐次逼近A/D转换器为基础而构造 转换器为基础而构造 转换器。 的CMOS A/D转换器。它能通过三态数据输出和模拟输入与 转换器 微处理器或外围设备串行接口。 仅用输入/输出时钟 微处理器或外围设备串行接口。TLC549仅用输入 输出时钟 仅用输入 (CLK)和芯片选择(CS)输入作数据控制,其最高 )和芯片选择( )输入作数据控制,其最高CLK输 输 入频率为1.1MHz。 入频率为 。 TLC549的内部提供了片内系统时钟,它通常工作在 的内部提供了片内系统时钟, 的内部提供了片内系统时钟 它通常工作在4MHz且 且 不需要外部元件。 不需要外部元件。片内系统时钟使内部器件的操作独立于串行 输入输出的操作,这种独立性使得控制硬件和软件只需关心利 输入输出的操作, 时钟读出先前转换结果和启动转换。 用I/O时钟读出先前转换结果和启动转换。TLC549片内有采 时钟读出先前转换结果和启动转换 片内有采 样保持电路,其转换速率可达40kHz。 样保持电路,其转换速率可达 。 TLC549的电源范围为+3~+ ,功耗小于 的电源范围为+ ~+ ~+6V,功耗小于15mW,总的 的电源范围为 , 不可调整误差为± 不可调整误差为±0.5LSB,能理想地应用于包括电池供电地 , 便携式仪表的低成本、高性能系统中。 便携式仪表的低成本、高性能系统中。

器件引脚及等效输入电路

(a)引脚;(b)采样期间等效电路;(c)保持期间等效电路 引脚; 采样期间等效电路 采样期间等效电路; 保持期间等效电路 引脚

引脚
TLC549的管脚与 的管脚与TLC540 8位A/D转换器以及 的管脚与 位 转换器以及 TLC1540 10位A/D转换器兼容,如图所示。其 转换器兼容, 位 转换器兼容 如图所示。 基准端( +,REF-)为差分输入,可 -)为差分输入 中,基准端(REF+, +, -)为差分输入, 以将REF-接地,REF+接Vcc端,但要加滤波电 以将 -接地, + 端 为模拟信号输入端, 容。AIN为模拟信号输入端,大于 为模拟信号输入端 大于REF+电压时 + 转换为全“ ,小于REF-电压时转换为全“0”。 转换为全“1”,小于 -电压时转换为全“ 。 通常为保证器件工作良好, 通常为保证器件工作良好,REF+电压应高 +电压应高REF 电压至少1V。 -电压至少 。 TLC549在采样期间和保持期间的等效输入电路分别 在采样期间和保持期间的等效输入电路分别 如图9.28b和图 和图9.28c所示。对于采样方式,输 所示。 如图 和图 所示 对于采样方式, 入电阻约1k?,采样电容约 入电阻约 ,采样电容约60pF;对于保持方式, ;对于保持方式, 输入电阻约5M?。 输入电阻约 。

TLC549的接口及应用
TLC549与51单片机的接口电路很简单,只 与 单片机的接口电路很简单 单片机的接口电路很简单, 要将TLC549的DO、CLK和51单片机的 要将 的 、 和 单片机的 I/O口相接即可,下图给出了一种由 口相接即可, 口相接即可 TLC549和89C51构成的典型的数据采集 和 构成的典型的数据采集 电路。其中, 电路。其中,N1、R1、R2、C2组成一阶 、 、 、 组成一阶 低通滤波器; 、 可滤除直流 可滤除直流; 、 低通滤波器;C1、R3可滤除直流;R4、 R5是将双极性的模拟输入信号变成 ~+ 是将双极性的模拟输入信号变成0~+ 是将双极性的模拟输入信号变成 5V以适应 以适应TLC549的单极性要求。 的单极性要求。 以适应 的单极性要求

TLC549典型的数据采集 典型的数据采集原理图 典型的数据采集

利用前面所给出的SPI的模拟子程序,编程如下。 的模拟子程序,编程如下。 利用前面所给出的 的模拟子程序 SCK BIT P1.6 ;初始化时钟线 MISO BIT P1.5 ;初始化数据线 CLR PF0 初始时钟电平为0 ;初始时钟电平为 CLR PF1 ;设定上升沿有效 MOV SS, #01111111B ;初始化片选线 LCALL SPIR 调用SPI总线的模拟读子程 ;调用 总线的模拟读子程 序 MOV Buff, A ;保存采样数据


相关文章:
spi
29页 2财富值 第8章SPI_1 38页 免费 spi接口 10页 2财富值 spi总线 30页...摩托罗拉公司最先推出的一种同步串行传输规范,也是一种单片 机外设芯片串行扩展...
SPI串行总线接口的Verilog实现
SPI串行总线接口的Verilog实现_计算机软件及应用_IT/计算机_专业资料。SPI 串行总线接口的 Verilog 实现摘 要:集成电路设计越来越向系统级的方向发展,并且越来越强调...
串行扩展应用平台设计
1 串行扩展平台的结构 SPI、 One-wire、Microware、I2C 是目前单片机应用系统中...[!--empirenews.page--]2 四种串行通信接口的实现在串行扩展中,可以根据接口...
VHDL的串行同步通信SPI设计
同步串行通讯 SPI 二、课程设计的要求与数据设计要求包括: 1.深入了解串行通信...15 1 引言串行扩展通信接口是器件间进行数据交换的平台和重要渠道。主控同步串 ...
第6章 串行总线接口技术
第6章 1 MCS-51 单片机外部串行总线接口技术 第6章 MCS-51 单片机外部串行 ...串行扩展接口和串行扩展总线有: 串行总线、 SPI 2 I C 总线、单总线(l-Wire...
SPI_读书笔记
公司推出的一种同步串行通 讯接口, 用于微处理器和外围扩展芯片之间的串行连接,...图 2-1DSPI 传输时间图(MTFE=0,CPHA=0,FMSZ=8) 主机通过将它的第一位...
微处理器原理与接口技术复习要点(12本科)
并行扩展 三总线的构成 2串行扩展 SPI 总线与 I C 总线的基本特性 六、...七、80C51 应用系统设计 硬件设计:最小系统+外设 软件设计:汇编或 C 2 第 ...
EXAR推出基于I2C和SPI的GPIO扩展芯片
EXAR推出基于I2C和SPI的GPIO扩展芯片_语文_初中教育_教育专区。EXAR推出基于I2C和SPI的GPIO扩展芯片.doc EXAR 推出基于 I2C 和 SPI 的 GPIO 扩展芯片 EXAR 公司...
SPI串行总线接口的Verilog实现
SPI 串行总线接口的 Verilog 实现时间:2007-08-01 来源: 作者:孙丰军 余春暄...而这种设计,仅需 4 根数据和控制线即可完成并行扩展所实现的功能。 (2)器件...
串口扩展方案的比较
注意:如果各子串口波特率不一致,并且需要实现同时收发,GM812X 产品可能不能满足你 的要求,那么我给你推荐使用 GM8141/GM8142: GM8141/2 使用 SPI 总线扩展 ...
更多相关标签:
spi串行接口 | spi串行总线 | spi串行通信协议 | spi串行 | spi串行eeprom | 串行总线扩展实验 | 串行总线扩展实验报告 | spi io扩展芯片 |