case CMD_SET_LF_DIVISOR:\r
FpgaSendCommand(FPGA_CMD_SET_DIVISOR, c->ext1);\r
break;\r
+ case CMD_SET_ADC_MUX:\r
+ switch(c->ext1) {\r
+ case 0: SetAdcMuxFor(GPIO_MUXSEL_LOPKD); break;\r
+ case 1: SetAdcMuxFor(GPIO_MUXSEL_LORAW); break;\r
+ case 2: SetAdcMuxFor(GPIO_MUXSEL_HIPKD); break;\r
+ case 3: SetAdcMuxFor(GPIO_MUXSEL_HIRAW); break;\r
+ }\r
+ break;\r
case CMD_VERSION:\r
SendVersion();\r
break;\r
#define CMD_HID_SIM_TAG 0x020C\r
#define CMD_SET_LF_DIVISOR 0x020D\r
#define CMD_LF_SIMULATE_BIDIR 0x020E\r
+#define CMD_SET_ADC_MUX 0x020F\r
+/* CMD_SET_ADC_MUX: ext1 is 0 for lopkd, 1 for loraw, 2 for hipkd, 3 for hiraw */\r
\r
// For the 13.56 MHz tags\r
#define CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_15693 0x0300\r
}\r
}\r
\r
+static void CmdSetMux(char *str)\r
+{\r
+ UsbCommand c;\r
+ c.cmd = CMD_SET_ADC_MUX;\r
+ if(strncasecmp(str, "lopkd", 5) == 0) {\r
+ c.ext1 = 0;\r
+ } else if(strncasecmp(str, "loraw", 5) == 0) {\r
+ c.ext1 = 1;\r
+ } else if(strncasecmp(str, "hipkd", 5) == 0) {\r
+ c.ext1 = 2;\r
+ } else if(strncasecmp(str, "hiraw", 5) == 0) {\r
+ c.ext1 = 3;\r
+ }\r
+ SendCommand(&c, FALSE);\r
+}\r
+\r
typedef void HandlerFunction(char *cmdline);\r
\r
/* in alphabetic order */\r
{"save", CmdSave, 1, "<filename> -- Save trace (from graph window)"},\r
{"scale", CmdScale, 1, "<int> -- Set cursor display scale"},\r
{"setlfdivisor", CmdSetDivisor, 0, "<19 - 255> -- Drive LF antenna at 12Mhz/(divisor+1)"},\r
+ {"setmux", CmdSetMux, 0, "<loraw|hiraw|lopkd|hipkd> -- Set the ADC mux to a specific value"},\r
{"sri512read", CmdSri512read, 0, "<int> -- Read contents of a SRI512 tag"},\r
{"tidemod", CmdTIDemod, 1, "Demodulate raw bits for TI-type LF tag"},\r
{"tiread", CmdTIRead, 0, "Read and decode a TI 134 kHz tag"},\r