Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a motherboard (Gigabyte 990fxa-ud3) that I want to wake up using a ring event on the COM port, but I am unable to do so. I generate the ring event with an atmega32a.

The BIOS settings are properly set as far as I know: ACPI Suspend Type = S3(STR) Modem Ring Resume = Enabled ErP Support = Disabled PME Event Wake Up = Enabled And the COM port is enabled.

I have tried pushing +5V on the Ring Indicator line for 500ms using atmega32a, but this did not do the trick on this motherboard. On a different motherboard (Asus A7V8X-X) this worked flawlessly.

I tried contacting Gigabyte but I did not get a specific answer. I searched for other methods of generating a ring event and found that one could also generate the characters "RING", but this did not work either.

What other methods can I try?

Thanks in advance,


PS: I hope this is the correct place for this question.

share|improve this question

migrated from Jan 10 '12 at 16:51

This question came from our site for electronics and electrical engineering professionals, students, and enthusiasts.

You may want to try 0D 0A RING 0D 0A too, if that's not what you did (you only mention RING). That's what a disconnected Hayes-compatible modem would output on detection of a call on the external line, if I'm not completely mistaken. DCD might also need to be low. – Michael Kjörling Jan 10 '12 at 13:06
This sounds like it might be a better fit at superuser since it is a PC hardware question. – Kellenjb Jan 10 '12 at 14:11
@MichaelKjörling Thank you for the reply. I have now tried printf()'ing the following strings to no avail: RING; \x0D\x0ARING\x0D; \x0D\x0ARING\x0D\x0A; CONNECT 9600; ATQ1; RING, RING. All with and without \r\n. I also tried having pin 1 (DCD) grounded and with +5V. Kellenjb: In one respect yes, in another respect it is about programming my atmega32a. I do not mind a move though. – Sandokansan Jan 10 '12 at 16:23
Probably should have stayed in EE as this appears to me to be a problem regarding RS-232 voltage standards. – Tevo D Jan 10 '12 at 16:55
@TevoD - it does seem strange it got kicked over here. I think there may just be a reflex on EE to kick out any post that starts with "I have a motherboard.." It seems a strange fit here. I had to hold back on terms like "DVM" and "transistor". – JustJeff Jan 12 '12 at 0:11
up vote 0 down vote accepted

RS-232 defines a logic 1 as -15V to -3V, a logic 0 as +3V to +15V. On a typical MB serial port these are usually around -12V for a 1, and +12V for the 0. If you're lucky, one of the hardware handshake lines in the same port will default to the level needed to activate the ring indicator (RI) input, though not sure if this would necessarily be true with the system in sleep mode.

So, you could try shorting the RI pin to the other pins in the port - try them one at a time, and you might get lucky. If this happens, it shouldn't require more than a couple of components to interface between the atmega328 and the port.

If that fails, you could try using a 9V battery to try waking the port up. Attach the (+) side of the battery to the PC case, and briefly contact the port's RI input to the other battery terminal. If this doesn't work, try the battery the other way. If this scenario succeeds (and the previous method failed), it means your MB doesn't output the levels you need when the machine is off, and you'll need more than just your atmega328's 5V supply. A simple 9V battery and a couple of components should do the trick.

If neither of those two things work, it's probably something with the MB configuration. If you want to rule that out, you could try scrounging an old modem and cabling that to the port, hook the modem to your land line, and ring it with your cell.

share|improve this answer
Thank you for your reply. I tried your 9V battery suggestion and that did the trick. I put - on pin 5 (gnd) and + on pin 9 (RI). Then as soon as I let go of the contacts, the motherboard went on. Thanks again! – Sandokansan Jan 16 '12 at 20:17

It is probably the RS-232 voltage levels which are causing your problem. Logic 1 is a negative voltage, while logic 0 is a positive voltage. Voltages near zero are not considered to be a valid signal.

The board which works may have acted on the transition to a valid signal ( >+3V, logic level 0), but perhaps this board is expecting it to transition to an active logic level one signal (<-3V) before triggering.

The MAX232 and equivalent chips will drive the appropriate RS-232 voltages from 5V supply and logic level inputs.

If all you need is the ring indicator, you could perhaps be more creative without the need for the MAX232.

share|improve this answer
Thank you for your reply, it helped me to understand RS232 better. :-) – Sandokansan Jan 16 '12 at 20:09

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.