嗨,对话,
我正在为DA14580开发一个SPI从驱动程序。
当通过在从机侧的SPI数据0上写入1到2字节的数据来执行通信时,在从机侧写入的数据在主机侧和逻辑分析仪上被读取。
当通信时,在从机端的SPI\ U DATA0中没有写入任何值,则在主机端和逻辑分析仪上读取0xC0。
根据DA14580\U DS\U 3 v4.pdf的96页,SPI\U数据0的复位值为0x0。
因此,我不知道为什么0xC0在主机端和逻辑分析仪上被读取。
有什么东西要发送0xC0和一些初始值吗?
每个寄存器的设置值如下。
SPI控制寄存器
SPI\u EN\u CTRL=0
SPI\u MINT=1(启用中断控制器的SPI\u INT\u位)
SPI\ U INT\位
斯皮乌迪
SPI\U TXH公司
SPI\u FORCE\u DO=1
SPI\u RST=0
SPI\u WORD=00(8位模式,仅使用SPI\u RX\u TX\u REG0)
SPI\ U SMN=1(从)
SPI\ U DO=1
SPI\ U CLK=10
SPI\ U POL=0
SPI\ U PH=0
SPI\ U开=0
SPI控制寄存器1
SPI\ U 9BIT\ U VAL=0
SPI\ U忙
SPI\ U优先级=0
SPI\u FIFO\u MODE=0(双向模式)
顺致敬意,
小林秀树
设备:
嗨,小林秀树
当使用580作为SPI从设备时,您可能需要特别注意连接和信号处理。下面的帖子可能会对你有所帮助。
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl...
顺便问一下,您的主SPI设备使用的时钟速度是多少?
嗨,秦吉恩
主SPI设备时钟设置为200KHz。
顺致敬意,
小林秀树
嗨,小林秀树,
我不认为有一个代码或硬件设置在总线上写那个特定的值,很可能,因为在spi从寄存器中没有值,如果时钟提供给从,你看到的是垃圾,除非你以某种方式加载0x0C0值在你的fw寄存器中,如果设备每次都继续发送这个字节。
谢谢你的对话