Cyw20719B2的SPI经常不能正常工作

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
14993901
Level 3
Level 3
First like given 25 replies posted 50 sign-ins

Hi,

cyw20719b2的SPI1工作于slave模式,外设发送的数据经常不能被cyw20719b2的SPI1正常接收。现象如下:

1)cyw20719b2启动后,如果SPI1第一次接收的数据正常,那么之后始终可以正常接收。

2)cyw20719b2启动后,如果SPI1第一次接收的数据不正常,那么之后都正常,而且从FIFO读入的都保持同样的数值。

代码片段如下:

#include "wiced_hal_pspi.h"

...

wiced_hal_pspi_reset(SPI1);

wiced_hal_pspi_init(SPI1, 0, SPI_LSB_FIRST, SPI_SS_ACTIVE_HIGH, SPI_MODE_1);

wiced_hal_pspi_slave_enable_rx(SPI1);

...

wiced_hal_pspi_slave_rx_data();

...

 

问题可能出在什么地方?

 

谢谢

0 点赞
10 回复数
Owen_Zhang123
Moderator
Moderator
Moderator
5 questions asked 500 solutions authored 250 sign-ins

请问你的应用中是否有用到UART?

0 点赞
14993901
Level 3
Level 3
First like given 25 replies posted 50 sign-ins

使用了PUART,未使用HUART

0 点赞
Owen_Zhang123
Moderator
Moderator
Moderator
5 questions asked 500 solutions authored 250 sign-ins

有没有调用下面的函数:wiced_transport_init( &transport_cfg );

HCI UART和SPI1共用buffer,两个不能同时使用。

0 点赞
14993901
Level 3
Level 3
First like given 25 replies posted 50 sign-ins

没有使用HCI UART, 也没有调用上述函数

0 点赞
Owen_Zhang123
Moderator
Moderator
Moderator
5 questions asked 500 solutions authored 250 sign-ins

是否可以提供一个可以复现问题的程序?

0 点赞
14993901
Level 3
Level 3
First like given 25 replies posted 50 sign-ins

程序需要一个SPI接口的Master外设,您可能没法运行。

这几天发现,如果SPI口不正常,按一下RESET按钮就可以正常工作了,

请问可能是什么原因引起的?

0 点赞
14993901
Level 3
Level 3
First like given 25 replies posted 50 sign-ins

我对照了一下CYW20719B2_SPI例子,发现例子中的:

wiced_hal_pspi_init();

wiced_rtos_create_thread();

在case BTM_ENABLED_EVT:  中调用。

而我的代码中在APPLICATION_START()中调用,会不会是这个原因引起的?

0 点赞
Owen_Zhang123
Moderator
Moderator
Moderator
5 questions asked 500 solutions authored 250 sign-ins

请问你修改了这个调用位置之后,问题是否解决了?

直接跑demo会有问题吗?

0 点赞
14993901
Level 3
Level 3
First like given 25 replies posted 50 sign-ins

这两天测试了多次一直没有问题,但是今天又出现了相同的问题。

CYW20719B2_SPI这个demo将读取SPI的线程优先级设为5,而我改为了1,这会有问题吗?

0 点赞
Owen_Zhang123
Moderator
Moderator
Moderator
5 questions asked 500 solutions authored 250 sign-ins

你可以把优先级改回去试一下看问题是否复现。

0 点赞