]> jspc29.x-matter.uni-frankfurt.de Git - mvd_firmware.git/commitdiff
can now read out complete adc0 without problems
authorMichael Wiebusch <antiquark@gmx.net>
Thu, 9 Jan 2014 11:43:52 +0000 (12:43 +0100)
committerMichael Wiebusch <antiquark@gmx.net>
Thu, 9 Jan 2014 11:43:52 +0000 (12:43 +0100)
firmware/src/CB_functions.c
firmware/src/spi1.h
firmware/src/spi2.c

index f51ed391ab071183898118a19a2d1c6b9696992b..ab451209acc1c7c063aa65cef8f125fcf785a49e 100644 (file)
@@ -17,6 +17,7 @@
 
 extern uint16_t spi1DataBuffer[];
 extern uint16_t SPI_DMA_Buffer_In[];
+extern uint16_t SPI_DMA_Buffer[];
 uint16_t uC_regs[UC_NO_REGS];
 uint16_t debug_counter = 0;
 
@@ -69,6 +70,9 @@ void report_all_registers(void) {
 void adc0_read(void){
   
   uint8_t c = 0; // counter for spi buffer fill
+  static uint8_t d = 0;
+  
+  c = 0; 
   
   // the received data is always one transfer cycle
   // later than the corresponding commands requesting
@@ -84,10 +88,12 @@ void adc0_read(void){
   spi1_writeWord(CH4VSGND | UNIPOLAR); // VDDACUR
   SPI_DMA_Buffer_In[c++] = VDDDCUR;
   SPI_DMA_Buffer_In[c++] = spi1_receivedWord();
-  spi1_writeWord(CH5VSCH7 | UNIPOLAR); // VDDD
+//   spi1_writeWord(CH5VSCH7 | UNIPOLAR); // VDDD
+  spi1_writeWord(CH5VSGND | UNIPOLAR); // VDDD vs AGND
   SPI_DMA_Buffer_In[c++] = VDDACUR;
   SPI_DMA_Buffer_In[c++] = spi1_receivedWord();
-  spi1_writeWord(CH6VSCH7 | UNIPOLAR); // VDDA
+//   spi1_writeWord(CH6VSCH7 | UNIPOLAR); // VDDA
+  spi1_writeWord(CH6VSGND | UNIPOLAR); // VDDA vs AGND
   SPI_DMA_Buffer_In[c++] = VDDD;
   SPI_DMA_Buffer_In[c++] = spi1_receivedWord();
   spi1_writeWord(CH7VSGND | UNIPOLAR); // GNDSENSE
@@ -154,9 +160,16 @@ void adc0_read(void){
   SPI_DMA_Buffer_In[c++] = VDISCREF2D;
   SPI_DMA_Buffer_In[c++] = spi1_receivedWord();
   
-  spi1_writeWord(CH1VSGND | UNIPOLAR); // dummy command
+  spi1_writeWord(CH3VSGND | UNIPOLAR); // dummy command
   SPI_DMA_Buffer_In[c++] = VDISCREFD;
   SPI_DMA_Buffer_In[c++] = spi1_receivedWord();
+
+
+//   SPI_DMA_Buffer[c++] = d;
+//   SPI_DMA_Buffer[c++] = d;
+//   
+  d =  (d+1)%16;
+//   
   debug_out(c);
 
   spi_dma_transfer(c);
index 738a6d493b744de7f0b1007763bbbb2912859eb5..03d4075f484a1bd87319b5ae1e50fa99df31e79c 100644 (file)
@@ -51,6 +51,8 @@
 #define CH2VSGND 0b1001000000000000
 #define CH3VSGND 0b1101000000000000
 #define CH4VSGND 0b1010000000000000
+#define CH5VSGND 0b1110000000000000
+#define CH6VSGND 0b1011000000000000
 #define CH7VSGND 0b1111000000000000
 
 #define CH0VSCH7 0b1000100000000000
index 3862c2c225230895bd90d5c77991920e3f5df5b9..06f1a431848be98e1338a4b776107a54648ba943 100644 (file)
@@ -116,7 +116,7 @@ void spi_dma_transfer(uint8_t count) {
 \r
   while(spi_dma_busyFlag){};\r
   \r
-  memcpy(SPI_DMA_Buffer, SPI_DMA_Buffer_In, count );\r
+  memcpy(SPI_DMA_Buffer, SPI_DMA_Buffer_In, count*2 );\r
   \r
 //   DMA_Cmd(DMA1_Channel4, DISABLE);\r
   DMA_Cmd(DMA1_Channel5, DISABLE);\r