Commit Graph

19 Commits

Author SHA1 Message Date
a413b954a8 Доработан модбас:
- убран моментальный сброс коила StartTest
- убрана устаревшая замена команд ReadHoldRegs и ReadInRegs
2024-12-27 15:44:32 +03:00
d3c2b8a7b1 Добавлены линии EXTI для приема ответа. Пока при приеме просто тоглится третьи пины:
Выставляются ключи на одних пинах -> принимается ответ на вторых пинах (Response) -> тоглится третьи пины (Signal)
2024-12-27 09:06:16 +03:00
b47fe883ff Функции для работы с кнопками и диодами перенесены в модуль gpio_general 2024-12-25 09:41:14 +03:00
87849674ab просто удален мусор 2024-12-24 17:55:50 +03:00
a2bc323649 Сделана заготовка для Read Device Identification
И надо как-то переструктуризировать и оптимизировать модбас библиотеку
2024-12-24 16:38:42 +03:00
1830087d6e в мб дату добавлены дефолтные значения + minor fixes 2024-12-24 14:45:40 +03:00
0c06d07f4e Добавлены коилы для включения отдельных ключей. Протестирован modbus - работает.
Чуть оптимизированы функции переключения ключей: теперь ifdef для использования HAL функций не в test_func.c а в test_func.h
2024-12-24 11:20:19 +03:00
15774d179b #3 Добавлена индикация перед началом теста и изменен механизм дедтайма и начало считывания АЦП
Теперь это считается в TESTER_Reconnect_TwoPhases:
Если дедтайм меньше 100мкс, сначала начинает считывание АЦП, а потом переключаем ключи. Потому что функция запуска АЦП занимает 30мкс и в таком случае она будет сильно увеличивать заданный дедтайм.
Иначе сначала диод отключается от всего, выжидается дедтайм, потом запускается АЦП и включается в обратном направлении. В таком порядке потому что запуск АЦП должен быть рядом с включем диода в обратном направлении, чтобы словить пик в буффере АЦП
2024-12-23 15:30:35 +03:00
0cba8cda8a переименована переменная для хранения обратного скачка напряжения
PeakVoltage >ReversePeakVoltage
2024-12-23 14:16:33 +03:00
b0c9cb058c Задержка в тиках for() заменена на микросекундную по таймеру TIM3
И соответственно обновлены регистры модбас
2024-12-23 13:42:01 +03:00
ae2887acfe Улучшены названия переменных, добавлена настройка дедтайма (в мс или тиках for())
- положительное/отрицательное питание -> прямое/обратное включение
- ключи для питание -> ключи для фаз
- positive/negative -> Forward/Reverse
- power switch ->phase switch
2024-12-23 12:52:11 +03:00
10e7859af7 #3 в tester_config.h нормально названы пины для ключей. переменные надо будет потом переименовать 2024-12-19 18:54:45 +03:00
24b6295935 #3 Настройки перенесены в модбас, все подтягивается оттуда
- В modbus коилах задается режим и выставляется флаг запустить тест. Запустить тест также можно по кнопке

- Добавлена функция для выставления дефолтных настроек TESTER_Set_Default_Settings: она выставляет все настройки в modbus по дефолту и еще некоторые не modbus настройки (порты и пины ключей, кнопок, светодиодов)

- Добавлена функция для обновления настроек тестера TESTER_UpdateSettings: она подтягивает все настроки из modbus в соответствующие структуры тестера. Вызывается каждый раз перед тестированием
2024-12-19 17:25:03 +03:00
a5704ae4be #3 Добавлен простейший интерфейс: одна кнопка и один диод. Пока интерфейс управляется через прерывание в SysTick
При нажатии на кнопку включается тест с переходом от положительного напряжения к отрицатльному.

Индикация светодиода:
- постоянно горит - ожидание команды
- моргание (250 мс) - прямое подключение диода
- моргание (25 мс) - обратое подключение диода
2024-12-19 15:26:22 +03:00
13825e068c #3 Сделаны улучшенные функции управления ключами, добавлены настройки по таймингам в tester_config.h
По переключениям:
-Теперь для двух ключей одного питания должен быть один порт

- Добавлена функция реконнекта питания TESTER_Reconnect_Power(), чтобы быстрее переключать с положительного на отрицательный. А не через отдельные функции TESTER_Disconnect_Power(), TESTER_Connect_Power()

- Сделан дефайн USE_HAL_GPIO_FUNCTIONS для испольщования HAL GPIO функций. Его можно убрать и пины будуте переключаться напрямую через BSRR.

- Также сделан дефайн ALL_SW_USE_SAME_PORT, чтобы переключать все 4 пина в BSRR в одну комманду

Это поможет в случае функции реконнекта, где HAL функции сначала отключают питание, а потом подключат другое. Из-за этого появляются задержки в 580 мкс (SW Timings with HAL GPIO write.sal),

Если убрать USE_HAL_GPIO_FUNCTIONS, то сократиться время переключения между питаниями до 160мкс (SW Timings without HAL GPIO write and different ports.sal)

А если еще выставить ALL_SW_USE_SAME_PORT, то через BSRR будет выставлятся все 4 пина, и задержек нет (SW Timings without HAL GPIO write.sal). Ну почти, иногда проскакивают 2 мкс (SW Timings without HAL GPIO write 2.sal)
2024-12-19 13:57:51 +03:00
7f6932631e Чуть подкоректированны и закоментированны структуры 2024-12-18 17:00:44 +03:00
8326ea8a8c #3 Добавлены файлы для реализации алгоритмов (не все готово)
Основные функции по файлам:

 - tester_adc_func
Cодержит функции для управления АЦП и DMA.
Для DMA есть хендлер (ADC_DMA_Handler), который перекидывает готовую половину DMA буфера в структуру АЦП
Функция ADC_DMA_ReadForPeak стащена с МЗКТЭ и пока просто простаивает и ждет пока буффер заполниться, но можно потом добавить какую-то обрбаотку буфера, пока он еще заполяется. После окончания работы АЦП эта функция находит максимальное зачение и рассчитывает среднее значение в этом "пике"
Добавлена функция ADC_ReadContinuous, которая считывает АЦП в континуес режиме, значение запихивает в буффер. Прерывается при таймауте.:

 - tester_func
Cодержит функции для тестирования диодов:
в обратном подключении (TESTER_TestDiode_NegativePower),
в прямом подключении (TESTER_TestDiode_PositivePower),
при переходе от прямого к обратному (TESTER_TestDiode_PosNegPower).
Для работы АЦП, вызывает функции из tester_adc_func. Пока всё максимально примитивно, надо будет доработать

- tester_main
Содержит функции инициализации, подготовка к циклу и главный цикл тестер. По флагам вызываются соответствующие функции тестирования диодов из tester_func. Все функции этого файла вызываются в main.c.

-tester_config.h
Пока содержит настройки для тестера: пины для ключей, состяония подключенного и отключенного питания, которые подключают питание, настройки для АЦП
2024-12-18 16:12:37 +03:00
a2043006cc Добавлены библиотеки adc, modbus (его надо проверить)
В библиотеке adc пока только сделана заготовка для считывания выброса, надо доделать:
Пока в main крутиться тест: формирование импульса ножкой светодиодом и считыание АЦП. Считывается этот импульс и определяется его пик (максимальное значение) и в районе этого пика беруться значения для расчета его амплитуды

Modbus добавлен но не проверен
2024-12-17 18:24:41 +03:00
dbe38ec1d5 init cube/keil project 2024-12-17 09:42:52 +03:00