完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用PIC32 MZ2048 ECH,我想通过PacketSender(UDP/IP)传输我正在接收的数据。我想通过SPI发送一个正弦信号到DAC8911。为此,我已经配置了MICI,SCLK和/SS的PIC(这是这里的主人)。我想用函数形式发送由我接收的数据构成的信号,该函数是这样表达的:sgnal=A*s in(2*pift)A和f在每次接收的值中函数的变化。你能帮我编写这个程序或者给我一些有趣的想法吗?实际上,我正在尝试编写这个程序,所以如果这些信息不够的话,我可以发布我到目前为止所做的。谢谢您。
|
|
相关推荐
7个回答
|
|
我会一步一步地走:你能把正弦数据发送给你的SPI DAC吗?你能从网上接收帧吗?然后你可以把2个任务混合在一起…
|
|
|
|
DAC8911是一种非常简单的装置。你给它发送16位代码,它产生一个电流输出。你的硬件可能需要提供一个运算放大器输出。要产生正弦波,你必须在适当的时间通过SPI传输正确的代码。你可能要考虑查找表而不是调用正弦函数。你需要建立一个周期,以2*pi/fthen除以想要使用的步数。less step==更多的锯齿形正弦波;more step==更多的时间,但是更好的正弦波。
|
|
|
|
嘿,我会把我的代码张贴成现在的样子,我必须包括正弦信号的产生,但我不知道如何编码,我希望你能帮我通过。现在我通过“SPI”代替“信号”发送“DONE”。我知道这个信号应该具有这样的形式:A*sin(2*pi*f*t),其中A和f依赖于“donnee”,这是通过以太网接收的数据。
|
|
|
|
下面是我用PIC16F1783的8位DAC产生20kHz正弦波的代码:它每个周期只使用20个采样,并且由于频率高,使用硬编码延迟,但是它显示了一般原理。DAC值可以在代码中生成并存储在一个数组中。以下是输出的样子:
|
|
|
|
另一种方法是将正弦表硬编码为常数,然后改变采样之间的时间以产生所需的频率,并将正弦值乘以调整正弦波幅度。对于您的表达式,可以使用:添加代码以将DAC值发送到SPI DAC。它也将更好地实现使用定时器中断。
|
|
|
|
谢谢你,斯蒂奇保罗,我明白你的意思了,我想我应该增加一个定时器,以便在即时t0发送16位数据和在t0+1发送下一位数据之间产生一个延迟。我的问题是这个延误是什么?基于dac8811数据表,我应该选择哪个延迟来配置定时器,我有点困惑,因为我看到设置时间=0.5uS,但我不确定是否必须处理这个或另一个。谢谢你
|
|
|
|
另外,稳定时间就是输出稳定到一个准确水平需要多长时间。发送数据包之间的时间取决于正弦表和要产生的频率。
|
|
|
|
只有小组成员才能发言,加入小组>>
5163 浏览 9 评论
2000 浏览 8 评论
1928 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3174 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2226 浏览 5 评论
733浏览 1评论
615浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
505浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
631浏览 0评论
528浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 02:33 , Processed in 1.346256 second(s), Total 88, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号