0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

tms320c6748异步接口访问相关问题

ss 作者:工程师谭军 2018-09-07 15:01 次阅读

本文主要是关于tms320c6748的相关介绍,并着重对tms320c6748异步接口访问相关问题进行了详尽的阐述。

tms320c6748

德州仪器TI) 宣布推出具有无与伦比连接选项与定点和浮点功能的四款全新处理器 —— TMS320C6748,同时这四款产品也是业界功耗最低的浮点数字信号处理器 (DSP),可充分满足高能效、连通性设计对高集成度外设、更低热量耗散以及更长电池使用寿命的需求。

上述器件结合了一系列独特的应用优化特性和外设,能显著降低工业通信、医疗诊断和音频等多种产品的总体系统成本。对诸如测量测试、公共安全无线电、音乐特效以及智能家居传感器等需要高速数据传输和高容量存储的应用而言,这些处理器不仅具备通用并行端口 (uPP),同时也是 TI 首批集成串行高级技术附件 (SATA)的器件。

这些产品拥有高达 300 MHz 的性能,可通过动态电压与频率缩放 (DVFS) 及多种省电模式管理片上电源。若配合 TI 电源管理软件和配套模拟解决方案,开发人员无需成为节能技术专家即可优化系统,提高性能,降低功耗。为了简化设计工作,缩短开发时间,新产品都是引脚对引脚兼容,可与所有 TMS320C6000 器件实现代码兼容,并配套提供低成本的实验板和功能齐备的评估板 (EVM)。

C6748 DSP 的关键特性与优势:

·最低成本与最低功耗的 C6000 处理器以及业界最低功耗的浮点 DSP 总功耗为 420mW,在特定使用情况下电压为 1.0V时待机功耗为 7mW;

·待机功耗比市场上现有的浮点 DSP 解决方案降低多达 9 倍;

·TI 首款集成 SATA 的处理器,可支持大容量数据存储;

·uPP 可实现与数模转换器FPGA 或其它 C6748处理器的高速连接;

·EMAC、多媒体卡/安全数据卡 (MMC/SD) 以及高速 USB 2.0/1.1 可全面满足桌面、网络或便携式连接或存储的需求;

·视频端口能够支持原始视频的输入输出,而 LCD 控制器则使开发人员能够方便地连接具有 VGA 分辨率的显示屏;

·通过 DVFS 提供多个工作点,可关闭不使用的外设并提供可选的 I/O 电压,这些优异特性有助于提高便携性并降低产品的发热量;

·配套提供的 TI TPS65070 电源管理产品可实施所有时序与默认选项,并可支持器件的低功耗模式;

·高达 300 MHz 的 C674x 内核可为高精度及宽动态范围提供浮点工作能力以及能实现更高性能的定点工作能力;

·C6748 能实现引脚对引脚兼容,使客户能采用同一软件和硬件平台扩展整个产品系列;

·128 KB 至 448 KB 的片上存储器可减少外部存储器接入,并降低功耗。

德州仪器 (TI) 推出浮点功能的全新高性能处理器 —— TMS320C6748,这款芯片也是业界功耗最低的浮点数字信号处理器 (DSP),可充分满足高能效、连通性设计对高集成度外设、更低热量耗散以及更长电池使用寿命的需求。不仅具备通用并行端口 (uPP),同时也是 TI 首批集成串行高级技术附件 (SATA)的器件。

广州创龙推出的TL6748-EVM评估套件为开发者使用TI TMS320C6748处理器提供了完善的软件开发环境,系统支持:裸机、SYS/BIOS、DSP/BIOS。提供参考底板原理图,DSP C6748入门教程、丰富的Demo程序、完整的软件开发包,以及详细的C6748系统开发文档,方便用户快速评估TMS320C6748处理器、设计系统驱动及其定制应用软件,也大大降低产品开发周期,让客户产品快速上市。主要面向电力、通信、工控、音视频处理等数据采集处理行业。

TL6748-EVM评估套件是一个功能丰富的开发板,为嵌入式设计人员提供快捷简单的实践方式来评估TMS320C674x系列处理器,是一个完整的实验评估平台。

tms320c6748异步接口访问相关问题

OMAPL138有多种地址数据总线如I2C、SPI、UART,这些接口能够满足一般的低速传送要求,但是在高速协同中却不能满足数据传输的需求。我们知道,并行数据传输肯定要比串行传输快,TMS320C6748平台上搭载了uPP(通用并行IO)。在Ti公司的66系列DSP中搭载了更高速的RapidIO接口,最高速率达10Gbps,相比TCPIP协议软件开销较低,与 FPGA互联方便,是一种比较有前景的通信技术

1、uPP硬件IO资源,通信时需要用到的管脚:

tms320c6748异步接口访问相关问题

由上图可看出uPP有两个通道即通道A和通道B,通道A、B都具有各自START、ENABLE、WAIT、CLOCK信号控制管脚。而两个十六位的数据管脚DATA[15:0]不直接对应通道A、XDATA[15:0]也不直接对应通道B。数据管脚DATA[15:0]、XDATA[15:0]与通道A、B的对应关系是通过配置寄存器UPCTL来实现的。

tms320c6748异步接口访问相关问题

UPCTL寄存器中的CHN、IWA、IWB决定A、B通道与DATA[15:0]、XDATA[15:0]的关系。IWA为高,A通道使用16bit数据,反之则为8bit数据,IWB同理;CHN为高,A、B通道均使能,反之只使用A通道。

2、时钟选择

无论是同步还是异步,都必须有时钟源。uPP是同步的,发送方提供时钟源。

传输模式使用内部时钟:

I/O Clock = Transmit Clock/(2 × (UPICR.CLKDIVn + 1))

上图的transmit Clock通过查看相关的手册可知是锁相环得出的,来自PLL0_SYSCLK2,再将其二分频后再经过(UPICR.CLKDIV+1)分频,得到CLOCK pin的频率。

3、数据格式

uPP支持任何字长介于8~16bit的数据,显然,要操作8bit、16bit很简单,那么对于数据字长介于8bit~16bit之间的数据应该怎么操作呢。下图给出了12bit数据的打包方式。

tms320c6748异步接口访问相关问题

Right-Justify, Zero Extend –很简单,就是字面上的意思,右对齐,高位空出的位清零。

Right-Justify, Sign Extend –右对齐,高位的状态取决于最高bit的状态,当为1那么所有空出的高位补1,例如ABCh(101010111100),最高位为1,转换为16bit数据为FABCh。

Left-Justify, Zero Fill–左对齐,低位空出的位补零。

4、模式选择

tms320c6748异步接口访问相关问题

5、数据触发方式

单倍数据传输:(SDR)数据信号只能在时钟上升沿或者下降沿触发有效

双倍数据传输:(DDR)数据信号在时钟上升沿和下降沿都触发有效

uPP具有2个独立的DMA模块,分别称为DMA模块I,DMA模块Q。

通道A、B在传输数据时是通过DMA模块来实现的,DMA模块与通道的对应关系如下图:

tms320c6748异步接口访问相关问题

6、DMA专用术语Windows Address、Byte Count、Line Count、Line Offset Address在内存中关系。

上图很清楚的告诉我们Windows Address只指其起始地址,Line Offset Address是指其偏移地址。然后一个疑问是为什么在图中看来,Line1和Line2永远都分开着,Line与Line之间是连续存放的还是无间隙的?

仔细阅读datasheet会发现,在述说这段的文字中总强调起始地址最好设置为aligned to a 64-bit (that is, the3 LSBs must equal 0)。再一琢磨,如果起始地址达到了alignedto a 64-bit 的要求,那Line与Line就是无缝连接了。而且在实际应用中,Line与Line之间都是连续存放的,因为配置DMA channel 的寄存器UPTCR只提供了64Bytes 128Bytes 256Bytes选项。

7、时序图

(1)单倍数据发送

(2)单倍数据接收

(3)双倍数据接收

上图是单通道接收SDR模式,看似好好的时序图,START信号高电平使能整个uPP接收,但是datasheet中却表示START的极性是可以通过STARTx bit in UPICR来修改的,即START可以低电平触发使能uPP。给人一种感觉:start、enalbe、wait信号又是可以禁止又是可以使能的,很容易迷惑人。到底怎么配置能达到通信要求,参考时序图,还是发送方接收方不一样配置?

回头一想,start、enable的极性都可以自己定义,只要发送和接收配置成一致就行了,因为uPP大多时候用于与adc的无缝连接,虽然adc都是高电平触发使能的,但也没准有的adc是下降沿使能触发的。即adc也可能是高电平使能也可能是低电平使能。start、enable信号极性使能的可配置型使得应用adc更加自由不再拘束了。

8、程序

(1)uPP初始化文件

/*

*uPP.h

*

* Created on: 2015-7-2

* Author: JJS

*/

#ifndef UPP_H_

#define UPP_H_

#define M 256

Uint32 Buffer_Trans[1000];

Uint32 Buffer_Recv[1000];

/*

extern voidsetup_uPP_receive(void)

{

uppRegs-》UPPCR= (CSL_UPP_UPPCR_SWRST_RESET《《CSL_UPP_UPPCR_SWRST_SHIFT);//寄存器复位

delay(10);

uppRegs-》UPPCR= (CSL_UPP_UPPCR_SWRST_RUNNING《《CSL_UPP_UPPCR_SWRST_SHIFT);//离开复位模式

uppRegs-》UPCTL=0;

uppRegs-》UPICR=0;

uppRegs-》UPIVR=0;

uppRegs-》UPIES=0;

uppRegs-》UPDLB=0;

uppRegs-》UPPCR=0;

uppRegs-》UPTCR=0;

uppRegs-》UPCTL= (

(CSL_UPP_UPCTL_IWA_16BIT 《《 CSL_UPP_UPCTL_IWA_SHIFT)|//数据传输16Bit

(CSL_UPP_UPCTL_DRA_SINGLE 《《 CSL_UPP_UPCTL_DRA_SHIFT)|//单数据模式

(CSL_UPP_UPCTL_DPWA_FULL 《《CSL_UPP_UPCTL_DPWA_SHIFT)|//全数传输

(CSL_UPP_UPCTL_CHN_ONE 《《 CSL_UPP_UPCTL_CHN_SHIFT)|//双通道

(CSL_UPP_UPCTL_MODE_RECEIVE 《《 CSL_UPP_UPCTL_MODE_SHIFT ));//A接

uppRegs-》UPICR= (( 0《《CSL_UPP_UPICR_CLKDIVB_SHIFT)|//通道的时钟分频

(0《《CSL_UPP_UPICR_CLKDIVA_SHIFT)|

(1《《CSL_UPP_UPICR_STARTA_SHIFT)|

(1《《CSL_UPP_UPICR_ENAA_SHIFT));

uppRegs-》UPTCR= (( CSL_UPP_UPTCR_TXSIZEB_64B《《CSL_UPP_UPTCR_TXSIZEB_SHIFT)|//数据发送门限

(CSL_UPP_UPTCR_TXSIZEA_64B《《CSL_UPP_UPTCR_TXSIZEA_SHIFT)|

(CSL_UPP_UPTCR_RDSIZEQ_64B《《CSL_UPP_UPTCR_RDSIZEQ_SHIFT)|

(CSL_UPP_UPTCR_RDSIZEI_64B《《CSL_UPP_UPTCR_RDSIZEI_SHIFT));

uppRegs-》UPIVR= ( (0x0AAA 《《CSL_UPP_UPIVR_VALB_SHIFT)| //空闲状态下固定的数据值

(0x0AAA 《《CSL_UPP_UPIVR_VALA_SHIFT));

uppRegs-》UPIES= ((CSL_UPP_UPIES_EOLQ_SET《《CSL_UPP_UPIES_EOLQ_SHIFT)|//中断标志

(CSL_UPP_UPIES_EOWQ_SET《《CSL_UPP_UPIES_EOWQ_SHIFT)|

(CSL_UPP_UPIES_EOLI_SET《《CSL_UPP_UPIES_EOLI_SHIFT)|

(CSL_UPP_UPIES_EOWI_SET《《CSL_UPP_UPIES_EOWI_SHIFT));

//

uppRegs-》UPDLB=((CSL_UPP_UPDLB_BA_DISABLE《《CSL_UPP_UPDLB_BA_SHIFT )|

(CSL_UPP_UPDLB_AB_DISABLE《《CSL_UPP_UPDLB_AB_SHIFT));

uppRegs-》UPPCR= ((CSL_UPP_UPPCR_EN_ENABLE《《CSL_UPP_UPPCR_EN_SHIFT)|//使能接口

(CSL_UPP_UPPCR_SOFT_ENABLE《《CSL_UPP_UPPCR_SOFT_SHIFT)|

(CSL_UPP_UPPCR_RTEMU_ENABLE《《CSL_UPP_UPPCR_RTEMU_SHIFT));

}

*/

void setup_uPP_LoopBack(void)

{

uppRegs-》UPPCR= (CSL_UPP_UPPCR_SWRST_RESET《《CSL_UPP_UPPCR_SWRST_SHIFT);//寄存器复位

delay(300);

uppRegs-》UPPCR= (CSL_UPP_UPPCR_SWRST_RUNNING《《CSL_UPP_UPPCR_SWRST_SHIFT);//离开复位模式

uppRegs-》UPCTL =0;

uppRegs-》UPICR=0;

uppRegs-》UPIVR=0;

uppRegs-》UPIES=0;

uppRegs-》UPDLB =0;

uppRegs-》UPPCR=0;

uppRegs-》UPTCR=0;

uppRegs-》UPCTL = ((CSL_UPP_UPCTL_IWB_16BIT 《《 CSL_UPP_UPCTL_IWB_SHIFT)|//数据传输16Bit

(CSL_UPP_UPCTL_IWA_16BIT 《《 CSL_UPP_UPCTL_IWA_SHIFT)|//数据传输16Bit

(CSL_UPP_UPCTL_DRB_SINGLE 《《 CSL_UPP_UPCTL_DRB_SHIFT)|//单数据模式

(CSL_UPP_UPCTL_DRA_SINGLE 《《 CSL_UPP_UPCTL_DRA_SHIFT)|//单数据模式

(CSL_UPP_UPCTL_DPWB_FULL 《《 CSL_UPP_UPCTL_DPWB_SHIFT)|//全数传输

(CSL_UPP_UPCTL_DPWA_FULL 《《CSL_UPP_UPCTL_DPWA_SHIFT)|//全数传输

(CSL_UPP_UPCTL_CHN_TWO 《《 CSL_UPP_UPCTL_CHN_SHIFT)|//双通道

(CSL_UPP_UPCTL_MODE_DUPLEX1 《《 CSL_UPP_UPCTL_MODE_SHIFT ));//A发B接

uppRegs-》UPICR= (( 2《《CSL_UPP_UPICR_CLKDIVB_SHIFT)|//通道的时钟分频

(2《《CSL_UPP_UPICR_CLKDIVA_SHIFT)|

// (2《《CSL_UPP_UPICR_STARTA_SHIFT)|//开始信号(仅配置接收)

// (2《《CSL_UPP_UPICR_ENAA_SHIFT))|//使能信号(仅配置接收)

(2《《CSL_UPP_UPICR_STARTB_SHIFT)|//开始信号(仅配置接收)

(2《《CSL_UPP_UPICR_ENAB_SHIFT));//使能信号(仅配置接收);

uppRegs-》UPTCR= ((CSL_UPP_UPTCR_TXSIZEB_64B《《CSL_UPP_UPTCR_TXSIZEB_SHIFT)|//数据发送门限

(CSL_UPP_UPTCR_TXSIZEA_64B《《CSL_UPP_UPTCR_TXSIZEA_SHIFT)|

( CSL_UPP_UPTCR_RDSIZEQ_64B《《CSL_UPP_UPTCR_RDSIZEQ_SHIFT)|

(CSL_UPP_UPTCR_RDSIZEI_64B《《CSL_UPP_UPTCR_RDSIZEI_SHIFT));

uppRegs-》UPIVR= ( (0x0AAA 《《CSL_UPP_UPIVR_VALB_SHIFT)| //空闲状态下固定的数据值

(0x0AAA 《《CSL_UPP_UPIVR_VALA_SHIFT));

uppRegs-》UPIES= ((CSL_UPP_UPIES_EOLQ_SET《《CSL_UPP_UPIES_EOLQ_SHIFT)|//中断标志

(CSL_UPP_UPIES_EOWQ_SET《《CSL_UPP_UPIES_EOWQ_SHIFT)|

(CSL_UPP_UPIES_EOLI_SET《《CSL_UPP_UPIES_EOLI_SHIFT)|

(CSL_UPP_UPIES_EOWI_SET《《CSL_UPP_UPIES_EOWI_SHIFT));

uppRegs-》UPDLB =((CSL_UPP_UPDLB_BA_DISABLE《《CSL_UPP_UPDLB_BA_SHIFT )|//B发A收

(CSL_UPP_UPDLB_AB_ENABLE《《CSL_UPP_UPDLB_AB_SHIFT ));//A发B收

uppRegs-》UPPCR= ((CSL_UPP_UPPCR_EN_ENABLE《《CSL_UPP_UPPCR_EN_SHIFT)|//使能接口

(CSL_UPP_UPPCR_SOFT_ENABLE《《CSL_UPP_UPPCR_SOFT_SHIFT)|

(CSL_UPP_UPPCR_RTEMU_ENABLE《《CSL_UPP_UPPCR_RTEMU_SHIFT));

}

extern void uPP_Loopback()

{

/*******B通道*******/

// setup_uPP_reset();

uppRegs-》UPQD0= (Uint32)&Buffer_Recv;//发送数组地址,8Bit对齐

uppRegs-》UPQD1 = 0x00010000+M*4*3;//128*2*4*2

uppRegs-》UPQD2 = 0x00010000;

// setup_uPP_reset();

/*******A通道*******/

uppRegs-》UPID0= (Uint32)&Buffer_Trans;//接收数组地址,8Bit对齐

uppRegs-》UPID1 = 0x00010000+M*4*3;//128*2*4

uppRegs-》UPID2 = 0x00010000;

}

(2)uPP功能程序

extern void uPP_Resiver()

{

// setup_uPP_reset();

/*******A通道*******/

uppRegs-》UPID0= (Uint32)&Buffer_Recv;//接收数组地址,8Bit对齐

uppRegs-》UPID1 = 0x00010000+M*4*3;//128*2*4

uppRegs-》UPID2 = 0x00010000;

}

extern void uPP_Transfer()

{

// setup_uPP_reset();

/*******B通道*******/

uppRegs-》UPQD0= (Uint32)&Buffer_Recv;//接收数组地址,8Bit对齐

uppRegs-》UPQD1 = 0x00010000+M*4*3;//128*2*4

uppRegs-》UPQD2 = 0x00010000;

}

#endif /* UPP_H_ */

(3)uPP功能主程序

int jj=0;

int kk=0;

//float data;

//int PaRAM_event10_Buffer_Ping();

void main(void)

{

//setup_uPP_receive();

setup_uPP_LoopBack();

for(kk=0;kk《768;kk++)

{

Buffer_Trans[kk]=kk;

}

//uPP_Transfer();

//uPP_Resiver();

uPP_Loopback();

while(1);

}

结语

关于tms320c6748的相关介绍就到这了,如有不足之处欢迎指正。

相关阅读推荐:基于TMS320C6416的USB数据传输系统设计

相关阅读推荐:TMS320C54xx、LV320AIC24型多媒体数字信号

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1613

    浏览量

    89585
  • TMS320C6748
    +关注

    关注

    3

    文章

    37

    浏览量

    13010
收藏 人收藏

    评论

    相关推荐

    TMS320C6748开发例程使用手册

    TMS320C6748开发例程使用手册下载:attach://219928.pdf
    发表于 11-15 21:48

    TMS320C6748/C6748 DSP开发板——广州创龙

    `1开发板简介 TL6748-EVM是一款基于广州创TMS320C6748核心板SOM-TL6748设计的浮点DSP C6748开发板,它为用户提供了SOM-TL
    发表于 03-05 16:58

    【TL6748 DSP申请】基于TMS320C6748的视频监控系统

    申请理由:TMS320C6748可以接CMOS摄像头,有USB接口,通过USB接口将数据上传到PC机,实现实时监控。项目描述:想做一个基于TMS320C6748的视频监控系统,通过US
    发表于 09-10 11:08

    【TL6748 DSP申请】广州创龙TMS320C6748 DSP开发板免费申请试用

    申请理由:初步了解认识TMS320C6748 DSP开发板,为以后更深入学习做准备项目描述:熟悉了解TMS320C6748 DSP开发板,学习TMS320C6748 DSP开发板基础知识,为以后更好的使用
    发表于 09-10 11:12

    【TL6748 DSP申请】基于TMS320C6748高速DSP信号处理模块设计

    申请理由:使用TMS320C6748开发板对高速DSP信号处理,该模块可以再高速下避免干扰,充分发挥出该TMS320C6748高速DSP信号处理模块的性能。项目描述:使用TMS320C6748开发板
    发表于 09-10 11:13

    请问TMS320C6748 pinmux tool在哪下载?

    TMS320C6748 pinmux tool在哪下载?在官网找到的没有C6748器件。
    发表于 07-31 09:02

    请问如何使用官方提供的tms320c6748芯片例程?

    您好,我已从贵官方网站下载了TMS320C6748的例程,我想用它调试一下UART接口,不知如何使用?各个命名的文件夹的功能怎样的?怎么样提取出主程序和相关的函数程序呢?
    发表于 08-02 09:29

    TMS320C6748相关资料

    最近公司启动一个项目,用到TMS320C6748这款U。我在官网找了许久,也找不到一些对软件开发(主要驱动)有帮助的资料。TMS320C6748有没有固件支持包,还有使用手册之类的资料。求提供下载连接!
    发表于 08-07 06:04

    DSP TMS320C6748 SATA接口枚举失败

    各位大神,小弟初次设计TMS320C6748 SATA接口,我将startWare中的SATA枚举例程按步骤加载SATA.out文件,然后打开串口调试软件ZOC,结果是枚举失败,跪求各位大神帮忙,为什么出问题?另外前段时间和一网友讨论,他说需要安装rtfs软件,需要安装吗
    发表于 10-30 08:55

    请问TMS320C6748参考设计

    TMS320C6748有原理图参考设计吗? 非常感谢!
    发表于 05-22 08:54

    TMS320C6748/OMPL138的相关资料推荐

    标题基于DSP的SATA硬盘读写应用TMS320C6748/OMPL138是一款性价比很高的DSP,拥有丰富的外设,SATA、UPP、MCBSP、MCASP、EMAC、UART、EMIF等等,测试
    发表于 02-09 07:03

    TMS320C6748 Fixed/Floating-Poi

    for the TMS320C6748Fixed/Floating-Point DSP . For more detailed information, see the TMS320C6748 Fixed/Floating-PointDSP data manual (l
    发表于 12-07 21:43 14次下载

    基于StarterWare的TMS320C6748裸机程序开发入门详解教程

    基于StarterWare的TMS320C6748裸机程序开发入门详解教程
    发表于 09-06 16:03 64次下载

    TMS320C6748 TMS320C6748 Fixed/Floating Point DSP

    电子发烧友网为你提供TI(ti)TMS320C6748相关产品参数、数据手册,更有TMS320C6748的引脚图、接线图、封装手册、中文资料、英文资料,TMS320C6748真值表,
    发表于 10-15 16:19
    <b class='flag-5'>TMS320C6748</b> <b class='flag-5'>TMS320C6748</b> Fixed/Floating Point DSP

    TMS320C6748TMS320C6747芯片对比

    本文主要是关于TMS320C6748TMS320C6747的相关介绍,并着重对TMS320C6748TMS320C6747进行了详尽的对
    的头像 发表于 09-07 15:17 1.6w次阅读
    <b class='flag-5'>TMS320C6748</b>和<b class='flag-5'>TMS320</b>C6747芯片对比