TMS320C6713 DSP的SPI接口设计

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

|
MCBSP_FMKS(SPCR, XSYNCERR, DEFAULT)
|
MCBSP_FMKS(SPCR, XEMPTY, DEFAULT)
|
MCBSP_FMKS(SPCR, XRDY, DEFAULT)
|
MCBSP_FMKS(SPCR, XRST, YES)
|
MCBSP_FMKS(SPCR, DLB, DEFAULT)
|
MCBSP_FMKS(SPCR, RJUST, RZF)
|
MCBSP_FMKS(SPCR, CLKSTP, NODELAY)
|
MCBSP_FMKS(SPCR, DXENA, DEFAULT)
|
MCBSP_FMKS(SPCR, RINTM, RRDY)
|
MCBSP_FMKS(SPCR, RSYNCERR, DEFAULT)
使用 SPI 总线接口与外部通信时,可以采用 4 种不同的数据传输模式。这 4 种模式的区 别主要在于串行时钟(SCK)停止时电平值的高低以及时钟是否延迟输出,也就是设置时钟 的极性及相位。时钟极性(CPOL)用于配置时钟空闲时的电平值,CPOL 为 0 时,串行同步 时钟的空闲状态为低电平;为 1 时,串行同步时钟的空闲状态为高电平。时钟相位(CPHA) 配置用于选择时钟是否延迟输出,
表 2 SPI 时钟停止模式
当 McBSP 配置为 SPI 模式时,DSP 仅仅使用其中的 4 个管脚。这 4 个管脚包括 CLKX、DX、 DR 以及 FSX 管脚。SPI 模式支持主从配置,因此 DSP 的 McBSP 也可以配置成主从模式。
当 McBSP 配置成主模式时,通过 CLKX 的输出提供主时钟;DSP 通过 DR 接收数据;通过
MCBSP_FMKS(RCR, RDATDLY, 1BIT)
|
为从:必须为 0bit
MCBSP_FMKS(RCR, RFRLEN1, OF(0))
|
此位必须为 0
MCBSP_FMKS(RCR, RWDLEN1, 8BIT)
|
MCBSP_FMKS(RCR, RWDREVRS, DEFAULT),
/* Transmit Control Register (XCR) */
|
MCBSP_FMKS(SPCR, RFULL, DEFAULT)
|
MCBSP_FMKS(SPCR, RRDY, DEFAULT)
|
MCBSP_FMKS(SPCR, RRST, YES),
/* Receive Control Register (RCR) */
MCBSP_FMKS(RCR, RPHASE, SINGLE)
#include "CommSet.h"
/*------------------------------------------------------------*/
MCBSP_Config myMcBSPConfig = {
/* Serial Port Control Register (SPCR) */
MCBSP_FMKS(XCR, XPHASE, SINGLE)
|
此位必须为 0(SINGLE)
MCBSP_FMKS(XCR, XFRLEN2, DEFAULT)
|
MCBSP_FMKS(XCR, XWDLEN2, DEFAULT)
|
MCBSP_FMKS(XCR, XCOMPAND, DEFAULT)
|
//NO-1; YES-0(复位)
//NO-1; YES-0(复位) //McBSP 为时钟停止模式时, //McBSP 为主:必须为 1bit; //McBSP 为时钟停止模式时, //McBSP 为时钟停止模式时,
MCBSP_FMKS(XCR, XFIG, DEFAULT)
|
MCBSP_FMKS(XCR, XDATDLY, 1BIT)
如果 ARM 设备要发送数据给 DSP,则此次数据传输仍然需要由 DSP 发起,首先 ARM 芯片 通过其他的信号通知 DSP,然后由 DSP 开始启动传输。这时 DSP 可以向 ARM 发送全是“1” 的数据,表示 DSP 发送的是“垃圾”数据,将这些“垃圾”数据发送给 ARM 的同时,就可以 在 DR0 管脚上接收到 ARM 发送过来的数据。
两种不同的传输协议之一进行数据传输。如果 CPHA=0,在串行同步时钟的第一个跳变 沿(上升或下降)数据被采样;如果 CPHA=1,在串行同步时钟的第二个跳变沿(上升或下 降)数据被采样。SPI 主模块和与之通信的外设时钟相位和极性应该一致。
图 1 SPI 传输的 4 种方式
2、多通道缓冲串口 McBSP
当 DSP 作为主设备时,串行时钟 CLKX0 由 DSP 内部的采样率发生器(SRG)提供,其速 率与极性需要经过寄存器配置;从设备使能信号 FSX0 也由 DSP 提供,由其内部的采样率发 生器产生。
SPI 的串行通信属于“数据交换”类型的数据通信,其数据的交换是由主设备发起的。 当 DSP 需要发送数据给 ARM 芯片时,由 DSP 向发送管脚 DX0 中写入数据,DSP 就会产生串行 时钟 CLKX0 与从设备使能信号 FSX0。当从设备的 SPICLK0 检测到时钟信号,同时 nSS0 检测 到 FSX0 的低电平信号时,从设备就从 SPIMOSI0 中接收数据,同时将 SPIMISO0 中的数据发 送个 DSP。这里 DSP 的收发数据是同时进行的,DSP 在发送出一个数据的同时也要接收到一 个数据,如果接收到的数据对 DSP 来说是无用数据,读取数据后不做处理即可。
四种信号。一个完整的 SPI 通信系统由一个主设备和一个从设备组成,主设备启动一个与从 设备的同步通讯,从而完成数据的交换。主设备通过产生移位时钟来发起通讯。通讯时,数 据由主设备的 MOSI 输出,MISO 输入,数据在时钟的上升或下降沿由 MOSI 输出,在紧接着 的下降或上升沿由 MISO 读入,这样经过 8/16 次时钟的改变,完成 8/16 位数据的传输。
|
//McBSP 为主:必须为 1bit;
为从:必须为 0bit
MCBSP_FMKS(XCR, XFRLEN1, OF(0))
|
//McBSP 为时钟停止模式时,
此位必须为 0(1 word)
MCBSP_FMKS(XCR, XWDLEN1, 8BIT)
|
MCBSP_FMKS(XCR, XWDREVRS, DEFAULT),
DX 发送数据;通过 FSX 管脚提供从设备使能信号( SS )。
McBSP 作为主设备时,其示意图如图 2 所示:
图 2 McBSP 作主设备
当 McBSP 配置成从模式时,通过将 CLKX 配置成输入以接收主设备提供的时钟;通过 DR
接收数据;通过 DX 发送数据;将 FSX 管脚配置成输入以作为从设备使能( SS )。
4、DSP 部分的软件配置
在 DSP 端配置寄存器时,需要注意一些方面。 首先 McBSP 配置成主模式(master)时,由 DSP 产生 CLKX 与 FSX,因此这两个管脚需 要配置成输出。由于 ARM 端的从设备使能信号 nSS0 是低电平有限,因此 FSX 需要设置成输 出低电平有效。FSX 是传送数据开始的信号,因此 FSX 必须能够正确的输出电平,如果缺少 FSX 信号,则数据传输时,接收数据相对于发送数据会出现移位的现象。在 McBSP 为主设备 时,XCR 寄存器中的 XDATDLY 与 RCR 寄存器中的 RDATDLY 必须设置成“1”,设置成“0”或 者“2”会导致不可预知的错误。 McBSP 的配置程序采用 TI 的 CSL 函数库编写,其部分代码如下: /**************************************************************** 多通道缓冲串口(McBSP) ****************************************************************/
|
此位必须为 0(SINGLE)
MCBSP_FMKS(RCR, RFRLEN2, DEFAULT)
|
MCBSP_FMKS(RCR, RWDLEN2, DEFAULT)
|
MCBSP_FMKS(RCR, RCOMPAND, DEFAULT)
|
MCBSP_FMKS(RCR, RFIG, DEFAULT)
|
1、SPI 通信协议
SPI(Serial Peripheral Interface)总线接口是由摩托罗拉公司提出的一种串行同步 通讯协议,这是一个包含 4 根信号线的通信协议。SPI 接口包括串行数据输入(主输入从输
出 MISO),串行数据输出(主输出从输入 MOSI),串行移位时钟(SCK)以及从使能信号( SS )
计时,将 DSP 设计为 SPI 主设备,将 ARM 芯片设置为 SPI 从设备。其接口示意图如图 4 所示:
ARM S3C2440A
DSP TMS320C6713B
SPI MIS O0
DR 0
SPI MOS I0
DX0
SP ICL K0 nSS0
CL KX0 FSX 0
图 4 DSP 与 ARM 接口
SPI 的数据传输是基于时钟信号来完成的。在每一次数据传输开始时,由主设备产生时 钟信号,每一个时钟周期传输 1bit 数据,传送完相应的 8/16bit 数据后,时钟信号变为无
效,传输结束。在不进行数据传输时,主设备使 SS 信号保持高电平。产生数据输出前,主 设备将 SS 变为低电平以使能从设备,完成数据传输后, SS 又转换为高电平。
McBSP 作为从设备时,其示意图如图 3 所示:
图 3 McBSP 作从设备
3、SPI 接口设计
在设计 DSP 的 SPI 接口电路时,我们采用 DSP 与 ARM 芯片 S3C2440A 的 SPI 接口相连的
设计,通过 SPI 接口,DSP 与 ARM 器件之间可以相互交换数据,实现数据的互通。在电路设
多通道缓冲串口(McBSP)是 TI 公司的 DSP 芯片中采用的数据接口格式。McBSP 的数据 接口包含数据管脚与控制管脚,其管脚定义如表 1 所示:
管脚 CLKR CLKX CLKS
DR DX FSR FSX
功能 接收时钟 发送时钟 外部时钟 串行数据接收 串行数据发送 接收帧同步 发送帧同步
表 1 McBSP 管脚
McBSP 提供时钟停止模式,该模式与 SPI 模式兼容,该模式的设置如表 2 所示:
CLKSTP 0X 10 11 10 11
CLKXP X 0 0 1 1
时钟模式 禁止时钟停止模式,使能非 SPI 模式 无延迟,CLKXP 上升沿发送数据,下降沿接收数据 有延迟,CLKXP 上升沿发送数据,下降沿接收数据 无延迟,CLKXP 下降沿发送数据,上升沿接收数据 有延迟,CLKXP 下降沿发送数据,上升沿接收数据
MCBSP_FMKS(SPCR, FREE, DEFAULT)
|
MCBSP_FMKS(SPCR, SOFT, DEFAULT)
|
MCBSP_FMKS(SPCR, FRST, YES)
|
MCBSP_FMKS(SPCR, GRST, YES)
|
//YES-0; NO-1 //YES-0; NO-1
MCBSP_FMKS(SPCR, XINTM, XRDY)
|
//采样率发生器时钟由 DSP
内部提供
MCBSP_FMKS(SRGR, FSGM, DXR2XSR)
|
TMS320C6713B DSP 的 SPI 接口设计
引言
随着信号处理技术的发展,在实际的信号处理系统中,DSP 需要与不同的设备之间进行 数据交换。SPI 接口是外部设备中经常使用到的接口技术。
本文根据笔者在调试 TMS320C6713B DSP 与 S3C2440A ARM 芯片通信时的经验,介绍了将 TMS320C6713B 的多通道缓冲串口(McBSP)配置成 SPI 模式后与 ARM 芯片进行数据通信的方 法并给出了相应的程序代码。
/* Sample Rate Generator Register (SRGR) */
MCBSP_FMKS(SRGR, GSYNC, DEFAULT)
|
MCBSP_FMKS(SRGRwk.baidu.com CLKSP, RISING)
|
//时钟上升沿产生同步信号
MCBSP_FMKS(SRGR, CLKSM, INTERNAL)
相关文档
最新文档