My next project will have an atmega1281 (2.7 - 5v operation voltage) running at 3.3v. The only way I can program it however is with a parallel programmer http://arduino.cc/it/Hacking/ParallelProgrammer which, of course runs at 5v. So I’m wondering if I’ll blow up the chip when I try to program it since I’m running at 3.3v. When running at 3.3v are the pins still 5v tolerant?
"When running at 3.3v are the pins still 5v tolerant?" No. They are tolerant to Vcc +0.3V - or 3.6V in this case.
Why not put a 3.3v regulator in the programming adapter power line? And use resistor voltage dividers for the signals.
Can you afford this: http://www.mouser.com/ProductDetail/Atmel/ATAVRISP2/?qs=2mdvTlUeTfCKesYSwaoJxWgKCmYMPeQxT0T2XEvOljkLJYwIb0ex9w%3d%3d It senses the voltage on the ICSP power pin and adjusts its levels accordingly.
Voltage dividers were indeed plan B. Eventually I'll force my self to buy a real programmer but for now I think I'll manage to get by without one.
Better than resistors is using an open collector non inverting buffer like the 74LS04, use a 1K5 pull up resistor. They work at high frequencies where resistors don’t due to stray C charging.
74LS04 is not open collector. 7406 is open collector.