Why does my AVR act weird (resets, data corruption) when receiving a few bytes on the UART?
Even if it the problem with this particular setup was something else (as pointed out by another answer), another common reason is that the controller is being operated outside the "safe operating area" with respect to Vcc VS clock speed.



With 18.432 MHz clock speed the device would require at least about 4.2V to function properly.