dtelenkov преди 1 месец
родител
ревизия
b87dd03ec1
променени са 2 файла, в които са добавени 226 реда и са изтрити 9 реда
  1. 25 9
      .obsidian/workspace.json
  2. 201 0
      Greenstar/modbus in ethernet stm32.md

+ 25 - 9
.obsidian/workspace.json

@@ -21,6 +21,20 @@
               "title": "Создание таблиц"
             }
           },
+          {
+            "id": "3ec8f2f824a648b4",
+            "type": "leaf",
+            "state": {
+              "type": "markdown",
+              "state": {
+                "file": "Greenstar/modbus in ethernet stm32.md",
+                "mode": "source",
+                "source": false
+              },
+              "icon": "lucide-file",
+              "title": "modbus in ethernet stm32"
+            }
+          },
           {
             "id": "0220e278e9e56f6c",
             "type": "leaf",
@@ -33,7 +47,8 @@
               "title": "Release Notes 1.8.4"
             }
           }
-        ]
+        ],
+        "currentTab": 1
       }
     ],
     "direction": "vertical"
@@ -56,7 +71,7 @@
                 "autoReveal": false
               },
               "icon": "lucide-folder-closed",
-              "title": "Files"
+              "title": "Файловый менеджер"
             }
           },
           {
@@ -156,17 +171,18 @@
   },
   "left-ribbon": {
     "hiddenItems": {
-      "switcher:Open quick switcher": false,
-      "graph:Open graph view": false,
-      "canvas:Create new canvas": false,
-      "command-palette:Open command palette": false,
-      "markdown-importer:Open format converter": false
+      "switcher:Меню быстрого перехода": false,
+      "graph:Граф": false,
+      "canvas:Создать новый холст": false,
+      "command-palette:Открыть палитру команд": false,
+      "markdown-importer:Импорт Markdown-файлов": false
     }
   },
-  "active": "35320f4bb701c08b",
+  "active": "3ec8f2f824a648b4",
   "lastOpenFiles": [
-    "hardcore web development/11. SQL/Задание.md",
     "hardcore web development/11. SQL/Создание таблиц.md",
+    "Greenstar/modbus in ethernet stm32.md",
+    "hardcore web development/11. SQL/Задание.md",
     "hardcore web development/11. SQL/SQL настройка.md",
     "todo/Задачи по направлениям.md",
     "English/Homework.md",

+ 201 - 0
Greenstar/modbus in ethernet stm32.md

@@ -0,0 +1,201 @@
+```cpp
+#define CONFIG_BASE         ((uint16_t)0x0000)
+#define CONFIG_LEN          18 //32 // CONFIG_LEN в словах по 16 бит
+#define CONFIG_VER_SOFT     CONFIG_BASE + 1
+#define CONFIG_VER_FPGA     CONFIG_BASE + 2
+#define CONFIG_UREF         CONFIG_BASE + 16   
+
+   
+#define UART_BASE           0x0012   
+#define UART_BAUDRATEL      UART_BASE
+#define UART_BAUDRATEH      UART_BASE + 1
+#define UART_DATA_BITS      UART_BASE + 2    
+#define UART_STOP_BITS      UART_BASE + 3       
+#define UART_PARITY         UART_BASE + 4 
+
+#define UART_NREG           5   
+   
+#define MODBUS_ADDR         0x0017   
+   
+#define PRESET_BASE         0x0100
+#define PRESET_LEN          32 //с резервом   
+#define PRESET_MODE         PRESET_BASE
+// 0 - без остановки
+// 1 - по реальному времени (RTIME)
+// 2 - по живому времени    (LTIME)
+// 3 - по счету             (SUM)
+// 4 - по пику в ROI        (PRESET_SUM_ROI)
+#define PRESET_RTIME        PRESET_BASE + 1
+#define PRESET_LTIME        PRESET_BASE + 3
+#define PRESET_SUM          PRESET_BASE + 5
+#define PRESET_SUM_ROI      PRESET_BASE + 7
+#define PRESET_ROIL         PRESET_BASE + 9
+#define PRESET_ROIH         PRESET_BASE + 10
+   
+
+// -------------------------------------------------------------------------- //
+
+#define HV_BASE             0x0200
+    
+#define HV_STATE            HV_BASE + 0 // состояние/команда hvState 
+    
+#define HV_CUR_VOLT_L       HV_BASE + 1 // Текущее напряжение в вольтах Float, 4 байта
+#define HV_CUR_VOLT_H       HV_BASE + 2 // Текущее напряжение в вольтах Float, 4 байта
+    
+#define HV_RISE_TIME        HV_BASE + 3 // время подъёма в секундах
+    
+#define HV_PRESET_L         HV_BASE + 4 // уставка, напряжение в вольтах Float, 4 байта  
+#define HV_PRESET_H         HV_BASE + 5 // уставка, напряжение в вольтах Float, 4 байта  
+    
+#define HV_PRESET_MIN_L     HV_BASE + 6 // минимальная уставка, напряжение в вольтах Float, 4 байта  
+#define HV_PRESET_MIN_H     HV_BASE + 7 // минимальнаяуставка, напряжение в вольтах Float, 4 байта  
+    
+#define HV_PRESET_MAX_L     HV_BASE + 8 // максимальная уставка, напряжение в вольтах Float, 4 байта  
+#define HV_PRESET_MAX_H     HV_BASE + 9 // максимальная уставка, напряжение в вольтах Float, 4 байта  
+
+#define HV_K0_L             HV_BASE + 10 // коэф. преобразования напряжения ЦАП в вольты, Float, 4 байта  
+#define HV_K0_H             HV_BASE + 11 // коэф. преобразования напряжения ЦАП в вольты, Float, 4 байта  
+#define HV_K1_L             HV_BASE + 12 // коэф. преобразования напряжения ЦАП в вольты, Float, 4 байта   
+#define HV_K1_H             HV_BASE + 13 // коэф. преобразования напряжения ЦАП в вольты, Float, 4 байта 
+
+#define HV_DELAY            HV_BASE + 14 // время задержки после установки HV перед началом набора
+
+#define HV_NREG             16
+
+// -------------------------------------------------------------------------- //
+
+//"FPGA"		
+#define FPGA_BASE           0x300
+#define FPGA_NREG           32
+
+// -------------------------------------------------------------------------- //
+
+//Мониторинг
+#define MON_BASE            0x500
+#define MON_BASE_RAW        0x600
+
+#define MON_BAT_VOLTAGE     MON_BASE + 0x014 // напряжение АКБ
+#define MON_BAT_CHARGE_ST   MON_BASE + 0x016 // статус заряда АКБ (есть/нет)
+#define MON_FLASH_SIZE      MON_BASE + 0x018 // объем флеш-памяти (байты)
+#define MON_FLASH_FREE      MON_BASE + 0x01A // объем свободной флеш-памяти (байты)
+
+
+// -------------------------------------------------------------------------- //
+// Автономный режим работы
+
+#define AUTO_BASE           0x700
+#define AUTO_NREG           12
+#define AUTO_STATE          AUTO_BASE + 0 // статус автономного режима
+#define AUTO_DELAY_L        AUTO_BASE + 1 // задержка перед началом цикла измерений (сек.)
+#define AUTO_DELAY_H        AUTO_BASE + 2 // задержка перед началом цикла измерений (сек.)
+#define AUTO_CNT_DW_L       AUTO_BASE + 3 // осталось до начала цикла (сек.)
+#define AUTO_CNT_DW_H       AUTO_BASE + 4 // осталось до начала цикла (сек.)
+#define AUTO_PERIOD_L       AUTO_BASE + 5 // период начала набора каждого спектра
+#define AUTO_PERIOD_H       AUTO_BASE + 6 // период начала набора каждого спектра
+#define AUTO_NBR_SP         AUTO_BASE + 7 // количество набираемых спектров (0 без остановки)
+#define AUTO_NBR_SP_ALR     AUTO_BASE + 8 // количество уже набранных спектров
+#define AUTO_STNB_MODE      AUTO_BASE + 9 // режим сна 
+#define AUTO_STNB_DELAY_L   AUTO_BASE + 10// время до перехода в режим сна (сек.)
+#define AUTO_STNB_DELAY_H   AUTO_BASE + 11// время до перехода в режим сна (сек.)
+
+
+// -------------------------------------------------------------------------- //
+
+//Сохранение настройек прибора
+#define SAVE_LOAD_BASE          0x800
+#define SAVE_LOAD_LOAD          (SAVE_LOAD_BASE + 0)
+#define SAVE_LOAD_SAVE          (SAVE_LOAD_BASE + 1)
+#define SAVE_LOAD_LOAD_SP_PARAM (SAVE_LOAD_BASE + 2)
+#define SAVE_LOAD_SAVE_SP_PARAM (SAVE_LOAD_BASE + 3)
+
+// -------------------------------------------------------------------------- //
+
+// Режимы работы
+#define KEY_REBOOT          0x2031  // перезагрузка в режиме бутлоадера (DFU)
+#define KEY_RESET           0x2032  // перезагрузка
+#define REBOOT_OK           0x3120
+#define REBOOT_0            0x840
+
+#define BLAST_FPGA          0x841
+#define BLAST_MODE_ON       0x1
+#define BLAST_MODE_OFF      0x0
+#define WORK_MODE_N_REG     2
+
+// specter
+// Состояние набора   
+#if 0
+enum spState 
+{
+  SP_CLEAR = 0, // очистка, нет спектра
+  SP_STOP  = 1, // останов, есть спектр
+  SP_ACQ   = 2, // набор спектра
+};
+#endif
+
+// -------------------------------------------------------------------------- //
+
+#define SPECTER_INFO_BASE   0x900
+#define SPECTER_INFO_NREG   15
+
+#define SPECTER_FORMAT      0x0900
+#define SPECTER_ACQ_STATE   0x0901
+#define SPECTER_NCHANNELS   0x0902
+#define SPECTER_EN_K0       0x0903
+#define SPECTER_EN_K1       0x0905
+#define SPECTER_REGRATE     0x0907
+#define SPECTER_INPRATE     0x0909
+#define SPECTER_RTIME       0x090B
+#define SPECTER_LTIME       0x090D
+#define SPECTER_LOCALTIME   0x090F
+#define GPS_STATUS          0x0911
+#define GPS_LON             0x0912
+#define GPS_LAT             0x0914
+#define GPS_ALT             0x0916
+#define SP_OFFSET           0x0918
+
+// -------------------------------------------------------------------------- //
+// Для считывания заголовка спектра из файла. 
+
+#define SPECTER_FILE_INFO_BASE   0xB000
+#define SPECTER_FILE_INFO_NREG   255
+
+#define SPECTER_FORMAT_F    0xB000
+#define SPECTER_ACQ_STATE_F 0xB001
+#define SPECTER_NCHANNELS_F 0xB002
+#define SPECTER_EN_K0_F     0xB003
+#define SPECTER_EN_K1_F     0xB005
+#define SPECTER_REGRATE_F   0xB007
+#define SPECTER_INPRATE_F   0xB009
+#define SPECTER_RTIME_F     0xB00B
+#define SPECTER_LTIME_F     0xB00D
+#define SPECTER_LOCALTIME_F 0xB00F
+#define GPS_STATUS_F        0xB011
+#define GPS_LON_F           0xB012
+#define GPS_LAT_F           0xB014
+#define GPS_ALT_F           0xB016
+#define SP_OFFSET_F         0xB018
+
+#define SPECTER_FILE_BASE   0xB100
+
+
+#define SPECTER_BASE        0x1000
+#define SPECTER_CNL         4096
+#define SPECTER_NREG        (SPECTER_CNL * 2)
+
+#define N_REGS_BIG_FRAME    ((64 + 2)*2)
+
+// осциллограф	
+#define N_SCOPE_FRAME       4
+#define SCOPE_BASE          0xA000
+#define SCOPE_NREG          (N_REGS_BIG_FRAME * N_SCOPE_FRAME)
+
+// fifo
+#define N_FIFO_FRAME        8
+#define FIFO_BASE           0xA400
+#define FIFO_NREG           (N_REGS_BIG_FRAME * N_FIFO_FRAME)
+
+// Обмен текстовыми сообщениями
+#define STR_BASE            0x7F00
+#define STR_NREG            125
+
+```