TelenkovDmitry 2 роки тому
батько
коміт
f776ead6ab
5 змінених файлів з 238 додано та 14 видалено
  1. 8 7
      .obsidian/workspace
  2. 0 0
      FlyElectronics/Grinding machine.md
  3. 71 0
      metrolog/M3 artery.md
  4. 152 0
      metrolog/readme.md
  5. 7 7
      Счета.md

+ 8 - 7
.obsidian/workspace

@@ -9,7 +9,7 @@
         "state": {
         "state": {
           "type": "markdown",
           "type": "markdown",
           "state": {
           "state": {
-            "file": "Счета.md",
+            "file": "metrolog/M3 artery.md",
             "mode": "source",
             "mode": "source",
             "source": true
             "source": true
           }
           }
@@ -22,7 +22,7 @@
         "state": {
         "state": {
           "type": "markdown",
           "type": "markdown",
           "state": {
           "state": {
-            "file": "Счета.md",
+            "file": "metrolog/M3 artery.md",
             "mode": "preview",
             "mode": "preview",
             "source": true
             "source": true
           }
           }
@@ -83,7 +83,7 @@
             "state": {
             "state": {
               "type": "backlink",
               "type": "backlink",
               "state": {
               "state": {
-                "file": "Счета.md",
+                "file": "metrolog/M3 artery.md",
                 "collapseAll": false,
                 "collapseAll": false,
                 "extraContext": false,
                 "extraContext": false,
                 "sortOrder": "alphabetical",
                 "sortOrder": "alphabetical",
@@ -104,12 +104,13 @@
   "active": "10887484a84b3273",
   "active": "10887484a84b3273",
   "lastOpenFiles": [
   "lastOpenFiles": [
     "Artery testing.md",
     "Artery testing.md",
-    "TODO.md",
-    "Artery testing.md",
-    "Grinding machine.md",
-    "Разное.md",
+    "FlyElectronics/Grinding machine.md",
+    "metrolog/M3 artery.md",
     "Счета.md",
     "Счета.md",
+    "TODO.md",
     "Greenstar/FPGA Blaster.md",
     "Greenstar/FPGA Blaster.md",
+    "metrolog/readme.md",
+    "Разное.md",
     "img/sch04.JPG"
     "img/sch04.JPG"
   ]
   ]
 }
 }

+ 0 - 0
Grinding machine.md → FlyElectronics/Grinding machine.md


+ 71 - 0
metrolog/M3 artery.md

@@ -0,0 +1,71 @@
+##### Карта памяти stm32
+**Sector 0: 0x0800 0000 - 0x0800 3FFF (16кБт)
+Sector 1: 0x0800 4000 - 0x0800 7FFF (16кБт) - Основные настройки (SETTINGS)
+Sector 2: 0x0800 8000 - 0x0800 BFFF (16кБт) - Системные настройки (SETTINGS_SYS)
+Sector 3: 0x0800 C000 - 0x0800 FFFF (16кБт)
+Sector 4: 0x0801 8000 - 0x0801 FFFF (64кБт)
+Sector 5: 0x0802 0000 - 0x0803 FFFF (128кБт)
+Sector 6: 0x0804 0000 - 0x0805 FFFF (128кБт)
+............................................
+Sector 11: 0x080E 0000 - 0x080F FFFF (128кБт)**
+```c
+// Адреса структур настроек
+
+#define SYS_SECTOR         		        0x08008000
+#define SYS_CRC_ADDRESS                 0x0800BF9C
+```
+
+
+##### Карта памяти artery
+0x0800 0000 - 0x0801 FFFF (128кБт) - **IAP**
+0x0802 0000 - 0x0802 07FF (2кБт) - **Основные настройки (SETTINGS)**
+0x0802 0800 - 0x0802 0FFF (2кБт) - **Системные настройки (SETTINGS_SYS)**
+0x0802 1000 - 0x0809 FFFF (640кБт) - **FW**
+**Итого: 772 кБт - занято**
+```c
+// Адреса структур настроек
+
+#define SYS_SECTOR         		        0x08020800
+#define SYS_CRC_ADDRESS                 0x08020FFC
+#define SETTINGS_SECTOR                 0x08020000
+```
+
+
+##### TODO
+- [x] работа с настройками
+	- [x] внутренний модуль artery для работы с CRC
+	- [x] отдельные сектора для системных и основных настроек
+	- [x] системные настройки
+	- [x] основные настройки
+- [x] Artery ID
+- [ ] backup регистры
+- [ ] RTC
+- [ ] SNTP
+- [ ] настроить кучу FreeRTOS. Разобраться с RAM artery
+	- [ ] IAP
+	- [x] FW
+- [ ] GSM - uart драйвер
+- [x] Кнопки
+- [ ] LED
+	- [x] Основное
+	- [ ] Некоторые функции из других модулей
+- [ ] LwIP
+- [ ] ethernet
+- [x] power manager
+- [ ] определение ревизий
+- [ ] параметры
+- [ ] файл netconf
+- [ ] web_params_api
+- [ ] upload.c
+- [x] UDP анонсы
+- [x] uptime
+
+
+```js
+function fancyAlert(arg) {
+  if(arg) {
+    $.facebox({div:'#foo'})
+  }
+}
+```
+

+ 152 - 0
metrolog/readme.md

@@ -0,0 +1,152 @@
+##### DEBUG UART
+    USART1 (PB6 - Tx, PB7 - Rx)
+Отладочный порт пересекается с рабочим портом модема. В боевой прошивке нужно отключать вывод DEBUG. Ключ при сборке "DEBUG".
+##### UART Port_1 RS485 #2
+    USART3 (PD8 - Tx, PD9 - Rx)    
+##### Карта памяти
+    Sector 0: 0x0800 0000 - 0x0800 3FFF (16кБт)
+    Sector 1: 0x0800 4000 - 0x0800 7FFF (16кБт) - Основные настройки (SETTINGS)
+    Sector 2: 0x0800 8000 - 0x0800 BFFF (16кБт) - Системные настройки (SETTINGS_SYS)
+    Sector 3: 0x0800 C000 - 0x0800 FFFF (16кБт)
+    Sector 4: 0x0801 8000 - 0x0801 FFFF (64кБт)
+    Sector 5: 0x0802 0000 - 0x0803 FFFF (128кБт)
+    Sector 6: 0x0804 0000 - 0x0805 FFFF (128кБт)
+    ............................................
+    Sector 11: 0x080E 0000 - 0x080F FFFF (128кБт)
+    
+#### Настройки
+##### Логика установки/загрузки настроек
+- После рестарта контроллера стартует бутлоадер. До проверки флагов обновления бутлоадер проверяет CRC общей структуры настроек. Если контрольная сумма не совпадает, то происходит установка дефолтных значений общей структуры настроек.
+- После старта основной программы (далее FW) загружаются системные настройки. Предварительно проверяется CRC и контрольное слово. Если CRC или слово не совпадают, то прошиваются дефолтные значения системных настроек.
+- Далее загружается основная структура настроек. Проверяется CRC и контрольное слово и если нужно прошиваются дефолтные значения.
+##### Общие настройки (FW + IAP)
+```sh
+// Установить параметры сетевого подключения по умолчанию
+void SETTINGS_SetWebParamsDef(void)
+{
+    strcpy(sSettings.sWebParams.ip, "192.168.0.254");
+    strcpy(sSettings.sWebParams.gate, "192.168.0.1");
+    strcpy(sSettings.sWebParams.mask, "255.255.255.0");
+    strcpy(sSettings.sWebParams.dns1, "8.8.8.8");
+    strcpy(sSettings.sWebParams.dns2, "8.8.4.4");
+    sSettings.sWebParams.dhcpEnable = 0;
+}
+
+void SETTINGS_SetInfoDef(void)
+{
+  strcpy(sSettings.sInfo.productionData, "00.00.00 00:00");
+  strcpy(sSettings.sInfo.mac, DEVICE_MAC); // "EC-4C-4D-00-90-01"
+  strcpy(sSettings.sInfo.serialNumber, DEVICE_SERIAL); // "7030000"
+  sSettings.sInfo.id = 0;
+  strcpy(sSettings.sInfo.location, "");
+  strcpy(sSettings.sInfo.owner, "");
+  strcpy(sSettings.sInfo.comments, "");
+  strcpy(sSettings.sInfo.incharge, "");
+}
+
+void SETTINGS_SetGSMDef(void)
+{
+    for(uint8_t i = 0; i < NUM_GSM; i++)
+    {
+        sSettings.sGSM[i].Enabled = true;
+        sSettings.sGSM[i].prior = 0;
+        sSettings.sGSM[i].type_profile = MEGAFON;
+        strcpy(sSettings.sGSM[i].ip_test, "8.8.8.8");
+        strcpy(sSettings.sGSM[i].APNaddr, "internet");
+        strcpy(sSettings.sGSM[i].APNlogin, "");
+        strcpy(sSettings.sGSM[i].APNpass, "");
+        strcpy(sSettings.sGSM[i].msisdn, "");
+        sSettings.sGSM[i].timeout = 30;
+        sSettings.sGSM[i].period_test = 100;
+        sSettings.sGSM[i].num_bad_connect = 3;
+        sSettings.sGSM[i].modem_mode = AUTOMATIC;
+        
+    }
+    sSettings.sGSM[0].prior = 3;
+    sSettings.sGSM[1].prior = 2;
+}
+```
+    
+##### Системные настройки (только FW)
+```sh
+typedef struct
+{
+  char  mac[MAC_LEN];     // MAC адрес
+  char  serial[SER_LEN];  // Серийный номер
+  char  customer[CUST_LEN]; // Производитель
+  char  proddate[PROD_LEN]; // Дата производства
+  char  testState[16];      // Статус тестирования
+  uint32_t controlword;     // Контрольное слово
+  uint32_t crc;             // CRC
+} SYS_t;
+```
+##### Основная структура настроек состоит из следующих структур:
+```
+  FLAGS_t       sFlags;
+  ETHERNET_t    sEthernet;      //настройка подключения Ethernet 
+  SERVER_t      sServer;
+  PROXY_t       sProxy;
+  AUTH_t        sAuth[MAX_WEB_USERS];
+  PORTGW_t      sPortGw[NUM_PORTGW];        // Настройки прозрачного порта
+  SNTP_t        sSNTP;   
+  PSD_t         sPSD;   
+  uint16_t      settVer;       // Версия структуры настроек 
+  uint32_t      controlWorld;  // Слово для контроля целостности структуры настроек
+  uint32_t      sCRC;
+``` 
+##### Загрузка
+###### До старта загрузочной задачи
+- Сохранение флагов причин перезагрузки (флаги пока не используются)
+- Инициализация GPIO
+- USB switch для работы RNDIS
+- Инициализация USART
+- Запуск Watchdog
+- Инициализация jSON hooks
+###### Действия в загрузочной задаче
+- Звуковой сигнал buzzer
+- Генератор случайных чисел
+- Таймер для расчета производительности FreeRTOS
+- Запуск таймера Uptime
+- Инициализация SPI2, мьютекса для SPI2
+- Погасить все LED на сдвиговым регистре (LED уровня GSM сигнала)
+- Установка мультиплексора в режим отключения ПСД
+- Инициализация кнопок и запуск таска
+- Анализ нажатия кнопки "MODE". Если кнопка нажата, то переход в Bootloader.
+- Загрузка настроек
+- Переинициализация всех USART
+- Монтирование файловой системы
+- Запуск измерений ADC и Power Manager
+- Запуск задачи управления LED
+- Запуск задачи отправки UDP анонсов
+- Запуск задачи Connection Manager
+- Запуск задач прозрачных портов
+- Запуск Задачи PSD (параллельная диспетчеризация)
+- Запуск RTC
+- Запуск MQTT
+- Запуск Монитора
+- Сброс BootTry
+##### Индикация
+  - Мигает красным диодом "Сервер" до установки сетевых параметорв на эапе тестирования кроме "T2_OK".
+##### MODEM UART
+    USART2 (PD5 - Tx, PD6 - Rx)
+##### Таймеры
+ - TIM4 - на 1Гц для счетчика uptime 
+ - TIM5 - на 10кГц для загрузки FreeRTOS
+ - TIM13 - сброс внешнего Watchdog таймера
+ - TIM14 - триггер для АЦП
+##### Конфигурация проекта
+ - #define SOFTWARE_WATCHDOG (common_config.h) - сброс watchdog в отдельном таске
+ - MQTT_CLIENT - MQTT клиент
+##### Кнопки. Логика работы
+ - Кнопка SET "Установка"
+    Простое нажатие на статусе T0OK - гасит LED "Состояние" и начинает отправку UDP анонсов.
+    Нажатие 15 секунд - перезагрузка
+ - Кнопка MODE "Режим"
+    Нажатие 30 секунд - установка дефолтных настроек ethernet, сохранение и перезагрузка.
+    При перезагрузке и при зажатой кнопке MODE контроллер переходит в резим Bootloader.
+##### TODO
+ - Макросы в settings_api.c
+ - Вернуть дефолтные настройки (settings_api.c)
+####
+
+

+ 7 - 7
Счета.md

@@ -2,21 +2,21 @@
 
 
 ##### Август 2022
 ##### Август 2022
 **Коммунальные услуги**
 **Коммунальные услуги**
-- [ ] Широкая электричество
+- [x] Широкая электричество
 - [x] Широкая платежка 
 - [x] Широкая платежка 
 - [x] Подрезково 
 - [x] Подрезково 
 - [x] Нина электричество на планерной 
 - [x] Нина электричество на планерной 
 
 
 **Передача показаний с 15-ого числа**
 **Передача показаний с 15-ого числа**
-- [ ] Широкая вода. Хол , гор 
-- [ ] Широкая электричество. 
+- [x] Широкая вода. Хол 587, гор 444
+- [x] Широкая электричество. 
 - [ ] Подрезково хол. Хол , гор , эл 
 - [ ] Подрезково хол. Хол , гор , эл 
-- [ ] Химки 583 - , 473 - , 450 - , 402 - , 
-- [ ] Планерная Нина электричество 
-- [ ] Планерная Батя электричество 
+- [x] Химки 583 - 191, 473 - 528, 450 - 123, 402 - 142, 11006
+- [x] Планерная Нина электричество 
+- [x] Планерная Батя электричество 
 
 
 **Дополнительно**
 **Дополнительно**
-- [ ] Отдать Нине (26646 - 5464 - 479 = 20703)
+- [x] Отдать Нине (26646 - 5464 - 479 = 20703)
 - [x] Домашний интернет (550)
 - [x] Домашний интернет (550)
 - [x] Сотовый телефон (650)
 - [x] Сотовый телефон (650)
 - [x] Детский сад
 - [x] Детский сад