电路设计论坛
直播中

刘燕

8年用户 1467经验值
私信 关注
[问答]

AD5934按照手册设置完所有寄存器后,Vout引脚不能正确输出30kHz的正弦波是怎么回事?

使用的是EVAL-CN0349-PMDZ进行设置
/* 配置启始频率寄存器为30kHz  计算公式为:(你需要的频率(30kHz)/(16.776MHz/16))*(2^27) == 0x3A9916*/
ad5934_write_regdata( 启动_ 频率高, 0x3a);
延迟_ms(1);
ad5934_write_regdata( 启动_ 频率_ mid, 0x99);
延迟_ms(1);
ad5934_write_regdata( 启动_ 频率_ low, 0x16) ;
延迟_ms(1);
   
/ * 频率增量寄存器配置  计算公式为:(你需要的频率增量(10Hz)/(16.776MHz/16))*(2^27) == 0x000500*/
ad5934_write_regdata(频率_increment_high,0x00);
延迟_ms(1);
ad5934_write_regdata(频率_increment_mid,0x05);
延迟_ms(1);
ad5934_write_regdata(频率_ 刻度_ low, 0x00);
延迟_ms(1);
   
   
/ * 增量数寄存器配置 最大为511 十六进制表示为0x01FF  */
ad5934_write_regdata(num_increments_high,0x00);
延迟_ms(1);
     AD5934_Write_RegData(Num_Increments_Low,0x0A);//设置为10次
延迟_ms(1);
   
   
/ * 配置建立时间周期数寄存器  决定频率扫描/递增频率/重复频率命令与ADC转换开始之间的延迟时间 */
/ *
   
         bit10与 bit9 配置周期数的倍数 默认00
                                          01 周期数乘以2
                                          10 保留
                                          11 周期数乘以4
         bit0~bit8   为周期数 最大511  
         其余位无效
   
*/
ad5934_write_regdata(num_timecyles_high,0x00);
延迟_ms(1);
ad5934_write_regdata(num_timecyles_low,0x0a);
延迟_ms(1);
   
   
/ * 配置控制寄存器,使AD5934进入待机模式 */
ad5934_write_regdata( 控件_ high, 0xb0);
延迟_ms(1);
ad5934_write_regdata( 控制_ low, 0x00);
延遲_ms( 500) ;
   
   
   
/ * 配置控制寄存器,使AD5934以设定值进入初始化模式 */
ad5934_write_regdata(控件_high,0x11);
延迟_ms(1);
ad5934_write_regdata( 控制_ low, 0x00);
延遲_ms( 500) ;
   
/ * 配置控制寄存器,使AD5934进入扫描模式 */
ad5934_write_regdata(控件_high,0x21);
延迟_ms(1);
ad5934_write_regdata( 控制_ low, 0x00);
延遲_ms( 500) ;
波形如下:
      请问是怎么回事呢

更多回帖

发帖
×
20
完善资料,
赚取积分