搜索

AD5293数字电位器调节无反应的问题

[复制链接]
318|16
 楼主 | 2020-5-29 16:18 | 显示全部楼层 |阅读模式
使用STC51单片机  通过SPI调节AD5293的阻值,AD5293抽头位置始终处于中间位,没有对调节指令做出响应,用keil的仿真示波器工具监测SCLK SYNC DIN波形与时序图也是一致的
有没有大神能分析下问题出在哪
写阻值指令.PNG
解锁写保护.PNG

使用特权

评论回复
 楼主 | 2020-5-29 16:19 | 显示全部楼层
void AD5293_write(WORD positionc)
{
    uchar m;
        SCLK=1;
    delaynop(10);
    SYNC=1;
    delaynop(10);
    SCLK=0;
    delaynop(10);
    SYNC=0;
    delaynop(10);
    for(m=0; m<16; m++)
    {
      if(positionc&0x8000)
        DIN=1;
      else
        DIN=0;
      SCLK=1;
      delaynop(10);
      SCLK=0;
      delaynop(10);
      positionc<<=1;
    }
    SYNC=1;
delaynop(50);
}
这是我的SPI写处理程序段

使用特权

评论回复
 楼主 | 2020-5-29 16:20 | 显示全部楼层
void main()           /* 主程序 */   
{
        init();           /* 调用串口初始化程序 */
        InitSPI();
        SYNC=0;
        SCLK=0;
        DIN=0;
        ADRESET=0;
        delaynop(250);
        ADRESET=1;       
        a=1;
        while(a);
        if(c==5)
          AD5293_write(0x1802);
        a=1;
        while(a);
        if(c==6)
          AD5293_write(0x0500);

使用特权

评论回复
| 2020-5-29 16:53 | 显示全部楼层
手册中SPI片选脚是CSB,时钟同步才是SYNC,不知是不是弄错了?

使用特权

评论回复
| 2020-5-29 17:03 | 显示全部楼层
LcwSwust 发表于 2020-5-29 16:53
手册中SPI片选脚是CSB,时钟同步才是SYNC,不知是不是弄错了?

北京研创达科技有限公司——专门做高速数据采集卡定制开发的

使用特权

评论回复
 楼主 | 2020-5-29 17:12 | 显示全部楼层
LcwSwust 发表于 2020-5-29 16:53
手册中SPI片选脚是CSB,时钟同步才是SYNC,不知是不是弄错了?

手册上没有CSB这个引脚哦

使用特权

评论回复
| 2020-5-29 17:23 | 显示全部楼层
本帖最后由 LcwSwust 于 2020-5-29 17:30 编辑
sduszxjw 发表于 2020-5-29 17:12
手册上没有CSB这个引脚哦

好吧,我看成AD9253了,看楼主的时序没问题,就要检查下硬件了,最好能用示波器看看。
再看看RDY脚是否有信号。上电后延时长一些再给数据,或者干脆放到循环里。
a=1;
        while(a);
程序不就死在这了?


使用特权

评论回复
 楼主 | 2020-5-29 17:34 | 显示全部楼层
LcwSwust 发表于 2020-5-29 17:23
好吧,我看成AD9253了,看楼主的时序没问题,就要检查下硬件了,最好能用示波器看看。
再看看RDY ...

这边我做了串口中断哈  不会死在这的

使用特权

评论回复
 楼主 | 2020-6-1 11:37 | 显示全部楼层
LcwSwust 发表于 2020-5-29 17:23
好吧,我看成AD9253了,看楼主的时序没问题,就要检查下硬件了,最好能用示波器看看。
再看看RDY ...

请问一下,这边我的电源是从24V/5V双路输出开关电源取的  开关电源的24V+接VDD COM接VSS 作为24V输入; 我的逻辑电源Vlogic接5V+ ,逻辑电源地GND可以接前面的COM吗 也就是和24V电源公用一个参考点  
谢谢

使用特权

评论回复
| 2020-6-1 11:49 | 显示全部楼层
sduszxjw 发表于 2020-6-1 11:37
请问一下,这边我的电源是从24V/5V双路输出开关电源取的  开关电源的24V+接VDD COM接VSS 作为24V输入;  ...

可以啊
按我的理解,VDD与VSS,Vlogic与 GND这两组电源本身并非是独立的,
手册中的电压是以GND为参考的。 傲游截图20200601114832.jpg

使用特权

评论回复

评论

LcwSwust 2020-6-2 14:51 回复TA
@sduszxjw :这有点奇怪,需要仔细检查一下硬件。 
sduszxjw 2020-6-2 14:07 回复TA
@LcwSwust :我也看到这部分说明了,刚才用示波器连接三个控制引脚观察 都是0-5V的高频振荡电压,不知道是哪方面的原因(单独给AD5293电路供电);IO口用的是P2口,是直接连接到AD5293的引脚的,没有加电阻 
LcwSwust 2020-6-2 10:08 回复TA
@sduszxjw :从手册上看Input Current才+-1uA,其内部应当是高阻输入没有上拉的,这就奇怪了, 要不就当它有上拉吧,把外面串联的电阻减小些试试能否拉低。 
sduszxjw 2020-6-2 09:50 回复TA
@LcwSwust :谢谢,我这款是STC1205A60S2,IO口上电是高电平的; 昨天在测试的时候发现,在单片机与AD5293连接线全部甩开的情况下,AD5293通24V电源后,SYNC SCLK DIN等控制引脚量到5V的高电平,换一个电路板也量到2.4V左右的电压,在手册上没有找到相应引脚的电位说明,按照我的理解,这几个控制引脚是不是应该通电默认低电平呢,在使用时高低电平的切换由单片机IO口控制?求教 
LcwSwust 2020-6-1 15:09 回复TA
@sduszxjw :那就需要检查程序中对IO口的配置了,串了4.7K电阻应该不至于烧IO口。 不知你用的哪个型号?是否对相应端口的M0、M1寄存器配置过?比如P1M0=0,P1M1=0; STC8系列IO在默认状态下似乎是高阻态,而STC15默认是普通IO,有些单片机的M0、M1是反的,要查看手册才知道。 
sduszxjw 2020-6-1 14:42 回复TA
好的, 现在排查下来,发现与单片机IO口连接的 SYNC SCLK DIN和RESET引脚 在程序中赋0的情况下 依然有5V的电压 其他的IO口电压由5V变到10V 不知道硬件设计的哪边出现了问题 
 楼主 | 2020-6-1 14:46 | 显示全部楼层
这是原理图
111.jpg

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /4 下一条

在线客服 快速回复 返回顶部 返回列表