added tec modulation

This commit is contained in:
Ayzen
2026-04-27 17:49:52 +03:00
parent 6b6689fa5f
commit 31fd8ab111
7 changed files with 185 additions and 0 deletions

View File

@ -34,6 +34,7 @@ CMD_STM32_DAC_CONTROL = 0xBBBB
CMD_AD9102_WAVE_CONTROL = 0xCCCC
CMD_AD9102_WAVE_DATA = 0xDDDD
CMD_PROFILE_SAVE_DATA = 0xEEEE
CMD_TEC_MODULATION_CONTROL = 0xF0F0
# ---- Setup-word bit layout from firmware app_decode_work_packet()
@ -102,6 +103,9 @@ DS1809_FLAG_DECREMENT = 0x0002
STM32_DAC_FLAG_ENABLE = 0x0001
TEC_MODULATION_FLAG_ENABLE = 0x0001
TEC_MODULATION_FLAG_CHANNEL_2 = 0x0002
AD9102_WAVE_OPCODE_BEGIN = 0x0001
AD9102_WAVE_OPCODE_COMMIT = 0x0002
AD9102_WAVE_OPCODE_CANCEL = 0x0003
@ -184,6 +188,11 @@ DS1809_PROFILE_POSITION_MAX = 63
STM32_DAC_CODE_MIN = 0
STM32_DAC_CODE_MAX = 4095
TEC_MODULATION_FREQUENCY_MIN_HZ = 50
TEC_MODULATION_FREQUENCY_MAX_HZ = 2_000
TEC_MODULATION_AMPLITUDE_CODE_MIN = 0
TEC_MODULATION_AMPLITUDE_CODE_MAX = 4_096
# ---- Rail tolerances
VOLT_3V3_MIN = 3.1
@ -218,6 +227,8 @@ DEFAULT_STM32_DAC_VREF = 2.5
DEFAULT_STM32_DAC_CODE = round(
DEFAULT_STM32_DAC_VOLT / DEFAULT_STM32_DAC_VREF * STM32_DAC_CODE_MAX
)
DEFAULT_TEC_MODULATION_FREQUENCY_HZ = 1_000
DEFAULT_TEC_MODULATION_AMPLITUDE_CODE = 256
DEFAULT_PI_P = 2560
DEFAULT_PI_I = 128