嵌入式开发者社区

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

作者: 松鼠    时间: 2016-10-25 17:18
标题: 双核通信ad7606_dsp存在问题
创龙的工程师您好:
1 Y4 d$ ^2 \5 z, T+ k* |7 w3 P2 j  今天跑了一下AD7606_DSP双核例程,有一个问题就是采样率偏高。假如终端输入命令./run.sh 7 0,也就是128k采样,之后用示波器观察ad7606芯片的CONVT引脚频率为134k。比设置偏高了6k左右。同样设置成别的采样率也存在这样的问题,这是什么问题?怎么改正?谢谢回答
0 t2 a" ], E. q9 q9 h  e; S
2 C4 \1 i! @+ i6 r. T8 P+ H
作者: tenny    时间: 2016-10-26 10:31
参数设置成 7 的时候,实际的采样点数,应该是
+ k2 g. V8 m/ V3 K1024 * 128 约是 131K# n1 W& k" w2 C, F  J
& ~8 e6 y1 Z' E5 }
你看程序打印中的
/ f. h1 `( F6 f6 P8 Istart, sample rate is xxxxx points ( M$ X/ \! a: w  I
xxxxx 的显示的点数个数
作者: 松鼠    时间: 2016-10-26 12:10
tenny 发表于 2016-10-26 10:31) h% M0 M2 |- h1 s; f8 _, X
参数设置成 7 的时候,实际的采样点数,应该是3 f: m% y9 r$ U- f, B6 K) S0 o
1024 * 128 约是 131K
- r. ^5 X$ e- A: P
即使是131k,那也差了3k,实际示波器显示是134k
作者: 松鼠    时间: 2016-10-28 17:08
tenny 发表于 2016-10-26 10:31
! ~' t- ?+ V+ `2 F% f参数设置成 7 的时候,实际的采样点数,应该是# ?- C) j' m; _; q5 ]
1024 * 128 约是 131K

' K: h. U9 g1 e$ e. xdenny您好:
7 p2 A" O# ~/ F5 @$ o5 f; s    我找到采样率不准的问题了,但是不知道怎么修改,麻烦指导一下,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
# w, m' s8 D1 @+ r6 v7 x' O问题出现在ad7606.c文件中的计算时钟周期的公式上[attach]1533[/attach]
* L! J* d, ]6 c$ K  s4 b. }/ |TICK_PERIOD固定值等于5us,当采样率rate为55k-66k之间的时候,period都等于3,也就是说不管采样率设置成55k-66k之间的任何值,用示波器观察convst的频率都是66K。当rate设置为70k-100k之间时,period为2,所以不管rare是70k-100k之间的任何值,dsp的采样率都为99k。
3 p9 h0 n+ s$ [" |. {0 H! \$ l, f; u! O) ?
请问这种问题该怎么修改?可以吧计量单位1000000设置成更高的吗?
; i" Q9 t; C) O/ |; I$ ~" I! f" d' F2 R3 W) D8 a

作者: tenny    时间: 2016-10-31 09:07
TICK 的修改在 dsp.cfg 文件中0 m1 z, P0 f) ]

% l8 l+ v$ T* Q151 /* configure SysBios to use the lower half of Timer 1 */
3 z3 R' a% o' F1 w8 `6 P152 var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');8 Y) q4 ~9 F6 T, K& d( C
153 var Clock = xdc.useModule('ti.sysbios.knl.Clock');
$ b1 z: `! q2 N* Q+ X! u$ y154 Timer.timerSettings[1].master = true;) w8 T; A% R( B4 I+ W* ?1 R
155 Timer.defaultHalf = Timer.Half_LOWER;
& s( [0 c3 E' v; B156 Clock.timerId = 1;5 E+ }: O( [2 U5 t" e6 ^4 H
157 Clock.tickPeriod = 5; //5us' M5 k, `/ p# l& B. d$ S
  `5 Z6 Z: v9 R. ]8 L3 ?: H
修改后重新编译程序
& _  X- A. p: e+ q: b
作者: 松鼠    时间: 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