Initial rough copy

Dependencies:   BQ76PL536A mbed

main.cpp

Committer:
dmwahl
Date:
2020-07-30
Revision:
1:af7a249bd2b2
Parent:
0:6e263c5ce85d
Child:
2:6c664dcbd052

File content as of revision 1:af7a249bd2b2:

#include "mbed.h"
#include "bq76pl536a.h"

// a SPI sub-class that provides a constructed default
class SPIPreInit : public SPI
{
public:
    SPIPreInit(PinName mosi, PinName miso, PinName sclk, int freq, int bits, int mode) : SPI(mosi, miso, sclk)
    {
        frequency(freq);
        format(bits, mode);
    };
};

//SPIPreInit spi(PA_7, PA_6, A1, 500000, 8, 1);
SPI spi(PA_7, PA_6, A1);

u8t attachedCells[] = {5};
u8t numDev = sizeof(attachedCells)/sizeof(attachedCells[0]);
u8t numCells = 0;

// (SPI object, PinName cs, u8t numDev, u8t attachedCells[], u16t cov[mV], u16t cuv[mV], u8t balanceTimeout[sec], bool balanceEnabled)
BQ76PL536A bq_pack(spi, PB_0, numDev, 4000, 3000, 5, true);

Serial pc(SERIAL_TX, SERIAL_RX);
DigitalOut cs(D3);

int main()
{
    //wait(1);
    //spi.format(8,1);
    //spi.frequency(50000);

    //spi.lock();
    //cs = 0;
    //wait_ms(1);

    //cs = 1;

    
    //wait_ms(1);
    
    //cs = 0;
    //spi.write(0x01);
    //spi.write(0x3b);
    //spi.write(0x01);
    //spi.write(0x02);
    //cs=1;
    //spi.unlock();

    //   spi.write(BROADCAST_ADDR);
    //spi.write(RESET_REG);
    //spi.write(BQ76PL536A_RESET);


    for (int i = 0; i<numDev; i++) {
        numCells +=attachedCells[i];
    }
    pc.baud(115200);
    pc.printf("Starting up...\r\n");
    bq_pack.devStatus();
    //pc.printf("Status: %u\r\n",bq_pack.devStatus());
    //pc.printf("COV: %u CUV: %u, numDev: %d numCells: %d\r\n", bq_pack.cov, bq_pack.cuv, bq_pack.numDev, numCells);
    //pc.printf("%u %u %u %u %u\r\n", bq_pack.attachedCells[0], bq_pack.attachedCells[1], bq_pack.attachedCells[2], bq_pack.attachedCells[3], bq_pack.attachedCells[4]);
    //pc.printf("%u %u %u %u\r\n", bq_pack.cellVolts[0], bq_pack.cellVolts[1], bq_pack.cellVolts[2], bq_pack.cellVolts[3]);

    while(1) {
        wait(1);
        //u8t addr_ctrl = bq_pack.readRegister(1, ADDRESS_CONTROL_REG);

        //bq_pack.readCells();

        //pc.printf("%u %u %u %u %u\r\n", bq_pack.cellVolts[0], bq_pack.cellVolts[1], bq_pack.cellVolts[2], bq_pack.cellVolts[3], bq_pack.cellVolts[4]);

        //pc.printf("%u\r\n",bq_pack.devStatus());
        /*u8t data[8];
        bq_pack.adcConvert();
        wait_ms(10);
        cs = 0;
        spi.write(1);
        spi.write(VCELL1_L_REG);
        spi.write(8);
        for (int i = 0; i<8; i++)
        {
            data[i] = spi.write(0x00);
        }
        cs = 1;
        pc.printf("%u %u %u %u\r\n", (data[0]<<8)|data[1], (data[2]<<8)|data[3], (data[4]<<8)|data[5], (data[6]<<8)|data[7]);*/
    }
}