嗨,对话框中,
我正在为DA14580开发一个SPI从驱动程序。
当通过在从端SPI_DATA 0上写入1到2字节的数据来执行通信时,写在从端上的数据将在主端和Logic Analyzer上读取。
当通信没有在从端SPI_DATA0中写入任何值时,在主端和Logic Analyzer上读取0xC0。
根据DA14580_DS_3 v4.pdf的96页,SPI_DATA 0的Reset值为0x0。
因此,我不知道为什么在Master端和Logic Analyzer上读取0xC0。
是否有一些东西要发送带有初始值的0xC0 ?
每个寄存器的设定值如下。
SPI_CTRL_REG
SPI_EN_CTRL = 0
SPI_MINT=1(中断控制器启用SPI_INT_BIT)
SPI_INT_BIT
SPI_DI
SPI_TXH
SPI_FORCE_DO = 1
SPI_RST = 0
SPI_WORD=00(8位模式,仅使用SPI_RX_TX_REG0)
SPI_SMN = 1(奴隶)
SPI_DO = 1
SPI_CLK = 10
SPI_POL = 0
SPI_PH = 0
SPI_ON = 0
SPI_CTRL_REG1
SPI_9BIT_VAL = 0
SPI_BUSY
SPI_PRIORITY = 0
SPI_FIFO_MODE = 0(双向模式)
最好的问候,
Hideyuki小林
设备:
嗨,Hideyuki小林
当使用580作为SPI slave时,您可能需要额外注意连接和信号处理。下面的文章可能对你有帮助。
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。
顺便问一下,你的主SPI设备使用的时钟速度是多少?
嗨,Qinjiny_Dialog
主SPI设备时钟设置为200KHz。
最好的问候,
Hideyuki小林
嗨Hideyuki小林,
我不认为有一个代码或写作的hw设置总线上的特定值,最大的可能,因为没有spi奴隶寄存器中的值,如果时钟提供给奴隶,你看到的是垃圾,除非如果你以某种方式加载0 x0c0值寄存器弗兰克-威廉姆斯,如果设备每次都继续发送此字节。
由于MT_dialog