From eb804cc7d62795b492cef7aaf8171793d3d1e27b Mon Sep 17 00:00:00 2001 From: SeungheeOh Date: Sun, 21 Jul 2019 07:14:08 +0900 Subject: [PATCH] first commit --- d72042.ino | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 d72042.ino diff --git a/d72042.ino b/d72042.ino new file mode 100644 index 0000000..f87d901 --- /dev/null +++ b/d72042.ino @@ -0,0 +1,123 @@ +#include + +#define MODE 8 +#define CONTROL 9 +#define READ 0x08 +#define RESET 7 + + +byte inline bitchange(byte b) +{ + byte z=0; + if(b&0x8) + { + z|=0x10; + } + + if(b&0x4) + { + z|=0x20; + } + if(b&0x2) + { + z|=0x40; + } + if(b&0x1) + { + z|=0x80; + } + + + z=b<<4; + + return z; +} + + +#define REG_WRITE_CTR bitchange(0x0) +#define REG_WRITE_CMR bitchange(0x1) +#define REG_WRITE_UAR1 bitchange(0x2) +#define REG_WRITE_UAR2 bitchange(0x3) +#define REG_WRITE_SAR1 bitchange(0x4) +#define REG_WRITE_SAR2 bitchange(0x5) +#define REG_WRITE_MCR bitchange(0x6) +#define REG_WRITE_TBF bitchange(0xe) + + +#define REG_READ_STR (bitchange(0x0)|READ) +#define REG_READ_FLG (bitchange(0x1)|READ) +#define REG_READ_RDR1 (bitchange(0x2)|READ) +#define REG_READ_RDR2 (bitchange(0x3)|READ) +#define REG_READ_LDR1 (bitchange(0x4)|READ) +#define REG_READ_LDR2 (bitchange(0x5)|READ) +#define REG_READ_DAR1 (bitchange(0x6)|READ) +#define REG_READ_DAR2 (bitchange(0x7)|READ) +#define REG_READ_RCR (bitchange(0x8)|READ) +#define REG_READ_RBF (bitchange(0xe)|READ) + + +void setup (void) { + Serial.begin(9600); //set baud rate to 115200 for usart + + SPI.begin (); + SPI.setClockDivider(SPI_CLOCK_DIV128);//divide the clock by 8 + + pinMode(MODE,OUTPUT); + pinMode(CONTROL,OUTPUT); + + pinMode(RESET, OUTPUT); + + digitalWrite(MODE, HIGH); + digitalWrite(CONTROL, HIGH); + + + digitalWrite(RESET, HIGH); +digitalWrite(SS, LOW); + + +} + +void loop (void) { + byte addr = 0x0; + byte data; + + SPI.beginTransaction(SPISettings(1000, MSBFIRST, SPI_MODE0)); + // set speed bit format and clock/data polarity while starting SPI transaction + + + +digitalWrite(CONTROL, HIGH); + delay(5); + SPI.transfer(REG_WRITE_CTR); // Register Select + + digitalWrite(CONTROL, LOW); + delay(5); + SPI.transfer(0x10); // read second 8 bits + delay(5); + + + + + + + + + // write the LTC CS pin low to initiate ADC sample and data transmit + digitalWrite(CONTROL, HIGH); + delay(5); + SPI.transfer(REG_READ_FLG); // Register Select + + digitalWrite(CONTROL, LOW); + delay(5); + data = SPI.transfer(0x0); // read second 8 bits + Serial.println(data); //0x2 + + // wite LTC CS pin high to stop LTC from transmitting zeros. + SPI.endTransaction(); + // close SPI transaction + + delay(250); + // Delay that is fast but easy to read. +// delayMicroseconds(83); + // Delay that matches 12 khz delay time. +}