I'm not totally clear on this. When the first FET appeared blown, had
you reset the computer before making that determination? Cycled power?
If the problem survived cycling power that is a pretty impressive feat
if the FET wasn't blown. BTW, do the input ESD caps have resistors
bypassing them? If not, how does an input charge leak off? I guess
when it is connected to a signal that is not an issue, but neither is
ESD really.
Just out of curiosity, why use a FET for level shifting rather than a
BJT? Are you stepping the voltage range up or down? Does the input
swing to ground?
I just came up with a circuit that would shift an input 5V to 3V swing
to a 0V to 3V swing without any chance of going (much) above the 3.3
volt rail for the MCU. I used a PNP with an emitter resistor about half
the value of the collector resistor with the 5 volt rail as the common
point. As the input drops toward 3 volts the output rises to 3 volts.
If the input drops below 3 volts which might make the output rise above
3.5 volts, the emitter leg drops below 3.5 volts saturating the BJT
limiting the voltage on the output. To make the input robust to
voltages above the 5 volt rail I could add a diode while the BJT already
conducts for inputs below ground. This is a hard circuit to do damage to.
--
Rick