DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 441|回复: 0
打印 上一主题 下一主题

TMS320VC5402与模拟芯片TLC320AD50C接口设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 20:13:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  
         
    [table]

[tr]

摘 要:介绍了TI公司的信号处理器TMS320VC5402串行口的主要特点,及其和音频模拟接口芯片TLC320AD50C的结构及其使用注意事项。详细讲述了两者的硬件连接及软件实现。
关键词: 数字信号处理器 TMS320VC5402 音频模拟接口芯片 TLC320AD50C
[/td][/tr]
[tr]
[td]
目前发展起来的高速数字信号处理器DSP在语音处理系统中得到了广泛应用。TMS320VC5402是TI公司生产的一种性能价格比较高的16位定点DSP。它的指令周期为10ns,具有运算速度快、通用性强、接口连接方便等特点,尤其适合在语音编码和通信中应用。
TLC320AD50C是TI公司生产的Σ-Δ型A/D、D/A音频接口芯片,为V3.4调制解调器以及音频应用提供了通用的模拟接口,可以直接与TMS320VC5402相连。本文详细介绍TLC320AD50C与TMS320VC5402的硬件接口连接和软件设计。
[/td][/tr]
[tr]
[td]1 TMS320VC5402的McBSP

TMS320VC5402有两个McBSP多通道缓存串行口。McBSP提供了全双工的通信机制,以及双缓存的发送寄存器和三缓存的接收寄存器,允许连续的数据流传输,数据长度可以为8、12、16、20、24、32;同时还提供了A-律和μ-律压扩,多达128个通道的发送和接收。McBSP通过7个引脚使得一个数据通路和一个控制通路与外部设备相连。数据经McBSP与外设的通信通过DR和DX引脚传输,控制信号则由CLKX、CLKR、FSX、FSR等四条引脚来实现。CPU和DMA控制器可以读取DRR1,2的数据实现接收,并且可以对DXR1,2写入数据实现发送。接收和发送帧同步脉冲既可以由内部采样速率产生器产生,也可以由外部脉冲源驱动。当FSR和FSX都为输入时FSXM=FSRM=0,外部脉冲源驱动,McBSP分别在CLKR和CLKX的下降沿检测,且DR的数据也在CLKR的下降沿进行采样。而当FSR和FSX都为输出时,则在CLKX和CLKR的上升沿进行检测。
16-bit的串行口控制寄存器SPCR1,2和引脚控制寄存器PCR用来配置串行口;接收控制寄存器RCR1,2和发送控制寄存器XCR1,2分别设置接收和发送的不同参数,如帧长度、每帧的数据长度等。[/td][/tr]
[tr]
[td]


[/td][/tr]
[tr]
[td]
图1是当FSR和FSX为输出时McBsp的发送和接收时序图。另外,McBSP还可以通过R/XDAtdLY 设置接收和发送数据延迟,通过R/XPHASE设置接收和发送的多阶段。
[/td][/tr]
[tr]
[td]2 音频模拟接口芯片TLC320AD20C

TLC320AD50C是TI生产的Σ-Δ型单片音频接口芯片。它集成了16位A/D和D/A转换器,采样速率最高可达22.05kb/s,其采样速率可通过DSP编程来设置。在TLC320AD50C内部DAC之前有插值滤波器,而在ADC之后有抽样滤波器,接收和发送可以同时进行。TLC320AD50C与TMS320VC5402之间采用串行通信方式,有两种数据传输模式:16位传输模式和15+1位传输模式。若采用15+1位传输模式,其中的D0位用来表示二次通信。TLC320AD50C的数据传输时序如图2所示。[/td][/tr]
[tr]
[td]


[/td][/tr]
[tr]
[td]
该器件采用两组模拟输入和两组模拟输出,有足够的共模抑制能力,可以工作在差分或单端方式。当模拟输出时,输出端通常接600Ω的负载。
TLC320AD50C的工作由7个控制寄存器控制。其中,控制寄存器1:软件复位以及DAC的16位或15+1位模式选择。
控制寄存器2:ADC的16位或15+1位模式选择。
控制寄存器4:选择输入和输出放大器的增益;通过选择N确定采样速率fs;选择PLL,如果选择PLLD7=0,则fs=MCLK/128N,否则D7=1,fs=MCLK/512N。其中,N=1-8。
该器件工作方式的设定和采样频率均可以由DSP编程来实现,所以TLC320AD50C使用灵活、设置容易、与TMS320VC5402的连接易于实现。
[/td][/tr]
[tr]
[td]3 TMS320VC5402与TLC320AD50C硬件连接及软件实现

3.1 硬件连接
根据图1和图2的时序,则容易实现TLC320AD50C与TMS320VC5402的硬件连接,如图3所示。[/td][/tr]
[tr]
[td]


[/td][/tr]
[tr]
[td]TLC320AD50C的MCLK外接8.192MHz的晶振,TMS320VC5402的FSX和FSR由TLC320AD50C设置。如果选择D7=0,N=8,则采样速率为8kHz。

3.2 通信协议
TLC320AD50C的通信有两种格式:一次通信格式和二次通信格式。
一次通信格式的16位都用来传输数据。DAC的数据长度由寄存器1的D0位决定。启动和复位时,缺省值为15+1位模式,最后一位要求二次通信。如果工作在16位传输模式,则必须由FC产生二次通信请求。
二次通信格式则用来初始化和修改TLC320AD50C内部寄存器的值。在二次通信中可通过向DIN写数据来初始化。
格式如下:[/td][/tr]
[tr]
[td]


[/td][/tr]
[tr]
[td]
系统复位后,必须通过DSP的DX口向TLC320AD50C的DIN写数据,如果采用一片TLC320AD50C,只需初始化其寄存器1、寄存器2和寄存器4。
由于通信数据长度为16位,初始化时应通过RCR1和XCR1设置McBSP的传输数据长度为16。考虑到TLC320AD50C复位后至少经过6个MCLK才可以脱离复位,故可以在此时间内初始化DSP的串行口。

3.3 软件实现
SERIAL_INIT
LD #AIC_DPDP 为AIC的复位初始化DP
ST #K_RESET AIC_IN_RESET
PORTW #AIC_IN#RESET K_AIC_ADDR 复位AIC
Need at least 6 cycles to pull the aic out of reset
STM #K_SERIAL_REtr SPCR1
STM #K_SERIAL_RETX SPCR2
初始化串行口控制寄存器1,2复 位串行口
STM #K_SERIAL_OUtrEtr SPCR1
STM #K_SERIAL_OUtrETX SPCR2
使串行口脱离复位
RSBX INTM INTM=0,打开所有的中断
LD #0 DP
ORM #K_BRINT0|K_BXINT0IMR
打开BRINT0和BXINT0
LD #AIC_DPDP
STM # K_BRINT0 IFR 清除标志
ST #K_ORESET AIC_OUT_RESET
PORTW #AIC_OUT_RESET K_AIC_ADDR
AIC脱离复位
STM RCR1#K_RFW
初始化接收控制寄存器1,设
置接收数据长度为16位
STM XCR1#K_XFW
初始化发送控制寄存器1,设
置发送数据长度为16位
STM PCR#K_SERIAL
设置为串行口工作方式,而不
是通用I/O方式
STM #K_DATA DXR1
向DIN写数据,引起二次通信,
等待串行口中断
IDLE
在BXINT0的中断服务程序里,向DXR1写入寄存
器的值。
[/td][/tr]
[tr]
[td]参考文献
1 TMS320C54xDSP Applications Guide.Texas Instuments, 1999
2 TMS320C54xDSP Enhanced Peripherals.Texas Instuments, 1999
[/td][/tr]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-19 15:26 , 耗时 0.096102 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表