嵌入式开发者社区

标题: 双核通信ad7606_dsp存在问题 [打印本页]

作者: 松鼠    时间: 2016-10-25 17:18
标题: 双核通信ad7606_dsp存在问题
创龙的工程师您好:- Q/ c; h5 c7 Y- N. J
  今天跑了一下AD7606_DSP双核例程,有一个问题就是采样率偏高。假如终端输入命令./run.sh 7 0,也就是128k采样,之后用示波器观察ad7606芯片的CONVT引脚频率为134k。比设置偏高了6k左右。同样设置成别的采样率也存在这样的问题,这是什么问题?怎么改正?谢谢回答
3 w, x+ ~" U/ e+ j  T  c- T& B: _5 A7 V9 j9 g5 ~$ p

作者: tenny    时间: 2016-10-26 10:31
参数设置成 7 的时候,实际的采样点数,应该是% a0 t; ^2 v2 f
1024 * 128 约是 131K
# Y$ G9 }- S5 B  C
( z/ h6 U+ |" s8 P0 L  l5 o8 y你看程序打印中的( i5 |7 P% M# @0 t$ v% z( G
start, sample rate is xxxxx points ( ?6 W# R. v$ u+ I$ l* _0 a
xxxxx 的显示的点数个数
作者: 松鼠    时间: 2016-10-26 12:10
tenny 发表于 2016-10-26 10:31
* w7 {3 z! |, k& J4 w4 o/ z参数设置成 7 的时候,实际的采样点数,应该是
1 W; g5 H, k+ a' ~2 U# P& A7 _0 {. \1024 * 128 约是 131K
5 }% J, y5 h8 t# r. V
即使是131k,那也差了3k,实际示波器显示是134k
作者: 松鼠    时间: 2016-10-28 17:08
tenny 发表于 2016-10-26 10:31# E0 @' a6 W4 r
参数设置成 7 的时候,实际的采样点数,应该是4 p6 l, z$ l7 P& A7 E+ W
1024 * 128 约是 131K
6 ]- S6 o9 [7 s. y/ u0 `) D
denny您好:, f" _& `, p) W& a+ s% m
    我找到采样率不准的问题了,但是不知道怎么修改,麻烦指导一下,file:///C:\Users\YS\Documents\Tencent Files\951294484\Image\C2C\`3I6$0HG6FS90GN9~U)TFNI.pngfile:///C:\Users\YS\Documents\Tencent Files\951294484\Image\C2C\`3I6$0HG6FS90GN9~U)TFNI.png
5 U/ d. n. x% Z5 x7 ?$ |问题出现在ad7606.c文件中的计算时钟周期的公式上[attach]1533[/attach]6 O0 a9 ~0 g! S* U# G
TICK_PERIOD固定值等于5us,当采样率rate为55k-66k之间的时候,period都等于3,也就是说不管采样率设置成55k-66k之间的任何值,用示波器观察convst的频率都是66K。当rate设置为70k-100k之间时,period为2,所以不管rare是70k-100k之间的任何值,dsp的采样率都为99k。' M3 I3 _5 z& `+ t; H

" k9 w% ~% J+ W: z请问这种问题该怎么修改?可以吧计量单位1000000设置成更高的吗?
) ~/ s5 I* H, @2 B' }  k
% h. Z6 Z( j9 F' `2 e4 \
作者: tenny    时间: 2016-10-31 09:07
TICK 的修改在 dsp.cfg 文件中9 J/ W, Q* [2 J

* Y! x. ~4 S; |% c151 /* configure SysBios to use the lower half of Timer 1 */
: t: j2 C# A# b# S) a" U152 var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
! u( U! X5 S8 f6 ]153 var Clock = xdc.useModule('ti.sysbios.knl.Clock');) ]6 \* ~/ j6 R0 ^8 j
154 Timer.timerSettings[1].master = true;
: @" X! [# J$ Q/ {* Z0 z$ J155 Timer.defaultHalf = Timer.Half_LOWER;
3 f9 d0 m) `6 G" L' X156 Clock.timerId = 1;
! @" d: `& \# c1 @# J% X157 Clock.tickPeriod = 5; //5us
. x( p8 C! n# t$ L  a* z) S; D
4 O1 d5 P- j8 _" |修改后重新编译程序0 v2 Q$ B" x7 K" r% S3 j0 C

作者: 松鼠    时间: 2016-10-31 10:03
tenny您好,我刚刚改了一下配置文件,只修改了Clock.tickPeriod 把值分别设置为1us,2us,4us,6us,10us。基本没有什么变化,采样率还是那个问题,应该怎么修改啊?之前没接触过这种东西。求指教1谢谢!@tenny
作者: tenny    时间: 2016-10-31 13:47
代码里面的 TICK_PERIOD 的这个宏定义的值和你配置文件里面的值对应上了没?
作者: 松鼠    时间: 2016-10-31 19:49
对应上了呢,但是结果比5us还差。@tenny
作者: tenny    时间: 2016-11-1 18:18
那可能有其他地方的影响
作者: 松鼠    时间: 2016-11-1 18:24
例程的其他地方没有任何改动,创龙没有调试一下历程吗?@tenny
作者: tenny    时间: 2016-11-2 13:18
调试的问题,可能要延后处理了




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4