Diod_Test/README.md

91 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Diod_Test
## Управление тестером
Тест может запускаться по кнопке или по коилу №2 StartTest.
Режим тестирования (прямое/обратное включение) выставляется в двух коилах:
- №0 PositiveTest
- №1 NegativeTest
Если включены оба, то будет тест перехода от прямого подлключения к обратному.
## Настройка таймингов
Тайминги выставляются в регистрах модбас №0-4:
- TimeForPositiveDC - миллисекундная задержка для положительного напряжения (только миллисекунды_
- TimeBeforeTest - задержка перед началом тестирования (миллисекундная или тики for())
- TimeBeforePeak - задержка между включением АЦП и предполагаемым скачком напряжения (миллисекундная или тики for())
- TimeBeforeDisconnect - задержка перед выключением питания (миллисекундная или тики for())
В коилах модбас №16-18, можно выставить флаги - использовать миллисекундную или пустой цикл for() для соответствующей задержки:
- msTimeBeforeTest_enable
- msTimeBeforePeak_enable
- msTimeBeforeDisconnect_enable
## Настройка АЦП
Настройки АЦП выставляются в регистрах модбас №5-9:
- Adc_PulseWidth - ожидаемая длительность импульса в отчетах ацп
- Adc_PulseSign - полярность импульса
- Adc_CalibrValue - калибровочное значение ацп
- Adc_ZeroValue - нулевое значение ацп
- Adc_U_Calibr - калибровочное напряжение ацп
Из этого рассчитывается шаг АЦП: Adc_U_Calibr/(Adc_CalibrValue - Adc_ZeroValue)
# Тестирование
## Тест в прямом подключении (TESTER_TestDiode_PositivePower)
- ожидается задержка, перед началом работы ticks_before_test
- включается АЦП в континуес режиме
- подключается положительное напряжение на заданное время msticks_for_positive_dc. и все это время считывается АЦП и накапливаются заданное количество для расчета среднего.
- после таймаута отключается напряжение и останавливается АЦП
По итогу сохраняется напряжение прямого включения диода
## Тест в обратном подключении (TESTER_TestDiode_NegativePower)
- ожидается задержка, перед началом работы ticks_before_test
- включается АЦП в дма режиме
- ожидается задержка, перед предполагаемым скачком ticks_before_go_to_peak
- подключается отрицательное напряжение на заданное время ticks_before_disconnect, и отключается
- после дожидается окончание заполнения буфера ДМА и обрабатывается: находится минимальный/максимальный пик и среднее напряжение в том районе
По итогу сохраняется скачок напряжение при обратном включении диода
## Тест перехода из прямого подключении в обратное (TESTER_TestDiode_PosNegPower)
- ожидается задержка, перед началом работы ticks_before_test
- подключается положительное напряжение на заданное время msticks_for_positive_dc
- включается АЦП в дма режиме
- ожидается задержка, перед предполагаемым скачком ticks_before_go_to_peak
- переключается положительное напряжение на отрицательное на заданное время ticks_before_disconnect
- дожидается окончание заполнения буфера ДМА и обрабатывается: находится минимальный/максимальный пик и среднее напряжение в том районе
По итогу сохраняется напряжение прямого включения диода и скачок при обратном
# Внутренняя настройка
В начале программы в регистрах модбас выставляются дефолтные настройки из tester_config.h (TESTER_Set_Default_Settings)
После эти настройки подтягиваются в структуры тестера, через отдельную функцию (TESTER_UpdateSettings). Она вызывается перед каждым тестом.
## tester_config.h
Содержит дефолтные настройки для таймингов (TESTER_SW_TIMINGS_CONFIG):
- количество тиков и дефайн для включения миллисекундной задержки.
для светодиода и кнопки (TESTER_INTERFACE_CONFIG):
- состояния пина для включения и выключения светодиода
- порт и пин светодиода
- частоты моргания для разных режимов работы
- состояния пина при нажатой и отжатой кнопки
- порт и пин кнопки
- задержка для выжидания дребезга
для управления ключами (TESTER_ADC_CONFIG):
- USE_HAL_GPIO_FUNCTIONS - использовать HAL_GPIO-функции. Без неё переключается быстрее
- ALL_SW_USE_SAME_PORT - используется один пор для всех ключей. Если не используется HAL, то позволяет переключить ключи на обоих источникам синхронно
- состояния пина для подключения и отключения питания
- порт и пины для ключей положительного питания (порт общий для двух ключей)
- порт и пины для ключей положительного питания
для АЦП (TESTER_ADC_CONFIG):
- размер dma буффера (ADC_BUFF_SIZE, ADC_DMA_BUFF_SIZE)
- калибровочное напряжение АЦП (ADC_U_CALIBR)
- значение АЦП при калибровочном напряжении (ADC_VALUE_CALIBR)
- значение АЦП при нулевом напряжении (ADC_VALUE_ZERO)
- таймаут на чтение АЦП (ADC_READ_TIMEOUT_MS)
- ожидаемая длина импульса в отсчетах АЦП (TESTER_ADC_PULES_EXPETCED_WIDTH)