• stm32上调试AD5410


    按照给的示例代码能够正确地设置电流大小,但是读取数据却全为0,显然没有读到数据。

    用示波器观察5410pin10上的波形,正常,观察经过ADUM1401后的波形也正常。

    调整了函数ReadFromAD5420中以下的延时:

    RotateData <<= 1; //Rotate data
    delay_AD5420(10);
    CLR_SDO();

    原本是1,调整到10后,OK

    单个原件调通了,然后调试菊花链模式:

    手册中说的比较简单些,大概是说,需要把5410配置为菊花链使能,然后每次发送数据时都要发送完24*N后再给LATCH有效沿。

    于是我把设置控制寄存器的指令发了3遍(3遍发完后,才给一个LATCH有效沿),然后再发送3遍(3遍发完后,才给一个LATCH有效沿)设置电流值的指令(为了测试,我特意把3个芯片的电流值设为不一样的),

    但结果是错的,仍然是只有第一个芯片设置成功并输出了电流,其余两个芯片没有。

    猜想错误可能是:在设置控制寄存器时,芯片仍然处于菊花链未使能模式,因此,并不会把24个bit之后的数据发送到下个芯片去。

    因此,试了试把设置控制寄存器的指令发3遍,但每发一遍都发一个LATCH有效沿,以让芯片的菊花链使能生效。

    结果:OK

  • 相关阅读:
    python中的pip
    代码块
    Java 中的main方法
    mysql的decimal(10,0) not null问题
    vue 超大 table
    apache2 的https配置和代理https后端nodejs配置
    3分钟解决MySQL 1032 主从错误(转)
    CentOS 7 Apache服务的安装与配置(转)
    mybatis pagehelper多数据源配置的坑
    web worker的用法及应用场景(转)
  • 原文地址:https://www.cnblogs.com/gaotaozhaolei/p/12175349.html
Copyright © 2020-2023  润新知