英飞凌
直播中

哼小曲

13年用户 1212经验值
私信 关注

请问CY68013上位机发送的返回值到底代表什么意思?

status = OutEndPt->XferData(writeBuffer, Wr_len,  Writteninfo);
一开始我认为status代表发送是否成功,为0时代表发送失败,刚开始一直没问题,FPGA端接收也正常,上位机返回值也是1,
最后返回值一直是0,所以我一直认为发送失败了,但是今天在FPGA一端抓波形发现,数据是发送过去了的,请问这个返回值到底是什么意思?
在FPGA端能接收到数据的情况下,这个值可能是0也可能是1!!??

回帖(1)

那年我十七_

2024-5-24 16:48:24
CY68013是一款由Cypress公司生产的USB通信芯片,用于实现USB通信功能。在您的描述中,您提到了一个上位机发送的返回值,这个返回值是通过调用函数`status = OutEndPt->XferData(writeBuffer, Wr_len, Writteninfo);`得到的。这个函数的作用是将数据从上位机发送到FPGA。

首先,我们来分析一下这个函数的参数:
1. `writeBuffer`:要发送的数据缓冲区。
2. `Wr_len`:要发送的数据长度。
3. `Writteninfo`:一个指针,用于存储实际发送的数据长度。

函数返回的`status`值通常用于表示操作的成功与否。在大多数情况下,返回值为0表示操作失败,非0值表示操作成功。然而,您提到在FPGA端能接收到数据的情况下,返回值可能是0也可能是1。这可能是由于以下原因:

1. **错误的状态码解释**:可能是您对返回值的解释有误。在某些情况下,返回值可能不是简单的0或1,而是一个更复杂的状态码。您需要查阅CY68013的官方文档,了解具体的返回值含义。

2. **硬件或软件问题**:可能是硬件或软件的问题导致返回值不准确。例如,FPGA端的接收逻辑可能存在问题,导致返回值与实际发送情况不符。您需要检查FPGA端的代码和硬件设计,确保它们能够正确处理接收到的数据。

3. **通信协议问题**:可能是通信协议的问题导致返回值不准确。例如,USB通信协议可能在某些情况下导致返回值与实际发送情况不符。您需要检查通信协议的实现,确保它能够正确处理发送和接收的数据。

为了解决这个问题,您可以尝试以下步骤:

1. **查阅文档**:查阅CY68013的官方文档,了解返回值的具体含义和可能的值。

2. **检查代码**:检查您的上位机和FPGA端的代码,确保它们能够正确处理发送和接收的数据。

3. **调试**:使用调试工具(如逻辑分析仪、示波器等)来观察通信过程中的信号,以便找到问题所在。

4. **更新固件/软件**:如果问题是由于硬件或软件的bug导致的,尝试更新固件或软件到最新版本,看看问题是否得到解决。

5. **联系技术支持**:如果问题仍然存在,您可以尝试联系Cypress公司的技术支持,寻求专业的帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分