elixys periphreal system firmware library

Dependencies:   MAX31855 MCP23S18 MCP3202 MCP3208 MCP482x ShiftRegister1

Fork of elixys by Henry Herman

Committer:
henryeherman
Date:
Sun Dec 15 02:43:07 2013 +0000
Revision:
1:b0f7c49b67f8
Parent:
0:542583a6f6bb
Child:
3:1b20a56e4457
Working elixys interface library with unit tests

Who changed what in which revision?

UserRevisionLine numberNew contents of line
henryeherman 0:542583a6f6bb 1 #ifndef ELIXYS_H
henryeherman 0:542583a6f6bb 2 #define ELIXYS_H
henryeherman 0:542583a6f6bb 3 #include "mbed.h"
henryeherman 1:b0f7c49b67f8 4 #include "chipselectarray.h"
henryeherman 1:b0f7c49b67f8 5 #include "mcp23s18.h"
henryeherman 1:b0f7c49b67f8 6 #include "mcp3202.h"
henryeherman 1:b0f7c49b67f8 7 #include "mcp482x.h"
henryeherman 0:542583a6f6bb 8 #include "max31855.h"
henryeherman 1:b0f7c49b67f8 9 #include "mcp3208.h"
henryeherman 1:b0f7c49b67f8 10
henryeherman 1:b0f7c49b67f8 11 #define SYSTEMTEST 1
henryeherman 1:b0f7c49b67f8 12
henryeherman 1:b0f7c49b67f8 13 #ifdef SYSTEMTEST
henryeherman 1:b0f7c49b67f8 14 #include <sstream>
henryeherman 1:b0f7c49b67f8 15 #endif
henryeherman 1:b0f7c49b67f8 16
henryeherman 1:b0f7c49b67f8 17 // Fan Subsystem Defines
henryeherman 1:b0f7c49b67f8 18
henryeherman 1:b0f7c49b67f8 19 // Heater Subsystem Defines
henryeherman 1:b0f7c49b67f8 20 #define HEATER0 (1<<0)
henryeherman 1:b0f7c49b67f8 21 #define HEATER1 (1<<1)
henryeherman 1:b0f7c49b67f8 22 #define HEATER2 (1<<2)
henryeherman 1:b0f7c49b67f8 23 #define HEATER3 (1<<3)
henryeherman 1:b0f7c49b67f8 24 #define HEATER4 (1<<4)
henryeherman 1:b0f7c49b67f8 25 #define HEATER5 (1<<5)
henryeherman 1:b0f7c49b67f8 26 #define HEATER6 (1<<6)
henryeherman 1:b0f7c49b67f8 27 #define HEATER7 (1<<7)
henryeherman 1:b0f7c49b67f8 28 #define HEATER8 (1<<8)
henryeherman 1:b0f7c49b67f8 29 #define HTRLED0 (1<<9)
henryeherman 1:b0f7c49b67f8 30 #define HTRLED1 (1<<10)
henryeherman 1:b0f7c49b67f8 31 #define HTRLED2 (1<<11)
henryeherman 1:b0f7c49b67f8 32 #define VAC (1<<12)
henryeherman 1:b0f7c49b67f8 33 #define ALLHEATERSOFF 0xFFFF
henryeherman 1:b0f7c49b67f8 34 #define ALLHEATERSON 0x0000
henryeherman 1:b0f7c49b67f8 35
henryeherman 0:542583a6f6bb 36
henryeherman 0:542583a6f6bb 37 namespace Elixys {
henryeherman 1:b0f7c49b67f8 38
henryeherman 1:b0f7c49b67f8 39 // SPI Communication Bus
henryeherman 0:542583a6f6bb 40 extern SPI spibus;
henryeherman 1:b0f7c49b67f8 41
henryeherman 1:b0f7c49b67f8 42 // Fan Subsystem
henryeherman 1:b0f7c49b67f8 43 extern PwmOut fan1;
henryeherman 1:b0f7c49b67f8 44 extern PwmOut fan2;
henryeherman 1:b0f7c49b67f8 45 extern DigitalOut fan0;
henryeherman 1:b0f7c49b67f8 46 extern DigitalOut misc0;
henryeherman 0:542583a6f6bb 47
henryeherman 1:b0f7c49b67f8 48 // Heater Subsystem
henryeherman 1:b0f7c49b67f8 49 extern mcp23s18 htriomux;
henryeherman 1:b0f7c49b67f8 50
henryeherman 1:b0f7c49b67f8 51 void turn_on_heater(unsigned int pins);
henryeherman 1:b0f7c49b67f8 52 void turn_off_heater(unsigned int pins);
henryeherman 1:b0f7c49b67f8 53 void setup_heater();
henryeherman 1:b0f7c49b67f8 54
henryeherman 1:b0f7c49b67f8 55 // Mixer Subsystem
henryeherman 1:b0f7c49b67f8 56 extern PwmOut mtr0;
henryeherman 1:b0f7c49b67f8 57 extern PwmOut mtr1;
henryeherman 1:b0f7c49b67f8 58 extern PwmOut mtr2;
henryeherman 1:b0f7c49b67f8 59 extern PwmOut mtr3;
henryeherman 1:b0f7c49b67f8 60
henryeherman 1:b0f7c49b67f8 61
henryeherman 1:b0f7c49b67f8 62 // SMCInterface Subsystem
henryeherman 1:b0f7c49b67f8 63 extern MCP3202 smcadc;
henryeherman 1:b0f7c49b67f8 64 extern MCP482X smcdac;
henryeherman 1:b0f7c49b67f8 65
henryeherman 1:b0f7c49b67f8 66 // Thermocouple Subsystem
henryeherman 0:542583a6f6bb 67 extern max31855 tcintf0;
henryeherman 0:542583a6f6bb 68 extern max31855 tcintf1;
henryeherman 0:542583a6f6bb 69 extern max31855 tcintf2;
henryeherman 0:542583a6f6bb 70 extern max31855 tcintf3;
henryeherman 0:542583a6f6bb 71 extern max31855 tcintf4;
henryeherman 0:542583a6f6bb 72 extern max31855 tcintf5;
henryeherman 0:542583a6f6bb 73 extern max31855 tcintf6;
henryeherman 0:542583a6f6bb 74 extern max31855 tcintf7;
henryeherman 1:b0f7c49b67f8 75 extern max31855 tcintf8;
henryeherman 1:b0f7c49b67f8 76
henryeherman 1:b0f7c49b67f8 77 void setup_valves();
henryeherman 1:b0f7c49b67f8 78 void set_valves(int id, int value);
henryeherman 1:b0f7c49b67f8 79
henryeherman 1:b0f7c49b67f8 80 // Position Sensor Subsystem
henryeherman 1:b0f7c49b67f8 81 void setup_position_sensors();
henryeherman 1:b0f7c49b67f8 82 unsigned int read_poisition_sensors();
henryeherman 1:b0f7c49b67f8 83
henryeherman 1:b0f7c49b67f8 84 // Liquid Sensors Subsystem
henryeherman 1:b0f7c49b67f8 85 extern mcp3208 liqadc;
henryeherman 1:b0f7c49b67f8 86
henryeherman 1:b0f7c49b67f8 87 // Elixys System Setup
henryeherman 1:b0f7c49b67f8 88 void setup_elixys();
henryeherman 1:b0f7c49b67f8 89
henryeherman 1:b0f7c49b67f8 90 // System Tests
henryeherman 1:b0f7c49b67f8 91 #ifdef SYSTEMTEST
henryeherman 1:b0f7c49b67f8 92 void fan_test();
henryeherman 1:b0f7c49b67f8 93 void heater_test();
henryeherman 1:b0f7c49b67f8 94 void mixer_test();
henryeherman 1:b0f7c49b67f8 95 void smcadc_test();
henryeherman 1:b0f7c49b67f8 96 void smcdac_test();
henryeherman 1:b0f7c49b67f8 97 int tc_test();
henryeherman 1:b0f7c49b67f8 98 void valve_test();
henryeherman 1:b0f7c49b67f8 99 void position_sensor_test();
henryeherman 1:b0f7c49b67f8 100 void run_test();
henryeherman 1:b0f7c49b67f8 101 #endif
henryeherman 1:b0f7c49b67f8 102
henryeherman 0:542583a6f6bb 103 }
henryeherman 1:b0f7c49b67f8 104
henryeherman 0:542583a6f6bb 105
henryeherman 0:542583a6f6bb 106 #endif //ELIXYS_H