Skip to content

Commit

Permalink
intermediate GUI changes to pushbutton operation
Browse files Browse the repository at this point in the history
  • Loading branch information
daleInMelbourne committed Jun 21, 2012
1 parent 08ea393 commit 86d8a7e
Show file tree
Hide file tree
Showing 4 changed files with 86 additions and 21 deletions.
Binary file modified DalesMess Analog Read Pin Example.vi
Binary file not shown.
81 changes: 62 additions & 19 deletions Freestyle.ino
Expand Up @@ -31,17 +31,19 @@
#define SOURCE_3V6REG 0
#define SOURCE_RSENSE 1
// Current Sink Device
#define SINK_IS_DUT 0
#define SINK_IS_REF 1
#define SINK_IS_DUT 1
#define SINK_IS_REF 0
// Current Sink Reference select
#define SINK_HIGH 0
#define SINK_LOW 1

#define EN_REG 15

Adafruit_MCP23017 MCP23S17_U2;
Adafruit_MCP23017 MCP23S17_U5;


void initI2cMcp(){
void initTestBed(){
MCP23S17_U2.begin(2);
MCP23S17_U5.begin(3);

Expand All @@ -56,6 +58,44 @@ int readAN3(){
return analogRead(3);
}

void refOn(){
MCP23S17_U2.digitalWrite(K1_ISENSE, 1);
MCP23S17_U2.digitalWrite(K2_IREF, 0); // iRefSink ON
MCP23S17_U2.digitalWrite(K3_HI_REF, 1);
MCP23S17_U5.digitalWrite(EN_REG, 1); //
}
void dutOn(){
MCP23S17_U2.digitalWrite(K1_ISENSE, 1);
MCP23S17_U2.digitalWrite(K2_IREF, 1); // DUT ON
MCP23S17_U2.digitalWrite(K3_HI_REF, 1);
MCP23S17_U5.digitalWrite(EN_REG, 1); //
}
void pwrOff(){
MCP23S17_U2.digitalWrite(K1_ISENSE, 0);
MCP23S17_U5.digitalWrite(EN_REG, 0); //
}

void enPrg(int prgState){
// Use direct power not through Isense Resistor
MCP23S17_U5.digitalWrite(EN_REG, 1); //
MCP23S17_U2.digitalWrite(K1_ISENSE, 0);//
// Now connect PIC programming lines
MCP23S17_U2.digitalWrite(8,prgState); // ICD connect
MCP23S17_U2.digitalWrite(9,prgState); // ICD connect
MCP23S17_U2.digitalWrite(10,prgState); // ICD connect
// And Ember programming lines
MCP23S17_U5.digitalWrite(8,prgState); // ICD connect
MCP23S17_U5.digitalWrite(9,prgState); // ICD connect
MCP23S17_U5.digitalWrite(10,prgState); // ICD connect
MCP23S17_U5.digitalWrite(11,prgState); // ICD connect
MCP23S17_U5.digitalWrite(12,prgState); // ICD connect
MCP23S17_U5.digitalWrite(13,prgState); // ICD connect
MCP23S17_U5.digitalWrite(14,prgState); // ICD connect
if(prgState)
setIsmRly(7, 0x0c, 0); //Enable power sense for PIC and EMBER
else
setIsmRly(7, 0x0c, 0); //Enable power sense for PIC and EMBER
}

int setSource(int ISource){
MCP23S17_U2.digitalWrite(K1_ISENSE, ISource); // 0 = DUT direct to 3V6, 1 = DUT via Rsense to 3V6
Expand Down Expand Up @@ -83,29 +123,32 @@ int getIsense(){


void enableRegister(){
MCP23S17_U5.digitalWrite(0,HIGH); // Register connect
MCP23S17_U5.digitalWrite(1,HIGH); // Register connect
MCP23S17_U5.digitalWrite(2,HIGH); // Register connect
MCP23S17_U5.digitalWrite(4,HIGH); // Register connect
MCP23S17_U5.digitalWrite(5,HIGH); // Register connect
MCP23S17_U5.digitalWrite(6,HIGH); // Register connect
setIsmRly(7, 0x20, 0); //Register 3V6 Connect
// Use direct power not through Isense Resistor
MCP23S17_U5.digitalWrite(EN_REG, 1); //
MCP23S17_U2.digitalWrite(K1_ISENSE, 0);//
MCP23S17_U5.digitalWrite(0,HIGH); // Register connect
MCP23S17_U5.digitalWrite(1,HIGH); // Register connect
MCP23S17_U5.digitalWrite(2,HIGH); // Register connect
MCP23S17_U5.digitalWrite(4,HIGH); // Register connect
MCP23S17_U5.digitalWrite(5,HIGH); // Register connect
MCP23S17_U5.digitalWrite(6,HIGH); // Register connect
setIsmRly(7, 0x20, 0); //Register 3V6 Connect
}

void disableRegister(){
MCP23S17_U5.digitalWrite(0,LOW); // Register connect
MCP23S17_U5.digitalWrite(1,LOW); // Register connect
MCP23S17_U5.digitalWrite(2,LOW); // Register connect
MCP23S17_U5.digitalWrite(4,LOW); // Register connect
MCP23S17_U5.digitalWrite(5,LOW); // Register connect
MCP23S17_U5.digitalWrite(6,LOW); // Register connect
setIsmRly(7, 0, 0); //Register 3V6 Connect
MCP23S17_U5.digitalWrite(0,LOW); // Register connect
MCP23S17_U5.digitalWrite(1,LOW); // Register connect
MCP23S17_U5.digitalWrite(2,LOW); // Register connect
MCP23S17_U5.digitalWrite(4,LOW); // Register connect
MCP23S17_U5.digitalWrite(5,LOW); // Register connect
MCP23S17_U5.digitalWrite(6,LOW); // Register connect
setIsmRly(7, 0, 0); //Register 3V6 Connect
}
/*
void selectProgrammer(int selProgrammer, char onOff)
*/
void selectProgrammer(int selProgrammer, char onOff){
if(selProgrammer == picKit){
/* if(selProgrammer == picKit){
// picKit programmer connect
if(onOff){
MCP23S17_U2.digitalWrite(8,HIGH); // ICD connect
Expand Down Expand Up @@ -168,7 +211,7 @@ void selectProgrammer(int selProgrammer, char onOff){
setIsmRly(7, 0, 0); //ISA Vcc Connect
}
}
}
*/}
/*
int setIsmRly(int rlyCard, int rlyPosition, int readWrite)
*/
Expand Down
2 changes: 1 addition & 1 deletion LVIFA_Base.ino
Expand Up @@ -39,7 +39,7 @@ void setup()
syncLV();
analogReference(EXTERNAL);
// Place your custom setup code here
initI2cMcp();
initTestBed();
}


Expand Down
24 changes: 23 additions & 1 deletion LabVIEWInterface.ino
Expand Up @@ -546,7 +546,7 @@ void processCommand(unsigned char command[])
setSinkRef(1);// 1 == Low Sink Reference
break;
case 1: //Get DUT
setSource(1); // 1 == Power via RSense
setSource(0); // 1 == Power via RSense
setSink(0); // 0 == Sink is DUT
setSinkRef(1);// N/A
break;
Expand All @@ -567,6 +567,28 @@ void processCommand(unsigned char command[])
case 6:
disableRegister();
break;
//
case 7:
refOn();
break;
case 8:
dutOn();
break;
case 9:
pwrOff();
break;
case 10:
enPrg(1);
break;
case 11:
enPrg(0);
break;
case 12:
enableRegister();
break;
case 13:
disableRegister();
break;
}
Serial.write( (retVal >> 8));
Serial.write( (retVal & 0xFF));
Expand Down

0 comments on commit 86d8a7e

Please sign in to comment.