Davi Cussan / Mbed 2 deprecated pc052c_configurator_original

Dependencies:   mbed

Committer:
cussans
Date:
Fri Mar 15 14:16:53 2019 +0000
Revision:
7:5bcc25eef1f0
Parent:
6:4d64960c7908
Child:
8:2196f2f75947
Version first used with TORCH calibration stand

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sagara17 3:8e29c3da6961 1 //pc052c_configurator
sagara17 3:8e29c3da6961 2 //S.V. Addepalli & P. Baesso - sagar.addepalli@iitb.ac.in
sagara17 3:8e29c3da6961 3 //This firmware can be installed on a KL25Z board and provides
sagara17 3:8e29c3da6961 4 //a serial interface to configure the pc052c board.
sagara17 3:8e29c3da6961 5 //The communication between KL25Z and pc052c uses the SPI interface.
sagara17 3:8e29c3da6961 6
sagara17 3:8e29c3da6961 7 #include "mbed.h"
sagara17 3:8e29c3da6961 8 #include <led_options.h>
sagara17 3:8e29c3da6961 9 #include <spi_functions.h>
sagara17 3:8e29c3da6961 10 #include <vector>
sagara17 3:8e29c3da6961 11 #include <string>
sagara17 3:8e29c3da6961 12
sagara17 3:8e29c3da6961 13 std::vector<std::string> tokenize(const std::string& str, const std::string& delim);
sagara17 3:8e29c3da6961 14 void doCommands(std::vector<std::string>& tokens);
sagara17 3:8e29c3da6961 15 using namespace std;
sagara17 3:8e29c3da6961 16
sagara17 3:8e29c3da6961 17 // DEFINE SERIAL INTERFACE AND PINS USED BY THE SPI PROTOCOL
sagara17 3:8e29c3da6961 18 //Serial pc(USccBTX, USBRX);
sagara17 3:8e29c3da6961 19 Serial pc(USBTX, USBRX); // tx, rx
sagara17 3:8e29c3da6961 20 DigitalOut myled(LED1);
sagara17 3:8e29c3da6961 21 SPI dac_port1(PTD2, PTD3, PTD1); //mosi, miso, sclk //SPI0
sagara17 3:8e29c3da6961 22 SPI dac_port2(PTD2, PTC6, PTD1); //SPI0
cussans 7:5bcc25eef1f0 23 SPI dac_port3(PTD2, PTC7 , PTD1); //SPI0 -- clashes with Rx
sagara17 3:8e29c3da6961 24 SPI dac_port4(PTD2, PTA16, PTD1); //SPI0
sagara17 3:8e29c3da6961 25 SPI dac_port5(PTD2, PTA17, PTD1); //SPI0
sagara17 3:8e29c3da6961 26 SPI dac_port6(PTE3, PTD7, PTE2); //SPI1
sagara17 3:8e29c3da6961 27 SPI dac_port7(PTE3, PTE1, PTE2); //SPI1
sagara17 3:8e29c3da6961 28 SPI dac_port8(PTE3, PTD6, PTE2); //SPI1
sagara17 3:8e29c3da6961 29 DigitalOut sync1(PTD5, 1);// Board 1 slave select. Initialize to high
sagara17 3:8e29c3da6961 30 DigitalOut sync2(PTD0, 1); // Board 2 slave select. Initialize to high good to go
cussans 7:5bcc25eef1f0 31 DigitalOut sync3(PTE4, 1); // Board 3 slave select. Initialize to high GOOD TO GO
cussans 7:5bcc25eef1f0 32 //DigitalOut sync3(PTE5, 1); // Board 3 slave select. Initialize to high GOOD TO GO
sagara17 4:dd76f4ee29fd 33 DigitalOut sync4(PTC5, 1);// Board 4 slave select. Initialize to high GOOD TO GO
sagara17 3:8e29c3da6961 34 DigitalOut sync5(PTB10, 1); // Board 5 slave select. Initialize to high good to go
sagara17 4:dd76f4ee29fd 35 DigitalOut sync6(PTB11, 1);// Board 6 slave select. Initialize to high
sagara17 3:8e29c3da6961 36 DigitalOut sync7(PTD4, 1);// Board 7 slave select. Initialize to high good to go
sagara17 3:8e29c3da6961 37 DigitalOut sync8(PTC4, 1); // Board 8 slave select. Initialize to high good to go
sagara17 3:8e29c3da6961 38 //DigitalOut ldac(PTD7);
sagara17 3:8e29c3da6961 39
sagara17 3:8e29c3da6961 40 unsigned short myData;
sagara17 3:8e29c3da6961 41 int i, j;
sagara17 3:8e29c3da6961 42 int runFlag=1;
sagara17 3:8e29c3da6961 43 string myCommand;
sagara17 3:8e29c3da6961 44
sagara17 3:8e29c3da6961 45 int main()
sagara17 3:8e29c3da6961 46 {
cussans 6:4d64960c7908 47 pc.printf("\npc052c Configurator v0.8\n");
sagara17 3:8e29c3da6961 48 pc.printf("\nStarting interface.\n");
sagara17 3:8e29c3da6961 49 pc.printf("Enter commands and press TAB to send.\n");
sagara17 3:8e29c3da6961 50 pc.printf("Type 'help'+TAB for a list of commands.\n");
sagara17 3:8e29c3da6961 51 flashLED( myled);
sagara17 3:8e29c3da6961 52 dac_port1.format(8,0); //SPI setup for dac chips 8 bit data, mode 1 (falling edge), mode 0 (rising edge, active clock is 1). Max7301A requires rising edge.
sagara17 3:8e29c3da6961 53 dac_port2.format(8,0);
sagara17 3:8e29c3da6961 54 dac_port3.format(8,0);
sagara17 3:8e29c3da6961 55 dac_port4.format(8,0);
sagara17 3:8e29c3da6961 56 dac_port5.format(8,0);
sagara17 3:8e29c3da6961 57 dac_port6.format(8,0);
sagara17 3:8e29c3da6961 58 dac_port7.format(8,0);
sagara17 3:8e29c3da6961 59 dac_port8.format(8,0);
sagara17 3:8e29c3da6961 60 dac_port1.frequency(100000);
sagara17 3:8e29c3da6961 61 dac_port2.frequency(100000);
sagara17 3:8e29c3da6961 62 dac_port3.frequency(100000);
sagara17 3:8e29c3da6961 63 dac_port4.frequency(100000);
sagara17 3:8e29c3da6961 64 dac_port5.frequency(100000);
sagara17 3:8e29c3da6961 65 dac_port6.frequency(100000);
sagara17 3:8e29c3da6961 66 dac_port7.frequency(100000);
sagara17 3:8e29c3da6961 67 dac_port8.frequency(100000);
sagara17 3:8e29c3da6961 68
sagara17 3:8e29c3da6961 69
sagara17 3:8e29c3da6961 70 //Initialize variable used to select cases
sagara17 3:8e29c3da6961 71 char cUser;
sagara17 3:8e29c3da6961 72 while(runFlag)
sagara17 3:8e29c3da6961 73 {
sagara17 3:8e29c3da6961 74 if(pc.readable())
sagara17 3:8e29c3da6961 75 {
cussans 6:4d64960c7908 76 pc.printf("Entering reading condition\n");
sagara17 3:8e29c3da6961 77 cUser = pc.getc();
sagara17 3:8e29c3da6961 78 wait(0.02f); //
sagara17 3:8e29c3da6961 79 if (cUser== '\t')// \n"
sagara17 3:8e29c3da6961 80 {
sagara17 3:8e29c3da6961 81 pc.printf("End of line detected. Parsing command.\n", myCommand.c_str());
sagara17 3:8e29c3da6961 82
sagara17 3:8e29c3da6961 83 //PARSE COMMANDS
sagara17 3:8e29c3da6961 84 string delim= " ";
sagara17 3:8e29c3da6961 85 vector<string> myTokens = tokenize(myCommand, delim);
sagara17 3:8e29c3da6961 86
sagara17 3:8e29c3da6961 87 pc.printf("%d TOKENS FOUND.\n", myTokens.size());
sagara17 3:8e29c3da6961 88 pc.printf("TOKENS= ");
sagara17 3:8e29c3da6961 89 for (int iTk=0; iTk <myTokens.size(); iTk++)
sagara17 3:8e29c3da6961 90 {
sagara17 3:8e29c3da6961 91 pc.printf("%s - ", myTokens.at(iTk).c_str());
sagara17 3:8e29c3da6961 92 }
sagara17 3:8e29c3da6961 93 pc.printf("\n");
sagara17 3:8e29c3da6961 94 doCommands(myTokens);
sagara17 3:8e29c3da6961 95
sagara17 3:8e29c3da6961 96
sagara17 3:8e29c3da6961 97 //RESET WORD
sagara17 3:8e29c3da6961 98 myCommand= "";
sagara17 3:8e29c3da6961 99 }
sagara17 3:8e29c3da6961 100 else
sagara17 3:8e29c3da6961 101 {
sagara17 3:8e29c3da6961 102 myCommand= myCommand+ cUser;
sagara17 3:8e29c3da6961 103 pc.printf("So far I got: %s\r", myCommand.c_str());
sagara17 3:8e29c3da6961 104 }
sagara17 3:8e29c3da6961 105 }
sagara17 3:8e29c3da6961 106
sagara17 3:8e29c3da6961 107
sagara17 3:8e29c3da6961 108 }
sagara17 3:8e29c3da6961 109 pc.printf("Interface stopped. Press the reset button to start again.\n");
sagara17 3:8e29c3da6961 110 wait(1.0f);
sagara17 3:8e29c3da6961 111
sagara17 3:8e29c3da6961 112 }
sagara17 3:8e29c3da6961 113
sagara17 3:8e29c3da6961 114
sagara17 3:8e29c3da6961 115 //////////////////////////////////////////
sagara17 3:8e29c3da6961 116 std::vector<std::string> tokenize(const std::string& str, const std::string& delim)
sagara17 3:8e29c3da6961 117 {
sagara17 3:8e29c3da6961 118 std::vector<std::string> tokens;
sagara17 3:8e29c3da6961 119
sagara17 3:8e29c3da6961 120 size_t pos = 0;
sagara17 3:8e29c3da6961 121 size_t loc = str.find_first_of(delim, pos);
sagara17 3:8e29c3da6961 122
sagara17 3:8e29c3da6961 123 if (loc == std::string::npos)
sagara17 3:8e29c3da6961 124 {
sagara17 3:8e29c3da6961 125 tokens.push_back(str);
sagara17 3:8e29c3da6961 126 }
sagara17 3:8e29c3da6961 127 else
sagara17 3:8e29c3da6961 128 {
sagara17 3:8e29c3da6961 129 while (pos != std::string::npos)
sagara17 3:8e29c3da6961 130 {
sagara17 3:8e29c3da6961 131 tokens.push_back(str.substr(pos, loc - pos));
sagara17 3:8e29c3da6961 132
sagara17 3:8e29c3da6961 133 pos = (loc == std::string::npos ? loc : loc + 1);
sagara17 3:8e29c3da6961 134 loc = str.find_first_of(delim, pos);
sagara17 3:8e29c3da6961 135 }
sagara17 3:8e29c3da6961 136 }
sagara17 3:8e29c3da6961 137 return tokens;
sagara17 3:8e29c3da6961 138 }
sagara17 3:8e29c3da6961 139
sagara17 3:8e29c3da6961 140 //////////////////////////////////////////
sagara17 3:8e29c3da6961 141 void doCommands(std::vector<std::string>& tokens)
sagara17 3:8e29c3da6961 142 {
sagara17 3:8e29c3da6961 143 // Parse the command tokens
sagara17 3:8e29c3da6961 144 string firstTk= tokens.at(0);
sagara17 3:8e29c3da6961 145 if(firstTk == "exit") //Exit condition
sagara17 3:8e29c3da6961 146 {
sagara17 3:8e29c3da6961 147 pc.printf("Stopping interface.\n");
sagara17 3:8e29c3da6961 148 runFlag=0;
sagara17 3:8e29c3da6961 149 }
sagara17 3:8e29c3da6961 150 else if(firstTk == "help") //Help
sagara17 3:8e29c3da6961 151 {
cussans 6:4d64960c7908 152 pc.printf("**Type commands and press TAB to execute them.\n Valid commands are:\n'exit'\n'help'\n'powermode'\n'configure'\n'setport'\n'send'\n'pullallup'\n'pullalldown'\n'pulldown'\n'pullup'\n\n");
sagara17 3:8e29c3da6961 153 }
sagara17 3:8e29c3da6961 154 else if(firstTk == "configure")//Send configuration
sagara17 3:8e29c3da6961 155 {
sagara17 3:8e29c3da6961 156 pc.printf("Configuring all ports as outputs (low).\n");
sagara17 3:8e29c3da6961 157 sendConfiguration(pc, dac_port1, sync1);
sagara17 3:8e29c3da6961 158 sendConfiguration(pc, dac_port2, sync2);
sagara17 3:8e29c3da6961 159 sendConfiguration(pc, dac_port3, sync3);
sagara17 3:8e29c3da6961 160 sendConfiguration(pc, dac_port4, sync4);
sagara17 3:8e29c3da6961 161 sendConfiguration(pc, dac_port5, sync5);
sagara17 3:8e29c3da6961 162 sendConfiguration(pc, dac_port6, sync6);
sagara17 3:8e29c3da6961 163 sendConfiguration(pc, dac_port7, sync7);
sagara17 3:8e29c3da6961 164 sendConfiguration(pc, dac_port8, sync8);
sagara17 3:8e29c3da6961 165 pc.printf("Configuration done.\n");
sagara17 3:8e29c3da6961 166 }
sagara17 3:8e29c3da6961 167 else if(firstTk == "powermode")//Set the specific board's power mode (shutdown or active)
sagara17 3:8e29c3da6961 168 {
sagara17 3:8e29c3da6961 169
sagara17 3:8e29c3da6961 170 if (tokens.size() ==3)
sagara17 3:8e29c3da6961 171 {
sagara17 3:8e29c3da6961 172 int brd = atoi(tokens.at(1).c_str());
sagara17 3:8e29c3da6961 173 int pMode = atoi(tokens.at(2).c_str());
sagara17 3:8e29c3da6961 174 if ((pMode==0) || (pMode==1))
sagara17 3:8e29c3da6961 175 {
sagara17 3:8e29c3da6961 176 if(brd==1)
sagara17 3:8e29c3da6961 177 {
sagara17 3:8e29c3da6961 178 powerMode(dac_port1, sync1, pMode);
sagara17 3:8e29c3da6961 179 pc.printf("Power mode for board 1 = %d.\n", pMode);
sagara17 3:8e29c3da6961 180 }
sagara17 3:8e29c3da6961 181 else if(brd==2)
sagara17 3:8e29c3da6961 182 {
sagara17 3:8e29c3da6961 183 powerMode(dac_port2, sync2, pMode);
sagara17 3:8e29c3da6961 184 pc.printf("Power mode for board 2 = %d.\n", pMode);
sagara17 3:8e29c3da6961 185 }
sagara17 3:8e29c3da6961 186 else if(brd==3)
sagara17 3:8e29c3da6961 187 {
sagara17 3:8e29c3da6961 188 powerMode(dac_port3, sync3, pMode);
sagara17 3:8e29c3da6961 189 pc.printf("Power mode for board 3 = %d.\n", pMode);
sagara17 3:8e29c3da6961 190 }
sagara17 3:8e29c3da6961 191 else if(brd==4)
sagara17 3:8e29c3da6961 192 {
sagara17 3:8e29c3da6961 193 powerMode(dac_port4, sync4, pMode);
sagara17 3:8e29c3da6961 194 pc.printf("Power mode for board 4 = %d.\n", pMode);
sagara17 3:8e29c3da6961 195 }
sagara17 3:8e29c3da6961 196 else if(brd==5)
sagara17 3:8e29c3da6961 197 {
sagara17 3:8e29c3da6961 198 powerMode(dac_port5, sync5, pMode);
sagara17 3:8e29c3da6961 199 pc.printf("Power mode for board 5 = %d.\n", pMode);
sagara17 3:8e29c3da6961 200 }
sagara17 3:8e29c3da6961 201 else if(brd==6)
sagara17 3:8e29c3da6961 202 {
sagara17 3:8e29c3da6961 203 powerMode(dac_port6, sync6, pMode);
sagara17 3:8e29c3da6961 204 pc.printf("Power mode for board 6 = %d.\n", pMode);
sagara17 3:8e29c3da6961 205 }
sagara17 3:8e29c3da6961 206 else if(brd==7)
sagara17 3:8e29c3da6961 207 {
sagara17 3:8e29c3da6961 208 powerMode(dac_port7, sync7, pMode);
sagara17 3:8e29c3da6961 209 pc.printf("Power mode for board 7 = %d.\n", pMode);
sagara17 3:8e29c3da6961 210 }
sagara17 3:8e29c3da6961 211 else if(brd==8)
sagara17 3:8e29c3da6961 212 {
sagara17 3:8e29c3da6961 213 powerMode(dac_port8, sync8, pMode);
sagara17 3:8e29c3da6961 214 pc.printf("Power mode for board 8 = %d.\n", pMode);
sagara17 3:8e29c3da6961 215 }
sagara17 3:8e29c3da6961 216 else
sagara17 3:8e29c3da6961 217 pc.printf("The board number has to be between 1 and 8\n");
sagara17 3:8e29c3da6961 218 }
sagara17 3:8e29c3da6961 219 else
sagara17 3:8e29c3da6961 220 {
sagara17 3:8e29c3da6961 221 pc.printf("This function can only accept 0 or 1. You typed %d.\n");
sagara17 3:8e29c3da6961 222 }
sagara17 3:8e29c3da6961 223 }
sagara17 3:8e29c3da6961 224 else
sagara17 3:8e29c3da6961 225 {
sagara17 3:8e29c3da6961 226 pc.printf("Powermode command requires 2 parameters:\ntype 'powermode brdno 1' to power up the MAX6956\ntype 'powermode brdno 0' to shut it down.\n");
sagara17 3:8e29c3da6961 227 }
sagara17 3:8e29c3da6961 228 }
sagara17 3:8e29c3da6961 229 else if(firstTk == "setport")//Set power mode (shutdown or active)
sagara17 3:8e29c3da6961 230 {
sagara17 3:8e29c3da6961 231 if (tokens.size() ==4)
sagara17 3:8e29c3da6961 232 {
sagara17 3:8e29c3da6961 233 int brd = atoi(tokens.at(1).c_str());
sagara17 3:8e29c3da6961 234 int portN = atoi(tokens.at(2).c_str());
sagara17 3:8e29c3da6961 235 int portState = atoi(tokens.at(3).c_str());
sagara17 3:8e29c3da6961 236 //int toWrite=0;
sagara17 3:8e29c3da6961 237 if (((portN > 11)&&(portN < 32))&&((portState==0) || (portState==1)))
sagara17 3:8e29c3da6961 238 {
sagara17 3:8e29c3da6961 239 if(brd==1)
sagara17 3:8e29c3da6961 240 {
sagara17 3:8e29c3da6961 241 pc.printf("Setting port %d to %d for board 1.\n", portN, portState);
sagara17 3:8e29c3da6961 242 setPort(dac_port1, sync1, portN, portState);
sagara17 3:8e29c3da6961 243 }
sagara17 3:8e29c3da6961 244 else if(brd==2)
sagara17 3:8e29c3da6961 245 {
sagara17 3:8e29c3da6961 246 pc.printf("Setting port %d to %d for board 2.\n", portN, portState);
sagara17 3:8e29c3da6961 247 setPort(dac_port2, sync2, portN, portState);
sagara17 3:8e29c3da6961 248 }
sagara17 3:8e29c3da6961 249 else if(brd==3)
sagara17 3:8e29c3da6961 250 {
sagara17 3:8e29c3da6961 251 pc.printf("Setting port %d to %d for board 3.\n", portN, portState);
sagara17 3:8e29c3da6961 252 setPort(dac_port3, sync3, portN, portState);
sagara17 3:8e29c3da6961 253 }
sagara17 3:8e29c3da6961 254 else if(brd==4)
sagara17 3:8e29c3da6961 255 {
sagara17 3:8e29c3da6961 256 pc.printf("Setting port %d to %d for board 4.\n", portN, portState);
sagara17 3:8e29c3da6961 257 setPort(dac_port4, sync4, portN, portState);
sagara17 3:8e29c3da6961 258 }
sagara17 3:8e29c3da6961 259 else if(brd==5)
sagara17 3:8e29c3da6961 260 {
sagara17 3:8e29c3da6961 261 pc.printf("Setting port %d to %d for board 5.\n", portN, portState);
sagara17 3:8e29c3da6961 262 setPort(dac_port5, sync5, portN, portState);
sagara17 3:8e29c3da6961 263 }
sagara17 3:8e29c3da6961 264 else if(brd==6)
sagara17 3:8e29c3da6961 265 {
sagara17 3:8e29c3da6961 266 pc.printf("Setting port %d to %d for board 6.\n", portN, portState);
sagara17 3:8e29c3da6961 267 setPort(dac_port6, sync6, portN, portState);
sagara17 3:8e29c3da6961 268 }
sagara17 3:8e29c3da6961 269 else if(brd==7)
sagara17 3:8e29c3da6961 270 {
sagara17 3:8e29c3da6961 271 pc.printf("Setting port %d to %d for board 7.\n", portN, portState);
sagara17 3:8e29c3da6961 272 setPort(dac_port7, sync7, portN, portState);
sagara17 3:8e29c3da6961 273 }
sagara17 3:8e29c3da6961 274 else if(brd==8)
sagara17 3:8e29c3da6961 275 {
sagara17 3:8e29c3da6961 276 pc.printf("Setting port %d to %d for board 8.\n", portN, portState);
sagara17 3:8e29c3da6961 277 setPort(dac_port8, sync8, portN, portState);
sagara17 3:8e29c3da6961 278 }
sagara17 3:8e29c3da6961 279 else
sagara17 3:8e29c3da6961 280 pc.printf("The board number has to be between 1 and 8\n");
sagara17 3:8e29c3da6961 281 //toWrite=(portN + 0x0020)*0x0100 + portState;
sagara17 3:8e29c3da6961 282 //pc.printf("WORD %d (0x%04x)\n", toWrite, toWrite);
sagara17 3:8e29c3da6961 283 }
sagara17 3:8e29c3da6961 284 else
sagara17 3:8e29c3da6961 285 {
sagara17 3:8e29c3da6961 286 pc.printf("Valid ports number: 12 - 31. Valid status: 0 - 1. You typed port %d state %d.\n", portN, portState);
sagara17 3:8e29c3da6961 287 }
sagara17 3:8e29c3da6961 288
sagara17 3:8e29c3da6961 289 }
sagara17 3:8e29c3da6961 290 else
sagara17 3:8e29c3da6961 291 {
sagara17 3:8e29c3da6961 292 pc.printf("Setport requires 3 parameters:\ntype 'setport 5 21 1' to set port 21 on board 5 as 'high'\ntype 'setport 5 21 0' to set it 'low'.\nThis command assumes that the port is already configured as output.\n");
sagara17 3:8e29c3da6961 293 }
sagara17 3:8e29c3da6961 294 }
sagara17 3:8e29c3da6961 295 else if(firstTk=="pullallup")
sagara17 3:8e29c3da6961 296 {
sagara17 3:8e29c3da6961 297 if (tokens.size() ==1)
sagara17 3:8e29c3da6961 298 {
sagara17 3:8e29c3da6961 299 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 300 {
sagara17 3:8e29c3da6961 301 setPort(dac_port1, sync1, a, 1);
sagara17 3:8e29c3da6961 302 setPort(dac_port2, sync2, a, 1);
sagara17 3:8e29c3da6961 303 setPort(dac_port3, sync3, a, 1);
sagara17 3:8e29c3da6961 304 setPort(dac_port4, sync4, a, 1);
sagara17 3:8e29c3da6961 305 setPort(dac_port5, sync5, a, 1);
sagara17 3:8e29c3da6961 306 setPort(dac_port6, sync6, a, 1);
sagara17 3:8e29c3da6961 307 setPort(dac_port7, sync7, a, 1);
sagara17 3:8e29c3da6961 308 setPort(dac_port8, sync8, a, 1);
sagara17 3:8e29c3da6961 309 }
sagara17 3:8e29c3da6961 310 pc.printf("Pulling all ports up in boards 1 to 8.\n");
sagara17 3:8e29c3da6961 311 }
sagara17 3:8e29c3da6961 312 else
sagara17 3:8e29c3da6961 313 pc.printf("pullallup does not take any arguments. It pulls all ports up in all the boards.\n");
sagara17 3:8e29c3da6961 314 }
sagara17 3:8e29c3da6961 315 else if(firstTk=="pullup")
sagara17 3:8e29c3da6961 316 {
sagara17 3:8e29c3da6961 317 if(tokens.size() ==2)
sagara17 3:8e29c3da6961 318 {
sagara17 3:8e29c3da6961 319 int brd = atoi(tokens.at(1).c_str());
sagara17 3:8e29c3da6961 320 if(brd==1)
sagara17 3:8e29c3da6961 321 {
sagara17 3:8e29c3da6961 322 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 323 setPort(dac_port1, sync1, a, 1);
sagara17 3:8e29c3da6961 324 pc.printf("Pulling all ports up in board 1.\n");
sagara17 3:8e29c3da6961 325 }
sagara17 3:8e29c3da6961 326 else if(brd==2)
sagara17 3:8e29c3da6961 327 {
sagara17 3:8e29c3da6961 328 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 329 setPort(dac_port2, sync2, a, 1);
sagara17 3:8e29c3da6961 330 pc.printf("Pulling all ports up in board 2.\n");
sagara17 3:8e29c3da6961 331 }
sagara17 3:8e29c3da6961 332 else if(brd==3)
sagara17 3:8e29c3da6961 333 {
sagara17 3:8e29c3da6961 334 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 335 setPort(dac_port3, sync3, a, 1);
sagara17 3:8e29c3da6961 336 pc.printf("Pulling all ports up in board 3.\n");
sagara17 3:8e29c3da6961 337 }
sagara17 3:8e29c3da6961 338 else if(brd==4)
sagara17 3:8e29c3da6961 339 {
sagara17 3:8e29c3da6961 340 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 341 setPort(dac_port4, sync4, a, 1);
sagara17 3:8e29c3da6961 342 pc.printf("Pulling all ports up in board 4.\n");
sagara17 3:8e29c3da6961 343 }
sagara17 3:8e29c3da6961 344 else if(brd==5)
sagara17 3:8e29c3da6961 345 {
sagara17 3:8e29c3da6961 346 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 347 setPort(dac_port5, sync5, a, 1);
sagara17 3:8e29c3da6961 348 pc.printf("Pulling all ports up in board 5.\n");
sagara17 3:8e29c3da6961 349 }
sagara17 3:8e29c3da6961 350 else if(brd==6)
sagara17 3:8e29c3da6961 351 {
sagara17 3:8e29c3da6961 352 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 353 setPort(dac_port6, sync6, a, 1);
sagara17 3:8e29c3da6961 354 pc.printf("Pulling all ports up in board 6.\n");
sagara17 3:8e29c3da6961 355 }
sagara17 3:8e29c3da6961 356 else if(brd==7)
sagara17 3:8e29c3da6961 357 {
sagara17 3:8e29c3da6961 358 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 359 setPort(dac_port7, sync7, a, 1);
sagara17 3:8e29c3da6961 360 pc.printf("Pulling all ports up in board 7.\n");
sagara17 3:8e29c3da6961 361 }
sagara17 3:8e29c3da6961 362 else if(brd==8)
sagara17 3:8e29c3da6961 363 {
sagara17 3:8e29c3da6961 364 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 365 setPort(dac_port8, sync8, a, 1);
sagara17 3:8e29c3da6961 366 pc.printf("Pulling all ports up in board 8.\n");
sagara17 3:8e29c3da6961 367 }
sagara17 3:8e29c3da6961 368 else
sagara17 3:8e29c3da6961 369 pc.printf("The board number has to be between 1 and 8.\n");
sagara17 3:8e29c3da6961 370 }
sagara17 3:8e29c3da6961 371 else
sagara17 5:8eefbd5f77aa 372 pc.printf("pullup can take only 1 argument. pullup 6 pulls all ports up in board 6.\n");
sagara17 3:8e29c3da6961 373 }
sagara17 3:8e29c3da6961 374 else if(firstTk=="pullalldown")
sagara17 3:8e29c3da6961 375 {
sagara17 3:8e29c3da6961 376 if (tokens.size() ==1)
sagara17 3:8e29c3da6961 377 {
cussans 6:4d64960c7908 378 pc.printf("Pulling all ports down in boards 1 to 8.\n");
sagara17 3:8e29c3da6961 379 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 380 {
sagara17 3:8e29c3da6961 381 setPort(dac_port1, sync1, a, 0);
sagara17 3:8e29c3da6961 382 setPort(dac_port2, sync2, a, 0);
sagara17 3:8e29c3da6961 383 setPort(dac_port3, sync3, a, 0);
sagara17 3:8e29c3da6961 384 setPort(dac_port4, sync4, a, 0);
sagara17 3:8e29c3da6961 385 setPort(dac_port5, sync5, a, 0);
sagara17 3:8e29c3da6961 386 setPort(dac_port6, sync6, a, 0);
sagara17 3:8e29c3da6961 387 setPort(dac_port7, sync7, a, 0);
sagara17 3:8e29c3da6961 388 setPort(dac_port8, sync8, a, 0);
sagara17 3:8e29c3da6961 389 }
cussans 6:4d64960c7908 390 pc.printf("Pulled all ports down in boards 1 to 8.\n");
sagara17 3:8e29c3da6961 391 }
sagara17 3:8e29c3da6961 392 else
sagara17 3:8e29c3da6961 393 pc.printf("pullalldown does not take any arguments. It pulls all ports down in all the boards.\n");
sagara17 3:8e29c3da6961 394 }
sagara17 3:8e29c3da6961 395 else if(firstTk=="pulldown")
sagara17 3:8e29c3da6961 396 {
sagara17 3:8e29c3da6961 397 if(tokens.size() ==2)
sagara17 3:8e29c3da6961 398 {
sagara17 3:8e29c3da6961 399 int brd = atoi(tokens.at(1).c_str());
sagara17 3:8e29c3da6961 400 if(brd==1)
sagara17 3:8e29c3da6961 401 {
sagara17 3:8e29c3da6961 402 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 403 setPort(dac_port1, sync1, a, 0);
sagara17 3:8e29c3da6961 404 pc.printf("Pulling all ports down in board 1.\n");
sagara17 3:8e29c3da6961 405 }
sagara17 3:8e29c3da6961 406 else if(brd==2)
sagara17 3:8e29c3da6961 407 {
sagara17 3:8e29c3da6961 408 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 409 setPort(dac_port2, sync2, a, 0);
sagara17 3:8e29c3da6961 410 pc.printf("Pulling all ports down in board 2.\n");
sagara17 3:8e29c3da6961 411 }
sagara17 3:8e29c3da6961 412 else if(brd==3)
sagara17 3:8e29c3da6961 413 {
sagara17 3:8e29c3da6961 414 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 415 setPort(dac_port3, sync3, a, 0);
sagara17 3:8e29c3da6961 416 pc.printf("Pulling all ports down in board 3.\n");
sagara17 3:8e29c3da6961 417 }
sagara17 3:8e29c3da6961 418 else if(brd==4)
sagara17 3:8e29c3da6961 419 {
sagara17 3:8e29c3da6961 420 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 421 setPort(dac_port4, sync4, a, 0);
sagara17 3:8e29c3da6961 422 pc.printf("Pulling all ports down in board 4.\n");
sagara17 3:8e29c3da6961 423 }
sagara17 3:8e29c3da6961 424 else if(brd==5)
sagara17 3:8e29c3da6961 425 {
sagara17 3:8e29c3da6961 426 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 427 setPort(dac_port5, sync5, a, 0);
sagara17 3:8e29c3da6961 428 pc.printf("Pulling all ports down in board 5.\n");
sagara17 3:8e29c3da6961 429 }
sagara17 3:8e29c3da6961 430 else if(brd==6)
sagara17 3:8e29c3da6961 431 {
sagara17 3:8e29c3da6961 432 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 433 setPort(dac_port6, sync6, a, 0);
sagara17 3:8e29c3da6961 434 pc.printf("Pulling all ports down in board 6.\n");
sagara17 3:8e29c3da6961 435 }
sagara17 3:8e29c3da6961 436 else if(brd==7)
sagara17 3:8e29c3da6961 437 {
sagara17 3:8e29c3da6961 438 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 439 setPort(dac_port7, sync7, a, 0);
sagara17 3:8e29c3da6961 440 pc.printf("Pulling all ports down in board 7.\n");
sagara17 3:8e29c3da6961 441 }
sagara17 3:8e29c3da6961 442 else if(brd==8)
sagara17 3:8e29c3da6961 443 {
sagara17 3:8e29c3da6961 444 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 445 setPort(dac_port8, sync8, a, 0);
sagara17 3:8e29c3da6961 446 pc.printf("Pulling all ports down in board 8.\n");
sagara17 3:8e29c3da6961 447 }
sagara17 3:8e29c3da6961 448 else
sagara17 3:8e29c3da6961 449 pc.printf("The board number has to be between 1 and 8.\n");
sagara17 3:8e29c3da6961 450 }
sagara17 3:8e29c3da6961 451 else
sagara17 5:8eefbd5f77aa 452 pc.printf("pulldown can take only 1 argument. pulldown 6 pulls all ports down in board 6.\n");
sagara17 3:8e29c3da6961 453 }
sagara17 3:8e29c3da6961 454 else if(firstTk == "send")
sagara17 3:8e29c3da6961 455 {
sagara17 3:8e29c3da6961 456 if (tokens.size() ==3)
sagara17 3:8e29c3da6961 457 {
sagara17 3:8e29c3da6961 458 int brd = atoi(tokens.at(1).c_str());
sagara17 3:8e29c3da6961 459 int myWord=0;
sagara17 3:8e29c3da6961 460 myWord= strtol(tokens.at(2).c_str(), NULL, 16);
sagara17 3:8e29c3da6961 461 pc.printf("WORD %d (0x%04x)\n", myWord, myWord);
sagara17 3:8e29c3da6961 462 if(brd==1)
sagara17 3:8e29c3da6961 463 {
sagara17 3:8e29c3da6961 464 mySPISend(myWord, dac_port1, sync1);
sagara17 3:8e29c3da6961 465 }
sagara17 3:8e29c3da6961 466 else if(brd==2)
sagara17 3:8e29c3da6961 467 {
sagara17 3:8e29c3da6961 468 mySPISend(myWord, dac_port2, sync2);
sagara17 3:8e29c3da6961 469 }
sagara17 3:8e29c3da6961 470 else if(brd==3)
sagara17 3:8e29c3da6961 471 {
sagara17 3:8e29c3da6961 472 mySPISend(myWord, dac_port3, sync3);
sagara17 3:8e29c3da6961 473 }
sagara17 3:8e29c3da6961 474 else if(brd==4)
sagara17 3:8e29c3da6961 475 {
sagara17 3:8e29c3da6961 476 mySPISend(myWord, dac_port4, sync4);
sagara17 3:8e29c3da6961 477 }
sagara17 3:8e29c3da6961 478 else if(brd==5)
sagara17 3:8e29c3da6961 479 {
sagara17 3:8e29c3da6961 480 mySPISend(myWord, dac_port5, sync5);
sagara17 3:8e29c3da6961 481 }
sagara17 3:8e29c3da6961 482 else if(brd==6)
sagara17 3:8e29c3da6961 483 {
sagara17 3:8e29c3da6961 484 mySPISend(myWord, dac_port6, sync6);
sagara17 3:8e29c3da6961 485 }
sagara17 3:8e29c3da6961 486 else if(brd==7)
sagara17 3:8e29c3da6961 487 {
sagara17 3:8e29c3da6961 488 mySPISend(myWord, dac_port7, sync7);
sagara17 3:8e29c3da6961 489 }
sagara17 3:8e29c3da6961 490 else if(brd==8)
sagara17 3:8e29c3da6961 491 {
sagara17 3:8e29c3da6961 492 mySPISend(myWord, dac_port8, sync8);
sagara17 3:8e29c3da6961 493 }
sagara17 3:8e29c3da6961 494 else
sagara17 3:8e29c3da6961 495 pc.printf("The board number has to be between 1 and 8\n");
sagara17 3:8e29c3da6961 496 }
sagara17 3:8e29c3da6961 497 else
sagara17 3:8e29c3da6961 498 {
sagara17 3:8e29c3da6961 499 pc.printf("Send requires a board number and a hex word parameter.\ntype 'send 3 XXXX' to send the word (x must be a hex value) to board 3.\n");
sagara17 3:8e29c3da6961 500 }
sagara17 3:8e29c3da6961 501 }
sagara17 3:8e29c3da6961 502 else if(firstTk == "read")
sagara17 3:8e29c3da6961 503 {
sagara17 3:8e29c3da6961 504 if (tokens.size() ==3)
sagara17 3:8e29c3da6961 505 {
sagara17 3:8e29c3da6961 506 int brd = atoi(tokens.at(1).c_str());
sagara17 3:8e29c3da6961 507 int myWord=0;
sagara17 3:8e29c3da6961 508 myWord= strtol(tokens.at(2).c_str(), NULL, 16);
sagara17 3:8e29c3da6961 509 pc.printf("WORD %d (0x%04x)\n", myWord, myWord);
sagara17 3:8e29c3da6961 510 if(brd==1)
sagara17 3:8e29c3da6961 511 mySPIRead(pc, myWord, dac_port1, sync1);
sagara17 3:8e29c3da6961 512 else if(brd==2)
sagara17 3:8e29c3da6961 513 mySPIRead(pc, myWord, dac_port2, sync2);
sagara17 3:8e29c3da6961 514 else if(brd==3)
sagara17 3:8e29c3da6961 515 mySPIRead(pc, myWord, dac_port3, sync3);
sagara17 3:8e29c3da6961 516 else if(brd==4)
sagara17 3:8e29c3da6961 517 mySPIRead(pc, myWord, dac_port4, sync4);
sagara17 3:8e29c3da6961 518 else if(brd==5)
sagara17 3:8e29c3da6961 519 mySPIRead(pc, myWord, dac_port5, sync5);
sagara17 3:8e29c3da6961 520 else if(brd==6)
sagara17 3:8e29c3da6961 521 mySPIRead(pc, myWord, dac_port6, sync6);
sagara17 3:8e29c3da6961 522 else if(brd==7)
sagara17 3:8e29c3da6961 523 mySPIRead(pc, myWord, dac_port7, sync7);
sagara17 3:8e29c3da6961 524 else if(brd==8)
sagara17 3:8e29c3da6961 525 mySPIRead(pc, myWord, dac_port8, sync8);
sagara17 3:8e29c3da6961 526 else
sagara17 3:8e29c3da6961 527 pc.printf("The board number has to be between 1 and 8\n");
sagara17 3:8e29c3da6961 528
sagara17 3:8e29c3da6961 529 }
sagara17 3:8e29c3da6961 530 else
sagara17 3:8e29c3da6961 531 {
sagara17 3:8e29c3da6961 532 pc.printf("Read requires a board number and a hex word parameter.\ntype 'send XXXX' to send the word (x must be a hex value).\n");
sagara17 3:8e29c3da6961 533 }
sagara17 3:8e29c3da6961 534 }
sagara17 3:8e29c3da6961 535
sagara17 3:8e29c3da6961 536 }