Arduino Uno - interrupt on serial rx

Go To Last Post
5 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Am I going bananas and/or missing something obvious? The limited amount of googling I have done leads me to believe that the only interrupts which can wake the processor from deep sleep are the D2 and D3 level change. I had rather hoped that I could get  a received serial data stream to wake the processor.

 

Obviously it will require some sort of reset of the serial status to do that, and a suitable serial protocol to define where the actual message is, but at the moment it looks like I need to link the serial in to D2 or D3 to get the wakeup... meh.

 

Will play with this on Monday.

 

Neil

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Cross wire RXD to INTO/INT1 perhaps?

 

But it's a 328P don't the UART pins also do PCINT?

 

(not in a position to download/check d'sheet, watching British GP qualifying)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Looking at the 328P datasheet, the set of interrupts that can wake depends on the Sleep Mode.   For Idle, I would expect UART to work, otherwise you need to use INT0, INT1, or "Pin Change",  In the I/O ports section it says "SLEEP is overridden for port pins enabled as external interrupt pins.   Hope that helps.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

That's about what I'd figured, thanks. I'll be poking things around today.

 

Neil

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Sadly, still too much power taken by processor and associated hardware, including the micro-SD card. So I'm using a switchable regulator to drive the 5v line directly when required to power the board using the host's batteries.

 

Neil