• Hello ES! We could use some help to get us past the finish line on building the new knowledgebase for the forum.
    Can you donate? Please see our fundraising page. Thank you!

Demoboard LT206A LTC6803-2/LTC3300 with Arduino

henningsievering

🧲 New user
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