Electronic – Hardware flow-control (CTS/RTS)

flow controllow-powermicrocontrollerrs232serial

My MCU cannot wake up from UART data, so I wanted it to wake up from the RTS line, but Im having problems understanding the concept.

When Im sending data from my MCU to the peripheral, I see the peripheral set its line to HIGH when its buffer is full. And as soon as I set my line to HIGH, the peripheral stops sending me any data.

This allows for full-duplex communication, but I expected the peripheral to notify me before sending any data, by setting its own line to HIGH. This doesnt allow for full-duplex communication, but this peripheral doesnt support simultanous TX/RX anyway, so that would be no problem.

So are there two modes of CTS/RTS flow-control? And do I just have bad luck that the peripheral supports the wrong mode? Does anyone have any other suggestions how I can wake my MCU before the UART data is coming in?

Best Answer

What you want is to be able to use other control lines (DTR / DSR). It's Data Set Ready / Data Terminal Ready, and it would solve your problem if your peripheral (or the BT module used) supported such behavior.

Are you able to add some HW at your side? Maybe you could implement a simple delay line by clocking incoming data through some shift registers, and waking up your MCU on incoming data so that (hopefully) it would be ready to receive it?