嗨对话框,
我正在为DA14580开发一个SPI奴隶驱动程序。
当通过在从侧的SPI_DATA 0上写入1到2个字节的数据来执行通信时,在主侧和逻辑分析器上读取在从侧写入的数据。
在没有在从站上的SPI_DATA0中进行通信时,在主侧和逻辑分析仪上读取0xC0。
根据DA14580_DS_3 v4.pdf的96页,SPI_DATA 0的重置值为0x0。
因此,我不知道0xC0在主侧和逻辑分析器上读取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 Kobayashi.
设备:
嗨,Hideyuki Kobayashi
当使用580作为SPI从站时,您可能需要一些关于连接和信号处理的额外关注。下面的帖子可能对您有所帮助。
https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...
BTW主SPI设备使用的时钟速度是多少?
嗨,qinjiny_dialog
主SPI设备时钟设置为200kHz。
最好的问候,
Hideyuki Kobayashi.
嗨Hideyuki Kobayashi,
我不认为有一个代码或HW设置是在总线上写下的特定值,因为SPI从站寄存器中没有值,而且如果将时钟提供给从属,所以您所看到的垃圾,否则如果您以某种方式加载FW中的寄存器中的0x0c0值,否则如果设备每次都会继续发送此字节。
谢谢mt_dialog.