Aditya Mehrotra / Mbed OS Sensor_Training_BoardV2
Revision:
0:63fac75e5afc
Child:
1:466049963f1f
diff -r 000000000000 -r 63fac75e5afc main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Oct 20 03:43:59 2021 +0000
@@ -0,0 +1,102 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2019 ARM Limited
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include "mbed.h"
+#include "platform/mbed_thread.h"
+#include <SPI.h>
+
+//SETUP THE LTC CHIP
+#define LTC_MOSI    PB_2
+#define LTC_MISO    PC_11
+#define LTC_CLK     PC_10
+#define LTC_CS      PA_15
+#define BSY         PB_5
+#define CNV         PB_6
+
+#define DATA_LEN    144 //bits of data we will transmit 6-ch 24 bits/ch
+#define BUFF_SIZE   9   // 9, 16-bit words will come through
+
+SPI LTC_CHIP(LTC_MOSI, LTC_MISO, LTC_CLK);
+DigitalOut cs_LTC(LTC_CS);
+DigitalIn bsy_LTC(BSY);
+DigitalOut CNV_PIN(CNV);
+
+//SETUP REGISTERS
+uint16_t rx_buff[DATA_LEN]; //want to read 144 bits (literally bits) 
+
+//setup SERIAL
+Serial       pc(USBTX, USBRX);
+
+/*
+We need to 
+- pull CS low
+- read the data into a register
+- release CS
+- decode the data
+- repeat
+*/
+
+void read_data() {
+    //request conversion
+    CNV_PIN=1;
+    wait_us(60);
+    CNV_PIN=0;
+    //WAIT FOR BSY --> bsy_LTC
+    //while(bsy_LTC==1){}
+    //then ask for data
+    //cs_LTC=0;
+    //spi id register
+    //LTC_CHIP.write(0x00); // --> do we need this? 
+    //read 144 bytes
+    
+    /*
+    
+    int bytecount = 0;
+    while(bytecount < BUFF_SIZE){
+        rx_buff[bytecount] = LTC_CHIP.write(0x00);
+        bytecount++;
+    }
+    */
+    
+    //lift CS
+    //cs_LTC=1;
+
+    //WRITE THIS TO A STRUCT OF SOME SORT but we need to delete the bits we don't care about
+}
+
+
+int main()
+{
+    // Initialise the digital pin LED1 as an output
+    DigitalOut led(LED1);
+    cs_LTC=0;
+    CNV_PIN=0;
+    
+    //setup pc
+    pc.baud(115200);
+    pc.printf("------STARTUP------\n\n\n");
+    
+    //setup SPI
+    LTC_CHIP.format(16, 0);
+    LTC_CHIP.frequency(1000000); //60Mhz clock frequency 
+    
+    while (true) {
+        //read and print data to serial terminal
+        read_data();
+        //print the spi bytes
+        /*
+        pc.printf("first int: %d\n", rx_buff[0]); //just check the first "word" for now b/c it should be correct
+        pc.printf("second int: %d\n", rx_buff[1]);
+        pc.printf("third int: %d\n", rx_buff[2]);
+        pc.printf("fourth int: %d\n", rx_buff[3]);
+        pc.printf("fifth int: %d\n", rx_buff[4]);
+        pc.printf("sixth int: %d\n", rx_buff[5]);
+        pc.printf("seventh int: %d\n", rx_buff[6]);
+        pc.printf("eight int: %d\n", rx_buff[7]);
+        */
+        //wait for 1 second
+        wait(1);
+    }
+}