I'm new to Atmel µP having been using Microchip in an automotive environment. I am starting with a Arduino Pro Mini for some home (maybe more) projects.
My questions have to do with the plethora of programmers for the ATMega processors. And the manipulation of the device fuses.
Do I need a "high voltage" programmer to change the CLKSEL fuse?
Is the "Atmel-ICE" the only currently available high voltage ISP option? I know it also has the ICE function but I tend to use a LCD display or RS-232 output for debug.
I understand using a FDTI serial connection with a boot program on the target has some inherent limitations. Are any of the fuses programmable/cleared with this type of programmer?
Can any of the fuses be programmed/cleared with an ATTinyISP, Sparkfun Pocket AVR Programmer, etc?
I've read so many articles forum entires etc but I've still not been able to put it together in my mind. It almost seems like the RSTDISBL fuse might be a special case. In addition, the Atmel website still refers to the AVRISP mkII device which has been discontinued (it seems like it had some performance issues).
With Microchip, I used their ICD3 for in-circuit programming and I never had to worry about what fuse setting I needed.
The only exceptions are:
If the fuse to disable reset or SPI programming have been programmed - you need an HV programmer to recover from this.
If the fuses have been set to use a crystal (or external clock) but the crystal is not present or not connected correctly - you can't use ISP programming if there's no clock (though you need only connect a clock source to resolve this)
Do I need a "high voltage" programmer to change the CLKSEL fuse?
No.
Is the "Atmel-ICE" the only currently available high voltage ISP option?
In fact, Atmel-ICE does NOT do High Voltage Serial programming.
I understand using a FDTI serial connection with a boot program on the target has some inherent limitations.
Not really, beyond those of other low-voltage programmers.
The MAIN problem is that you won't get debugging, and THAT'S mostly because Atmel hasn't documented the debug protocols.
It almost seems like the RSTDISBL fuse might be a special case.
RSTDISBL is *VERY MUCH a special case! * Many chips don't have this fuse, though.
But as far as I know, SPIEN is the only fuse that can't be programmed by an SPI programer.
Note that many chips do not have "high voltage serial programming." If you lock yourself out with RSTDISBL or otherwise, parallel programming becomes your only option for recovery. (Seems like RSTDISBL should be disable in SPI programming as well, but that's not what the data sheet says...)