TI中文支持网
TI专业的中文技术问题搜集分享网站

drv8711 读寄存值全1

TI工程师,您好

      drv8711 SPI读取任意寄存器,读取到的值均为0xFFFF,并且寄存器值无法写入。

      请教一下,确保SPI通信没有问题,可能存在什么问题?

chuanjing liu:

回复 Alvin Zheng:

 u16 SPI1_ReadWriteByte(u16 TxData) {     u8 retry=0;    CS_A_4 = 1;    //片选 delay_ms(1); while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET)    //等待发送区为空 {     retry++;     if(retry>200) return 0;     }        retry=0;  SPI_I2S_SendData(SPI1, TxData);            while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET)   //等待接收完 {     retry++;     if(retry>200) return 0;   }     CS_A_4 = 0;  delay_ms(1); return SPI_I2S_ReceiveData(SPI1);     }

 SPI1_ReadWriteByte(0x0031);      //CTRL      SPI1_ReadWriteByte(0x13FF);      //TORQUE SPI1_ReadWriteByte(0x200E);       //OFF SPI1_ReadWriteByte(0x3032);       //BLANK SPI1_ReadWriteByte(0x4306);      //DECAY SPI1_ReadWriteByte(0x5040);       //STALL SPI1_ReadWriteByte(0x605E);       //DRIVE

 len = SPI1_ReadWriteByte(0x8000);      //CTRL   len = SPI1_ReadWriteByte(0x9000);      //TORQUE   len = SPI1_ReadWriteByte(0xA000);      //OFF   len = SPI1_ReadWriteByte(0xB000);      //BLANK   len = SPI1_ReadWriteByte(0xC000);      //DECAY   len = SPI1_ReadWriteByte(0xD000);      //STALL   len = SPI1_ReadWriteByte(0xE000);      //DRIVE

TI工程师你好,这是我的读取函数,我在做读取SPI flash芯片操作程序正常的。

请问,在读写drv8711的时候,我依据手册上将CS脚拉高,读取完成后拉低,这样的操作正确吗?

该芯片在读取和写入前需要发送那些指令?手册中只提到了指令格式

感谢你的解答!!

chuanjing liu:

回复 Alvin Zheng:

TI工程师你好,请教几个问题

1、在读取和发送的时候,我依据手册中将片选CS拉高,读取或写入后再拉低,这样做法正确吗??

2、在读取和发送操作drv8711的时候,需要先发送什么指令(比如唤醒指令)吗?或者需要做那些操作呢??手册中并未提到。

chuanjing liu:

回复 chuanjing liu:

是SPI通信问题,已解决!!

jiahui shou:

回复 chuanjing liu:

我也在学习这科芯片,能共享一下资料么?

user5769726:

回复 chuanjing liu:

麻烦问一下您是怎么解决的这个问题?我遇到了相似的问题,drv8323芯片用spi进行寄存器的读写,读到的寄存器总是初始默认值,写入之后没有效果,依然是默认值

赞(0)
未经允许不得转载:TI中文支持网 » drv8711 读寄存值全1
分享到: 更多 (0)