3M UART communication with CYBT-353027-02 (CYW20706)

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

cross mob
kf
Level 3
Level 3
First like received 25 sign-ins 10 replies posted

We use CYBT-353027-02 module (based on CYW20706) in our development. It communicates with a host CPU via UART. Currently we use 115200 baud rate and it seems to work. However, if we set higher baud rate, say 500000, the communication becomes unreliable and multiple frames get lost. In the documentation I saw that 3M baud rate shall be possible. We tried 500K, 1M and 3M, but there's always the same problem - it works from the very beginning, then some data comes through but some doesn't.

Is there any trick to make the communication at higher baud rates more reliable?

Unfortunately, Cypress documentation does not contain detailed description of the UART parameters. UART on our host CPU is configured the following way: 8 bytes, 1 stop bit, no parity, hardware flow control (of course, it has RTS and CTS signals and they are connected to CYBT-353027-02).

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

Hi,

I still have doubt with your configurations.

Are you using CYBT-353027-02 only as a controller?  Host is located in MCU or in  CYBT-353027-02? Please confirm.

Also how did you verified that the communication is not working? Please provide more information about your test steps.

 

If you are using it as a controller (Controller mode), then you can send Update_UART_Baud_Rate VS HCI command to update the baud rate to a specified baud rate. If you using the device in embedded mode, then you can configure wiced_transport_cfg_t and communicate with an external MCU. 

 

Thanks,

-Dheeraj.P.K

View solution in original post

0 Likes
5 Replies
AnjanaM_61
Moderator
Moderator
Moderator
5 comments on KBA First comment on KBA 5 questions asked

Hello @kf ,

Can you please clarify below points ? :

- Is it regarding HCI UART or Peripheral UART ? 

- If HCI UART , So you are using CYBT-353027-02 in HCI mode not in embedded mode. Am I right ? Are you using CYBT-353027-02 EVAL for the testing or CYBT-353027-02 module directly connected to your host CPU via HCI UART pins ? In that case how are you making sure you updated the baud rate? Did you send update baud rate command and received success? Can you please confirm? 

Thanks,

Anjana

0 Likes
kf
Level 3
Level 3
First like received 25 sign-ins 10 replies posted

Hello Anjana,

Please find my answers embedded into the text below.

> - Is it regarding HCI UART or Peripheral UART ?
It is HCI UART.

> - If HCI UART , So you are using CYBT-353027-02 in HCI mode not in embedded mode.
Yes, we're using HCI mode.

>
Are you using CYBT-353027-02 EVAL
No.

> CYBT-353027-02 module directly connected to your host CPU via HCI UART pins ?
Yes.

> In that case how are you making sure you updated the baud rate?
We're setting the desired baud rate in the 'wiced_transport_cfg_t' structure provided to wiced_transport_init() function as a parameter.

const wiced_transport_cfg_t transport_cfg = {
.type = WICED_TRANSPORT_UART,
.cfg = {
.uart_cfg = {
.mode = WICED_TRANSPORT_UART_HCI_MODE,
.baud_rate = 115200/**//*3000000/**//*HCI_UART_DEFAULT_BAUD*/
},
},
.rx_buff_pool_cfg = {
.buffer_size = TRANS_UART_BUFFER_SIZE,
.buffer_count = TRANS_UART_BUFFER_COUNT
},
.p_status_handler = c4_transport_status,
.p_data_handler = c4_proc_rx_cmd,
.p_tx_complete_cback = c4_tx_complete
};

> Did you send update baud rate command and received success? Can you please confirm? 
Do you mean, host CPU shall send a command to CYBT vie UART? I didn't find anything like that in the SDK documentation. Please explain me in details, how this shall be done. Please provide an example of working source code

Best regards,
Konstantin

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

Hi,

I still have doubt with your configurations.

Are you using CYBT-353027-02 only as a controller?  Host is located in MCU or in  CYBT-353027-02? Please confirm.

Also how did you verified that the communication is not working? Please provide more information about your test steps.

 

If you are using it as a controller (Controller mode), then you can send Update_UART_Baud_Rate VS HCI command to update the baud rate to a specified baud rate. If you using the device in embedded mode, then you can configure wiced_transport_cfg_t and communicate with an external MCU. 

 

Thanks,

-Dheeraj.P.K

0 Likes
kf
Level 3
Level 3
First like received 25 sign-ins 10 replies posted

Hello @DheerajPK_41 ,

We're using CYBT-353027-02 in Application mode, as defined in Chapter 1 of the " WICED HCI UART Control Protocol" document. Host Bluetooth stack is located in CYBT-353027-02.

How we verified that the communication is not working: with 115K baud rate the commands sent by our application running on MCU get received by CYBT and the CYBT answers them. With 500K, 1M or 3M our MCU does not get any response from CYBT. Of course, we use the same baud rate on MCU as well as on CYBT. Of course, hardware flow control is on at the MCU.

We also tried to connect HCI UART on CYW920706WCDEVAL board via GPIOs to Raspberry Pi, but this does not work either. I opened a separate ticket for that:
https://community.cypress.com/t5/Wireless/HCI-UART-hardware-flow-control-doesn-t-work-for-CYW20706/t...

Best regards,
Konstantin

0 Likes