当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]TMS320C5402的MCBSP工作方式MCBSP是TMS320C5402的多通道缓冲串口(MCBSP0和MCBSP1)。MCBSP的外部通过6个管脚与其他串行器件相连,在内部与DSP的内核连接。串行数 据收发管脚

TMS320C5402的MCBSP工作方式

MCBSP是TMS320C5402的多通道缓冲串口(MCBSP0和MCBSP1)。MCBSP的外部通过6个管脚与其他串行器件相连,在内部与DSP的内核连接。串行数 据收发管脚与内部各个串口寄存器相连。

根据MCBSP的功能和结构,可以将其工作方式概括为:SPI工作方式和多通道缓冲工作方式。

本文主要介绍SPI操作方式。MCBSP的外部管脚为:串行数据接收管脚DR、接收时钟管脚CLKR、接收帧同步信号管脚FSR、发送时钟管脚CLKX、串行数据发送管脚DX、发送帧同步信号管脚FSX。在时钟和帧同步信号控制下,接收和发送通过DR和DX引脚与外部器件直接通讯。在T MS320C5402内部CPU对MCBSP的操作,利用了数个16位控制寄存器,通过2个中断和4个事件信号控制模块触发,对片内外设总线进行存取控制。在进行数据接收时,数据到达接收管脚DR后,在接收时钟CLKR的上升沿(或下降沿)处被逐位依次移入RSR中,当收满一个字后,RSR被拷贝到缓冲寄存器RBR,接着再拷贝到数据接收寄存器DRR,此刻CPU可以通过外设总线从DRR中读取收到的数据。发送数据时,CPU将数据写入数据发送寄存器DXR,接着拷贝到发送移位寄存器XSR,在发送帧同步信号FSX后,CLKX的上升沿(或下降沿)到来时,XSR的内容被逐位依次移到发送管脚DX上。

2 MAX147的主要特点

A/D芯片MAX147是一种具有8路通道,12位精度的串行数据转换器。可以工作于SPI和QSPI方式。输入电压范围:0~2.5V(或-1.25V~+1.25V)。采样频率可达133kHz。MAX147的管脚定义见图1。CH0~CH7为8路模拟采样输入;COM为模拟信号的参考地,VREF为2.5V外部基准电压输入;AGND为模拟地,DGND为数字地;DOUT为串行数据输出,DIN为串行数据输入;SSTRB为串行信号输出,MAX147每次输出12位转换结果时,都会在最高位输出之前产生一个时钟周期的正脉冲;CS为低电平有效的片选管脚;SCLK为串行时钟输入,最高频率为2MHz;SHDN为Shutdown模式选择,该脚悬空可使MAX147工作在外部比较模式;REFADJ为Reference?Buffer Amplifier输入,该脚接高电平可以使MX147工作在外部比较模式;VDD为工作电压。

3 TMS320C5402 DSP与MAX147的接口电路

如图1所示,MAX147的8路采样通道作为模拟信号输入,与前端传感器相连。MAX147需要外部的2.5V基准电压,用LM385-2.5提供。MAX147的第9脚(COM)是模拟信号的参考地,直接关系到A/D转换的精度与准确度,一定要与模拟地良好连接。MAX147的数字部分与TMS320C5402DSP的多通道缓冲串口MCBSP相连接,见图2。在与MAX147接口时,DSP作为SPI主设备,向作为从设备的MAX147提供串行时钟、命令和片选信号。因此,连接时可以直接相连,而且能够工作于内部转换时钟。FSX作为低有效的片选信号输出到MAX147的CS端(低有效);CLKX输出的时钟信号是串行数据的基准时钟,而且还决定了A/D转换速率。DX为SPI通讯中的主出从入;DR为SPI通讯中的主入从出。DSP串口工作在CLOCK STOP模式(兼容SPI协议)下,CLKX脚和CLKR脚已经在内部相连。

 


 


4 程序设计

对DSP的串口编程时,首先要复位MCBSP串口,其次是配置一些16位寄存器,设置控制和收发寄存器中各位的值。配置好寄存器,对串口的操作实际上就变成了对寄存器DRR和DXR的操作,发送数据就是对DXR进行写操作,接收数据就是对DRR进行读操作。MCBSP支持包括8、12、16和32位字长格式的数据收发。编程复位和配置寄存器的程序如下:

 

 


MAX147每次从DIN接收一组8位的控制字,启动一次转换,DOUT上输出一组12位的A/D转换数值。一般控制字为1XXX1111,其中包括选择输入通道、采样极性和转换时钟方式(内部时钟和外部时钟)、功耗模式等设置信息。在最后一位控制字输出结束后的第一个时钟下降沿,触发一次A/D转换。在A/D转换数据的最高位移出之前,SSTRB产生一个高电平脉冲,可以作为DSP串口的帧同步信号。如果在A/D转换器空闲时出现第一个高电平或在第5位A/D转换数值后出现的第一个高电平,MAX147都判断为起始位。图3所示为16时钟周期转换时序。

一组16个时钟的数据包对应一组12位的A/D转换数据,DSP读入的16位数中最高1位和最低3位是无效位。当一组数据包传送完毕后,至少有2个SCLK周期的空闲,这是由SPI方式的特点所决定的,所以,在SPI模式下,最快的采样周期并不是16个SCLK周期,而是18个SLCK周期。MCBSP在时钟的下降沿发送数据,上升沿接受数据。以下是向DXR传送一次控制字,将接收寄存器DRR中的数据存入缓冲区的中断服务子程序。

 


;tint中断服务程序

-tint:SSBX INTM;/屏蔽所有中断

STM #COMMAND,DXR11;/向DXR11传送控制字

LDM DRR1l,A;/DRR11为Mcbsp1的数据接收寄存器

STL A,-3,*AR1+%;/数据存入缓冲区,循环寻址

REte

.end

本系统已成功地应用到温度、振动加速度信号检测系统中。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭