野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 32105|回复: 5

新手求助,如何设置AD5689模块正弦波频率

[复制链接]
发表于 2021-3-16 16:48:17 | 显示全部楼层 |阅读模式
以下为AD5689模块部分配套例程程序,此处delay函数是否为确定正弦波的频率?
  1. /**
  2.   * [url=home.php?mod=space&uid=41770]@brief[/url]   延时函数
  3.   * @param            
  4.   * @retval  
  5.   */
  6. static void delay(void)
  7. {
  8.   uint16_t i;
  9.   for(i=0;i<50;i++)
  10.   {
  11.     __NOP();
  12.   }  
  13. }

  14. /**
  15.   * @brief   设置AD5689寄存器值
  16.   * @param   command:指令
  17.   *          channel:通道
  18.   *          data   :数据
  19.   * @retval
  20.   */
  21. void AD5689_SetRegisterValue(uint8_t command,uint16_t channel,uint16_t data)
  22. {
  23.   uint8_t reg[3]={0};
  24.   
  25.   reg[0]=(command<<4)|channel;
  26.   reg[1]=(data>>8)&0xFF;
  27.   reg[2]=data&0xFF;

  28.   AD5689_SYNC_L;//清空端口
  29.   delay();
  30.   HAL_SPI_Transmit(&hspi_AD5689,reg,3,0xF);
  31.   delay();
  32.   AD5689_SYNC_H;//设置端口
  33. }
复制代码


回复

使用道具 举报

发表于 2021-3-17 08:56:23 | 显示全部楼层
不是,当单片机的引脚改变sync状态以后,电平不会立即改变,会有一个改变的过程,需要一定的时间,这里的延时起这个作用,具体在5689的手册中有通信的时序图。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-3-17 16:29:46 | 显示全部楼层
H781997429 发表于 2021-3-17 08:56
不是,当单片机的引脚改变sync状态以后,电平不会立即改变,会有一个改变的过程,需要一定的时间,这里的延 ...

我查了通讯时序图,如果配置SCLK为最大频率50M,那么此时输出电平的改变时间是否对应为t14=30ns?不知道自己理解对不对,请教下你。

时序图

时序图
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-21 20:14:31 | 显示全部楼层
自回复:已解决,如上述此处的delay函数可以用于确定正弦波的频率。
举例:400个数据,2s周期的正弦波,此处如果使用一个delay,时间设置为5ms;如果使用两个delay,时间设置为2.5ms。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-14 16:49:01 | 显示全部楼层
自回复2:
      为了避免有新手重走我的弯路,我再补充一下。
      更正一下自己原来的想法,虽然此处更改delay函数可以设置DAC输出的周期,但是原理是main函数的while循环中每次调用AD_sine输出一个数据后,延时一定时间再跳出AD_sine,进行下一次while循环再调用AD_sine输出第二个数据。造成的结果就是每次while循环CPU主要都在等待delay延时结束,以致于浪费了大量的CPU运行,不能再进行其他处理。
      因此,最好的方式是去掉此处的delay函数,将AD_sine数据传输函数放在中断中,每次TIM定时一定的时间,然后进入中断调用AD_sine输出一个数据,完成后跳出中断。此方式main函数的while循环完全可以执行其他程序,只需控制定时中断的时间,可以完美实现了输出特定周期的波形。
回复 支持 反对

使用道具 举报

发表于 2021-5-15 15:40:09 | 显示全部楼层
楼主这个代码是生成正弦波的吗?  如果是的话,想问问你如何改变正弦波的频率
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 17:15 , Processed in 0.040049 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表