소스 검색

Протестировал BochV3

Anatoliy Chigirinskiy 11 달 전
부모
커밋
86ffb733e7
3개의 변경된 파일50개의 추가작업 그리고 6개의 파일을 삭제
  1. 39 0
      Devices/lmk04821.c
  2. 1 2
      command.c
  3. 10 4
      main.c

+ 39 - 0
Devices/lmk04821.c

@@ -283,6 +283,45 @@ void lmk04821_a_init(reg_addr_pci* pci_bar_1) {
     }
 }
 
+void lmk04821_a_init_boch_v3(reg_addr_pci* pci_bar_1) {
+    /* Header for the BochV3 FPGA */
+    uint32_t lmk_a_header = (BOCHV3_MODE_1M0SI | BOCHV3_TERM_ON | LMK_TOTAL_COUNT<< MOSI1_WORD_NUM_BITP | DEVICE_ID_LMK_A<< DEVICE_ID_BITP);
+    pci_bar_1->lmk_a_addr = lmk_a_header;
+    //Rst for Lmk_a
+    for (int i = 0; i < 2; i++) {
+        pci_bar_1->lmk_a_addr = lmk04821_rst_a[i];
+    }
+    //Init for Lmk_a
+    for (int j = 0; j < LMK_COUNT; j++) {
+        pci_bar_1->lmk_a_addr = lmk04821regs_a[j];
+    }
+}
+
+void lmk04821_b_init_boch_v3(reg_addr_pci* pci_bar_1) {
+    /* Header for the BochV3 FPGA */
+    uint32_t lmk_b_header = (BOCHV3_MODE_1M0SI | BOCHV3_TERM_ON | LMK_TOTAL_COUNT<< MOSI1_WORD_NUM_BITP | DEVICE_ID_LMK_B<< DEVICE_ID_BITP);
+    pci_bar_1->lmk_a_addr = lmk_b_header;
+    //Rst for Lmk_a
+    for (int i = 0; i < 2; i++) {
+        pci_bar_1->lmk_a_addr = lmk04821_rst_b[i];
+    }
+    //Init for Lmk_a
+    for (int j = 0; j < LMK_COUNT; j++) {
+        pci_bar_1->lmk_a_addr = lmk04821regs_b[j];
+    }
+}
+
+void cp2444_test(reg_addr_pci* pci_bar_1) {
+  /* Header for the BochV3 FPGA */
+  uint32_t bochv3_header = (BOCHV3_MODE_4MOSI | BOCHV3_TERM_ON | (CP2444v1_QSPI_MAX_WORD_NUM + 1) << CTRL_COLD_PART_BITP );
+  uint32_t cp2444_header = (ENUM_CP2444v1_MODE_4MOSI | ENUM_CP2444v1_TERM_ON | (0x1 << CP2444v1_SW_P1_BITP) | (0x1 << CP2444v1_ATT_P1_BITP) | (0x1 << CP2444v1_ATT_P2_BITP) | (0x1 << CP2444v1_ATT_P3_BITP) | (0x1 << CP2444v1_ATT_P4_BITP) | (0x1 << CP2444v1_GPIO_BITP));
+    pci_bar_1->lmk_a_addr = bochv3_header;
+    pci_bar_1->lmk_a_addr = cp2444_header;
+    for (int i = 0; i < CP2444v1_QSPI_MAX_WORD_NUM; i++) {
+        pci_bar_1->lmk_a_addr = 0xAAAAAA;
+    }
+}
+
 void lmk04821_b_init(reg_addr_pci* pci_bar_1) {
     //Rst for Lmk_a
     for (int i = 0; i < 2; i++) {

+ 1 - 2
command.c

@@ -104,12 +104,11 @@ void handle_ld_cmd(const char *recv_buff) {
     uint32_t ld_status = lmx_ld_status(pci_bar_1);
 
     clock_t before = clock();
-    clock_t difference;
     int difference_msec = 0;
     int trigger = 10000; //10ms
 
     while (!ld_status) {
-        difference = clock() - before;
+        clock_t difference = clock() - before;
         difference_msec = difference * 1000 / CLOCKS_PER_SEC;
 
         if (difference_msec >= trigger) {

+ 10 - 4
main.c

@@ -112,13 +112,15 @@ int main(int argc, char *argv[])
 
 	pci_bar_1 = (reg_addr_pci*)bar1;
 
-    lmk04821_a_init(pci_bar_1);
+    rst_for_fpga(pci_bar_1);
+    usleep(1);
+//    lmk04821_a_init(pci_bar_1);
+    lmk04821_a_init_boch_v3(pci_bar_1);
     usleep(500);
-    lmk04821_b_init(pci_bar_1);
+    lmk04821_b_init_boch_v3(pci_bar_1);
 //    pe43711_att_2_init(pci_bar_1);
 	pe43711_att_1_init(pci_bar_1);
 //	usleep(1);
-    rst_for_fpga(pci_bar_1);
     shift_reg(pci_bar_1);
 	potentiometer_set(pci_bar_1, 0, 0);
 	max2870_init(pci_bar_1);
@@ -132,7 +134,11 @@ int main(int argc, char *argv[])
 	SET_REGISTER_PARAM(cfg_reg, CFG_REG_SPI_CLK_BITM, CFG_REG_SPI_CLK_BITP, CFG_REG_SPI_CLK_50MHZ);
 	pci_bar_1->cfg_reg_addr = cfg_reg;
 	set_cfg_reg(cfg_reg);
-
+  usleep(500);
+  while(1) {
+    usleep(1);
+    cp2444_test(pci_bar_1);
+  }
 	// Установка обработчика сигналов
 	signal(SIGINT, handle_close_signal);