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

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

3天内不再提示

MAX195 ADC与TMS320C3X评估模块的接口

星星科技指导员 来源:ADI 作者:ADI 2023-01-23 10:59 次阅读

MAX195和MAX194模数转换器ADC)与TMS320C3X评估模块接口的应用笔记。给出了示例演示代码。演示软件配置 TMS320C30,使 FSR1 和 DR1 为输入,CLKR1 和 XF1 为输出。为了读取MAX194/MAX195,软件将XF1输出短暂驱动为低电平。演示软件轮询串行接收器,直到收到完整的帧。由于这只是一个接口演示,软件只需将接收到的数据字写入 EVM 主机数据端口即可。

概述

MAX195 16位ADC可通过串行接口连接至德州仪器TMS320C30 DSP。该接口使用四根电线加接地。本应用笔记说明如何将MAX194/MAX195评估板连接至TMS320C3X评估模块。

示例程序是使用 TMS320C3X/4X COFF 汇编程序版本 4.50 和 TMS320C3X/4F COFF 链接器版本 4.50(1987 年至 1992 年版权归德州仪器公司所有)组装的。

MAX194/MAX195评估板与TMS320C3X EVM接口

Maxim的MAX194/MAX195评估板可与德州仪器TMS320C3X评估模块接口,如下所示:

根据表1设置MAX194/MAX195评估板跳线。

将2 x-5引脚伯格条焊接到MAX194/MAX195评估板J3区域。这 PC 板已接线,如表 2 所示。

将+5V电源连接至MAX194/MAX195评估板。

连接 TMS320C3X EVM 和 MAX194/MAX195 之间的 10 针带状电缆 评估板。

运行演示软件。

跳线 位置 功能
JU1 Closed 将MAX195 SCLK接地
JU3 EXT TMS320 CLKR1驱动MAX195转换时钟
JU4 CS = 接地 将MAX195/CS接地
JU5 QSPI TMS320 XF1 驱动 MAX195 CONV。
JU6 Open MAX195复位/校准命令
JU7 UNI 或 OPEN 选择单极或双极传递函数
Pin MAX195 TMS320 Pin MAX195 TMS320
1 DGND GND 2 Active-Low EOC FSR1
3 Not used 4 DOUT DR1
5 Not used 6 Not used
7 Not used 8 Active-Low CONV XF1
9 CONCLK CLKR1 10 DGND GND

工作原理

演示软件(请参阅下面的程序代码列表)配置 TMS320C30,以便 FSR1 和 DR1 为输入,CLKR1 和 XF1 为输出。该软件使用 XF1 输出来启动转换。XF1脉冲驱动MAX194/MAX195转换启动输入。CLKR1输出为MAX194/MAX195提供转换时钟。MAX194/MAX195的数据输出由DR1输入端接收。FSR1帧启动信号由MAX194/MAX195 EOC(转换结束)信号驱动,该信号标志着串行帧的开始。

为了读取MAX194/MAX195,软件将XF1输出短暂驱动为低电平。演示软件轮询串行接收器,直到收到完整的帧。由于这只是一个接口演示,软件只需将接收到的数据字写入 EVM 主机数据端口即可。

TMS320C3x/4x COFF 汇编程序,版本 4.50

版权所有 (c) 1987-1992,德州仪器公司

TMS320C30 串行端口初始化
项目:MAX195 评估板与 TMS320C3X EVM
项目文件接口 = MAX195I

文件名 = MAX195I。ASM
命令文件 = MAX195I。CMD

使用以下命令进行编译:

asm30 MAX195I -l
lnk30 MAX195I.CMD

引脚分配:

pYYBAGO9HCeATvmmAAAj75RRt_E515.png

注意:跳线 JU8 必须打开
,CS 必须连接到 GND

时序图:

poYBAGO9HC6AfgISAAAgHPtGp_k068.png

最快时钟 1MHz = (1 / 1000 nsec)
最小接收器定时器周期 = 4H

接收计时器周期 = 4 = 0.9375MHz
(系统时钟频率 = 30MHz)

字图:

poYBAGO9GsqAL-wJAAAHbsfWtug791.gif?imgver=1

 .sect    "vectors" 
 reset .word  init 
 int0 .word  init 
 int1 .word  init 
 int2 .word  init 
 int3  .word  init 
 xint0 .word  init 
 rint0  .word  init 
 xint1 .word  init 
 rint1  .word  init 
 tint0 .word  init 
 tint1  .word  init 
 dint .word  init 
 
   .data       
    STCK  .word  0809F00H ; initial stack pointer 
           
    CTRL .word  0808000H ; peripheral interface base address 
    HOST_DATA  .word  0804000H ; host data port address 
              
    IOF_AMASK  .set  0000EH ; clear all XF1 bits in IOF register 
 IOF_SET_XF1  .set  00060H ; make XF1 pin an output; value = 1 
 IOF_RESET_XF1  .set  00020H ; make XF1 pin an output; value = 0 
 IOF_INPUT_XF1  .set  00080H ; make XF1 pin an input; read its value 
           
 FS_AMASK  .set  0F0FFH ; mask for an FS pin 
 SET_FS  .set  00600H ; make FS a high output 
 RESET_FS  .set  00200H ; make FS a low output 
 GET_FS  .set  00800H ; input mask for FS pin 
           
 D_AMASK  .set  0FF0FH ; mask for a Data pin 
 SET_D  .set  00060H ; make D a high output 
 RESET_D  .set  00020H ; make D a low output 
 GET_D  .set  00080H ; input mask for D pin 
           
 CLK_AMASK  .set  0FFF0H ; mask for a CLK pin 
 SET_CLK  .set  00006H ; make CLK a high output 
 RESET_CLK  .set  00002H ; make CLK a low output 
 GET_CLK  .set  00008H ; input mask for CLK pin 
 
   Serial Port Global Control Register
 
 SerGlob1  .word 08100280H
 
 08000000H:  RRESET - reset / enable the receiver 
 0080H:  RCLKSRCE - use internal receive clock (CLKR pin is an output) 
 0200H: 
  RVAREN - Receiver Variable Data Rate 
 00100000H:  RLEN = 2 bytes (16 bits) 
 
   Pin Assignment Register for FSX, CLKX, DX
 
 SerPrtX1   .word 00H
 
   assign CLKX pin to general I/O 
   make CLKX an input 
   assign DX pin to general I/O 
   make DX an input 
   assign FSX pin to general I/O 
   make FSX an input 
 
   Pin Assignment Register for FSR, CLKR, DR
 
 SerPrtR1   .word 0111H
 
 
 0001H:  assign CLKR pin to serial port clock 
 0010H:  assign DR pin to serial port receive data 
 0100H:  assign FSR pin to serial port frame start 
 
   Serial Port Timer Global Control Register
 
 SerTim1  .word 03C0H
 
 
  XHLD 0=hold transmit timer 
  XC/P  0=pulse mode 
  XCLKSRC 0=CLKX pin increments the counter 
 0040H:  RGO=1 --  start the receive timer 
 0080H:  RHLD 1=run receive timer 
 0100H:  RC/P  1=clock (50% duty cycle) 
 0200H:  RCLKSRC  1=use 7.5MHz time base (30MHz system clock/4) 
 
   Serial Port Timer Period Register
 
 SerTim1Val   .word 040000H
 
 
 0 H:  Transmit Counter Period 
 4 H:  Receive Counter Period 
 
   Receive Timer Period = 4 = 0.9375MHz
 
     .text
 init 
 
 
 LDI  0,ST  ; initialize status register 
 LDI  0,DP  ; point data page pointer into rom 
 LDI  @STCK,SP  ; initialize stack pointer 
 
   ; start with XF1 high
   ; 
 
 
 LDI  IOF,R1  ; get XF1 settings 
 AND  IOF_AMASK,R1  ; don't touch XF0 settings 
 OR  IOF_SET_XF1,R1  ; make XF1 output a high value 
 LDI  R1,IOF  ; write new XF1 settings 
 
   ; initialize serial port
   ; 
 
 
 LDI  @CTRL,AR0  ; peripheral interface address 
 LDI  @HOST_DATA,AR1  ; host interface address 
        
 LDI  @SerTim1Val,R0     
 STI  R0,*+AR0(86)  ; serial ch1 timer period 
        
 LDI  @SerGlob1,R0     
 STI  R0,*+AR0(80)  ; serial global register 
        
 LDI  @SerPrtX1,R0     
 STI  R0,*+AR0(82)  ; serial transmit control register 
        
 LDI  @SerPrtR1,R0     
 STI  R0,*+AR0(83)  ; serial receive control register 
        
 LDI  @SerTim1,R0     
 STI  R0,*+AR0(84)  ; serial ch1 timer register 
 
 XF1 signal is named Active-Low CONV to MAX195 EVKIT
 
 This is how we set XF1:
 
 
 LDI  IOF,R1  ; get XF1 settings 
 AND  IOF_AMASK,R1  ; don't touch XF0 settings 
 OR  IOF_SET_XF1,R1  ; make XF1 output a high value 
 LDI  R1,IOF  ; write new XF1 settings 
 
 This is how we clear XF1:
 
 LDI  IOF,R1  ; get XF1 settings 
 AND  IOF_AMASK,R1  ; don't touch XF0 settings 
 OR  IOF_RESET_XF1,R1  ; make XF1 output a low value 
 LDI  R1,IOF  ; write new XF1 settings 
 
 next_sample:
 
   generate conversion start pulse
 
 
 LDI IOF,R1  ; get XF1 settings 
 AND IOF_AMASK,R1  ; don't touch XF0 settings 
 OR IOF_RESET_XF1,R1  ; make XF1 output a low value 
 LDI R1,IOF  ; write new XF1 settings 
 AND IOF_AMASK,R1  ; don't touch XF0 settings 
 OR  IOF_SET_XF1,R1  ; make XF1 output a high value 
 LDI R1,IOF  ; write new XF1 settings 
 
   wait until serial receive is complete
 
 loop
 
 
 LDI *+AR0(80),R2  ; read global control register 
 AND 01H,R2  ; test the receiver ready bit 
 BZ loop  ; loop until data is received 
 
   get the received data
 
 LDI *+AR0(92),R3  ; copy received data into R3 
 
 this demo application does no processing --
 it just makes the value available to the
 TMS320C3X EVM's host.
 
 STI R3,*+AR1(0) ; send R3 to host 
 
 LDI  100,R0  ; delay 
 
 wait_loop:
 
 
 SUBI 1,R0 
 BNZ  wait_loop 
 
 BR  @next_sample  ; this program runs forever 
 
 .end 

poYBAGO9HEKANxIPAAAWofgTopU861.png

图1.图解的。

poYBAGO9GsyAVnx7AAAqksVc2HQ752.gif?imgver=1

图2.定时。

审核编辑:郭婷

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

    关注

    14

    文章

    2468

    浏览量

    71871
  • 德州仪器
    +关注

    关注

    123

    文章

    1706

    浏览量

    140690
  • adc
    adc
    +关注

    关注

    98

    文章

    6495

    浏览量

    544447
收藏 人收藏

    评论

    相关推荐

    TMS320C3x Users Guide中的Table 5-2的Case 4中,为什么符号位sIEEE由1变为0?

    如下图所示,在TMS320C3x Users Guide中的Table 5-2的Case 4中,为什么符号位sIEEE由1变为0?
    发表于 11-22 07:40

    TMS320C3x怎么才能进行boot?

    TMS320C3x如何boot?
    发表于 08-06 23:19

    TMS320VC33 pdf,TMS320VC33 data

    four-level-metal CMOS (TImeline) technology. The TMS320VC33 is part of the TMS320C3x generation of DSPs from Texas Instruments. The
    发表于 10-14 10:08 40次下载

    TMS320C3xC和汇编语言混合编程及中断的C语言实现

    文章在简要介绍了TMS320C3x系列芯片的基础上,给出了如何使用C语言和汇编语言混合编程来开发应用程序的方法和一些编程实例。然后给出了TMS320C3x系列芯片的中断机制,同时举例说
    发表于 04-24 15:39 21次下载

    TMS320C3x DSP的C和汇编语言混合编程及中断的C

    文章在简要介绍了TMS320C3x系列芯片的基础上,给出了如何使用C语言和汇编语言混合编程来开发应用程序的方法和一些编程实例.然后给出了TMS320C3x系列芯片的中断机制,同时举例说明了
    发表于 04-28 13:45 40次下载

    浮点除法运算在TMS320C3X DSP中的实现

    TMS320C3X中浮点数除法的实现方法进行了详细讨论,并给出汇编子程序。浮点数除法首先利用牛顿迭代法求出除数的倒数,然后再与被除数相乘,从而得出结果。该设计思想已经应
    发表于 08-05 16:34 17次下载

    Interfacing the MAX195 ADC to

    ) to the TMS320C3X evaluation module. Example demo code is given. The demo software configures the TMS320C30 so that FSR1 and DR1 are in
    发表于 05-08 09:16 1919次阅读
    Interfacing the <b class='flag-5'>MAX195</b> <b class='flag-5'>ADC</b> to

    TMS320C3x DSP和PC机的异步串行通信设计

    【摘 要】在简要介绍TMS320C3x系列芯片的基础上,主要介绍了在数字信号处理系统中,DSP与上位PC机异步串行通信的软硬件解决方案。   
    发表于 05-21 21:38 1137次阅读
    <b class='flag-5'>TMS320C3x</b> DSP和PC机的异步串行通信设计

    TMS320C5402与MAX147的接口设计(部分源程序)

    TMS320C5402与MAX147的接口设计(部分源程序) 介绍TMS320C5402 DSP与A/D芯片MA X147的
    发表于 10-16 17:58 917次阅读
    <b class='flag-5'>TMS320C</b>5402与<b class='flag-5'>MAX</b>147的<b class='flag-5'>接口</b>设计(部分源程序)

    单片机89C51与A/D转换器MAX195接口设计

    单片机89C51与A/D转换器MAX195接口设计    MAX195是16位逐次逼近方式的ADC。它将高精度、高速
    发表于 12-03 10:26 2328次阅读
    单片机89<b class='flag-5'>C</b>51与A/D转换器<b class='flag-5'>MAX195</b>的<b class='flag-5'>接口</b>设计

    TMS320C6670_评估模块用户指南

    TMS320C6670 评估模块用户指南,感兴趣的小伙伴们可以看看。
    发表于 08-08 15:17 11次下载

    TMS320C54x评估板(EVM)操作的详细描述

    该文档描述了TMS320C54X评估模块(EVM)的板级操作。TMS320C54X EVM是一个PC-AT插件卡,可以让您评估某些
    发表于 04-27 11:31 2次下载
    <b class='flag-5'>TMS320C54x</b><b class='flag-5'>评估</b>板(EVM)操作的详细描述

    MAX187与TMS320C3X评估模块接口

    本应用笔记介绍如何将MAX187连接至TMS320C3X DSP EV模块。本应用笔记也可作为将其他Maxim IC连接至TMS320 EV模块
    的头像 发表于 01-11 14:49 1072次阅读
    <b class='flag-5'>MAX</b>187与<b class='flag-5'>TMS320C3X</b><b class='flag-5'>评估</b><b class='flag-5'>模块</b><b class='flag-5'>接口</b>

    ADC TLC5540/10与DSP入门套件TMS320C54x接口

    电子发烧友网站提供《ADC TLC5540/10与DSP入门套件TMS320C54x接口.pdf》资料免费下载
    发表于 10-08 11:50 0次下载
    <b class='flag-5'>ADC</b> TLC5540/10与DSP入门套件<b class='flag-5'>TMS320C54x</b>的<b class='flag-5'>接口</b>

    TMS320C3x DSP入门套件用户指南

    电子发烧友网站提供《TMS320C3x DSP入门套件用户指南.pdf》资料免费下载
    发表于 10-31 09:53 0次下载
    <b class='flag-5'>TMS320C3x</b> DSP入门套件用户指南