unknown hace 1 día
padre
commit
caef8fae2a
Se han modificado 2 ficheros con 176 adiciones y 78 borrados
  1. 9 9
      .obsidian/workspace.json
  2. 167 69
      ROTEK/allwinner 069 070.md

+ 9 - 9
.obsidian/workspace.json

@@ -41,16 +41,16 @@
             "state": {
               "type": "markdown",
               "state": {
-                "file": "c/macros.md",
+                "file": "ROTEK/universal IO/universal IO.md",
                 "mode": "source",
                 "source": false
               },
               "icon": "lucide-file",
-              "title": "macros"
+              "title": "universal IO"
             }
           }
         ],
-        "currentTab": 2
+        "currentTab": 1
       }
     ],
     "direction": "vertical"
@@ -180,13 +180,17 @@
       "markdown-importer:Open format converter": false
     }
   },
-  "active": "8e66644a45b88361",
+  "active": "ab6baf98ffde01a4",
   "lastOpenFiles": [
     "c/c common.md",
     "ROTEK/allwinner 069 070.md",
+    "ROTEK/Arbiter.md",
+    "ROTEK/universal IO/universal IO.md",
+    "ROTEK/universal IO/tasks.md",
+    "ROTEK/universal IO/Test HV.md",
+    "c/macros.md",
     "ROTEK/bt67xx/common.md",
     "ROTEK/bt67xx/Команды.md",
-    "c/macros.md",
     "English/img/34-10.jpg",
     "English/img/34-9.jpg",
     "English/img/34-8.jpg",
@@ -214,10 +218,6 @@
     "ASM/gdb.md",
     "hardcore web development/4. Linux.md",
     "English/Homework/Homework 8.md",
-    "English/Texts/Text 9.md",
-    "English/words.md",
-    "todo/Задачи по направлениям.md",
-    "ROTEK/Artery testing.md",
     "docs/Galleon.pdf",
     "docs/~$alleon.doc",
     "docs/Galleon.doc",

+ 167 - 69
ROTEK/allwinner 069 070.md

@@ -16,10 +16,6 @@ $ make fw HARDWARE=ARBITER_R
 
 ~={yellow}Разное=~
 - Можно ориентироваться на проект для stm32 https://192.168.24.200:3000/drep/teplo_bt7k.git
-- Для питания от supercup нужно включить пин charger.charge_on
-```bash
-$ echo 1 > charger.charge_on/value
-```
 
 
 ~={yellow}Важное=~
@@ -90,8 +86,6 @@ echo 1 > /sys/devices/platform/bt7kgpio/charger.charge_on/value
 1. Интегрироваться в проект Дмитрия Репникова.
 2. Модуль мультиплексора. Работа мультиплексора проверена. Добавить команды управления в SVC.
 
-
-
   // первый аналоговый вход
   // второй аналоговый вход
   // третий аналоговый вход (проверить)
@@ -101,6 +95,172 @@ echo 1 > /sys/devices/platform/bt7kgpio/charger.charge_on/value
   // верхняя точка super cup
   // средняя точка super cup
 
+
+
+~={yellow}ПСД общие моменты=~
+- Artery отвечает за управление 2 и 3-ей системой параллельной диспетчеризации, но может принимать и передавать в первую систему. Управлением 1-ой системой занимается Allwinner.
+- ПСД_1 - RS485, ПСД_2 и ПСД_3 - RS232
+- Логику работы ПСД можно разделить на два режима. 
+- В первом режиме модем (внешнее устройство опроса счетчика) общается со счетчиком. Artery всегда слушает только передатчик модема, Alwinner слушает передатчик счетчик. 
+- Во втором режиме со счетчиком общается Alwinner. Artery слушает модем.
+- Artery может передавать в модем.
+uart2, uart3, uart5
+~={yellow}ПСД проверка=~
+
+~={green}Проверка ПСД 1=~
+- Настраиваем MUX (s0, s1) = (1, 0).
+- Отправляем данные из Artery uart_5. Данные заходят в модем_1.
+- На разъеме замыкаем RS485 модема_1 и счетчика.
+- Данные со счетчика попадают на порт принтера.
+- Для этого установить выходы сдвигового регистра U704 в соответствующее положение.
+
+~={green}Проверка ПСД 2=~
+- Проверяем связь Artery - Modem и Modem - Artery.
+- Установить пины PC11 и PC12 в 0.
+- Послать данные в uart_2.
+
+- Проверяем связь Modem - TC, TC - Modem.
+- Установить PC11 и PC12 в 1.
+- Установить PE3 и PE5 в 0.
+- Установить PE4 и PC10 в 1.
+
+~={green}Проверка ПСД 3=~
+- Проверяем связь Artery - Modem и Modem - Artery.
+- Установить PC3 и PB5 в 1.
+- Установить PB4 и PD7 в 0.
+- Послать данные в uart_3.
+
+- Проверяем связь Modem - TC, TC - Modem.
+- Установить PC3 и PB5 в 0.
+- Установить PD3 и PD2 в 1.
+
+~={green}Дополнительные проверки=~
+- SRVC2
+- SRVC3
+
+~={yellow}Разное программное=~
+- last_power_state = 1 при отключении внешнего питания
+
+~={yellow}Проблема со Standby mode.=~
+- When the Standby mode is being entered, the pull-down resistor of PA0 pin is automatically enabled by internal control circuitry of the chip. The reason of this is to avoid current leakage caused by pin floating.
+
+~={green}Логика работы, связанная со standby mode=~
+
+**Важно.** 
+При отсутствии внешнего питания 220В контроллер не может достоверно установить факт наличия внешнего питания. Поэтому предлагает следующая логика:
+
+Контроллер перезагружается или включается по питанию.
+- Контроллер проверяет флаг PWC_STANDBY_FLAG. Если флаг не установлен контроллер продолжает загрузку в обычном режиме. Значит произошла перезагрузка или включение по питанию.
+- Флаг PWC_STANDBY_FLAG установлен - контроллер находился в режиме standby. Происходит настройка счетных входов и анализ их состояний. Если на каком либо из счетных входов 1, то считаем, что контроллер проснулся от счетных входов и внешнего питания нет. Контроллер сохраняет значения счетных входов и засыпает. Если на счетных входах уровня нет, то считаем, что факт наличия питания установить можно. Проверяем питание. Если питания нет, контроллер засыпает. Если питание есть, то контроллер загружается в обычном режиме.
+
+~={yellow}Изменения в таблице платы 069=~
+- EN_CONRX - сигнал отсутствует, убрал
+- EN_CONTX - сигнал отсутствует, убрал
+- EXT_PWR - сигнал наличия внешнего питания, добавил
+- ENBKUPPWR - отключает питание Artery после определенного времени в standby, добавил
+
+~={green}Порты=~
+```c
+/*
+// -----------------------------------------------------------------------------
+GPIOA
+
+PA0 - f_WAKEAP - сигнал пробуждения от счетных входов и при появлении внешнего 
+питания. В таблице NO_INIT.
+PA1 - резерв
+PA3 - f_ADCBKUP - ADC_3, напряжение АКБ или supercup.
+PA4 - f_ENMEASBKUPPWR - на новой ревизии будет подключать измерительный делитель к напряжению supercup
+PA5 - f_CLOUT - ADC_5 напряжение на выходе current limiter
+PA6 - f_PWRDWNART - вход, пропадание внешнего питания
+PA7 - f_AINP1 - ADC_7, первый аналоговый вход (всегда)
+PA8 - резерв
+PA9 - f_TXD1ARTS - uart, boot, debug. В таблицу не включается.
+PA10 - f_RXD1ARTL - uart, boot, debug. В таблицу не включается.
+PA11 - резерв
+PA12 - f_EXTLEDS - LED на разъеме
+PA13 - f_SWDIOARTS - SWDIO. В таблицу не включается.
+PA14 - f_SWCLKARTS - SWCLK. В таблицу не включается.
+PA15 - f_PRTKKEY - кнопка принтера
+
+// -----------------------------------------------------------------------------
+GPIOB
+
+PB0 - f_ACINP4 - 2-ой счетный вход или 4 аналоговый (настройка зависит от ревизии)
+    В таблицу не включается. Инициализируется отдельно.
+PB1 - f_CLIN - ADC_9, вход current limetter
+PB2 - BOOT1 - на землю. В таблицу не включается.
+PB3 - f_SWOART - SWO. В таблицу не включается.
+PB4 [EN_U2EXTC ] [GPIO_INV | GPIO_INV] - f_nENARTTXD3toM3 - выход, разрешение
+PB5 [EN_EXTC2TCC] [GPIO_INV | GPIO_SET] - f_nENM3toTC3 - выход, разрешение
+PB6 - f_ARTSCL - I2C_CLK с главным процессором. В таблицу не включается.
+PB7 - f_ARTSDA - I2C_SDA с главным процессором. В таблицу не включается.
+PB8 - f_M1toARTRXD5 - uart5 rx. В таблицу не включается.
+PB9 - f_ARTTXD5toM1 - uart5 tx. В таблицу не включается.
+PB10 - резерв
+PB11 - f_ENBKUPPWR - (на новой ревизии) отключает питание Artery после 8 часов.
+    Добавил в таблицу.
+PB12 - f_ARTHWREVB0 - ревизия. Вынесен в таблицу GPIO_TABLE_HW_REVISION.
+PB13 - f_ARTHWREVB1 - ревизия. Вынесен в таблицу GPIO_TABLE_HW_REVISION.
+PB14 - f_ARTHWREVB2 - ревизия. Вынесен в таблицу GPIO_TABLE_HW_REVISION.
+PB15 - f_ARTHWREVB3 - ревизия. Вынесен в таблицу GPIO_TABLE_HW_REVISION.
+
+// -----------------------------------------------------------------------------
+GPIOC
+
+PC0 - f_SCMIDPL - ADC_10 средняя точка supercup
+PC1 - резерв
+PC2 - резерв
+PC3 [EN_TCC2EXTC] [GPIO_INV  | GPIO_SET] - f_nENTC3toM3
+PC4 - f_AINP2 - ADC_14 - второй аналоговый вход
+PC5 (ADC15) - f_ACINP3 - первый счетный либо 3 аналоговый. В таблицу не включается.
+PC6 - резерв
+PC7 - резерв
+PC8 - резерв
+PC9 - резерв
+PC10 (TXD4) - [EN_TCB2ARM] [GPIO_INV] - f_nENTC2toAWRX1
+PC11 (RXD4) - [EN_U2EXTB] [GPIO_INV] - f_nENARTTXD2toM2
+PC12 (TXD5) - [EN_EXTB2U] [GPIO_INV] - f_nENM2toARTRX2
+PC13 (TAMPER)
+PC14 (LEXT_IN) часовой кварц
+PC15 (LEXT_OUT) часовой кварц
+
+// -----------------------------------------------------------------------------
+GPIOD
+
+PD0 - f_SRVC3 - выход
+PD1 - f_SRVC2 - выход
+PD2 - f_ENTC3toAWRXD3 [EN_TCC2ARM] [GPIO_INV] - выход
+PD3 - fnENAWTXD3toTC3 [EN_ARM2TCC] [GPIO_INV] - выход
+PD4 - резерв
+PD5 - f_ARTTXD2toM2 - uart2 tx. В таблицу не включается.
+PD6 - f_M2toARTRXD2 - uart2 rx. В таблицу не включается.
+PD7 - f_nENM3toARTRXD3 [EN_EXTC2U] [GPIO_INV] - выход
+PD8 (TXD3) - f_ARTTXD3toM3 - uart3 tx. В таблицу не включается.
+PD9 (RXD3) - f_M3ToARTRXD3 - uart3 rx. В таблицу не включается.
+
+// -----------------------------------------------------------------------------
+GPIOE
+
+PE0 (RXD8) - f_MUX1ADR1 - OK
+PE1 (TXD8) - f_MUX1ADR0 - OK
+PE3 - f_nENTC2toM2 [EN_TCB2EXTB] [GPIO_INV  | GPIO_SET] - выход, разрешение
+PE4 - f_nENAWTXD1toTC2 [EN_ARM2TCB] [GPIO_INV]
+PE5 - f_nENM2toTC2 [EN_EXTB2TCB] [GPIO_INV  | GPIO_SET]
+PE6 - резерв
+PE7 - f_IN1 - [BOARD_DI1] - дискретный вход - OK
+PE8 - f_IN2 - [BOARD_DI2] - дискретный вход - OK
+PE9 - f_IN3 - [BOARD_DI3] - дискретный вход - OK
+PE10 - f_IN4 - [BOARD_DI4]- дискретный вход - OK
+PE11 - f_IN5 - [BOARD_DI5] - дискретный вход - OK
+PE12 - f_IN6 - [BOARD_DI6] - дискретный вход - OK
+PE13 - f_IN7 - [BOARD_DI7] - дискретный вход - OK
+PE14 - f_IN8 - [BOARD_DI8] - дискретный вход
+PE15 - f_CLON - включение current limitter
+
+*/
+```
+
+
 ~={yellow}Список пинов для проверки=~
 - PA0 - f_WAKEAP - сигнал пробуждения (от счетных входов) - OK, в новой ревизии добавить появление внешнего питания  
 - PA3 (ADC3) - f_ADCBKUP - ADC, напряжение АКБ или supercup - OK
@@ -165,66 +325,4 @@ echo 1 > /sys/devices/platform/bt7kgpio/charger.charge_on/value
 - PE12 - f_IN6 - дискретный вход - OK
 - PE13 - f_IN7 - дискретный вход - OK
 - PE14 - f_IN8 - дискретный вход - OK
-- PE15 - f_CLON - включение current limitter - OK
-
-~={yellow}ПСД общие моменты=~
-- Artery отвечает за управление 2 и 3-ей системой параллельной диспетчеризации, но может принимать и передавать в первую систему. Управлением 1-ой системой занимается Allwinner.
-- ПСД_1 - RS485, ПСД_2 и ПСД_3 - RS232
-- Логику работы ПСД можно разделить на два режима. 
-- В первом режиме модем (внешнее устройство опроса счетчика) общается со счетчиком. Artery всегда слушает только передатчик модема, Alwinner слушает передатчик счетчик. 
-- Во втором режиме со счетчиком общается Alwinner. Artery слушает модем.
-- Artery может передавать в модем.
-uart2, uart3, uart5
-~={yellow}ПСД проверка=~
-
-~={green}Проверка ПСД 1=~
-- Настраиваем MUX (s0, s1) = (1, 0).
-- Отправляем данные из Artery uart_5. Данные заходят в модем_1.
-- На разъеме замыкаем RS485 модема_1 и счетчика.
-- Данные со счетчика попадают на порт принтера.
-- Для этого установить выходы сдвигового регистра U704 в соответствующее положение.
-
-~={green}Проверка ПСД 2=~
-- Проверяем связь Artery - Modem и Modem - Artery.
-- Установить пины PC11 и PC12 в 0.
-- Послать данные в uart_2.
-
-- Проверяем связь Modem - TC, TC - Modem.
-- Установить PC11 и PC12 в 1.
-- Установить PE3 и PE5 в 0.
-- Установить PE4 и PC10 в 1.
-
-~={green}Проверка ПСД 3=~
-- Проверяем связь Artery - Modem и Modem - Artery.
-- Установить PC3 и PB5 в 1.
-- Установить PB4 и PD7 в 0.
-- Послать данные в uart_3.
-
-- Проверяем связь Modem - TC, TC - Modem.
-- Установить PC3 и PB5 в 0.
-- Установить PD3 и PD2 в 1.
-
-~={green}Дополнительные проверки=~
-- SRVC2
-- SRVC3
-
-~={yellow}Программные модули=~
-- [x] Счетные входы
-- [ ] usched
-- [ ] Таблица GPIO
-- [ ] Standby mode
-
-~={yellow}Разное программное=~
-- last_power_state = 1 при отключении внешнего питания
-
-~={yellow}Проблема со Standby mode.=~
-- When the Standby mode is being entered, the pull-down resistor of PA0 pin is automatically enabled by internal control circuitry of the chip. The reason of this is to avoid current leakage caused by pin floating.
-
-~={green}Логика работы, связанная со standby mode=~
-
-**Важно.** 
-При отсутствии внешнего питания 220В контроллер не может достоверно установить факт наличия внешнего питания. Поэтому предлагает следующая логика:
-
-Контроллер перезагружается или включается по питанию.
-- Контроллер проверяет флаг PWC_STANDBY_FLAG. Если флаг не установлен контроллер продолжает загрузку в обычном режиме. Значит произошла перезагрузка или включение по питанию.
-- Флаг PWC_STANDBY_FLAG установлен - контроллер находился в режиме standby. Происходит настройка счетных входов и анализ их состояний. Если на каком либо из счетных входов 1, то считаем, что контроллер проснулся от счетных входов и внешнего питания нет. Контроллер сохраняет значения счетных входов и засыпает. Если на счетных входах уровня нет, то считаем, что факт наличия питания установить можно. Проверяем питание. Если питания нет, контроллер засыпает. Если питание есть, то контроллер загружается в обычном режиме.
+- PE15 - f_CLON - включение current limitter - OK