- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When configuring UART2 to use flow control on the BCM4390, we see the current into this input being way too high, about 6 mA.
The I/O should be configured as floating input, and it looks like we're doing everything we should do, but WICED is somehow configuring that pin to have a strong pull-down or actually driving it low internally. When we configure the pin WICED_GPIO_7 as a floating input, it draws almost no current.
Can you recommend a fix or look into this? This is with WICED-3.7 as well as WICED-3.6.
Our code to initialize calls wiced_uart_init() with the config.flow_control = FLOW_CONTROL_CTS_RTS.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
jre
Unfortunately, the BCM4390 platform is not supported within the broad market and here on the Community (only through partners like yourself), so you will want to use our internal case management system and ask your Regional Marketing account manager (mmedina) to escalate this request into our level 2 and 3 engineering teams.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
From the description, it looks like you are using BCM94390WCD2 platform. If you check the pin mapping in platform.h in SDK 3.7.0, you will find that WICED_GPIO_7 is mapped to pin 43 of the chip. However, when you check the BCM4390 datasheet, the same pin 43 has been multiplexed to UART2_RTS and not UART2_CTS. In fact the pins UART2_CTS and UART2_RTS have been interchanged in Wiced 3.7.0. So go to platform.c and assign WICED_GPIO_9 to UART2_CTS and WICED_GPIO_7 to UART2_RTS and check if this helps.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for the reply. We're not using that EVB, but the remapping between releases is interesting to note, and gives me something to check.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
grsr wrote:
From the description, it looks like you are using BCM94390WCD2 platform. If you check the pin mapping in platform.h in SDK 3.7.0, you will find that WICED_GPIO_7 is mapped to pin 43 of the chip. However, when you check the BCM4390 datasheet, the same pin 43 has been multiplexed to UART2_RTS and not UART2_CTS. In fact the pins UART2_CTS and UART2_RTS have been interchanged in Wiced 3.7.0. So go to platform.c and assign WICED_GPIO_9 to UART2_CTS and WICED_GPIO_7 to UART2_RTS and check if this helps.
grsr
Checking the datasheet again and I found that in BCM94390WCD2 platform:
UART2_TX/UART2_TX are wrong. (tx/rx swapped)
Below is the BCM94390WCD2 uart2 platform code in sdk-3.7.0-7 which is wrong.
[WICED_UART_2] =
{
.port = UART2,
.tx_pin = &platform_gpio_pins[WICED_GPIO_10],
.rx_pin = &platform_gpio_pins[WICED_GPIO_8],
.cts_pin = &platform_gpio_pins[WICED_GPIO_7],
.rts_pin = &platform_gpio_pins[WICED_GPIO_9],
Can you confirm what is the correct setting now?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
jre
Unfortunately, the BCM4390 platform is not supported within the broad market and here on the Community (only through partners like yourself), so you will want to use our internal case management system and ask your Regional Marketing account manager (mmedina) to escalate this request into our level 2 and 3 engineering teams.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We found that we can work around this after wiced_uart_init() by reconfiguring the CTS input GPIO with platform_pin_init() to turn off its output driver:
const platform_uart_t *pin;
platform_pin_gpio_config_t gpio;
memset(&gpio, 0, sizeof(gpio));
gpio.output_disable = 1;
pin = &platform_uart_peripherals[WICED_UART_2];
platform_pin_init(pin->cts_pin->pin, gpio);