- [ ] SPI Flash SPI_1
- PB3 - SCK
- PB4 - MISO
- PB5 - MOSI
- PA15 - CS
- [ ] LEDs
- [ ] RS485

**Модуль дискретных входов-выходов. План работ.**

  

1) Проверка основных узлов модуля. [3-5 дней]
            - Светодиоды
            - Входы
            - Выходы
            - SPI Flash
            - RS_485
            - RTC
            - Внешний Watchdog
            - USART debug (разъем BOOT)
            - USB
            - Входы для определения ревизии (HW_REV_BIT_0..2)
            - Адресные входы (ADR_1..4)
            - Кнопки (RESET, SET)

2) Составление карты регистров modbus. Далее карта будет дополняться в процессе работ. [1 день]

3) Организация и настройка проекта. [1 день]

4) Программная реализация протокола Modbus RTU (канальный уровень). (На этом этапе достаточно отдавать несколько регистров. Далее отдать модуль для разработки драйвера и постепенно добавлять функционал). [1-2 дня] 

5) Модуль settings. Определение структуры настроек, реализация основных функций (чтение, запись, восстановление). Работа с настройками по протоколу Modbus RTU (чтение/запись/команды). Производственные настройки. [3-5 дней]

6) Дискретные входы (режим дискретного входа, режим счетного входа, вкл/выкл и настройка периода антидребезга, безопасный режим работы). [5 дней]

7) Дискретные выходы (обычных режим работы и режим PWM, безопасный режим работы). [5 дней]

8) Светодиодная индикация. [1 день]  

9) Дополнение возможностей Modbus. Управление входами/выходами, работа с настройками, управление модулем. [5 дней]

**Пункты 1-9 стараться успеть к марту.**

10) Удаленное обновление модуля (Modbus). [3-4 дня]

11) Реализация журнала событий и передача его по Modbus. [5 дней]

12) Web-интерфейс (доступ через USB-класс RNDIS), конфигурация модуля. [2-3 недели]

13) Отладка ПО и исправление неисправностей. [..]

14) Производственное тестирование. [..]
<h6>Актуальный план работ</h6>
1. Дискретные выходы [несколько дней]. 
	- Режим ШИМ.
	- Реализация логики безопасного режима работы модуля.
	- Проблема с контролем обрыва (нужна помощь Дмитрия Утенкова).
	- Определение КЗ (нужна помощь Дмитрия Утенкова).
3. LED - индикация. Проверил, работает. Нужно привязать к определенным входам/выходам [менее дня].
4. Кнопки [менее дня].
5. Добавить остальные параметры в modbus (управление модулем, ID, модель и т.п.) [1-2 дня]
6. Доработать обновление модуля. [1 день]
7. Ведение архива и журнала событий. [3 дня]
8. Вычитка архива и журнала по modbus. [3 - 5 дней]
9. Предварительное тестирование (делаю по мере появление функционала).
10. Стыковка с драйвером (работа с Пашей).
11. Рефакторинг.
<h6>Модуль аналоговых входов/выходов</h6>
- [x] LED - индикация
- [x] modbus rx/tx
- [x] modbus адресация (4 пина)
- [x] кнопки
- [x] ревизия
- [x] USB
- [x] WDT внешний таймер
- [x] SPI memory
- [x] USART debug
<h6>ADC DAC</h6>
ADC - https://www.compel.ru/lib/200368
DAC - TPC116S1
<h6>SHIFT REGS, MUX</h6>
- 74HC597D - shift reg
![[Pasted image 20240415123611.png]]
![[Pasted image 20240415124210.png]]
- 74HC4094PW - shift reg, подключен после 74HC597D к QS1 (метролог)![[Pasted image 20240415122028.png]]
![[Pasted image 20240415124521.png]]
- 74HC4051PW - mux/demux
- ![[Pasted image 20240424185826.png]]
<h6>Шины в устройстве аналоговых входов:</h6>
- AIN_CNTRL_BUS6
- SPI_LS_BUS6
- AN_INP_16 - MUX U301 <-- SH U1010 (SPI_LS_BUS6 - MOSI_LS, CLK_LS, CS_LS_MUX_CNRL)
- AN_INP_712
- AIN_CNTRL_BUS6
- CRNT_LIM_MS_BUS2
<h6>Шины в устройстве аналоговых выходов:</h6>
- AOUT_CNTRL_BUS8
- SPI_DAC_BUS6
<h6>Заметки</h6>
- 2 пары сдвиговых регистров U300 и U302, U400 и U402 отвечают за входы ALARM_IN_1..ALARM_IN_12 и выходы EN_CRNT_SNS_1..EN_CRNT_SNS_12.
- SPI_4 - ADC, DAC
- Возможно перенести: SPI2 - PB13, PB14, PB15
- Возможно перенести: SPI1 - PA5, PA6, PA7
- SPI_3 - Flash memory (PB3, PB4, PB5)
<h6>SPI_LS (Аналоговые входы)</h6>
- U300, U302 (CS_LS_CH16 - PD1) - пара сдвиговых регистров (входы и выходы)
- U1010 (CS_LS_MUX_CNTRL - PD3) - управляет MUX U301 (AIN16_MUX_S0, 1, 3, AN_INP_16) и MUX U401 (AIN712_MUX_S0, 1, 3, AN_INP_712)
- U400, U402 (CS_LS_CH712 - PD0) - пара сдвиговых регистров (входы и выходы). Здесь есть проблема с MISO. Перенести на другой порт.
<h6>SPI_LS (Аналоговые выходы)</h6>
- U860, U861 (ART_MISO_CH16/CS_LS) - пара сдвиговых регистров
<h6>Изменения</h6>
- Объединяем регистры U300, U302, U400, U402.