Just wondering a way to improve Zigbee USB gateways

There i read the EFR32MG21 chip domentation, it reads as follows:

3× universal synchronous/asynchronous receiver/transmitter (UART/SPI/
SmartCard (ISO 7816)/IrDA/I2S)

And the RP2040 documentation reads as follows:

Two [SPI] controllers
Two [I²C] controllers.
Two [UART] controllers.

And the RP2040 uses (firmware/software)<–>usb controller to reach the operating system, which can be as fast as USB 2.0 speed, way faster than 115200 baud, which is the bottle neck of how many Zigbee devices we can manage.

Nowadays we often use cheap serial converters like CP2102N or CH9102F, but a board can be made which handles the communication between EFR32MG21 and RP2040 using as many as SPI or IIC buses.

Knowing a single SPI bus can handle 7.8125 megabytes per second (MB/s) we can create a usb dongle which can use the full speed.

Actual:
Zigbee(20kb)<---->EFR32MG21<—TTL serial (11kb)—>CP2102N<—>USB2.0

Proposal:
Zigbee(20kb)<---->EFR32MG21<—SPI (20kb)—>RP2040<—>USB2.0

There i show the difference, and the improvement from the actual 11kb to the full Zigbee speed at 20kb.

:scream::tada::tada:

Best regards.

Why?

The zigbee network itself operates at rates less than 20kps for 100 byte payloads.

Because 115200 bauds we get 11.520 bytes, we are far from the 20kbps.

You don’t understand. The zigbee mesh itself can not use that amount of bandwidth.

But you just wrote the Zigbee mesh can use about the double of what we can read from it using the actual serial converters…

How is 20kbps > 7.8MBps?

You read me wrong.

Nowadays we use 115200 bauds as maximum because of the CP2102N or CH9102F or CH340 serial converters which connects to the EFR32MG21 using TTL serial at 115200.

There it is the bottle neck which i am talking about, not the other one.

this one, not the other

It is not a bottleneck it it only needs to handle 20kpbs. It’s a freaking fire-hose being fed by a straw. The Zigbee network itself is the bottleneck.

Actual:
Zigbee(20kb)<---->EFR32MG21<—TTL serial (11kb)—>CP2102N<—>USB2.0

Proposal:
Zigbee(20kb)<---->EFR32MG21<—SPI (20kb)—>RP2040<—>USB2.0

There i show the difference, and the improvement from the actual 11kb to the full Zigbee speed at 20kb.

Ah! I see.

However 115200 baud is not necessarily 11.52kbps. It’s the symbol rate not the bit rate.

Is that important?

I don’t know.

Thus i don’t know the practical need for the full 20kbps, neither the buffer used at the receiver chipset, i am afraid it might be a limitation in some scenarios.

About the relation bauds<–>bytes
The most common usage is, using 8 bit symbols, 1 bit parity, 1 stop bit, so we need 10baud, it is 11.5Kb/s, i don’t think bigger transfer rate can be archieved in a safe way.

Using software emulated serial we can still use the same operating system serial drivers, just set higher speeds like 500.000bauds.