嗨,对话框中,
我正在为DA14580开发一个SPI从驱动程序。
当通信通过在从端SPI_DATA 0上写入1到2字节的数据来执行时,从端写入的数据将在主端和Logic Analyzer上读取。
当在从端不写入任何值的SPI_DATA0通信时,在主端和逻辑分析仪上读取0xC0。
根据DA14580_DS_3 v4.pdf的96 Page, SPI_DATA 0的Reset值是0x0。
因此,我不知道为什么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从服务器时,您可能需要特别注意连接和信号处理。下面的文章可能对你有帮助。
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。
顺便问一下,你的主SPI设备使用的时钟速度是多少?
嗨,Qinjiny_Dialog
主控SPI设备时钟被设置为200KHz。
最好的问候,
Hideyuki小林
嗨Hideyuki小林,
我不认为有一个代码或写作的hw设置总线上的特定值,最大的可能,因为没有spi奴隶寄存器中的值,如果时钟提供给奴隶,你看到的是垃圾,除非如果你以某种方式加载0 x0c0值寄存器弗兰克-威廉姆斯,如果设备每次都继续发送这个字节。
由于MT_dialog