Force SIO into RTS/CTS flow control

76 views
Skip to first unread message

Robb Bates

unread,
Apr 17, 2025, 6:21:55 PM4/17/25
to RC2014-Z80
Wayne, is there a way to force the SIO into RTS/CTS flow control?

I think I saw some code that it will start in RTS/CTS but will disable it if it's getting blocked (i.e. terminal doesn't have RTS/CTS).

I think I can force the ESP with Zimodem into RTS/CTS, but it's not acting like it.  I'm thinking the SIO isn't using it.

I'm using the second port.

Robb

Wayne Warthen

unread,
Apr 17, 2025, 7:10:53 PM4/17/25
to RC2014-Z80
Hi Robb,

The mechanism that suspends RTS/CTS when the terminal does not support those signals is currently only implemented in the UART driver.  The SIO driver will always use RTS/CTS -- it is essentially hard-coded in the driver.

Thanks, Wayne

Robb Bates

unread,
Apr 17, 2025, 7:24:18 PM4/17/25
to RC2014-Z80
I don't see how.  I don't have CTS or RTS hooked up to my ESP, yet I still get data.  Maybe they have internal pull-ups/downs to prevent operation if not hooked up.

Also, the CTS by default is pulled low on the PCB.  I had to cut traces to hook it up to the USB UART.

Robb

Robb Bates

unread,
Apr 17, 2025, 7:40:23 PM4/17/25
to RC2014-Z80
Not to mention there is only TX and RX running across the backplane to anything else using serial. No CTS/RTS at all.

Wayne Warthen

unread,
Apr 17, 2025, 8:44:15 PM4/17/25
to RC2014-Z80
Incoming CTS is typically read as low (at the SIO chip) when unconnected.  In your case, it is even pulled low.  Low means CTS is asserted, so outbound traffic will flow.

RTS is an outgoing signal.  If the other side (ESP) ignores it, inbound traffic will flow.

Thanks, Wayne

Robb Bates

unread,
Apr 17, 2025, 9:05:30 PM4/17/25
to RC2014-Z80
I just pulled CTS high on the SIO second channel and I was still able to send and receive data.

Something is arwy.

Robb

Wayne Warthen

unread,
Apr 17, 2025, 10:13:44 PM4/17/25
to RC2014-Z80
Odd.

Have you done anything to override the SIO0BCFG setting in your config file?  As distributed, it is set to DEFSERCFG which, in turn, is defined as "SER_115200_8N1 | SER_RTS".  If SER_RTS is not set, it looks like the SIO chips automatic CTS management will not be enabled.

Thanks, Wayne

Wayne Warthen

unread,
Apr 17, 2025, 10:48:01 PM4/17/25
to RC2014-Z80
I just added a CTS pull-up one of my SIO boards and it definitely inhibited transmission.  The instant I removed the pullup, characters started sending.

-Wayne

Robb Bates

unread,
Apr 17, 2025, 11:26:50 PM4/17/25
to RC2014-Z80
Yeah, I'm seeing RTS signals and the appropriate pauses in the bit stream when sending a file to the RC2014.  CTS likely doesn't go high because the PC can handle it easily.

I think all my problems are strictly with the Zimodem and not the SIO.  You've convinced me.

Still confused as to why TeraTerm doesn't honor the RTS/CTS.  I can only guess the Holtek USB UART forbids any changes.

Robb Bates

unread,
Apr 17, 2025, 11:28:50 PM4/17/25
to RC2014-Z80
Or it may have to do with the series resistors on the SIO board.  Let me bypass them and see if that changes anything
Reply all
Reply to author
Forward
0 new messages