71 lines
1.3 KiB
C
71 lines
1.3 KiB
C
|
|
#ifndef _DRIVER_H
|
||
|
|
#define _DRIVER_H
|
||
|
|
|
||
|
|
#include <stdint.h>
|
||
|
|
#include <stdbool.h>
|
||
|
|
|
||
|
|
#include "fgen.h"
|
||
|
|
|
||
|
|
#define MAIN_PSU_ENBL 0b00000100 // Active Low U13 D2
|
||
|
|
#define V_18V 0
|
||
|
|
#define V_21V 88
|
||
|
|
|
||
|
|
#define V_24V 118
|
||
|
|
#define V_27V 148
|
||
|
|
#define V_30V 171
|
||
|
|
#define V_36V 218
|
||
|
|
#define V_42V 250
|
||
|
|
#define V_55V 255
|
||
|
|
#define MAX_AB_PSU V_24V //TODO
|
||
|
|
|
||
|
|
#define MAX_D_PSU V_36V
|
||
|
|
#define MAX_CLAMP_PSU 255
|
||
|
|
|
||
|
|
typedef enum
|
||
|
|
{
|
||
|
|
POWER_LEVEL_0 = 0,
|
||
|
|
POWER_LEVEL_1,
|
||
|
|
POWER_LEVEL_2,
|
||
|
|
POWER_LEVEL_3,
|
||
|
|
POWER_LEVEL_4,
|
||
|
|
} PowerLevel_t;
|
||
|
|
|
||
|
|
typedef enum
|
||
|
|
{
|
||
|
|
DRIVER_STATE_INIT = 0,
|
||
|
|
DRIVER_STATE_WAIT_PSU,
|
||
|
|
DRIVER_STATE_SWITCH_FREQUENCY,
|
||
|
|
} DriverState_t;
|
||
|
|
|
||
|
|
typedef struct
|
||
|
|
{
|
||
|
|
DriverState_t state;
|
||
|
|
bool initState;
|
||
|
|
|
||
|
|
uint32_t stateTimer;
|
||
|
|
|
||
|
|
uint8_t psuValue;
|
||
|
|
uint8_t psuValueMax;
|
||
|
|
|
||
|
|
FREQUENCY_t *frequency;
|
||
|
|
PowerLevel_t powerLevel;
|
||
|
|
|
||
|
|
} TxDriver_t;
|
||
|
|
|
||
|
|
TxDriver_t * driver_getDriver(void);
|
||
|
|
void driver_setPSUVoltage(uint8_t value);
|
||
|
|
void driver_setAmplitude(uint8_t value);
|
||
|
|
void driver_isolateOutput(bool isolate);
|
||
|
|
void driver_enablePower(bool enable);
|
||
|
|
void driver_init(void);
|
||
|
|
void driver_monitor(void);
|
||
|
|
void driver_service(void);
|
||
|
|
void driver_setDuty(uint32_t duty);
|
||
|
|
void driver_broadcastOn(bool on);
|
||
|
|
void driver_setFrequency(FREQUENCY_t *freq);
|
||
|
|
void driver_setPower(PowerLevel_t powerLevel);
|
||
|
|
FREQUENCY_t *driver_getFrequency(void);
|
||
|
|
void driver_setSafe(bool safe);
|
||
|
|
|
||
|
|
#endif
|