diff --git a/DSTAT/src/experiment.c b/DSTAT/src/experiment.c index 3da1d45b73b64f4a243ca261adca074b89ecc0fd..cae290048d17892dacd3944cd1a5af6ee317153a 100644 --- a/DSTAT/src/experiment.c +++ b/DSTAT/src/experiment.c @@ -362,17 +362,20 @@ void volt_exp_start(void){ * Connects measurement cell to rest of circuit. */ #if BOARD_VER_MAJOR == 1 && BOARD_VER_MINOR == 1 - ioport_set_port_level(IOPORT_PORTB, PIN3_bm|PIN4_bm|PIN5_bm, PIN3_bm|PIN4_bm|PIN5_bm); + ioport_set_port_level(IOPORT_PORTB, PIN3_bm|PIN4_bm|PIN5_bm, PIN3_bm|PIN4_bm); #endif #if BOARD_VER_MAJOR == 1 && BOARD_VER_MINOR == 2 - ioport_set_port_level(IOPORT_PORTB, PIN2_bm|PIN3_bm|PIN4_bm|PIN5_bm, PIN2_bm|PIN4_bm|PIN5_bm); + ioport_set_port_level(IOPORT_PORTB, PIN2_bm|PIN3_bm|PIN4_bm|PIN5_bm, PIN2_bm|PIN4_bm); #endif + + delay_ms(100); // Make sure WE circuit is connected before control voltage applied + ioport_set_pin_level(PIN_POT_CE, 1); if (g_short == 1) - ioport_set_port_level(IOPORT_PORTB, PIN3_bm, PIN3_bm); + ioport_set_pin_level(PIN_POT_2ELECTRODE, 1); else - ioport_set_port_level(IOPORT_PORTB, PIN3_bm, 0); + ioport_set_pin_level(PIN_POT_2ELECTRODE, 0); } void volt_exp_stop(void){ @@ -380,13 +383,16 @@ void volt_exp_stop(void){ * Disconnects measurement cell. */ #if BOARD_VER_MAJOR == 1 && BOARD_VER_MINOR == 1 - ioport_set_port_level(IOPORT_PORTB, PIN3_bm|PIN4_bm|PIN5_bm, 0); + ioport_set_port_level(IOPORT_PORTB, PIN3_bm|PIN5_bm, 0); #endif #if BOARD_VER_MAJOR == 1 && BOARD_VER_MINOR == 2 - ioport_set_port_level(IOPORT_PORTB, PIN2_bm|PIN3_bm|PIN4_bm|PIN5_bm, 0); + ioport_set_port_level(IOPORT_PORTB, PIN2_bm|PIN3_bm|PIN5_bm, 0); #endif - ioport_set_port_level(IOPORT_PORTB, PIN3_bm, PIN3_bm); + delay_ms(100); // Make sure WE is last to disconnect + ioport_set_pin_level(PIN_POT_WE, 0); + + ioport_set_pin_level(PIN_POT_2ELECTRODE, 1); } #if BOARD_VER_MAJOR == 1 && BOARD_VER_MINOR >= 2 diff --git a/DSTAT/src/experiment.h b/DSTAT/src/experiment.h index 7c171aea2be798167f29b4689a9807aecced69b7..f9db411e96c5248939908322f4d58936650d45c6 100644 --- a/DSTAT/src/experiment.h +++ b/DSTAT/src/experiment.h @@ -45,6 +45,11 @@ #define POT_GAIN_100M 7 #endif +#define PIN_POT_CE IOPORT_CREATE_PIN(PORTB,5) +#define PIN_POT_2ELECTRODE IOPORT_CREATE_PIN(PORTB,3) +#define PIN_POT_CTRL IOPORT_CREATE_PIN(PORTB,2) +#define PIN_POT_WE IOPORT_CREATE_PIN(PORTB,4) + #define POT_OCP 0 #define POT_POTENT 1