2758|6

91

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

信号接收 发送问题 [复制链接]

最近因为项目需要,需要解决一个问题,主要思路是:通过TI DSP2812与DAC芯片连接产生4KHZ左右的正弦波,然后将4KHZ的正弦波经过AD转换再传回到DSP2812中,检查数据的变化(主要是检测相位变化)。我想选择一款芯片,看见有款TLV320AIC23的芯片,可以实现AD、DA集成于一个芯片上,可是感觉太复杂了,我想询问一下TI有没有其他型号的芯片可以实现我上面说的功能?谢谢!
             还有一点小疑问:DSP发送数据时通过外扩DA芯片产生4KHZ正弦波,接收时用DSP自带的AD接收数据,是不是没法实现?(我这样设计了,试了下,感觉不对,可是还是不太明白原因。)

最新回复

我倾向于方案2, “结果是每次不论EVA Timer频率多高,都是先进行Timer0中断,并且都是基本上两三次Timer0中断后才进入到EVA Timer中断。” Timer0中要这么长的运算时间?参考例程sw_prioritized_interrupts让EVA Timer中断的优先级提高。  详情 回复 发表于 2012-4-11 18:03
 
点赞 关注

回复
举报

569

帖子

0

TA的资源

五彩晶圆(中级)

沙发
 
芯片可以到网上去找看看什么芯片能够符合要求。

“DSP发送数据时通过外扩DA芯片产生4KHZ正弦波,接收时用DSP自带的AD接收数据,是不是没法实现?”

正弦波2812的PWM就可以产生,不需要DA芯片而且2812的PWM精度高。可以用AD接收采样,只要采样频率够高就可以。你什么地方出问题了?
 
 

回复

91

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
我现在不太清楚的就是您提出来的问题,我把我的思路给您说一下,您帮我分析一下吧!
方法一、边发送边接收(缺点:接收采样率不是信号的两倍以上)
      设置定时器Timer0的定时时间T=1/13.6KHZ,则每隔T的时间发送一个正弦数据,共计发送34个数据,则13.6KHZ/34=4KHZ,这样就实现了4KHZ的正弦波。
     34个数据组成一个标准的正弦波 示例程序:
          angle=0;
        for(k=0;k<34;k++)
        {
             angle_diff = 2*Pi / 34        ;/* 每个点与上一点的角度差 */
             xishu1[k]=5194300* sin(angle+0);//偏移角度为0度
           }
         每次定时器时间到时就发送一个数据,同时在发送中断里面开启2812自带的AD功能,实时采样发送的数据:
           interrupt void  TINT0_ISR(void)      // CPU-Timer 0
                    {  
                         1、进入定时器中断后发送数据
             2、开启AD功能,接收发送的数据(发送端口连接AD端口)
          AD开启程序:
              while(AdcRegs.ADCST.bit.SEQ1_BSY==0)                                     {                                                             AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;   //外设级   中断软件启动AD
             }         
                               }

这种就是我现在弄的程序,虽然精度不高,但是却能接收到数据,所以现在采用的是这种
 
 
 

回复

91

帖子

0

TA的资源

一粒金砂(高级)

4
 
方案二、两个定时器,一个定时器发送数据使用;另一个作为AD采样用(这样可以实现采样频率两倍,可是没有实现)
      定时器Timer0作为发送数据用,方法就是上面描述的;
      定时器EVA Timer作为AD开启作用
  这个方案的总体思路是:我认为2812的AD采样频率不是固定的,通过定时器设置采样率(不知道这句的理解对不对?)。将EVA Timer设置为16KHZ以上(信号频率是4KHZ),定时器Timer0还是13.6KHZ。设置两个中断:一个中断是EVA Timer(定时时间到时进入中断中开启AD采样功能);第二个中断Timer0用于发送数据。
    我觉得这个方法可以实现,可是试了几次不行。我在两个中断里面放置测试字符组str,看看程序先进行哪个中断。结果是每次不论EVA Timer频率多高,都是先进行Timer0中断,并且都是基本上两三次Timer0中断后才进入到EVA Timer中断。

以上就是我自己现在想的两个方案,结果都不满意。今天看您回复说用PWM发送正弦波,这个是个好建议,我会尽快实现的。再有,麻烦您关于信号发送和接收再给我提点建议,真的谢谢您了!!
 
 
 

回复

91

帖子

0

TA的资源

一粒金砂(高级)

5
 

回复 沙发 hlx3012 的帖子

麻烦您了!
 
 
 

回复

569

帖子

0

TA的资源

五彩晶圆(中级)

6
 
我倾向于方案2,

“结果是每次不论EVA Timer频率多高,都是先进行Timer0中断,并且都是基本上两三次Timer0中断后才进入到EVA Timer中断。”

Timer0中要这么长的运算时间?参考例程sw_prioritized_interrupts让EVA Timer中断的优先级提高。
 
 
 

回复

91

帖子

0

TA的资源

一粒金砂(高级)

7
 

回复 6楼 hlx3012 的帖子

好的,我试一下,谢谢您!!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表