tms320c6748异步接口访问相关问题文档格式.docx
- 文档编号:18431675
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:10
- 大小:20.40KB
tms320c6748异步接口访问相关问题文档格式.docx
《tms320c6748异步接口访问相关问题文档格式.docx》由会员分享,可在线阅读,更多相关《tms320c6748异步接口访问相关问题文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
C6748能实现引脚对引脚兼容,使客户能采用同一软件和硬件平台扩展整个产品系列;
128KB至448KB的片上存储器可减少外部存储器接入,并降低功耗。
德州仪器(TI)推出浮点功能的全新高性能处理器——TMS320C6748,这款芯片也是业界功耗最低的浮点数字信号处理器(DSP),可充分满足高能效、连通性设计对高集成度外设、更低热量耗散以及更长电池使用寿命的需求。
不仅具备通用并行端口(uPP),同时也是TI首批集成串行高级技术附件(SATA)的器件。
广州创龙推出的TL6748-EVM评估套件为开发者使用TITMS320C6748处理器提供了完善的软件开发环境,系统支持:
裸机、SYS/BIOS、DSP/BIOS。
提供参考底板原理图,DSPC6748入门教程、丰富的Demo程序、完整的软件开发包,以及详细的C6748系统开发文档,方便用户快速评估TMS320C6748处理器、设计系统驱动及其定制应用软件,也大大降低产品开发周期,让客户产品快速上市。
主要面向电力、通信、工控、音视频处理等数据采集处理行业。
TL6748-EVM评估套件是一个功能丰富的开发板,为嵌入式设计人员提供快捷简单的实践方式来评估TMS320C674x系列处理器,是一个完整的实验评估平台。
tms320c6748异步接口访问相关问题OMAPL138有多种地址数据总线如I2C、SPI、UART,这些接口能够满足一般的低速传送要求,但是在高速协同中却不能满足数据传输的需求。
我们知道,并行数据传输肯定要比串行传输快,TMS320C6748平台上搭载了uPP(通用并行IO)。
在Ti公司的66系列DSP中搭载了更高速的RapidIO接口,最高速率达10Gbps,相比TCPIP协议软件开销较低,与FPGA互联方便,是一种比较有前景的通信技术。
1、uPP硬件IO资源,通信时需要用到的管脚:
由上图可看出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来实现的。
UPCTL寄存器中的CHN、IWA、IWB决定A、B通道与DATA[15:
0]的关系。
IWA为高,A通道使用16bit数据,反之则为8bit数据,IWB同理;
CHN为高,A、B通道均使能,反之只使用A通道。
2、时钟选择
无论是同步还是异步,都必须有时钟源。
uPP是同步的,发送方提供时钟源。
传输模式使用内部时钟:
I/OClock=TransmitClock/(2×
(UPICR.CLKDIVn+1))
上图的transmitClock通过查看相关的手册可知是锁相环得出的,来自PLL0_SYSCLK2,再将其二分频后再经过(UPICR.CLKDIV+1)分频,得到CLOCKpin的频率。
3、数据格式
uPP支持任何字长介于8~16bit的数据,显然,要操作8bit、16bit很简单,那么对于数据字长介于8bit~16bit之间的数据应该怎么操作呢。
下图给出了12bit数据的打包方式。
Right-Justify,ZeroExtend–很简单,就是字面上的意思,右对齐,高位空出的位清零。
Right-Justify,SignExtend–右对齐,高位的状态取决于最高bit的状态,当为1那么所有空出的高位补1,例如ABCh(101010111100),最高位为1,转换为16bit数据为FABCh。
Left-Justify,ZeroFill–左对齐,低位空出的位补零。
4、模式选择
5、数据触发方式
单倍数据传输:
(SDR)数据信号只能在时钟上升沿或者下降沿触发有效
双倍数据传输:
(DDR)数据信号在时钟上升沿和下降沿都触发有效
uPP具有2个独立的DMA模块,分别称为DMA模块I,DMA模块Q。
通道A、B在传输数据时是通过DMA模块来实现的,DMA模块与通道的对应关系如下图:
6、DMA专用术语WindowsAddress、ByteCount、LineCount、LineOffsetAddress在内存中关系。
上图很清楚的告诉我们WindowsAddress只指其起始地址,LineOffsetAddress是指其偏移地址。
然后一个疑问是为什么在图中看来,Line1和Line2永远都分开着,Line与Line之间是连续存放的还是无间隙的?
仔细阅读datasheet会发现,在述说这段的文字中总强调起始地址最好设置为alignedtoa64-bit(thatis,the3LSBsmustequal0)。
再一琢磨,如果起始地址达到了alignedtoa64-bit的要求,那Line与Line就是无缝连接了。
而且在实际应用中,Line与Line之间都是连续存放的,因为配置DMAchannel的寄存器UPTCR只提供了64Bytes128Bytes256Bytes选项。
7、时序图
(1)单倍数据发送
(2)单倍数据接收
(3)双倍数据接收
上图是单通道接收SDR模式,看似好好的时序图,START信号高电平使能整个uPP接收,但是datasheet中却表示START的极性是可以通过STARTxbitinUPICR来修改的,即START可以低电平触发使能uPP。
给人一种感觉:
start、enalbe、wait信号又是可以禁止又是可以使能的,很容易迷惑人。
到底怎么配置能达到通信要求,参考时序图,还是发送方接收方不一样配置?
回头一想,start、enable的极性都可以自己定义,只要发送和接收配置成一致就行了,因为uPP大多时候用于与adc的无缝连接,虽然adc都是高电平触发使能的,但也没准有的adc是下降沿使能触发的。
即adc也可能是高电平使能也可能是低电平使能。
start、enable信号极性使能的可配置型使得应用adc更加自由不再拘束了。
8、程序
(1)uPP初始化文件
/*
*uPP.h
*
*Createdon:
2015-7-2
*Author:
JJS
*/
#ifndefUPP_H_
#defineUPP_H_
#defineM256
Uint32Buffer_Trans[1000];
Uint32Buffer_Recv[1000];
externvoidsetup_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));
}
voidsetup_uPP_LoopBack(void)
delay(300);
uppRegs-》UPCTL=0;
uppRegs-》UPDLB=0;
uppRegs-》UPCTL=((CSL_UPP_UPCTL_IWB_16BIT《《CSL_UPP_UPCTL_IWB_SHIFT)|//数据传输16Bit
(CSL_UPP_UPCTL_DRB_SINGLE《《CSL_UPP_UPCTL_DRB_SHIFT)|//单数据模式
(CSL_UPP_UPCTL_DPWB_FULL《《CSL_UPP_UPCTL_DPWB_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_RDSIZEQ_64B《《CSL_UPP_UPTCR_RDSIZEQ_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收
externvoiduPP_Loopback()
/*******B通道*******/
//setup_uPP_reset();
uppRegs-》UPQD0=(Uint32)//发送数组地址,8Bit对齐
uppRegs-》UPQD1=0x00010000+M*4*3;
//128*2*4*2
uppRegs-》UPQD2=0x00010000;
/*******A通道*******/
uppRegs-》UPID0=(Uint32)//接收数组地址,8Bit对齐
uppRegs-》UPID1=0x00010000+M*4*3;
//128*2*4
uppRegs-》UPID2=0x00010000;
(2)uPP功能程序
externvoiduPP_Resiver()
externvoiduPP_Transfer()
uppRegs-》UPQD0=(Uint32)//接收数组地址,8Bit对齐
#endif/*UPP_H_*/
(3)uPP功能主程序
intjj=0;
intkk=0;
//floatdata;
//intPaRAM_event10_Buffer_Ping();
voidmain(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型多媒体数字信号
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- tms320c6748 异步 接口 访问 相关 问题
![提示](https://static.bdocx.com/images/bang_tan.gif)