Переглянути джерело

Исправлена инициализация MAX2870(test).

Anatoliy Chigirinskiy 1 рік тому
батько
коміт
32e3abe22f
4 змінених файлів з 26 додано та 1 видалено
  1. 5 0
      .vscode/settings.json
  2. 9 0
      Devices/max2870.c
  3. 11 0
      Devices/tmsgheaders.h
  4. 1 1
      main.c

+ 5 - 0
.vscode/settings.json

@@ -0,0 +1,5 @@
+{
+    "files.associations": {
+        "tmsgheaders.h": "c"
+    }
+}

+ 9 - 0
Devices/max2870.c

@@ -11,6 +11,10 @@ const uint32_t max2870_regs[] ={
 };
 
 void max2870_init(void *bar1) {
+
+    // Set the command to enter the 32-bit mode
+    uint32_t *ptr = bar1 + RST_ADDR;
+    *ptr = CURR_WIDTH_32_BIT;
     //Init Header
     uint32_t *ptr = bar1 + MAX2870_BASE_ADDR;
     *ptr = InitMAX2870Header;
@@ -19,4 +23,9 @@ void max2870_init(void *bar1) {
         uint32_t *ptr = bar1 + MAX2870_BASE_ADDR;
         *ptr = max2870_regs[k];
     }
+    usleep(1);
+    // Return to 24-bit mode
+    uint32_t *ptr = bar1 + RST_ADDR;
+    *ptr = CURR_WIDTH_24_BIT;
+
 }

+ 11 - 0
Devices/tmsgheaders.h

@@ -156,6 +156,17 @@
 #define     RST_FOR_FPGA_ON     0x1
 #define     RST_FOR_FPGA_OFF    0x0
 
+// Command Register 
+#define    TMSG_RST_CMD_REG_BITP        0
+#define    CURR_WIDTH_CMD_REG_BITP      1
+#define    MOD_CMD_REG_BITP             2
+
+#define    CURR_WIDTH_24_BIT            (0x0 << CURR_WIDTH_CMD_REG_BITP)
+#define    CURR_WIDTH_32_BIT            (0x1 << CURR_WIDTH_CMD_REG_BITP)
+#define    MOD_0                        (0x0 << MOD_CMD_REG_BITP)
+#define    MOD_1                        (0x1 << MOD_CMD_REG_BITP)
+
+
 #define     LMX_BASE_ADDR       0x04
 
 void rst_for_fpga(void *bar1);

+ 1 - 1
main.c

@@ -111,8 +111,8 @@ int main(int argc, char *argv[])
 	pe43711_att_2_init(bar1);
     rst_for_fpga(bar1);
     shift_reg(bar1);
+	max2870_init(bar1);
     ad9912_init(bar1);
-	// // max2870_init(bar1);
     lmx2594_init(bar1);
 
 	// Установка обработчика сигналов