嵌入式开发者社区

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

作者: 松鼠    时间: 2016-10-25 17:18
标题: 双核通信ad7606_dsp存在问题
创龙的工程师您好:  l1 X8 u. q3 o/ }2 L+ n; {& [
  今天跑了一下AD7606_DSP双核例程,有一个问题就是采样率偏高。假如终端输入命令./run.sh 7 0,也就是128k采样,之后用示波器观察ad7606芯片的CONVT引脚频率为134k。比设置偏高了6k左右。同样设置成别的采样率也存在这样的问题,这是什么问题?怎么改正?谢谢回答
0 f. ^! @& a# w, i7 l; Z# H6 J6 k% _5 f  |

作者: tenny    时间: 2016-10-26 10:31
参数设置成 7 的时候,实际的采样点数,应该是6 D) V  U4 a2 \' E9 u+ b* v+ n  e
1024 * 128 约是 131K/ h* s0 e& d/ l- C

0 b: }; M" C# p- S# a你看程序打印中的. d" q$ U  s# @
start, sample rate is xxxxx points ! ^# t6 v7 u, w( ]
xxxxx 的显示的点数个数
作者: 松鼠    时间: 2016-10-26 12:10
tenny 发表于 2016-10-26 10:31
: C9 I& ]0 ]9 i, W% a' m参数设置成 7 的时候,实际的采样点数,应该是) w8 S4 s& ~* e& H) P5 B- ~7 Q5 v3 B
1024 * 128 约是 131K

1 ^1 \1 ~% X1 M/ q) H7 [即使是131k,那也差了3k,实际示波器显示是134k
作者: 松鼠    时间: 2016-10-28 17:08
tenny 发表于 2016-10-26 10:31
+ R% h4 P+ L# j& n( X参数设置成 7 的时候,实际的采样点数,应该是
+ {  m/ v# j" l. b- z2 _6 s5 p/ {1024 * 128 约是 131K
+ Y/ q9 r( D' M
denny您好:
5 Y  b4 I2 B4 d  n    我找到采样率不准的问题了,但是不知道怎么修改,麻烦指导一下,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.png2 b/ ?( L' Y; G
问题出现在ad7606.c文件中的计算时钟周期的公式上[attach]1533[/attach]5 c8 Y2 u2 J+ ^( i% p
TICK_PERIOD固定值等于5us,当采样率rate为55k-66k之间的时候,period都等于3,也就是说不管采样率设置成55k-66k之间的任何值,用示波器观察convst的频率都是66K。当rate设置为70k-100k之间时,period为2,所以不管rare是70k-100k之间的任何值,dsp的采样率都为99k。0 u& d# H. w0 p% f
0 X/ p8 h) h2 J$ Q2 N# j
请问这种问题该怎么修改?可以吧计量单位1000000设置成更高的吗?* m: ]: k/ Y0 X' ~. L1 U
& a6 g: R! ^# C5 m( j/ F- R3 ~

作者: tenny    时间: 2016-10-31 09:07
TICK 的修改在 dsp.cfg 文件中& }2 T' Y( x; W5 z

* P- e" v; G0 J& z151 /* configure SysBios to use the lower half of Timer 1 *// l# G' F; L9 r" F" {0 g: c. o' ?
152 var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
5 W5 J' j) u  S& R153 var Clock = xdc.useModule('ti.sysbios.knl.Clock');6 ?! X# T: S% X2 B4 ?9 t
154 Timer.timerSettings[1].master = true;% b5 V+ i1 N5 W9 H% k* J
155 Timer.defaultHalf = Timer.Half_LOWER;6 t* C) X! f$ n! ?0 m& U# R
156 Clock.timerId = 1;# f& l; v3 V7 e2 y* J1 _
157 Clock.tickPeriod = 5; //5us2 D+ C+ i6 p1 R1 T$ n! Q
( Z% g/ Y3 E6 x7 a' `7 G$ s; L
修改后重新编译程序9 O4 `& H. h. {) P: p2 {7 m. L

作者: 松鼠    时间: 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