Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed Watchdog Heater MODSERIAL FastPWM ADS8568_ADC
Revision 0:aaad1791753c, committed 2019-08-06
- Comitter:
- omatthews
- Date:
- Tue Aug 06 12:46:14 2019 +0000
- Commit message:
- AD_Logging
Changed in this revision
--- /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