完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
对于提供给 DAC 控制寄存器(SENS_SAR_DAC_CTRL1_REG)
的某些频率步长值,我得到非常低的频率 (7-10Hz) 余弦波。我期望这些频率步进点的频率约为 20KHz 和 25KHz。 我使用的是 DAC 余弦波发生器示例的修改版本和 GitHub 存储库中的一些元素,其中作者通过直接写入寄存器来生成余弦波。 除此之外,我还添加了一个计时器回调,它通过随机频率步长值更新余弦波的频率。该频率步进值的计算在第29.5.4 节中给出:ESP32 技术参考手册的余弦波形发生器。 freq = dig_clk_rtc_freq · SENS_SAR_SW_FSTEP/65536 简而言之,假设 ESP32 时钟频率(dig_clk_rtc_freq)为 8MHz ,则为 SENS_SAR_SW_FSTEP提供一个 8 的因子,产生大约 1KHz的输出频率(freq) 。 所以回到我的应用程序。我在 1000 毫秒的时间内产生频率在 20KHz - 30KHz 之间的余弦波。1000ms 后,波形生成停止。此外,每 50 毫秒,使用定时器回调函数,波形频率在指定范围 20KHz - 30KHz 之间随机变化。 我的计时器回调具有以下结构: 代码:
但是,当出现某些频率步进值时,例如160、216(以及其他一些),我总是会遇到故障。像这样 : 此外,我已经通过使用以下 get 方法验证了正确的频率步进值被馈送到 DAC 控制寄存器: 代码:
|
|
相关推荐
4个回答
|
|
您确定您的示波器采样率不只是与您输出的频率混叠吗?比如,如果你放大,“行为”会改变吗?
|
|
|
|
是的。如果我在示波器“放大”(对于毛刺值)的情况下运行程序,我会看到正常的余弦波。这是我看到的频率步长“216”的波:
|
|
|
|
那么这可能是一个混叠问题:您的示波器采样率和输出频率以这样一种方式对齐,即每次输出的正弦值都相同时示波器恰好进行采样,因此示波器显示一条平坦的线而不是实际信号。如果您的示波器有一些设置采样率的方法,请确保您的采样频率是 >> 输出频率的 2 倍(如:采样频率应该至少是最高输入信号的奈奎斯特频率)
|
|
|
|
我认为,鉴于您的示波器具有(或更确切地说:没有)wrt 采样率的选项,它可能基本上不适合您尝试进行的测量。您最好使用带有大样本内存的示波器:这样,它可以保持以足够高的采样率进行采样,同时仍然能够存储您要查看的整个波形。(例如,对于 30KHz 的最大频率和整个屏幕的 2 秒时基,您需要至少约 30000Hz*2*2sec=120Ksamples 的样本内存。)
|
|
|
|
只有小组成员才能发言,加入小组>>
1030 浏览 1 评论
562浏览 6评论
470浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
454浏览 5评论
454浏览 4评论
428浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 01:17 , Processed in 1.038000 second(s), Total 84, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号