SPI 问题-等待主人完成传输时卡住了

公告

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

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

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

你好

我最初创建了示例项目 bluetooth_le_HelloSensor 并添加了我的 SPI 驱动程序代码。 它运作良好。

当我使用 OTA 复制 Battery Server 示例的相同设置时,SPI 会卡在这里:

prk_4086136_0-1701194428947.png

我使用的不是 hal 驱动程序,而是 pdl 驱动程序。 可能是什么问题?

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AIROC-Bluetooth/SPI-issue-Stuck-waiting-for-master-to-complete-transfer/td-p/648925

0 点赞
1 解答
Translation_Bot
Community Manager
Community Manager
Community Manager

你好 @prk_4086136

对于 psoc63,它将构建 mcuBoot 镜像以便首先从 CM0+ 启动应用程序(CM0P_BLESS_OTA 镜像 )。
内存的映射地址将引用闪存映射配置(*.json 文件)。
你可能需要检查时钟配置是否正常运行,也可以在 PSOC_063_1M 或 PSOC_062_1M 的 makefile
中添加这几个标志:DEFINES+=CY_USING_PREBUILT_CM0P_IMAGE CORE_NAME_CM4_0

热烈的问候,安德

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AIROC-Bluetooth/SPI-issue-Stuck-waiting-for-master-to-complete-transfer/m-p/669687

在原帖中查看解决方案

0 点赞
9 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨 Advait,

使用的芯片是CY8C6347FMI-BLD33T,使用的BSP是CY8CPROTO-63BLE。

它不会引发任何错误。 只是被困在循环中。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/SPI-issue-Stuck-waiting-for-master-to-complete-transfer/m-p/649536

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

@prk_4086136

你能告诉我你使用的是哪个芯片吗? 它会抛出任何错误吗?

谢谢,问候,

Advait Kulkarni

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/SPI-issue-Stuck-waiting-for-master-to-complete-transfer/m-p/649522

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

@advait_kulkarni-只是来看看这个

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/SPI-issue-Stuck-waiting-for-master-to-complete-transfer/m-p/651466

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

你好?

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/SPI-issue-Stuck-waiting-for-master-to-complete-transfer/m-p/652252

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

@prk_4086136

请分享您在 hello 传感器代码示例中添加的 SPI 代码片段,以便我们更好地理解问题。

 

谢谢&问候

Pratiksha V

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/SPI-issue-Stuck-waiting-for-master-to-complete-transfer/m-p/653347

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨,

SPI 代码:

uint32 状态 = 0;
uint8_t txbuffer1 [1] = {(0x0F)|0x80}; //For IMU
status = startspiTransAction (txbuffer1,SpirxBuffer,2);//For IMU
/* 如果没有错误,请等到主服务器在 Tx FIFO 中发送数据 */
if(状态 == CY_SCB_SPI_SCUCCESS)
{
状态 = 检查传输状态 (2);
}
 
uint32 检查传输状态(uint32 传输大小)
{
uint32 主状态 = 传输失败;
 
/* 等到主人完成传输 */
{
MasterStatus = cy_scb_spi_getTransferStatus (mspi_HW,& mspi_context)
 
} 而 (0UL!= (masterStatus & CY_SCB_SPI_TRANSFER_ACTIVE));
 
numTransfered = cy_scb_spi_getnumTransfered (mspi_HW,& mspi_context);
 
/* 检查是否有错误 */
if ((0UL == (MASTER_ERROR_MASK & masterStatus)) & &
(transferSize == cy_scb_spi_getnumTransfered(mspi_HW,& mspi_context))
{
/* 没有错误 */
主状态 = 转移_完成;
}
其他
{
/* 传输时遇到错误 */
主状态 = 传输失败;
}
 
返回(主状态);
}
 
同样的代码也适用于我基于 RTOS 的 Ble_Hello_Sensor 修改后的代码(没有 OTA)。 因此,我可以确认这不是 RTOS 问题。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/SPI-issue-Stuck-waiting-for-master-to-complete-transfer/m-p/653355

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

@PratikshaV-这方面有更新吗?

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/SPI-issue-Stuck-waiting-for-master-to-complete-transfer/m-p/654104

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

你好 @prk_4086136,你

能不能在调试模式下运行代码的时候给出报告?
并且请在调试时获取调用堆栈。
因此,我们可以检查调用堆栈 & 注册状态...

谢谢 & 问候
Andri

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AIROC-Bluetooth/SPI-issue-Stuck-waiting-for-master-to-complete-transfer/m-p/660276

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

你好 @prk_4086136

对于 psoc63,它将构建 mcuBoot 镜像以便首先从 CM0+ 启动应用程序(CM0P_BLESS_OTA 镜像 )。
内存的映射地址将引用闪存映射配置(*.json 文件)。
你可能需要检查时钟配置是否正常运行,也可以在 PSOC_063_1M 或 PSOC_062_1M 的 makefile
中添加这几个标志:DEFINES+=CY_USING_PREBUILT_CM0P_IMAGE CORE_NAME_CM4_0

热烈的问候,安德

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AIROC-Bluetooth/SPI-issue-Stuck-waiting-for-master-to-complete-transfer/m-p/669687

0 点赞