jtag cos'è?

Non esiste un programmatore universale completo, alcuni chip hanno delle estensioni proprietarie, ogni ambiente di sviluppo proprietario poi riconosce solamente i programmatori della casamadre in genere.
Comunque c'è un subset comune (JTAG IEEE Std 1149.1) che permette di fare diverse cose come la programmazione, i test, etc..
Nel più semplice dei casi è un semplice traslatore di livello con un qualche chip che gestisce la comunicazione USB
Ciao