added dac
This commit is contained in:
@ -16,6 +16,8 @@ AD9833_CMD_TOTAL_LENGTH = 10 # Total bytes when sending AD9833 command
|
||||
AD9833_CMD_HEADER = "9999"
|
||||
DS1809_CMD_TOTAL_LENGTH = 10 # Total bytes when sending DS1809 UC/DC pulse command
|
||||
DS1809_CMD_HEADER = "AAAA"
|
||||
STM32_DAC_CMD_TOTAL_LENGTH = 10 # Total bytes when sending STM32 DAC command
|
||||
STM32_DAC_CMD_HEADER = "BBBB"
|
||||
AD9102_SAW_STEP_DEFAULT = 1
|
||||
AD9102_PAT_PERIOD_DEFAULT = 0xFFFF
|
||||
AD9102_PAT_PERIOD_BASE_DEFAULT = 0x02
|
||||
@ -31,6 +33,9 @@ AD9833_MCLK_HZ_DEFAULT = 20_000_000
|
||||
DS1809_FLAG_UC = 0x0001
|
||||
DS1809_FLAG_DC = 0x0002
|
||||
DS1809_PULSE_MS_DEFAULT = 2
|
||||
STM32_DAC_FLAG_ENABLE = 0x0001
|
||||
STM32_DAC_CODE_MAX = 4095
|
||||
STM32_DAC_VREF_DEFAULT = 3.3
|
||||
|
||||
class TaskType(IntEnum):
|
||||
Manual = 0x00
|
||||
@ -203,6 +208,17 @@ def send_DS1809(prt, bytestring):
|
||||
print("Sent: DS1809 pulse command.")
|
||||
|
||||
|
||||
def send_STM32_DAC(prt, bytestring):
|
||||
''' Set STM32 internal DAC output on PA4 (0xBBBB + ...).
|
||||
Expected device answer: STATE.
|
||||
'''
|
||||
if len(bytestring) != STM32_DAC_CMD_TOTAL_LENGTH:
|
||||
print("Error. Wrong parameter string for STM32 DAC command.")
|
||||
return None
|
||||
prt.write(bytestring)
|
||||
print("Sent: STM32 DAC command.")
|
||||
|
||||
|
||||
# ---- Getting data
|
||||
|
||||
|
||||
@ -496,6 +512,28 @@ def create_DS1809_pulse_command(uc: bool = False,
|
||||
return bytearray.fromhex(data)
|
||||
|
||||
|
||||
def create_STM32_DAC_command(dac_code: int, enable: bool = True):
|
||||
if dac_code is None:
|
||||
dac_code = 0
|
||||
if dac_code < 0:
|
||||
dac_code = 0
|
||||
if dac_code > STM32_DAC_CODE_MAX:
|
||||
dac_code = STM32_DAC_CODE_MAX
|
||||
|
||||
flags = STM32_DAC_FLAG_ENABLE if enable else 0
|
||||
param0 = int(dac_code) & 0x0FFF
|
||||
param1 = 0
|
||||
crc_word = flags ^ param0 ^ param1
|
||||
|
||||
data = flipfour(STM32_DAC_CMD_HEADER) # Word 0 (header)
|
||||
data += flipfour(int_to_hex(flags))
|
||||
data += flipfour(int_to_hex(param0))
|
||||
data += flipfour(int_to_hex(param1))
|
||||
data += flipfour(int_to_hex(crc_word))
|
||||
|
||||
return bytearray.fromhex(data)
|
||||
|
||||
|
||||
def encode_Input(params):
|
||||
|
||||
if params is None:
|
||||
|
||||
Reference in New Issue
Block a user