Recently the USBASP programmer has become a hot favorite to program AVR chips. It is small, inexpensive and works great with avrdude.
I was recently working with an RC brushless speed controller (ESC) and wanted to read the fuse values of the on-board Atmega8L chip. After running through some iterations i got it working. Here it is
avrdude.exe -c usbasp -p m8 -U lfuse:r:low_fuse_val.hex:h -U hfuse:r:high_fuse_val.hex:h
-c usbasp : Is the USBASP programmer. You do not need to mention the port to be USB. Seems like avrdude picks the programmer up without that info
-p m8 : The atmel device. In my case it was an Atmega8.
Here, ‘lfuse’ is a keyword that lower fuse byte is being accessed. Other keywords are ‘efuse’, ‘hfuse’, ‘flash’
‘r’ indicates that a read is being performed.
low_fuse_val.hex is just a name of a file into which the lower fuse byte will be written
‘h’ indicates that value will be in raw hex format. ‘i’ gives you the intel-hex format.