Demoboard LT206A LTC6803-2/LTC3300 with Arduino

Joined
Jun 23, 2014
Messages
1
I just received my Linear Technology Demoboard 206A for aktive Balancing.
The board is using for aktive balancing two LTC3300 and for the battery monitoring a LTC6803-2 (addressable).

For testing the board I used an arduino nano which I connected to the board
(SCK, SDO, SDI, CS, 5V and GND).

I wrote the following code just to test the SPI connection. But somehow It did not work.
The Boardaddress ist 0x80. I checked the code several times but do not see the mistake?

Does somebody see the mistake? Has somebody already used the Demoboard via SPI?

My Code:
Code:
#include <SPI.h>

#define READ 0x02
#define WRITE 0x01
#define CS 10

byte result[7];
#define address 0x80
byte transmit1[6] = {244, 1, 1, 1, 125, 181};
byte transmit2[6] = {0xE0, 1, 1, 1, 1, 1};

void setup(){
  pinMode(CS, OUTPUT);
  digitalWrite(CS, HIGH);
  
  Serial.begin(9600);
  
  SPI.begin();
  SPI.setDataMode(SPI_MODE3);
  SPI.setClockDivider(SPI_CLOCK_DIV16);
  SPI.setBitOrder(MSBFIRST);
}

void loop() {
  
 
  // Read 1
  digitalWrite(CS, LOW);
  SPI.transfer(0x80);
  SPI.transfer(READ);
  for(int i = 0; i < 7; i++){
    result[i] = SPI.transfer(0x00);
  }
  digitalWrite(CS, HIGH);
  
  Serial.println("READ 1");
  for(int i = 0; i < 7; i++){
    Serial.print(result[i], HEX);
    Serial.print(' ');
  }
  Serial.println(' ');
  
  delay(100);
  
  // Write 1
  digitalWrite(CS, LOW);
  SPI.transfer(address);
  SPI.transfer(WRITE);
  for(int i = 0; i < 6; i++){
    SPI.transfer(transmit1[i]);
  }
  digitalWrite(CS,HIGH);
  
  Serial.println("WRITE1");
  for(int i = 0; i < 6; i++){
    Serial.print(transmit1[i], HEX);
    Serial.print(' ');
  }
  Serial.println(' ');
  
  delay(100);
  
  // Read 2
  digitalWrite(CS, LOW);
  SPI.transfer(address);
  SPI.transfer(READ);
  for(int i = 0; i < 7; i++){
    result[i] = SPI.transfer(0x00);
  }
  digitalWrite(CS, HIGH);
  
  Serial.println("READ 2");
  for(int i = 0; i < 7; i++){
    Serial.print(result[i], HEX);
    Serial.print(' ');
  }
  Serial.println(' ');
  
  delay(100);
  
   // Write 2
  digitalWrite(CS, LOW);
  SPI.transfer(address);
  SPI.transfer(WRITE);
  for(int i = 0; i < 6; i++){
    SPI.transfer(transmit2[i]);
  }
  digitalWrite(CS, HIGH);

  Serial.println("WRITE 2");
  for(int i = 0; i < 6; i++){
    Serial.print(transmit2[i], HEX);
    Serial.print(' ');
  }
  Serial.println(' ');
  
  delay(1000);
}

Thanks for your help
 
Back
Top