Skip to content

Commit

Permalink
Changed some constant names for easier reading
Browse files Browse the repository at this point in the history
  • Loading branch information
daleInMelbourne committed Jun 22, 2012
1 parent 86d8a7e commit 09111e4
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 152 deletions.
Binary file modified DalesMess Analog Read Pin Example.vi
Binary file not shown.
175 changes: 55 additions & 120 deletions Freestyle.ino
Expand Up @@ -21,15 +21,15 @@

// Mux card GPIO Allocation
#define K1_ISENSE 4
#define K2_IREF 15
#define K2_LOAD 15
#define K3_HI_REF 14
#define ISENSE_PORT 3

#define picKit 1
#define emberISA 2
// Relay state for power source
#define SOURCE_3V6REG 0
#define SOURCE_RSENSE 1
#define SOURCE_RSENSE 0
#define SOURCE_3V6REG 1
// Current Sink Device
#define SINK_IS_DUT 1
#define SINK_IS_REF 0
Expand All @@ -38,12 +38,18 @@
#define SINK_LOW 1

#define EN_REG 15
#define VREG3V6_OFF 0
#define VREG3V6_ON 1

Adafruit_MCP23017 MCP23S17_U2;
Adafruit_MCP23017 MCP23S17_U5;


void initTestBed(){
//delay(1000);
// disPrg();
pwrOff();
// disableRegister();
MCP23S17_U2.begin(2);
MCP23S17_U5.begin(3);

Expand All @@ -58,73 +64,70 @@ int readAN3(){
return analogRead(3);
}

void refOn(){
MCP23S17_U2.digitalWrite(K1_ISENSE, 1);
MCP23S17_U2.digitalWrite(K2_IREF, 0); // iRefSink ON
void refSenseOn(){
MCP23S17_U5.digitalWrite(EN_REG, VREG3V6_ON); //
MCP23S17_U2.digitalWrite(K1_ISENSE, SOURCE_RSENSE);
MCP23S17_U2.digitalWrite(K2_LOAD, SINK_IS_REF); // iRefSink ON
MCP23S17_U2.digitalWrite(K3_HI_REF, 1);
MCP23S17_U5.digitalWrite(EN_REG, 1); //
}
void dutSenseOn(){
MCP23S17_U5.digitalWrite(EN_REG, VREG3V6_ON); //
MCP23S17_U2.digitalWrite(K1_ISENSE, SOURCE_RSENSE);
MCP23S17_U2.digitalWrite(K2_LOAD, SINK_IS_DUT); // DUT ON
}
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); //
MCP23S17_U5.digitalWrite(EN_REG, VREG3V6_ON); //
MCP23S17_U2.digitalWrite(K1_ISENSE, SOURCE_3V6REG);
MCP23S17_U2.digitalWrite(K2_LOAD, SINK_IS_DUT); // DUT ON
}
void pwrOff(){
MCP23S17_U5.digitalWrite(EN_REG, VREG3V6_OFF); //
MCP23S17_U2.digitalWrite(K1_ISENSE, 0);
MCP23S17_U5.digitalWrite(EN_REG, 0); //
MCP23S17_U2.digitalWrite(K2_LOAD, SINK_IS_REF);
}

void enPrg(int prgState){
void enPrg(){
// Use direct power not through Isense Resistor
MCP23S17_U5.digitalWrite(EN_REG, 1); //
MCP23S17_U2.digitalWrite(K1_ISENSE, 0);//
MCP23S17_U5.digitalWrite(EN_REG, VREG3V6_ON); //
MCP23S17_U2.digitalWrite(K1_ISENSE, SOURCE_3V6REG);//
MCP23S17_U2.digitalWrite(K2_LOAD, SINK_IS_DUT); // DUT ON
// 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
MCP23S17_U2.digitalWrite(8,HIGH); // ICD connect
MCP23S17_U2.digitalWrite(9,HIGH); // ICD connect
MCP23S17_U2.digitalWrite(10,HIGH); // 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)
MCP23S17_U5.digitalWrite(8,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(9,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(10,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(11,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(12,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(13,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(14,HIGH); // ICD connect
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
}

int setSink(int ISinkDevice){
MCP23S17_U2.digitalWrite(K2_IREF, ISinkDevice); // 1 = Current sink, 0 = DUT
}

int setSinkRef(int ISinkRef){
MCP23S17_U2.digitalWrite(K3_HI_REF, ISinkRef); //
}
/*
int getIsense(int ISink)
*/
int getIsense(){
int retVal;
MCP23S17_U2.digitalWrite(3, 1); // Connect ISENSE to AN3
// delay(500);
retVal = 0;
retVal = analogRead(3); // Read Value and return.
MCP23S17_U2.digitalWrite(3, 0); // Disconnect ISENSE to AN3
return retVal;
void disPrg(){
// Use direct power not through Isense Resistor
MCP23S17_U5.digitalWrite(EN_REG, VREG3V6_OFF); //
MCP23S17_U2.digitalWrite(K1_ISENSE, 0);//
// Now connect PIC programming lines
MCP23S17_U2.digitalWrite(8,LOW); // ICD connect
MCP23S17_U2.digitalWrite(9,LOW); // ICD connect
MCP23S17_U2.digitalWrite(10,LOW); // ICD connect
// And Ember programming lines
MCP23S17_U5.digitalWrite(8,LOW); // ICD connect
MCP23S17_U5.digitalWrite(9,LOW); // ICD connect
MCP23S17_U5.digitalWrite(10,LOW); // ICD connect
MCP23S17_U5.digitalWrite(11,LOW); // ICD connect
MCP23S17_U5.digitalWrite(12,LOW); // ICD connect
MCP23S17_U5.digitalWrite(13,LOW); // ICD connect
MCP23S17_U5.digitalWrite(14,LOW); // ICD connect
setIsmRly(7, 0, 0); //Enable power sense for PIC and EMBER
}


void enableRegister(){
// Use direct power not through Isense Resistor
MCP23S17_U5.digitalWrite(EN_REG, 1); //
MCP23S17_U5.digitalWrite(EN_REG, VREG3V6_ON); //
MCP23S17_U2.digitalWrite(K1_ISENSE, 0);//
MCP23S17_U5.digitalWrite(0,HIGH); // Register connect
MCP23S17_U5.digitalWrite(1,HIGH); // Register connect
Expand All @@ -145,74 +148,6 @@ void disableRegister(){
setIsmRly(7, 0, 0); //Register 3V6 Connect
}
/*
void selectProgrammer(int selProgrammer, char onOff)
*/
void selectProgrammer(int selProgrammer, char onOff){
/* if(selProgrammer == picKit){
// picKit programmer connect
if(onOff){
MCP23S17_U2.digitalWrite(8,HIGH); // ICD connect
MCP23S17_U2.digitalWrite(9,HIGH); // ICD connect
MCP23S17_U2.digitalWrite(10,HIGH); // ICD connect
//
MCP23S17_U5.digitalWrite(8,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(9,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(10,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(11,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(12,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(13,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(14,HIGH); // ICD connect
setIsmRly(7, 0x0c, 0); //picKit Vcc Connect
}
else{
// ISA programmer connect
MCP23S17_U2.digitalWrite(8,LOW); // ICD connect
MCP23S17_U2.digitalWrite(9,LOW); // ICD connect
MCP23S17_U2.digitalWrite(10,LOW); // ICD connect
//
MCP23S17_U5.digitalWrite(8,LOW); // ICD connect
MCP23S17_U5.digitalWrite(9,LOW); // ICD connect
MCP23S17_U5.digitalWrite(10,LOW); // ICD connect
MCP23S17_U5.digitalWrite(11,LOW); // ICD connect
MCP23S17_U5.digitalWrite(12,LOW); // ICD connect
MCP23S17_U5.digitalWrite(13,LOW); // ICD connect
MCP23S17_U5.digitalWrite(14,LOW); // ICD connect
setIsmRly(7, 0, 0); //ISA Vcc Connect
}
}
else if(selProgrammer == emberISA){
if(onOff){
MCP23S17_U2.digitalWrite(8,HIGH); // ICD connect
MCP23S17_U2.digitalWrite(9,HIGH); // ICD connect
MCP23S17_U2.digitalWrite(10,HIGH); // ICD connect
//
MCP23S17_U5.digitalWrite(8,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(9,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(10,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(11,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(12,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(13,HIGH); // ICD connect
MCP23S17_U5.digitalWrite(14,HIGH); // ICD connect
setIsmRly(7, 0x0c, 0); //picKit Vcc Connect
}
else{
// ISA programmer connect
MCP23S17_U2.digitalWrite(8,LOW); // ICD connect
MCP23S17_U2.digitalWrite(9,LOW); // ICD connect
MCP23S17_U2.digitalWrite(10,LOW); // ICD connect
//
MCP23S17_U5.digitalWrite(8,LOW); // ICD connect
MCP23S17_U5.digitalWrite(9,LOW); // ICD connect
MCP23S17_U5.digitalWrite(10,LOW); // ICD connect
MCP23S17_U5.digitalWrite(11,LOW); // ICD connect
MCP23S17_U5.digitalWrite(12,LOW); // ICD connect
MCP23S17_U5.digitalWrite(13,LOW); // ICD connect
MCP23S17_U5.digitalWrite(14,LOW); // ICD connect
setIsmRly(7, 0, 0); //ISA Vcc Connect
}
}
*/}
/*
int setIsmRly(int rlyCard, int rlyPosition, int readWrite)
*/
int setIsmRly(int rlyCard, int rlyPosition, int readWrite)
Expand Down
39 changes: 7 additions & 32 deletions LabVIEWInterface.ino
Expand Up @@ -540,55 +540,30 @@ void processCommand(unsigned char command[])
SPI.begin();
SPI.setDataMode(SPI_MODE0); //SPI Mode 0
switch(command[2]){
case 0://Get sink reference
setSource(1); // 1 == Power via RSense
setSink(1); // 1 == Sink Reference
setSinkRef(1);// 1 == Low Sink Reference
break;
case 1: //Get DUT
setSource(0); // 1 == Power via RSense
setSink(0); // 0 == Sink is DUT
setSinkRef(1);// N/A
break;
case 2: //Get ANA3 Direct
retVal = readAN3();
break;
case 3:
selectProgrammer(1,1);
selectProgrammer(2,1);
break;
case 4:
selectProgrammer(1,0);
selectProgrammer(2,0);
break;
case 5:
enableRegister();
break;
case 6:
disableRegister();
break;
//
case 7:
refOn();
refSenseOn();
break;
case 8:
dutOn();
dutSenseOn();
break;
case 9:
pwrOff();
break;
case 10:
enPrg(1);
enPrg();
break;
case 11:
enPrg(0);
disPrg();
break;
case 12:
enableRegister();
break;
case 13:
disableRegister();
break;
case 14:
dutOn();//DUT powered directly not through ISense
break;
}
Serial.write( (retVal >> 8));
Serial.write( (retVal & 0xFF));
Expand Down

0 comments on commit 09111e4

Please sign in to comment.