TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2531 USB CDC稳定性问题

CC2531 USB CDC 运行一段时间之后会断开,之后必须重新拔USB或者芯片复位才能重新正常,不然PC上的端口一直显示被占用。

这样的话一些长时间使用的设备就很麻烦。

Alvin Chen:

请使用下面的固件测试,也有可能是您的系统的问题,在使用CC2531 最为usb dongle 未发现此问题.
www.ti.com/…/getliterature.tsp

sheng li:

回复 user6069081:

不是是我自己用CC2531做的硬件

sheng li:

回复 Alvin Chen:

USB外面有一个1.5米的延长线。代码使用的是MAC层代码包。

Alvin Chen:

回复 sheng li:

 我怀疑是你的硬件的问题,我在使用CC2531USB Dongle时没有出现你这样的问题,你可以用ZNP或者下面的demo 去测试一下。

sheng li:

回复 Alvin Chen:

好的,还有一个问题,打开双串口时,一段时间之后,双串口都有数据接收和发送,一段时间之后就卡死。回调是同一个函数。下面是初始化代码。
#define MASTER_UART HAL_UART_PORT_0
#define SLAVE_UARTHAL_UART_PORT_1
/*********************************************************************************************************

*********************************************************************************************************/
void SerialApp_Init(void)
{halUARTCfg_t uartConfig;
if(USE_MAX_UART > 0){uartConfig.configured= TRUE;// 2×30 don't care – see uart driver.uartConfig.baudRate= HAL_UART_BR_38400;uartConfig.flowControl= FALSE;uartConfig.flowControlThreshold = 64;// 2×30 don't care – see uart driver.uartConfig.rx.maxBufSize= 64;// 2×30 don't care – see uart driver.uartConfig.tx.maxBufSize= 64;// 2×30 don't care – see uart driver.uartConfig.idleTimeout= 6;// 2×30 don't care – see uart driver.uartConfig.intEnable= TRUE;// 2×30 don't care – see uart driver.uartConfig.callBackFunc= SerialApp_CallBack;HalUARTOpen (MASTER_UART, &uartConfig);if(USE_MAX_UART > 1){uartConfig.configured= TRUE;// 2×30 don't care – see uart driver.uartConfig.baudRate= HAL_UART_BR_38400;uartConfig.flowControl= FALSE;uartConfig.flowControlThreshold = 64;// 2×30 don't care – see uart driver.uartConfig.rx.maxBufSize= 64;// 2×30 don't care – see uart driver.uartConfig.tx.maxBufSize= 64;// 2×30 don't care – see uart driver.uartConfig.idleTimeout= 6;// 2×30 don't care – see uart driver.uartConfig.intEnable= TRUE;// 2×30 don't care – see uart driver.uartConfig.callBackFunc= SerialApp_CallBack;HalUARTOpen (SLAVE_UART, &uartConfig);}}
}

Alvin Chen:

回复 sheng li:

参考下面如何使用UART:
e2echina.ti.com/…/526637
不建议在一个回调中处理,可能会有出现中断不能及时释放的等问题。

sheng li:

回复 Alvin Chen:

看代码不是所有的接收回调都是在主循环中查询吗,没有放到中断中处理啊。

Alvin Chen:

回复 sheng li:

不懂你什么意思,请看hal_uart.c

sheng li:

回复 Alvin Chen:

Hal_ProcessPoll->HalUARTPoll-> HalUARTPollDMA -> dmaCfg.uartCB 我看代码是这么一个调用过程,没有看到在中断中处理,您上面说“不建议在一个回调中处理,可能会有出现中断不能及时释放的等问题。”

赞(0)
未经允许不得转载:TI中文支持网 » CC2531 USB CDC稳定性问题
分享到: 更多 (0)