TI论坛
直播中

李青

7年用户 165经验值
私信 关注
[问答]

tlv2545的数据SDO端输出全部是高电平

我参考电压和供电电压都是3.3V,AIN+接2V,AIN-接地,CS线和SLK接STM32端口,电路图和datasheet给的是一样的,对照时序图写的程序,但是我SDO端输出的全部是高电平。不知道是时序还是有问题还是芯片有问题呢
UINT16 AD_Read_Data(void)[
int i;
UINT16 data = 0x0000;
        
        SCLK_High;
        CS_High;
        SCLK_Low;
        SCLK_High;
        CS_Low;
        delay_5us(2);//延迟10us
for(i=0;i<12;i++)
[
           SCLK_Low;
           data <<= 1;
           data = data|SDO;
           SCLK_High;
]
               
        for(i=0;i<5;i++)[
          SCLK_Low;
          SCLK_High;
        ]
        
        delay_5us(2);//延迟10us

        CS_High;
        data&=0x0fff;
return data;
]

回帖(3)

李青

2019-5-28 14:47:06
我用示波器比对过了,时序图和datasheet的差不多,但是还是出不来波形,您有没有碰到这样的情况呢,我最近又申请了两片,换个新的试试再说吧,谢了先~~
举报

李青

2019-5-28 15:02:48
调出来了,还是程序的问题,换了一种思维。
UINT16 AD_Read_Data(void)[
        int i=0;
        UINT16 data = 0x0000;
       CS_High;
       for(i=0;i<20;i++)
       [
         SCLK_High;
         if(i>7)
           [
             CS_Low;
             data <<= 1;
             if(SDO&0x01)
             data|=0x01;
           ]
         SCLK_Low;
       ]
       CS_High;
       data&=0x0fff;
       return data;
]
这个可以用~~~给后面的人吧,避免也出现我这样的情况。
举报

李青

2019-5-28 15:14:41
调出来了,还是程序的问题,换了一种思维。
UINT16 AD_Read_Data(void)[
        int i=0;
        UINT16 data = 0x0000;
       CS_High;
       for(i=0;i<20;i++)
       [
         SCLK_High;
         if(i>7)
           [
             CS_Low;
             data <<= 1;
             if(SDO&0x01)
             data|=0x01;
           ]
         SCLK_Low;
       ]
       CS_High;
       data&=0x0fff;
       return data;
]
这个可以用~~~给后面的人吧,避免也出现我这样的情况。
举报

更多回帖

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