Other Parts Discussed in Thread: ADS1247
Hi, I'm trying to read the internal temp of the ads1247 and I am getting gibberish. here is my code can someone tell me what I am doing wrong? I'm test the IC on a arduino uno, but after I manage to get it to work I am going to port the program to a couple of pic18 mcus
#include <SPI.h>
unsigned long A2DVal =0x0;
void setup() {
pinMode(10, OUTPUT);
pinMode(9, INPUT);
//pinMode(11, OUTPUT);
//pinMode(12, INPUT);
//pinMode(13, OUTPUT);
SPI.beginTransaction(SPISettings(500000, MSBFIRST, SPI_MODE1));
delay(2000);
SPI.begin(); //turn on spi bus
/*
* prog interruptfor drdy
*/
SPI.transfer(0x06);//reset ad
delay(1);
SPI.transfer(0x16);//issue sdatac
SPI.transfer(0x40);//mux0
SPI.transfer(0x00);
SPI.transfer(0x01);
SPI.transfer(0x42);//mux1
SPI.transfer(0b00000000);
SPI.transfer(0b00110011);
//SPI.transfer(0x00);
//SPI.transfer(0x33);
SPI.transfer(0x43);//sys0
SPI.transfer(0x00);
SPI.transfer(0b00000000);
SPI.transfer(0x4A);//IDAC0
SPI.transfer(0x00);
SPI.transfer(0x07);
SPI.transfer(0x4b);//IDAC1
SPI.transfer(0x00);
SPI.transfer(0x01);
Serial.begin(115200);
}
void loop() {
if (digitalRead(9) == 0){
Serial.println("cowabunga");
digitalWrite(10,LOW);
A2DVal = 0x0;
SPI.transfer(0x12);
Serial.print(A2DVal,HEX);
A2DVal |= SPI.transfer(0xff);
A2DVal << 8;
Serial.print(A2DVal,HEX);
A2DVal |= SPI.transfer(0xff);
A2DVal <<8;
Serial.print(A2DVal,HEX);
A2DVal |= SPI.transfer(0xff);
Serial.println(A2DVal,HEX);
delay(1);
}
}