电路设计论坛
直播中

jefljel

8年用户 1070经验值
擅长:20762
私信 关注
[问答]

请问linux驱动中ad7192.c的打印错误可能是什么原因,如何排查问题?

工程师,我在linux上调试ad7193,总是显示读取ID错误,
ad7192 spi0.0: 设备识别查询失败 (0x3)
我自己添加代码打印,发现读取的ID一直是0xA3。
我在该行打印的前面添加读取其它寄存器的打印,发现与datasheet都不吻合。
ad_sd_read_reg( st->sd, AD7192_REG_STAT, 1,  id);          //读到
状态=0.x81

ad_sd_read_reg( st->sd, AD7192_REG_MODE, 1,  id);
      //读到 MODE=0x8

ad_sd_read_reg( st->sd, AD7192_REG_CONF, 1,  id);
      //读到 CONF=0x61

在应用层通过/dev/spidev0.0 读取:
        wr_buf[0] = 0x40;               //communications: read STATUS
        if(write(fd, wr_buf, 1) != 1)
                perror("Write Error");
        if(read(fd, rd_buf, 1) != 1)
                perror("Read Error");
        else
                printf("STATUS: 0x%02xn", rd_buf[0]);
得到是数值如下,这些数值与datasheet上基本吻合。
STATUS: 0x00
MODE: 0x08 0x00 0x60
CONFIGURATION: 0x00 0x01 0x16
ID: 0xa2
请问linux驱动中ad7192.c的打印错误可能是什么原因,排查问题?

更多回帖

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