最新讨论
你好,
我使用的是 imx8mn 设备&它在安卓 9 2.3.4 上运行 OS。
我想使用蓝牙将我的智能手机连接到 imx8mn。
建立连接后,我想在每 1 秒钟后使用我的智能手机 ping imx8mn 设备。 作为回应,imx8mn应该发送其名称或一些数据。
有这样的应用程序或脚本可用吗? 如果是,请与我分享。
谢谢,
Sujay
嗨,
我需要一个带有绑定列表的中心角色的示例,该角色 CAN 在特定事件(uart 上的接收参数)上存储和删除。
谢谢
收到CY_U3P_USB_EVENT_SETCONF事件时,我正在尝试将我的DMA通道创建代码从CyFxApplnInit移动到USB事件回调,但是我收到来自CyU3PDmaMultiChannelCreate API调用的错误代码0x40,当API调用在CyFxApplnInit中时,我从未收到过它。 我的代码与 cyfxApplNinit 中的代码完全相同,所以我不确定为什么突然出现无效的参数错误。 我编译时没有错误或警告。 以下是我的代码片段。 如果能帮助我确定为什么会出现这些错误,我将不胜感激。
/* Creates UVC DMA channels. */
static void
CyFxUVCApplnDmaChannelCreate (void)
{
CyU3PEpConfig_t epCfg;
CyU3PDmaMultiChannelConfig_t dmaMultiCfg;
CyU3PReturnStatus_t apiRetStatus = CY_U3P_SUCCESS;
/* VideoStreaming USB IN Endpoint Configuration */
epCfg.enable = CyTrue;
epCfg.epType = CY_U3P_USB_EP_BULK;
epCfg.pcktSize = CY_FX_EP_BULK_VIDEO_PKT_SIZE;
epCfg.burstLen = CY_FX_EP_BULK_VIDEO_PKTS_COUNT;
epCfg.isoPkts = 0;
epCfg.streams = 0;
apiRetStatus = CyU3PSetEpConfig(CY_FX_EP_VID_BULK, &epCfg);
if (apiRetStatus != CY_U3P_SUCCESS)
{
CyU3PDebugPrint (4, "UVC start CyU3PSetEpConfig failed, Error code = 0x%x\r\n", apiRetStatus);
ApplnErrorHandler(apiRetStatus);
}
dmaMultiCfg.size = CY_FX_UVC_STREAM_BUF_SIZE; /* 16KB */
dmaMultiCfg.count = CY_FX_UVC_STREAM_BUF_COUNT; /* 4 */
dmaMultiCfg.dmaMode = CY_U3P_DMA_MODE_BYTE; /* Should always be CY_U3P_DMA_MODE_BYTE */
dmaMultiCfg.notification = 0;
dmaMultiCfg.prodHeader = 0;
dmaMultiCfg.prodFooter = 0;
dmaMultiCfg.consHeader = 0;
dmaMultiCfg.prodAvailCount = 0; /* Must always be 0 */
dmaMultiCfg.cb = NULL;
dmaMultiCfg.validSckCount = 2;
dmaMultiCfg.prodSckId[0] = CY_U3P_PIB_SOCKET_0;
dmaMultiCfg.prodSckId[1] = CY_U3P_PIB_SOCKET_1;
dmaMultiCfg.consSckId[0] = (CY_U3P_UIB_SOCKET_CONS_0 | 0x02);
apiRetStatus = CyU3PDmaMultiChannelCreate(&glChHandleUVCStream, CY_U3P_DMA_TYPE_AUTO_MANY_TO_ONE, &dmaMultiCfg);
if (apiRetStatus != CY_U3P_SUCCESS)
{
CyU3PDebugPrint(4, "UVC start CyU3PDmaChannelCreate failed, Error code = 0x%x\r\n", apiRetStatus);
ApplnErrorHandler(apiRetStatus);
}
CyU3PUsbFlushEp (CY_FX_EP_VID_BULK); /* Recommended to flush after creation */
以下是 CY_U3P_USB_EVENT_SETCONF 的具体情况,当时我想创建 DMA 频道
case CY_U3P_USB_EVENT_SETCONF:
if (CyU3PUsbGetSpeed() == CY_U3P_SUPER_SPEED)
{
CyU3PDebugPrint(4, "UsbEventCB: Detected SS USB Connection\r\n");
}
else if (CyU3PUsbGetSpeed() == CY_U3P_HIGH_SPEED)
{
CyU3PDebugPrint(4, "UsbEventCB: Detected HS USB Connection\r\n");
}
/* Create UVC DMA channels */
CyFxUVCApplnDmaChannelCreate();
CyU3PDebugPrint(4, "UsbEventCB: Created UVC DMA\r\n");
glUVCEventProd = 0;
glUVCEventCons = 0;
glUVCEventError = 0;
glUACEventProd = 0;
glUACEventCons = 0;
glUACEventError = 0;
CyFxApplnPrintConf();
Show Less
嗨,
我正在尝试在从属模式下使用 SQPI 模块来接收 3 字节的数据。 但是,最终进入RX FIFO的数据似乎每次都会向右移动不同的位数。
这是我的测试设置:我使用 QSPI3 作为主站,使用 QSPI4 作为仅接收从站,它们相应地连接在一起(Chip-Select、Clock、MOSI)。 我使用 DMA 将我想发送的数据(0xffff0F [0b11111111111111111111111100001111])复制到 qspi3s 的 DATAENTRY 中,将我想使用的 BACONTRY 值复制到它的 BACONENTRY 中。 当 QSPI4 触发 RX 中断时,将使用 DMA 从 QSPI4s 的 RXEXIT 中复制一个条目(32 位)。
我想我正确配置了 QSPI4:设置 GLOBALCON 和 GLOBALCON1,使用 GLOBALCON.B.RESETS 重置状态机和 FIFO,将 BACON 设置为与 QSPI3 相同的值,将一些数据放入 DATAENTRY 让模块将 BACONENTRY 中的值应用到 BACON 中,在 ECON 中配置计时,最后通过设置 GLOBALCON.B.MS = 0x2 进入从属模式
当我现在使用 QSPI3 发送这 3 个字节时:0xFFFF0F(0b1111111111111111111100001111),我预计 QSPI4 会收到完全相同的数据。
但是相反,我会得到数据,但向右移动。 以下是前几场招待会:
0b00000000111111111111111100001111、0b00000000111111111111111110000111110000111、0b0000001111111111111111000011、0b0000001111111111000011、0b00000011111111111000011、0b000000111111111111111000011、0b0000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110000,0b000000001111111111111111111000。
看来每次传输,数据都会再向右移动一位。
我还在 QSPI4s 状态寄存器的 ERRFLAGS 中遇到 SLSI 放错位置的失活错误,但是 SLSI 信号对我来说在示波器上看起来不错,而且我对两个模块使用相同的 ECON 和 BACON 设置所以 SLSI 错位的失活错误真的不应该发生
有人知道是什么原因导致的吗?
以下是我为两个模块使用的所有配置参数:
GLOBALCON:
TQ = 63
SI = 0 EXPEST = 0xF
LB = 0
DEL0 = 0 STOBE = 0 SRF = 0
STIP = 0 EN = 1
MS = 0 AREN = 0 AREN = 0 AREN = 0 AREN = 0 ARE
N = 0
RESETS = 0 RESETS = 0
GLOBALCON1:
ERRORENS = 0
TXEN = 0 RXEN = 1 PT
1EN = 0 PT
2EN = 0
USRE
N = 0 TXFIFOINT = 0 RX
FIFOINT = 0 PT1 = 0 PT2 = 0 TXFM = 0 TXFM = 1 RXFM = 2
BACON:L
AST = 1
IPRE = 5(PRESCALER 1024)
空闲 = 1
LPRE = 0(PRESCALER 1)LEA
D = 1 TPR
E = 0(PRESCALER 1)T
RAIL = 1 PART
YP = 0
UINT = 0
MSB = 1 BYTE = 0 DL = 23 CS = 0
ECON:
Q = 32
A = 0
B = 0
C = 1
我在世界的另一端有一个系统无法下载新的固件。
不幸的是,关于FX3 API返回的内容等,我没有太多细节,但我希望得到一些关于可能导致这种情况的反馈。
我 CAN 将固件下载到RAM,但是一旦我尝试下载到闪存,它就会在几秒钟后中止。
有时设备根本不会显示在设备管理器中,在这种情况下,我需要重置设备。
它在我拥有的所有其他系统上都能正常运行,而且我已经好几年没有遇到任何问题了。
Show Less大家好,我需要一些帮助。
我需要很好地了解校准前和校准后包括什么。
我需要详细了解他们是什么,他们做什么,扮演什么角色。
在此先谢谢。
你好
我正在使用 CYBT-343026 (CYW20706) 上的 PUART 向具有 CTS/RTS 流量控制的主机 MCU 发送/接收数据。 主机 MCU 有时会通过长时间拉高 CYBT 的 CTS 引脚来阻断从 CYBT 到主机 MCU 的数据流。
这种行为是预料之中的,也是主机 MCU 的运行方式。
但是,当 CYBT 的 CTS 引脚被主机拉高(从而阻止 CYBT 发送 PUART 数据)时,CYBT 会冻结并完全没有响应。 在其 CTS 引脚被拉高 4 秒钟后,系统看门狗计时器会使其重新启动。 虽然禁用系统监视计时器会阻止 CYBT 重新启动,但它并不能解决潜在的问题。
我的问题是:
只要CTS引脚保持高电平,CYW20706上的BTSDK PUART驱动器就会阻止整个系统,这准确吗?
最诚挚的问候,
Niels Sparre
大家好,
我们正在尝试为比特率配置 500k 波特,为数据速率 FD 配置 500 万波特,但出现了错误。
带有 1M 波特的 250k 和采用 2M 波特配置的 500k 可以正常工作。
我们仔细检查了 Seg1 Seg2 和 SJW 的值,还尝试了多种组合,但运气不佳。
附上波特为 1M 的 250k 和 2M 波特的 500k 的逻辑分析器屏幕截图以供参考。
最诚挚的问候,
Kamran Pathan