I have been working with Arduino for a while now i thought of using AVR micro-controllers in the bread-board . I saw several tutorials on how to transfer .hex file to the AVR micro-controller . They showed how to use the USB programmer to transfer the .hex file but if i say i want to know how to make a USB programmer works , what is the structure of a USB programmer ? I found nothing , can anyone give me a good answer of how the .hex file is transfered into the micro-controllers memory , i.e code-segment in the memory .
Thanks,