53 lines
1.6 KiB
C
53 lines
1.6 KiB
C
/* -*- mode: c; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4; coding: utf-8 -*- */
|
|
/************************************************************************************
|
|
** **
|
|
** UHSDR **
|
|
** a powerful firmware for STM32 based SDR transceivers **
|
|
** **
|
|
**---------------------------------------------------------------------------------**
|
|
** **
|
|
** Licence: GNU GPLv3 **
|
|
************************************************************************************/
|
|
#ifndef __UHSDR_HMC1023_H
|
|
#define __UHSDR_HMC1023_H
|
|
#include "uhsdr_board.h"
|
|
|
|
#define HMC1023_OK (HAL_OK)
|
|
#define HMC1023_ERROR (0xffffffff)
|
|
|
|
typedef struct
|
|
{
|
|
bool present;
|
|
#ifdef USE_HMC1023
|
|
uint32_t reg1;
|
|
uint32_t reg2;
|
|
uint32_t reg3;
|
|
|
|
// we use these to track the configration settings
|
|
uint8_t coarse;
|
|
uint8_t fine;
|
|
uint8_t opamp;
|
|
uint8_t drvr;
|
|
|
|
bool gain;
|
|
bool bypass;
|
|
#endif
|
|
} HMC1023_t;
|
|
|
|
extern HMC1023_t hmc1023;
|
|
|
|
#ifdef USE_HMC1023
|
|
|
|
void hmc1023_init(void);
|
|
void hmc1023_use_spi_settings();
|
|
void hmc1023_set_coarse(uint8_t coarse);
|
|
void hmc1023_set_fine(uint8_t fine);
|
|
void hmc1023_set_gain(bool on);
|
|
void hmc1023_set_bypass(bool on);
|
|
void hmc1023_set_bias_opamp(uint8_t value);
|
|
void hmc1023_set_bias_drvr(uint8_t value);
|
|
|
|
#endif
|
|
|
|
#endif
|