From 24e3b1e44a17f25d498486d1794ea230673ea31c Mon Sep 17 00:00:00 2001 From: Mats van Reenen Date: Wed, 27 Jan 2021 15:54:05 +0100 Subject: [PATCH] update --- belastingProject.syscfg | 16 ++++++++-------- pinout.md | 8 ++++---- planning.md | 12 +++++++----- src/MPPT.c | 4 ++-- src/main.c | 2 +- src/noodstop.c | 34 +++++++++++++++++++++------------- src/noodstop.h | 21 +++++++++++---------- 7 files changed, 54 insertions(+), 43 deletions(-) diff --git a/belastingProject.syscfg b/belastingProject.syscfg index 64af893..083f286 100644 --- a/belastingProject.syscfg +++ b/belastingProject.syscfg @@ -38,7 +38,6 @@ GPIO2.$name = "CONFIG_GPIO_INIT"; GPIO2.pull = "Pull Down"; GPIO2.callbackFunction = "initISR"; GPIO2.interruptTrigger = "Rising Edge"; -GPIO2.gpioPin.$assign = "boosterpack.7"; GPIO3.$name = "CONFIG_GPIO_START"; GPIO3.callbackFunction = "startSysISR"; @@ -52,6 +51,7 @@ GPIO4.initialOutputState = "High"; GPIO5.$name = "CONFIG_GPIO_CSADC"; GPIO5.mode = "Output"; GPIO5.initialOutputState = "High"; +GPIO5.gpioPin.$assign = "boosterpack.8"; PWM1.$name = "CONFIG_PWM_0"; PWM1.$hardware = system.deviceData.board.components.LED_RED; @@ -59,7 +59,11 @@ PWM1.$hardware = system.deviceData.board.components.LED_RED; Power.ioRetentionShutdown = ["GRP_1"]; Power.parkPins.$name = "ti_drivers_power_PowerCC32XXPins0"; -SPI1.$name = "CONFIG_SPI_MASTER"; +SPI1.$name = "CONFIG_SPI_MASTER"; +SPI1.spi.$assign = "SPI0"; +SPI1.spi.sclkPin.$assign = "boosterpack.7"; +SPI1.spi.misoPin.$assign = "boosterpack.28"; +SPI1.spi.mosiPin.$assign = "boosterpack.15"; Watchdog1.$name = "CONFIG_WATCHDOG_0"; Watchdog1.watchdog.$assign = "WATCHDOG0"; @@ -69,14 +73,10 @@ Watchdog1.watchdog.$assign = "WATCHDOG0"; * version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to * re-solve from scratch. */ -GPIO1.gpioPin.$suggestSolution = "boosterpack.18"; +GPIO1.gpioPin.$suggestSolution = "boosterpack.14"; +GPIO2.gpioPin.$suggestSolution = "boosterpack.18"; GPIO4.gpioPin.$suggestSolution = "boosterpack.19"; -GPIO5.gpioPin.$suggestSolution = "boosterpack.13"; PWM1.timer.$suggestSolution = "Timer2"; PWM1.timer.pwmPin.$suggestSolution = "boosterpack.29"; -SPI1.spi.$suggestSolution = "SPI0"; -SPI1.spi.sclkPin.$suggestSolution = "boosterpack.17"; -SPI1.spi.misoPin.$suggestSolution = "boosterpack.14"; -SPI1.spi.mosiPin.$suggestSolution = "boosterpack.15"; SPI1.spi.dmaRxChannel.$suggestSolution = "UDMA_CH30"; SPI1.spi.dmaTxChannel.$suggestSolution = "UDMA_CH31"; diff --git a/pinout.md b/pinout.md index 861be9d..6bbe17e 100644 --- a/pinout.md +++ b/pinout.md @@ -4,7 +4,7 @@ | lable | pin | |------------|----:| -| start init | P05 | +| start init | ? | | start sys | P03 | | noodstop | P08 | @@ -12,11 +12,11 @@ | lable | pin | |--------|----:| -| CSK | P45 | -| MISO | P06 | +| CSK | P05 | +| MISO | P53 | | MOSI | P07 | | CS MSP | P18 | -| CS ADC | P21 | +| CS ADC | P62 | ## Other diff --git a/planning.md b/planning.md index 3176c4e..7753e15 100644 --- a/planning.md +++ b/planning.md @@ -10,14 +10,16 @@ - [x] ADC aanluiten -- [ ] testcode voor mppt maken -- [ ] testcode voor spi maken +- [x] testcode voor mppt maken +- [x] testcode voor spi maken - [ ] testcode voor i2c maken - [ ] uart deel maken ## maandag -- [ ] mppt testen +- [ ] mppt testen +een mosfet driver is in bestelling + - [ ] adc testen - [ ] mppt updaten @@ -25,8 +27,8 @@ ## dinsdag -- [ ] adc testen -- [ ] spi testen +- [x] adc testen +- [x] spi testen ## woensdag diff --git a/src/MPPT.c b/src/MPPT.c index ff1949c..516c518 100644 --- a/src/MPPT.c +++ b/src/MPPT.c @@ -4,6 +4,7 @@ #include "debug.h" #include "global.h" #include "MPPT.h" +#include "noodstop.h" #include "spi.h" #define PWM_MIN 0.001 @@ -30,11 +31,10 @@ void mppt_meetVermogen(){ uint16_t curent = ADC_read(ADC_CH3); //TODO: add real formula for spanning and curent mppt_vermogen = (spanning * curent) / 100; + noodstop_vermogen(mppt_vermogen); } void mppt_init(){ - PWM_init(); - PWM_Params params; PWM_Params_init(¶ms); params.dutyUnits = PWM_DUTY_FRACTION; diff --git a/src/main.c b/src/main.c index 96b67d6..142c760 100644 --- a/src/main.c +++ b/src/main.c @@ -99,9 +99,9 @@ void * mainTask(void *arg){ break; case OVERHEAD: case OVERLOAD: - case OVERSPEED: case EXT_NOODSTOP: stopSys(); + case OVERSPEED: // don't stop on overload first wait for speed to go down return; } lastState = Status; diff --git a/src/noodstop.c b/src/noodstop.c index 15c75c3..3e6deec 100644 --- a/src/noodstop.c +++ b/src/noodstop.c @@ -35,14 +35,25 @@ void noodstop_snelhied(uint16_t snelhied){ // controleer snelheid if(snelhied > nood_maxwaardes.maxSnelheid){ // PANIC!! - mppt_setSetpointOverride(nood_maxwaardes.maxVermogen); - + mppt_setSetpointOverride(nood_maxwaardes.maxVermogen); // zet vemogen max om de de snelheid te beperken + noodstop_activeerNoodstop(); // geef noodstop aan andere units + Status = OVERSPEED; + // Wacht 0.5 seconde usleep(500E3); - // activeer noostop - Status = OVERSPEED; - noodstop_activeerNoodstop(); + // zet het systeem uit + mppt_setSetpointOverride(0); + } +} + +void noodstop_vermogen(uint8_t vermogen){ + // controleer vermogen + if(snelhied > nood_maxwaardes.maxVermogen){ + // PANIC!! + mppt_setSetpointOverride(0); // zet vemogen max om de de snelheid te beperken + noodstop_activeerNoodstop(); // geef noodstop aan andere units + Status = OVERLOAD; } } @@ -101,14 +112,11 @@ void noodstop_init(){ memset(&nood_maxwaardes, 0xff, sizeof(nood_maxwaardes)); // set all max value to invalid ones // controleer max waardes - while(1){ - if( - nood_maxwaardes.maxSnelheid <= 60000 - && nood_maxwaardes.maxTempratuur >= 60 && nood_maxwaardes.maxTempratuur <= 120 - && nood_maxwaardes.maxVermogen <= 250 - ){ - break; // stop the loop, values are valid - } + while( + nood_maxwaardes.maxSnelheid > 60000 + || nood_maxwaardes.maxTempratuur < 60 || nood_maxwaardes.maxTempratuur > 120 + || nood_maxwaardes.maxVermogen > 250) + { usleep(100E3); } diff --git a/src/noodstop.h b/src/noodstop.h index 77e9314..95f11f3 100644 --- a/src/noodstop.h +++ b/src/noodstop.h @@ -3,15 +3,16 @@ #include -void noodstop_setMaxVermogen(uint8_t value); -void noodstop_setMaxSnelheid(uint16_t value); -void noodstop_setMaxTemptratuur(uint8_t value); -void noodstop_snelhied(uint16_t snelhied); - -void noodstop_init(); -void noodstop_start(); - -uint8_t noodstop_getTempratuur(); -void noodstop_activeerNoodstop(); +void noodstop_setMaxVermogen(uint8_t value); // set max vermogen +void noodstop_setMaxSnelheid(uint16_t value); // set max snelheid +void noodstop_setMaxTemptratuur(uint8_t value); // set max tempratuur +void noodstop_snelhied(uint16_t snelhied); // geef snelhied door +void noodstop_vermogen(uint8_t vermogen); // geef vermogen door + +void noodstop_init(); // initaliseer noodstop +void noodstop_start(); // start de noodstop logica + +uint8_t noodstop_getTempratuur(); // verkrijg temptartuur +void noodstop_activeerNoodstop(); // zet de noodstop pin laag #endif