This code will read from both heaters every 2 seconds

Dependencies:   mbed Watchdog Heater MODSERIAL FastPWM ADS8568_ADC

Files at this revision

API Documentation at this revision

Comitter:
omatthews
Date:
Tue Aug 06 12:46:14 2019 +0000
Commit message:
AD_Logging

Changed in this revision

ADS8568_ADC.lib Show annotated file Show diff for this revision Revisions of this file
FastPWM.lib Show annotated file Show diff for this revision Revisions of this file
Heater.lib Show annotated file Show diff for this revision Revisions of this file
MODSERIAL.lib Show annotated file Show diff for this revision Revisions of this file
Watchdog.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ADS8568_ADC.lib	Tue Aug 06 12:46:14 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/teams/The-Technology-Partnership/code/ADS8568_ADC/#52a40eb59b06
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FastPWM.lib	Tue Aug 06 12:46:14 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/Sissors/code/FastPWM/#c0b2265cff9c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Heater.lib	Tue Aug 06 12:46:14 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/teams/The-Technology-Partnership/code/Heater/#e2a504521b46
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MODSERIAL.lib	Tue Aug 06 12:46:14 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/Sissors/code/MODSERIAL/#d2a5e26fd658
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Watchdog.lib	Tue Aug 06 12:46:14 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/teams/The-Technology-Partnership/code/Watchdog/#1034437d3391
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Aug 06 12:46:14 2019 +0000
@@ -0,0 +1,121 @@
+#include "mbed.h"
+#include "MODSERIAL.h"
+#include "Watchdog.h"
+#include "ADS8568_ADC.h"
+#include "Heater.h"
+#include "FastPWM.h"
+
+
+/*------------------------------------------------------------------------------
+Codebase for T99004 Demo Control Board Rev A Firmware
+Date: 10/07/2018
+Author: AS7
+
+
+------------------------------------------------------------------------------*/
+
+#define ALL_CH 15               //value of convst bus to read all chanels simultaneosly
+
+
+Watchdog wd;                    //instantiate watchdog class
+
+MODSERIAL pc(PA_9, PA_10, 512); //mcu TX, RX, 512 byte TX and RX buffers
+
+//ADC object inherits SPI, 
+ADS8568_ADC adc(PB_15, PB_14, PB_13, PB_12, PC_15, PC_0, PC_1, PC_2, PC_3);
+
+//SPI spi(PB_15, PB_14, PB_13);   // mosi, miso, sclk
+I2C i2c(PB_7, PB_8);            //SDA, SCL
+
+//indicator LEDs
+DigitalOut hb_led(PC_13);       //Green
+DigitalOut led_0(PC_4);         //Red
+DigitalOut led_1(PC_5);         //Green
+
+//User buttons
+DigitalIn user_0(PB_0);
+DigitalIn user_1(PB_1);
+
+//ADC
+//BusOut adc_convt(PC_0, PC_1, PC_2, PC_3);   //channel convert ch_A, ch_B, ch_C, ch_D
+//DigitalOut adc_ncs(PB_12);                   //chip n_select
+DigitalIn adc_busy(PA_8);                   //Busy interrupt sig
+//DigitalOut adc_reset(PC_15);
+
+/*ADC channels are connected as follows------------
+CH_A0 = Heater 1 Current Sense
+CH_A1 = Heater 1 Voltage Sense
+CH_B0 = Heater 2 Current Sense
+CH_B1 = Heater 2 Voltage Sense
+CH_C0 = Photodiode Amp Out 1
+CH_C1 = Photodiode Amp Out 2
+CH_D0 = Photodiode Amp Out 3
+CH_D1 = Photodiode Amp Out 4
+---------------------------------------------------*/
+
+//Heater Control
+FastPWM drive_1(PC_9);
+FastPWM drive_2(PC_8);
+FastPWM guard_1(PC_7);
+FastPWM guard_2(PC_6);
+Timer timer;
+
+
+//Global vars instatiation (to be moved to new places)
+char buffer16[16];
+float voltages[8];
+int values[8];
+int i = 0;
+int log_count = 0;
+
+float cur1 = 0;
+float cur2 = 0;
+float R1 = 0;
+float R2 = 0;
+float scale_factors[8];
+float scale_factor = 13.273;
+int drivetime_ms = 0;
+int OSR = 1;
+float R_avg = 0;
+
+char outString[100];
+
+Heater heater_1(0,1,&drive_1, &guard_1, 291, -209);
+Heater heater_2(2,3,&drive_2, &guard_2, 286, -203);
+
+
+int main()
+{
+    // Initialsation
+    
+    //for (int i = 0; i<8; i++) {scale_factors[i] = 13.273;} //TODO tweak for each individual channel 
+    pc.baud(115200);        
+    //led_1 = drive_1; //tie led 1 and heater 1 outputs together so LED shows while heater is on (initial debug purposes only)
+    //wd.Configure(30.0);              //configure watchdog timer to 1s interval
+    adc.init();                     //initialise ADC
+    timer.start();                  //Start the timer   
+    drivetime_ms = 50;
+    
+    //Initialise drive periods
+    drive_1.period_us(PWM_PERIOD);      
+    drive_2.period_us(PWM_PERIOD);    
+    guard_1.period_us(PWM_PERIOD);      
+    guard_2.period_us(PWM_PERIOD); 
+        
+    //while(user_1 == 0);
+    
+    //Body
+    
+    //if (wd.WatchdogCausedReset())
+    //   pc.printf("Watchdog caused reset.\r\n");    
+ 
+    while(1){
+        
+        heater_1.read();
+        heater_2.read();
+        wait(2);
+
+    }    
+    
+        
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Aug 06 12:46:14 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file