henningsievering
1 µW
- 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:
Thanks for your help
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