[XU316] GPIO settings to maximize baud rate

Technical discussions around xCORE processors (e.g. xcore-200 & xcore.ai).
alex4d1
Active Member
Posts: 33
Joined: Mon May 13, 2024 11:38 pm

[XU316] GPIO settings to maximize baud rate

Post by alex4d1 »

Hello,

I am successfully running a XU316 that communicates with a nRF52 chip via UART.
The UART lines are on-board and maybe 2-3cm long and they do have a pullup resistor. No RTS/CTS.
The entire system runs on 1V8.

I use the standard XMOS UART drivers which allow me to run a stable baud rate of 230400. If I set a higher baud rate the communication fails.

I read this posts here:
https://www.xcore.com/viewtopic.php?t=8871
and that made me think - am I not configuring the GPIOs correctly for higher baud rates? Am I not driving the UART TX pin strong enough or do I need to adjust any of the other settings?
What are the default settings of a GPIO? And does the UART driver init change those default settings?

Or will this just be a limitation of the XMOS UART as it is a pure software implementation?

PS: I already confirmed the nRF is not the issue, as I prototyped a 1M baud rate connecting nRF with a FTDI cable.

Cheers
Alex
Joe
Verified
XCore Addict
Posts: 133
Joined: Sun Dec 13, 2009 1:12 am

Post by Joe »

This won't be anything to do with drive strength. The default is 4mA drive strength mode and that is good for at least 50MHz or so.

You don't mention the libraries you are using but lib_uart works up to 10Mbit/s.

What is happening on the pins have you done any scope/logic analyser captures?

Joe
XMOS hardware grey beard.
Joe
Verified
XCore Addict
Posts: 133
Joined: Sun Dec 13, 2009 1:12 am

Post by Joe »

If you are using 1.8V can you confirm you are using the XU316-1024-QF60A device or have set the appropriate LV_SEL_N pin low on other devices to select 1.8V mode? If you were using a QF60B device for example it would kind of work at 1.8V but would the IOs would run very slowly as they would be in the wrong mode.
XMOS hardware grey beard.
alex4d1
Active Member
Posts: 33
Joined: Mon May 13, 2024 11:38 pm

Post by alex4d1 »

Thanks Joe.

I am using a XU316-1024-FB265 and I have LV_L_N, LV_R_N and LV_T_N connected to GND.
I am using lib_uart (and the RTOS wrapper for it).

When looking at my scope while running the UART at 1Mbps the signal looks clean.
But now I do notice that the receiving side is the one crashing, not the XMOS.

The nRF module I use doesn't have a LFXO, so I'm depending on the internal RC (LFRC).
I wonder if that may be the culprit...

Anyways, this doesn't seem to be a XMOS issue. Thanks for clarifying my GPIO drive strength questions.

Cheers
Alex