模拟SPI 对LMH6401(PGA)写入数据,无返回

2019-12-27 18:53发布

这是写入,发送,和读状态函数
/************向LMH6401 中写入一个字节*************************1*/         

void W_LMH6401_byte(unsigned char date)
{
        unsigned char temp;
        unsigned char i;
        temp = date;  

        for (i = 0; i < 8; i++) {
                SCK_0 ;
                if((temp&0x80)==0x80)
                        { MOSI_1; }
                else { MOSI_0; }
                SCK_1 ;
                temp <<= 1;
        }
          MOSI_0;               
}

/********************读取LMH6401 一个字节***********************2*/  

unsigned char R_LMH6401_byte(void)
{
        unsigned char temp=0;
        unsigned char i,SDI;

        for(i = 0; i < 8; i++) {
                temp <<= 1;
                SCK_0 ;        

                SDI = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6);
                if(SDI) {temp++;         }
//                else         {printf(" output low data ");}
                SCK_1 ;

        }
        return(temp);
}

/*******************读取LMH6401 状态**************************3*/  

unsigned char LMH6401_status(u8 addr)
{
         unsigned char status;
         DF_CS_0;  //片选打开
         delayus(10);

         W_LMH6401_byte(addr); //D7H是读取状态的命令字

         status = R_LMH6401_byte(); //读取状态字节

         DF_CS_1; //片选关闭
         delay(500);

         return status;

}


下面是读写的操作时序图
QQ截图20170616095637.png (129.04 KB, 下载次数: 0) 下载附件 2017-6-16 10:05 上传
发送00,应该返回03,但是毫无反应无返回,发送其他指令也是

还有一个问题就是,如何发送7位地址,请各位帮忙解答一下





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
zhcj66
1楼-- · 2019-12-27 23:18
 精彩回答 2  元偷偷看……
20061002838
2楼-- · 2019-12-28 01:59
上逻辑分析仪

读ID应该是发送0x80吧,第一位读写位
muyi122
3楼-- · 2019-12-28 04:08
zhcj66 发表于 2017-6-16 13:00
上逻辑分析仪

四通道的,数据发送正确,可同时看CS,DIO,DO,CLK四路信号。三路正常,但是没返回。元件测试过没问题,默认增益2dB,尝试直接写数据,但是增益不变javascript:;
muyi122
4楼-- · 2019-12-28 07:40
muyi122 发表于 2017-6-17 09:14
四通道的,数据发送正确,可同时看CS,DIO,DO,CLK四路信号。三路正常,但是没返回。元件测试过没问题,默 ...

发的是地址0x02,数据是0x14,查表知应该增益为14javascript:;
muyi122
5楼-- · 2019-12-28 09:39
20061002838 发表于 2017-6-16 15:53
上逻辑分析仪

读ID应该是发送0x80吧,第一位读写位

先发高位,后发低位,数据为0x01
20061002838
6楼-- · 2019-12-28 10:56
 精彩回答 2  元偷偷看……

一周热门 更多>