LPCXpresso SDK Example VCOM loopback doesn't work correct

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

LPCXpresso SDK Example VCOM loopback doesn't work correct

873 次查看
dingelen
Contributor III

Hi,

I'm starting a new development with the LPC55S69 and for starters I'm trying to get the VCOM USB working. So I've got the dev-board, downloaded the latest version of MCUXpresso (v11.0.0), the latest SDK (2.6.0) and opened some of the VCOM examples (lpcxpresso55s69_dev_cdc_vcom_bm, lpcxpresso55s69_dev_cdc_vcom_freertos) and started the debugging. All clean, no code changes.

After starting the application, I get a "USB device CDC virtual com demo" in the console and a new VCOM port is enumerated in Windows device manager. Now I open a serial port terminal (Putty, YAT, Terminal, Hercules, ...) connect and open the COM-port and send some characters. I would expect them to be looped back to the terminal but some strange stuff is happening.

Putting some break points in the function APPTask shows me that the characters are received, and send out again in the line:

error = USB_DeviceCdcAcmSend(s_cdcVcom.cdcAcmHandle, USB_CDC_VCOM_BULK_IN_ENDPOINT, s_currSendBuf, size);

No errors are reported.

- Putty seems to work without any problems.

- All other terminals can loopback nothing or one character or one string transmission. Afterwards the connection doesn't work anymore. The APPTask function is no longer reached, the terminal software is in an error state and to recover from this error, a restart of the debug has to be preformed and the terminal has to disconnect and reconnect again.

This is the case for ALL VCOM examples (BM, FREERTOS, LITE BM, Composite, ...)

Can anyone else verify this behaviour? Does anyone know where this is comming from?

Thanks!

标签 (2)
0 项奖励
2 回复数

579 次查看
dingelen
Contributor III

This is the correct solution I got from the ticketing:

Change startTransactions  to 1 in virtual_com.c file:
 
            else
            {
                /* DTE_DEACTIVATED */
                if (1 == s_cdcVcom.attach)
                {
                    s_cdcVcom.startTransactions = 1;  // change 0 to 1
                }
            }
 
then the Terminal can work well.
0 项奖励

579 次查看
Alice_Yang
NXP TechSupport
NXP TechSupport

Hello Tom Vandingelen,

It seems this is the same with the case in salseforce you  submit, I will reply you on that case.

0 项奖励