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

cross mob
mdelfiasco
Level 1
Level 1
10 sign-ins 5 replies posted 5 sign-ins

Hello, I have a straight question.

Should HCI UART CTS be connected with an external pulldown resistor when HCI UART is unused or can it be left floating?

I'm asking this because I have a strange interaction with HCI and PUART in my application related to HCI UART CTS state: if HCI UART CTS is pulled high then PUART does not receive data or receives corrupted data, while if HCI UART CTS is low then everything works as expected.

PUART port is configured with

// Avoid conflict between PUART_RX and CLK_REQ bonding
#define cr_pad_fcn_ctl_adr4 0x003201b8
#define REG32(x) (*(volatile unsigned*)(x))
unsigned val = REG32(cr_pad_fcn_ctl_adr4) & ~(0x0000F000);
REG32(cr_pad_fcn_ctl_adr4) = val | (7 << 12);

...

wiced_hal_puart_init();

wiced_hal_puart_select_uart_pads(WICED_P04, WICED_P31, 0, 0);

...

After reading some thread on PUART I also tried moving the following code from ISR to a periodic timer but with no effect.

while (wiced_hal_puart_rx_fifo_not_empty())
{
 if (wiced_hal_puart_read(&byte))
 {
  cbuf_put((void *)p_priv->p_init->p_rx, byte);  // This puts data in a local buffer read by application
 }
}

Since it seems to depend on HCI then I also tried with both

wiced_set_debug_uart(WICED_ROUTE_DEBUG_NONE)

and

wiced_set_debug_uart(WICED_ROUTE_DEBUG_TO_HCI_UART)

to disable HCI but none of the seems to work and the behavior is the same.

 

I'm struggling with this strange problem and we have 1000 pcs in production that need to use the PUART port.

BR

 

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

Update:

There was an unfortunate issue in the low power mode of 20706, which showed up in multiple SDKs. This will be fixed in the upcoming SDK. 

View solution in original post

0 Likes
5 Replies