1: Everything up to programming is working, including the voltage read-out, that means you're good on drivers and USB connection and all those other things. It also means you most likely put in the connector for the ISP (SPI bus for "In System Programming") the right way. Because if you hadn't, it wouldn't read the voltage, since that requires all those things to work. That is, reading the target voltage correctly requires:
- The GND pin to be connected correctly
- The VCC (ISP) or VTG (JTAG) pin to be connected correctly
- The USB communication to be working
- All programmer drivers to be present
Being able to compile your program would indicate you also have all the required definitions, although if you can select the processor from the drop-down in the programming menu, that also means the core-system has at least found your device definitions. And also, even if you choose a completely different processor, that wouldn't even block you from reading the ID checksum from an atmel using Atmel Studio 5 or later.
2: The most common causes for not being able to program a device (some may apply to your device, some may not, but this list should help you bug-check many designs):
- The Reset pin can't be toggled by the programmer: Either the Reset pin is not connected to the ISP or JTAG connector, or it may be connected to something that drains or sources too much current.
- One of the data or clock lines cannot be used to communicate: Either they are broken (in the cable, on the board, or bad connection in a connector), or they can also be connected to something else that's too strong for the chip or the programmer.
- Wrong device supply voltage for programming: 99 out of a 100 cases if this is a problem it will still tell you the signature, but some smaller Atmels require their highest supply voltage to be able to program through one or more specific busses. This is probably not your problem right now, but it's good to keep in mind for when you can read a signature, but can't seem to program. In those cases look for "Minimum Programming Voltage" or similar in DC electrical specs.
- The ISP/JTAG clock speed of your programmer is too high for the device: It should never be more than 1/4th of the uC's speed, but can be as low as your programmer supports for the selected device. One thing to test with reading the signature is if it does work at the lowest possible speed (100's of Hz), if it suddenly does, the programmer speed may be the problem. All processors come out of the box set up with a clocking scheme by default and the datasheet will tell you about that. For Tiny/Mega/XMega it usually is an internal oscillator and dividers set so that it runs at 1MHz (means 250kHz ISP or less), but that's not true for all of them.
- Your target uC may have been configured to run on an external clock source or crystal which is missing or broken, meaning your core is no longer running. In that case ISP will certainly not be usable to recover it in most "smaller"/"cheaper" processors without applying that external clock source/crystal. Some controllers may have options for programming in another way that does not depend on the internal core clock (such as some of the parallel programmable ones, but again not all).
So you see, it's not a very easy or clear-cut answer to give on such incredibly little information.