![]() |
PS_Fgen_FW
4da88f4073c1cc65ea45c3a652a2751e495e50db
Firmware for an Power Supply and Function Generator build from an ATX power supply
|
Containing different defines for device configuration. More...
#include "version.h"
Go to the source code of this file.
Macros | |
#define | DEVICE_TIMER_TICK_INTERVAL_MS 100 |
Tick interval of the DeviceTimer in ms. | |
#define | POWER_SUPPLY_REG_INTERVAL_MS 100 |
Time period for power supply regulation. | |
#define | KEY_POLLING_DELAY_MS 250 |
Time period for key polling (keys and encoder button). | |
#define | TOUCH_HANDLING_DELAY_MS 300 |
Time period for touch screen polling. | |
#define | SCREEN_REDRAW_DELAY_MS 500 |
Time period for screen redraw. | |
#define | SETTINGS_AUTOSAVE_DELAY_MS 60000 |
Milliseconds between automatic saves of the device settings. | |
#define | SPLASHSCREEN_DELAY_MS 2000 |
Time that the splash screen is shown in milliseconds. | |
#define | SERIAL_BAUDRATE 9600 |
Serial baud rate used for the serial input (SCPI, debug output). | |
#define | SCPI_ENABLED |
Comment this line out to disable the SCPI parser. | |
#define | SCPI_INPUT_BUFFER_LENGTH 16 |
Length of the SCPI input buffer. | |
#define | SCPI_ERROR_QUEUE_SIZE 3 |
Maximum number of errors in the error queue. | |
#define | SCPI_IDN_MANUFACTURER "Markus Scheich" |
Manufacturer info used in *IDN? | |
#define | SCPI_IDN_MODEL "PS_Fgen" |
Model info used in *IDN? | |
#define | SCPI_IDN_SERIAL_NUMBER "01" |
Serial number used in *IDN? | |
#define | SCPI_IDN_SOFTWARE_REVISION VERSION |
Software version used in *IDN? | |
#define | SPLASHSCREEN_ENABLED |
Comment this line out to disable the Splashscreen. | |
#define | COLOR_BACKGROUND RGB565(0x00, 0x00, 0x00 |
Background color for the screen UIElements. | |
#define | COLOR_FOREGROUND RGB565(0x00, 0xF7, 0x00 |
Foreground color for the screen UIElements. | |
#define | COLOR_FOREGROUND_HEADERS RGB565(0xFF, 0xFF, 0xFF |
Foreground color for the screen headers. | |
#define | COLOR_FOCUS_FRAME RGB565(0xFF, 0xFF, 0xFF |
Color for the screen UIElement selection frame. | |
#define | TOUCH_ENABLED |
Comment this line out to disable the touch functionality. | |
#define | TOUCH_LONG_DELAY_MS 750 |
Time period in ms that is interpreted as long touch. | |
#define | USERINPUT_QUEUE_LENGTH 16 |
Length of the queue used to buffer the user inputs (keys, encoder, Usart) | |
#define | PS_SUBSYSTEM_ENABLED |
Comment this line out to disable the power supply subsystem. | |
#define | DDS_SUBSYSTEM_ENABLED |
Comment this line out to disable the direct digital synthesis subsystem. | |
#define | MEASURE_SUBSYSTEM_ENABLED |
Comment this line out to disable the measurement (ATX voltages and digital multimeters) subsystem. | |
#define | DDS_TICK_FREQ 15625 |
Frequency at which the phase accumulator is updated. | |
#define | DDS_PHASE_ACCU_BITS 32 |
Number of bits used by the phase accumulator of the direct digital synthesis. | |
#define | DDS_QUANTIZER_BITS 8 |
Number of bits that are used to index into the look up tables. | |
#define | DDS_DAC_BITS 12 |
Number of bits used by the DAC. | |
#define | DDS_SAMPLE_MAX ((1 << DDS_DAC_BITS) - 1) |
Maximum value that can be reached with the number of bits in DDS_DAC_BITS. | |
#define | DDS_AMPLITUDE_MAX 20.0f |
Maximum supported amplitude at the DDS outputs. | |
#define | NUM_PS_CHANNELS 1 |
Number of power supply output channels if the PS subsystem is enabled. | |
#define | NUM_DDS_CHANNELS 2 |
Number of direct digital synthesis output channels if the DDS subsystem is enabled. | |
#define | NUM_MEASURE_CHANNELS 2 |
Number of digital multimeter output channels if the DDS subsystem is enabled. | |
#define | NUM_CHANNELS NUM_PS_CHANNELS + NUM_DDS_CHANNELS + NUM_MEASURE_CHANNELS |
Number of channels (this is the sum of NUM_PS_CHANNELS, NUM_DDS_CHANNELS and NUM_MEASURE_CHANNELS) | |
#define | PS_INTERNAL_IMPEDANCE 5.7 |
Internal impedance in Ohm of the PowerSupply output. | |
#define | PS_MIN_VOLTAGE 0 |
Minimum allowed power supply voltage setting. | |
#define | PS_MAX_VOLTAGE 10 |
Maximum allowed power supply voltage setting. | |
#define | PS_MAX_CURRENT 2 |
Maximum allowed power supply current setting. | |
#define | PS_MIN_OVP_LEVEL_PERCENTAGE 50 |
Minimum allowed power supply OVP level setting (in percent of the configured voltage) | |
#define | PS_MAX_OVP_LEVEL_PERCENTAGE 200 |
Maximum allowed power supply OVP level setting (in percent of the configured voltage) | |
#define | PS_MIN_OVP_DELAY (POWER_SUPPLY_REG_INTERVAL_MS / 1000.0f) |
Minimum allowed power supply OVP delay setting. | |
#define | PS_MAX_OVP_DELAY 20 |
Maximum allowed power supply OVP delay setting. | |
#define | PS_MIN_OCP_LEVEL 0 |
Minimum allowed power supply OCP level setting. | |
#define | PS_MAX_OCP_LEVEL 3 |
Maximum allowed power supply OCP level setting. | |
#define | PS_MIN_OCP_DELAY PS_MIN_OVP_DELAY |
Minimum allowed power supply OCP delay setting. | |
#define | PS_MAX_OCP_DELAY PS_MAX_OVP_DELAY |
Maximum allowed power supply OCP delay setting. | |
#define | PS_MIN_OPP_LEVEL 0 |
Minimum allowed power supply OCP level setting. | |
#define | PS_MAX_OPP_LEVEL (PS_MAX_VOLTAGE * PS_MAX_OCP_LEVEL) |
Maximum allowed power supply OCP level setting. | |
#define | PS_MIN_OPP_DELAY PS_MIN_OVP_DELAY |
Minimum allowed power supply OPP delay setting. | |
#define | PS_MAX_OPP_DELAY 65 |
Maximum allowed power supply OPP delay setting. | |
#define | PS_VOLT_PID_P 0.2f |
Proportional part of the voltage PID regulator. | |
#define | PS_VOLT_PID_I 3.0f |
Integral part of the voltage PID regulator. | |
#define | PS_VOLT_PID_D 0 |
Differential part of the voltage PID regulator. | |
#define | DDS_MIN_FREQ 0.001f |
Minimum allowed DDS frequency setting. | |
#define | DDS_MAX_FREQ 20000 |
Maximum allowed DDS frequency setting. | |
#define | DDS_MIN_AMPLITUDE 0 |
Minimum allowed DDS amplitude setting. | |
#define | DDS_MAX_AMPLITUDE 20 |
Maximum allowed DDS amplitude setting. | |
#define | DDS_MIN_OFFSET -10 |
Minimum allowed DDS offset setting. | |
#define | DDS_MAX_OFFSET 10 |
Maximum allowed DDS offset setting. | |
Containing different defines for device configuration.
#define DDS_TICK_FREQ 15625 |
Frequency at which the phase accumulator is updated.
Choose a value here that delivers an integer value for the OCR2A register ( ((F_CPU / 1024) / DDS_TICK_FREQ) should be an integer value ) !!!
#define DEVICE_TIMER_TICK_INTERVAL_MS 100 |
Tick interval of the DeviceTimer in ms.
The DeviceTimer is used to e.g. periodically read the keys and the encoder.
#define KEY_POLLING_DELAY_MS 250 |
Time period for key polling (keys and encoder button).
This must be higher than the DeviceTimer tick interval because it's derived from this device timer.
#define POWER_SUPPLY_REG_INTERVAL_MS 100 |
Time period for power supply regulation.
This must be higher than the DeviceTimer tick interval because it's derived from this device timer.
#define SCPI_ERROR_QUEUE_SIZE 3 |
Maximum number of errors in the error queue.
If this queue overflows, the last error message will be replaced by an overflow error message.
#define SCPI_IDN_MANUFACTURER "Markus Scheich" |
Manufacturer info used in *IDN?
query
#define SCPI_IDN_MODEL "PS_Fgen" |
Model info used in *IDN?
query
#define SCPI_IDN_SERIAL_NUMBER "01" |
Serial number used in *IDN?
query
#define SCPI_IDN_SOFTWARE_REVISION VERSION |
Software version used in *IDN?
query
#define SCPI_INPUT_BUFFER_LENGTH 16 |
Length of the SCPI input buffer.
If this buffer overflows, there will be an error message.
#define SCREEN_REDRAW_DELAY_MS 500 |
Time period for screen redraw.
This must be higher than the DeviceTimer tick interval because it's derived from this device timer.
#define SERIAL_BAUDRATE 9600 |
Serial baud rate used for the serial input (SCPI, debug output).
This could be e.g. one of the following values: 4800, 9600, 19200, 38400, 57600
#define TOUCH_HANDLING_DELAY_MS 300 |
Time period for touch screen polling.
This must be higher than the DeviceTimer tick interval because it's derived from this device timer.