diff --git a/msp430/main.c b/msp430/main.c deleted file mode 100644 index 2ca666f..0000000 --- a/msp430/main.c +++ /dev/null @@ -1,112 +0,0 @@ -#include -#include - -#define READBUFFER_LEN 10 -#define WRITEBUFFER_LEN 10 - -// this buffers store the the receved and send data -unsigned char ReadBuffer[READBUFFER_LEN]; -unsigned char WriteBuffer[WRITEBUFFER_LEN]; - -// the pointers are used to remenber the location it was on the buffer -unsigned char *ReadBuffer_p = &ReadBuffer[0]; -unsigned char *WriteBuffer_p = &WriteBuffer[0]; - -// if it finisched receving/sending a packet this wil become true -bool NewPacket = false; - -enum {SLEEP, WRITE, READ} State; -typedef enum {} PacketID_t; //TODO: add packet ids - -void Setup(void); - -int main(void) -{ - WDTCTL = WDTPW + WDTHOLD; // Stop WDT - - P1SEL |= BIT6 + BIT7; // Assign I2C pins to USCI_B0 - P1SEL2|= BIT6 + BIT7; // Assign I2C pins to USCI_B0 - - Setup(); - State = SLEEP; - - while(1){ - while(!NewPacket){ - //TODO: add sleep mode - } - - __disable_interrupt(); // don't want the interupt to destoy you beautiful packet - NewPacket = false; // recet new packet flag - uint8_t bytesReceved = ReadBuffer_p - &ReadBuffer[0]; - uint8_t data[READBUFFER_LEN]; - - // copy data from the buffer used for the communication so it can receve the next packet - memcpy(&data[0], &ReadBuffer[0], bytesReceved); - - __enable_interrupt(); // data is save - - switch (data[0]){ - case /* packet id */: - /* read packet */ - break; - } - } -} - -/* - * Deze interrupt is beide voor RXIFG en TXIFG. - * Dus vlaggetjes bekijken om te zien wat er gebeurd - */ -#pragma vector = USCIAB0TX_VECTOR -__interrupt void USCIAB0TX_ISR(void) -{ - if(IFG2 & UCB0TXIFG && State == WRITE){ - // Read data from I2C - UCB0TXBUF = *WriteBuffer_p; - WriteBuffer_p++; - if(WriteBuffer_p > &WriteBuffer[WRITEBUFFER_LEN]){ - State = SLEEP; - NewPacket = true; - } - }else if(IFG2 & UCB0RXIFG && State == READ){ - // Write data to I2C - *ReadBuffer_p = UCB0RXBUF; - ReadBuffer_p++; - if(ReadBuffer_p > &ReadBuffer[READBUFFER_LEN]){ - State = WRITE; - } - } -} - -/* - * Hier krijgen we de start/stop condities - */ -#pragma vector = USCIAB0RX_VECTOR -__interrupt void USCIAB0RX_ISR(void) -{ - if(UCB0STAT & UCSTTIFG){ - // start signaal ontvangen - State = READ; - // reset pointers - WriteBuffer_p = &WriteBuffer[0]; - ReadBuffer_p = &ReadBuffer[0]; - }else if(UCB0STAT & UCSTPIFG){ - // stop signaal, klaar met transactie - State = SLEEP; - NewPacket = true; - } - - // Clear interrupt flags - UCB0STAT &= ~(UCSTPIFG + UCSTTIFG); -} - -void Setup(void){ - __disable_interrupt(); - UCB0CTL1 |= UCSWRST; // reset - UCB0CTL0 = UCMODE_3 + UCSYNC; // I2C Slave, synchronous mode - UCB0I2COA = 0x48; // eigen slave adres is 048h - UCB0CTL1 &= ~UCSWRST; // reset uit - UCB0I2CIE |= UCSTPIE + UCSTTIE; // detectie voor start en stop - IE2 |= UCB0RXIE | UCB0TXIE; // interrupts aan - __enable_interrupt(); -} diff --git a/tests/mpptTest/README.md b/tests/mpptTest/README.md deleted file mode 100644 index 094670c..0000000 --- a/tests/mpptTest/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# MPPT test - -De MPPT test wordt grootendeels handmatig uitgevoerdt. Er wordt een arduino gebruikt om de initalisatie te starten. - -## setup - -### CC3220S - -In debugmode met de orginaile code. - -#### breakboints - -* mppt.c: mppt_start(): last usleep - -### Arduino - -De arduino wordt gebuikt voor het simuleeren van de volgende signaalen: - -* start initialisatie -* start -* SPI (direct naar de CC3220S ipv met I2C via de MSP) - -### dingen die gemeten worden - -* vermogen uit de motor -* PWM signaal diff --git a/tests/mpptTest/mpptTest.ino b/tests/mpptTest/mpptTest.ino deleted file mode 100644 index 2216523..0000000 --- a/tests/mpptTest/mpptTest.ino +++ /dev/null @@ -1,139 +0,0 @@ -#include -#include -#include - -#define I2C Wire - -#define startInit_PIN 9 -#define startSys_PIN 8 -#define ready_PIN 7 -#define noodstop_PIN 6 - -#define CSK_PIN 13 -#define MISO_PIN 12 -#define MOSI_PIN 11 -#define CSMSP_PIN 10 - -typedef enum { - SPIPARM_maxVermogen, - SPIPARM_maxSnelheid, - SPIPARM_maxTemperatuur, - SPIPARM_setpoint, - SPIPARM_vermogen, - SPIPARM_snelheid, - SPIPARM_temperatuur, - SPIPARM_count -} SPI_Register_t; -uint8_t SPI_RxBuffer[4]; -uint8_t * SPI_TxBuffer; -uint8_t SPI_Params[SPIPARM_count][2]; -uint8_t pos; - -void setSetpoint(uint8_t v){ - SPI_Params[SPIPARM_setpoint][0] = v; -} -void setMaxVermogen(uint8_t v){ - SPI_Params[SPIPARM_maxVermogen][0] = v; -} -void setMaxTemperatuur(uint8_t v){ - SPI_Params[SPIPARM_maxTemperatuur][0] = v; -} -void setMaxSnelheid(uint16_t v){ - SPI_Params[SPIPARM_maxSnelheid][0] = v & 0x0FF; - SPI_Params[SPIPARM_maxSnelheid][1] = v > 8; -} - -void setup(){ - Serial.begin(115200); - Serial.println("The Fantastic Five - Belasting regelaar - MPPT Test"); - Serial.println("Init Arduino"); - - // init GPIO - pinMode(noodstop_PIN, INPUT); - digitalWrite(startInit_PIN, LOW); - pinMode(startInit_PIN, OUTPUT); - digitalWrite(startSys_PIN, LOW); - pinMode(startSys_PIN, OUTPUT); - - // init I2C - I2C.begin(); - - // init SPI - pinMode(MISO_PIN, OUTPUT); - SPCR |= _BV(SPE); // set SPI in slave mode - SPI.attachInterrupt(); - - Serial.println("Init CC3220S"); - - // set all SPI params to 0 - memset(&SPI_Params[0][0], 0x00, sizeof(SPI_Params)); - - // set max limits - setMaxVermogen(250); // deci watts; 0 to 250 - setMaxTemperatuur(120); // deg c; 60 to 120 - setMaxSnelheid(60000); // RPM; 0 to 60000 - - // set inital setpoint - setSetpoint(50); // deci watt; 0 to 250 - - // trigger the initalisation - digitalWrite(startInit_PIN, HIGH); - - // sync paramaters until the CC3220S is ready - uint16_t timer = millis(); - while(!digitalRead(ready_PIN)){ - spiRun(); - } - - Serial.println("Start CC3220S"); - - // start the system - digitalWrite(startSys_PIN, 1); -} - -ISR(SPI_STC_vect){ - SPI_RxBuffer[pos] = SPDR; - if(pos == 0) - SPDR = *(SPI_TxBuffer); - else - SPDR = *(SPI_TxBuffer + 1); - pos--; -} - -void spiRun(){ - while(pos == 3) - continue; - - SPI_TxBuffer = &SPI_Params[SPI_RxBuffer[3]][0]; - - while(!digitalRead(CSMSP_PIN)) - continue; - - pos = 3; -} - -void loop(){ - spiRun(); - - switch(SPI_RxBuffer[3]){ - case SPIPARM_vermogen: - Serial.print("vermogen: "); - Serial.print(SPI_RxBuffer[1], DEC); - Serial.println(" deci watt"); - if(SPI_RxBuffer[1] > 3 == SPI_Params[SPIPARM_setpoint][0] > 3){ - Serial.println("reached setpoint :)"); - setSetpoint((SPI_Params[SPIPARM_setpoint][0] == 50) ? 100 : 50); - } - break; - case SPIPARM_snelheid: - Serial.print("snelheid: "); - Serial.print(SPI_RxBuffer[1] + SPI_RxBuffer[0]*0x100, DEC); - Serial.println(" RPM"); - break; - case SPIPARM_temperatuur: - Serial.print("temperatuur: "); - Serial.print(SPI_RxBuffer[1], DEC); - Serial.println(" dec c"); - break; - } -} diff --git a/tests/mpptTest/pinout.md b/tests/mpptTest/pinout.md deleted file mode 100644 index 7fe6aa5..0000000 --- a/tests/mpptTest/pinout.md +++ /dev/null @@ -1,26 +0,0 @@ -# pinout Arduino - -## GPIO - -| lable | pin | -|------------|----:| -| start init | 9 | -| start sys | 8 | -| ready | 7 | -| noodstop | 6 | - -## I2C - -| lable | pin | -|-------|----:| -| SDA | A4 | -| SCL | A5 | - -## SPI - -| lable | pin | -|--------|----:| -| CSK | 13 | -| MISO | 12 | -| MOSI | 11 | -| CS MSP | 10 |