HCI UART hardware flow control doesn't work for CYW20706?

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

cross mob
lock attach
Attachments are accessible only for community members.
kf
Level 3
Level 3
First like received 25 sign-ins 10 replies posted

I'm trying to test HCI UART functionality using CYW920706WCDEVAL board, PC running Windows 10 and Raspberry Pi 3B running Raspbian 10. On the Raspberry Pi as well as on the PC I have unmodified client_control application that I use for interfacing an unmodified serial_gatt_service example application running on CYW20706. UART baud rate is always set to 3000000.

I made few tests connecting UART via internal FTDI chip of CYW920706WCDEVAL as well as via external USB-to-serial converter. On the attached picture is my development board configured for external UART. In the tests with internal FTDI chip the jumpers on J26 were put back. In client_control application I tried to open corresponding serial port with "Flow Control" option being checked or unchecked. In the tables below I summarized the results.

With internal FTDI chip:

  Windows PC Linux on Raspberry Pi
Flow Control ON Communication OK Communication OK
Flow Control OFF No communication Communication OK

 

With external USB-to-serial converter:

  Windows PC Linux on Raspberry Pi
Flow Control ON No communication Communication OK
Flow Control OFF No communication Communication OK

 

I think,  Linux driver simply ignores RTS/CTS, hence it works always. But the fact that the external USB-to-serial converter doesn't work on Windows at all means that that there's something wrong with RTS and CTS signals of CYW920706WCDEVAL. I cross-checked it with another USB-to-serial converter and with direct connection between CYW920706WCDEVAL HCI UART and the Raspberry Pi - it does not work either.

Please advise me how to get stable HCI UART connection between CYW920706WCDEVAL and a host (for example, Raspberry Pi) without using internal FTDI chip.

0 Likes
1 Solution
DheerajPK_41
Moderator
Moderator
Moderator
750 replies posted 500 likes received 500 replies posted

Hi,

Sorry for the delay.

Seems like, the clientcontrol could open the port properly. The next step id clientcontrol should try sending some commands/data and the device should be ready/capable to receive those commands. Please download a proper application to the device and try the same steps. It should work atleast in CYW920706WCDEVAL in my opinion. 

After opening the port, i.e. "09:55:12.160 Opened \\.\COM3 at speed: 3000000 flow on" what is your expectation? If a valid application firmware is present in the device then the commands/events/data can be shared to the device from  the clientcontrol. 

Other way of verifying is, you can try sending raw HCI commands such as Reset-0x01 0x03 0x0C 0x00 and get the HCI event - 0x04 0x0E 0x04 0x01 0x03 0x0C 0x00. In this case, your device should be opened with 115200 baud rate since the device is expected to use as controller only mode. You can modify the clientcontrol itself to send the raw byte of data or use a standard terminal emulation tool such as putty or teraterm.

Thanks,

-Dheeraj.P.K

View solution in original post

0 Likes
5 Replies
DheerajPK_41
Moderator
Moderator
Moderator
750 replies posted 500 likes received 500 replies posted

Hi,

Could you please try to monitor the UART lines using a logic analyzer? There is nothing special with the internal FTDI chip. The communication should work even if you use any standard USB-to-serial converter. flow control is needed when you communicacte over hci uart.

 

Which external USB-to-serial converter are you using? Can we somehow test it independently to confirm the coverter works properly?

Also, let us know what is your method of testing to check whether the communication is OK or Not OK? Are you sending any particular packet?

 

Thanks,

-Dheeraj.P.K

0 Likes
lock attach
Attachments are accessible only for community members.
kf
Level 3
Level 3
First like received 25 sign-ins 10 replies posted

Hello @DheerajPK_41 ,

> Could you please try to monitor the UART lines using a logic analyzer?
Please see attached ZIP file containing logs in Saleae Logic 2 format. It looks like the CYW20706 does not answer when it is connected to Windows PC.

> Which external USB-to-serial converter are you using?
It's a no-name converter - please see attached pictures. Actually, I tried it with one more converter branded as "Tinxi FT232RL FTDI". It doesn't work either.

> Can we somehow test it independently to confirm the coverter works properly?
When we connect this converter to some other board, it works just fine. For example, we used the following setup:
- The converter connected via USB to the same Windows PC that was used for testing CYW
- The converter connected via GPIOs to Raspberry Pi's GPIOs
- In this case it works just fine. For example, we're able to transfer files between the PC and the Pi via UART at 3M baud rate via zmodem.

> Also, let us know what is your method of testing to check whether the communication is OK or Not OK?
> Are you sending any particular packet?
As I already explained in the ticket's description, we're using "Client Control" application provided by Cypress. If the application is able to communicate with CYW20706, the test is OK. If the application is NOT able to communicate with CYW20706, the test is NOT OK.

Best regards,
Konstantin

BTSpy log:

09:55:01.736 Song: Beat It
09:55:01.736 Sending AVRC CT repeat setting 1
09:55:01.736 Sending AVRC CT shuffle setting 1
09:55:01.736 Sending AVRC CT vol level 255
09:55:01.736 Sending AVRC CT vol level 0
09:55:01.737 Instructions:
09:55:01.737 1. Plug the WICED Evaluation Board into the computer using a USB cable.
09:55:01.737 2. In the Eclipse IDE, double-click on the desired target in 'Make Target' window to build
09:55:01.737 and download an embedded application to the WICED evaluation board.
09:55:01.737 3. Select the serial (COM) port for the WICED Evaluation Board and open the port.
09:55:01.737 This is usually enumerated 'WICED HCI UART' on Windows or Linux PCs.
09:55:01.737 The UI will be enabled when the Client Control app is able to communicate with the embedded BT app.
09:55:01.737 4. For more information on application tabs, select a tab and click on the help (?) icon.
09:55:01.737
09:55:01.737 Note: To re-download the embedded application, first close the serial port.
09:55:01.737
09:55:12.160 Opened \\.\COM3 at speed: 3000000 flow on
09:55:14.149 Startup
09:55:14.149 Set discoverable:1, connectable:1
09:55:14.150 Set Pairable:1

 

Drivers for USB-to-serial adapterDrivers for USB-to-serial adapter

Client Control screenshotClient Control screenshotUSB-to-serial adapterUSB-to-serial adapterTest setupTest setupUSB-to-serial adapterUSB-to-serial adapter

0 Likes
DheerajPK_41
Moderator
Moderator
Moderator
750 replies posted 500 likes received 500 replies posted

Hi,

Sorry for the delay.

Seems like, the clientcontrol could open the port properly. The next step id clientcontrol should try sending some commands/data and the device should be ready/capable to receive those commands. Please download a proper application to the device and try the same steps. It should work atleast in CYW920706WCDEVAL in my opinion. 

After opening the port, i.e. "09:55:12.160 Opened \\.\COM3 at speed: 3000000 flow on" what is your expectation? If a valid application firmware is present in the device then the commands/events/data can be shared to the device from  the clientcontrol. 

Other way of verifying is, you can try sending raw HCI commands such as Reset-0x01 0x03 0x0C 0x00 and get the HCI event - 0x04 0x0E 0x04 0x01 0x03 0x0C 0x00. In this case, your device should be opened with 115200 baud rate since the device is expected to use as controller only mode. You can modify the clientcontrol itself to send the raw byte of data or use a standard terminal emulation tool such as putty or teraterm.

Thanks,

-Dheeraj.P.K

0 Likes
DheerajPK_41
Moderator
Moderator
Moderator
750 replies posted 500 likes received 500 replies posted

Hi, 

Are you using any specific application? Could you please share it with us so that we can try reproducing the issue at our side and provide you some update.

Thanks,

-Dheeraj.P.K

0 Likes

Hello,

As I mentioned in the ticket's description, I'm using unmodified serial_gatt_service example application running on CYW20706. This application is included in Cypress SDK.

Best regards,
Konstantin

0 Likes