主题中讨论的其他器件:IWR6843、 LP8764-Q1、 USB2ANY
您好、社区
我们将 LP87745 PMIC 用于具有 IWR6843的定制板。 我想通过 SPI 与该 PMIC 通信。 是否有任何可供参考的示例代码?
此 IC 的数据表中没有太多信息、因此很难与此 PMIC 通信。
谢谢、此致、
Neil
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好、社区
我们将 LP87745 PMIC 用于具有 IWR6843的定制板。 我想通过 SPI 与该 PMIC 通信。 是否有任何可供参考的示例代码?
此 IC 的数据表中没有太多信息、因此很难与此 PMIC 通信。
谢谢、此致、
Neil
您好、Neil、
您可以从 LP87745-Q1产品页面申请获取完整数据表。 SPI 帧格式与 LP8764-Q1中的 SPI 帧几乎相同。 只有 PMIC 与主机之间的 SPI_STATUS 字节存在差异。
这里是我一直与 USB2ANY 一起使用的一个 Python 示例、用于与 SPI 通信。
def formSpiFrame(self, command, page, address, data): cArray=c_ubyte*4 cFrame=cArray(0,0,0,0) cFrame[0]=address&0xFF cFrame[1]=((page&0x7)<<5)|((command&0x1)<<4) cFrame[2]=data&0xFF if (self.CRC and command==0): cFrame[3]=self.calcCrc(cFrame,3) return cFrame # Returns the read value def spiRegisterRead(self, page, address): spiFrame=self.formSpiFrame(1, page, address, 0) ADDR=spiFrame[0] PAGE_OTHER=spiFrame[1] nBytes=3 if self.CRC: nBytes=4 self.u2a_.u2aSPI_WriteAndReadEx(self.HANDLE, self.SPI_CS, nBytes, ctypes.byref(spiFrame)) if self.CRC: RDATA=spiFrame[2] CRC=spiFrame[3] self.crcCompare([ADDR, PAGE_OTHER, RDATA], 3, CRC) print(spiFrame[0], spiFrame[1]) if spiFrame[0]!=(spiFrame[1]^0xFF): print("Device is not responding to SPI.") return spiFrame[2] # Returns the number of bytes read def spiRegisterWrite(self, page, address, value): spiFrame=self.formSpiFrame(0, page, address, value) nBytes=3 if self.CRC: nBytes=4 bytesRead=self.u2a_.u2aSPI_WriteAndReadEx(self.HANDLE, self.SPI_CS, nBytes, ctypes.byref(spiFrame)) if spiFrame[0]!=(spiFrame[1]^0xFF): print("Device is not responding to SPI.") return bytesRead
BR、
Samuli
您好、Samuli、
感谢您的回复、我现在可以阅读采用 IWR6843的 LP87745 PMIC。 但是、我必须保持芯片选择、直到发送所有数据( params.csHold = 1)、否则我无法接收完整数据。
当 params.csHold = 0且 params.dataSize = 16时、我可以接收到0x10ef; 当 params.dataSize = 8时、我接收到0x10、因为 CS 信号变为高电平。
但是、在 总传输期间保持 params.csHold = 1时、我接收到总数据。 例如、在读取地址0x01处的 DEV_REV 寄存器时、我读取0x10ef96。
谢谢、此致、
Neil