Part Number:CC1310
您好:
我目前使用cc1310作为spi slave同另外的rsic-v的芯片通信,现在发现收到的数据偶尔会有错位的现象,有没有什么办法能够调整这个miso的输出相位的?
spi master是 rsic-v的ch32v307 ,采用的是spi mode2,spi slave也是mode2;通讯有错位,波形图如下:绿色是clk,黄色为miso;经常会有比如0xF6 变为0xF2的情况;
andy:
补充一点,spi 的clk 是4.5M的
,
andy:
SPI_Params_init(&spiParams); spiParams.frameFormat = SPI_POL0_PHA1; spiParams.mode = SPI_SLAVE; spiParams.transferCallbackFxn = transferCompleteFxn; spiParams.transferMode = SPI_MODE_CALLBACK; slaveSpi = SPI_open(Board_SPI_SLAVE, &spiParams);
CC1310这边的spi配置。
,
Galaxy Yue:
您好,查看您的代码
SPI帧格式中,时钟极性为0,可以看出与SPI mode 2是一致
SPI配置目前看起来是没有问题的
您可以尝试以下方面:
1.降低时钟速率,看看是否能减少数据错位
2.检查信号线干扰,确保MISO线和时钟线不受干扰
,
andy:
降低到2M,确实没有问题,但是我必须用4M的速率,spi的线缆有0.8m长,缩短线缆后也没有问题,但是我们必须用长线缆的,硬件同事说是我们这个波形有问题,看软件上能不能调整相位。
,
Galaxy Yue:
检查一下硬件线是没问题的吗?
您可以参考一下这篇帖子,关于spi如何调整相位
https://e2echina.ti.com/support/machine-translation/mt-sub-1-ghz/f/mt-sub-1-ghz-forum/408074/launchxl-cc1310-spi
https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/574494/rtos-launchxl-cc1310-spi-data-error-when-use-as-slave-device
https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/750965/ccs-cc1310-spi-communication-between-cc1310-master-and-afe4300-slave