+
+//! Get the JTAG ID
+unsigned char jtag430x2_jtagid(){
+ jtag430_resettap();
+ jtagid = jtag_ir_shift_8(IR_BYPASS);
+ if(jtagid!=0x89 && jtagid!=0x91){
+ debugstr("Unknown JTAG ID");
+ debughex(jtagid);
+ }
+ return jtagid;
+}
+//! Start JTAG, take pins
+unsigned char jtag430x2_start(){
+ jtag_setup();
+
+ //Known-good starting position.
+ //Might be unnecessary.
+ SETTST;
+ SETRST;
+
+ delay(0xFFFF);
+
+ //Entry sequence from Page 67 of SLAU265A for 4-wire MSP430 JTAG
+ CLRRST;
+ delay(20);//10
+ CLRTST;
+
+ delay(10);//5
+ SETTST;
+ msdelay(10);//5
+ SETRST;
+ P5DIR&=~RST;
+
+ delay(0xFFFF);
+
+ //Perform a reset and disable watchdog.
+ return jtag430x2_jtagid();
+}
+
+