嵌入式开发者社区

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

作者: 松鼠    时间: 2016-10-25 17:18
标题: 双核通信ad7606_dsp存在问题
创龙的工程师您好:
& j5 D$ x$ K: O4 a  今天跑了一下AD7606_DSP双核例程,有一个问题就是采样率偏高。假如终端输入命令./run.sh 7 0,也就是128k采样,之后用示波器观察ad7606芯片的CONVT引脚频率为134k。比设置偏高了6k左右。同样设置成别的采样率也存在这样的问题,这是什么问题?怎么改正?谢谢回答
  d$ r5 f3 I4 K8 O/ |
) g" g. l! b+ D- H9 H4 T( l3 J$ \% p
作者: tenny    时间: 2016-10-26 10:31
参数设置成 7 的时候,实际的采样点数,应该是
2 E% C8 c( l0 z& N$ Y4 T/ `2 H1024 * 128 约是 131K! d9 O; u* O6 t. T+ v  X

& }' K, f* q) t5 c$ a: R, @' u你看程序打印中的: F" q3 Q) \- N9 u: S
start, sample rate is xxxxx points & N' G- F$ ~4 z% l$ X
xxxxx 的显示的点数个数
作者: 松鼠    时间: 2016-10-26 12:10
tenny 发表于 2016-10-26 10:31( A3 C& L  x  U0 d5 `
参数设置成 7 的时候,实际的采样点数,应该是! u6 O: h8 \1 L3 E
1024 * 128 约是 131K
9 ?5 t% ^  f6 h$ m# z. \
即使是131k,那也差了3k,实际示波器显示是134k
作者: 松鼠    时间: 2016-10-28 17:08
tenny 发表于 2016-10-26 10:31
9 E( {; T. [4 G$ |) W0 y参数设置成 7 的时候,实际的采样点数,应该是+ o  _- j+ v( I# ?. @
1024 * 128 约是 131K

* z- s9 q. K  [) s2 Tdenny您好:
+ U' j' a  r# E# z# 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.png0 T, i+ L- t" B6 c
问题出现在ad7606.c文件中的计算时钟周期的公式上[attach]1533[/attach]
: t8 }( k/ t# u, V$ {* JTICK_PERIOD固定值等于5us,当采样率rate为55k-66k之间的时候,period都等于3,也就是说不管采样率设置成55k-66k之间的任何值,用示波器观察convst的频率都是66K。当rate设置为70k-100k之间时,period为2,所以不管rare是70k-100k之间的任何值,dsp的采样率都为99k。
3 a2 M* U: N5 L4 Q
: q% {0 y& T4 x+ P% v请问这种问题该怎么修改?可以吧计量单位1000000设置成更高的吗?
0 }3 Z2 T/ T3 Q; h+ J; f2 j3 E
1 E# r4 `( [' w% t. @
作者: tenny    时间: 2016-10-31 09:07
TICK 的修改在 dsp.cfg 文件中$ t& I" D. h4 _3 d0 F% b. }

, a6 K3 w$ @1 h/ E1 z( h4 @151 /* configure SysBios to use the lower half of Timer 1 */
  j- X1 W4 e" a9 x7 Z0 X& P152 var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');2 o" Q/ b5 |" {1 L: g3 J
153 var Clock = xdc.useModule('ti.sysbios.knl.Clock');
4 j) o( i$ e, ]: Z0 w154 Timer.timerSettings[1].master = true;
% r  D# @8 o3 z: J3 x% A; W- ]155 Timer.defaultHalf = Timer.Half_LOWER;
; O1 y. m6 h- R6 D156 Clock.timerId = 1;, F  M, F/ B; Q( j
157 Clock.tickPeriod = 5; //5us1 Q: P5 V' x  J; w4 @

8 _8 u& q+ ~! d  h4 l! w8 p修改后重新编译程序/ d# @( c: b" K6 O6 t

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