Added some missing setters for AT1846S calibration and fixed other ones

replace/c1708fee14b27c35cb9fe909ac97b5422c310f79
Silvano Seva 2021-01-23 18:58:31 +01:00
rodzic 72220c377e
commit 4e4130e524
2 zmienionych plików z 54 dodań i 18 usunięć

Wyświetl plik

@ -200,6 +200,9 @@ void AT1846S_setOpMode(AT1846S_op_t mode)
i2c_writeReg16(0x58, 0xBC05);
i2c_writeReg16(0x44, 0x06FF);
i2c_writeReg16(0x40, 0x0030);
_maskSetRegister(0x57, 0x0001, 0x00); /* Audio feedback off */
_maskSetRegister(0x3A, 0x7000, 0x4000); /* Select voice channel */
}
_reloadConfig();
@ -242,9 +245,10 @@ void AT1846S_setAgcGain(uint8_t gain)
_maskSetRegister(0x44, 0x0F00, agc);
}
void AT1846S_setTxDeviation(uint8_t dev)
void AT1846S_setTxDeviation(uint16_t dev)
{
_maskSetRegister(0x59, 0x003F, ((uint16_t) dev));
uint16_t value = (dev & 0x03FF) << 6;
_maskSetRegister(0x59, 0xFFC0, value);
}
void AT1846S_setRxAudioGain(uint8_t gainWb, uint8_t gainNb)
@ -254,6 +258,24 @@ void AT1846S_setRxAudioGain(uint8_t gainWb, uint8_t gainNb)
_maskSetRegister(0x44, 0x000F, ((uint16_t) gainNb));
}
void AT1846S_setNoise1Thresholds(uint8_t highTsh, uint8_t lowTsh)
{
uint16_t value = ((highTsh & 0x1f) << 8) | (lowTsh & 0x1F);
i2c_writeReg16(0x48, value);
}
void AT1846S_setNoise2Thresholds(uint8_t highTsh, uint8_t lowTsh)
{
uint16_t value = ((highTsh & 0x1f) << 8) | (lowTsh & 0x1F);
i2c_writeReg16(0x60, value);
}
void AT1846S_setRssiThresholds(uint8_t highTsh, uint8_t lowTsh)
{
uint16_t value = ((highTsh & 0x1f) << 8) | (lowTsh & 0x1F);
i2c_writeReg16(0x3F, value);
}
void AT1846S_setPaDrive(uint8_t value)
{
uint16_t pa = value << 11;

Wyświetl plik

@ -48,73 +48,87 @@ typedef enum
AT1846S_func_t;
/**
*
*
*/
void AT1846S_init();
/**
*
*
*/
void AT1846S_postInit();
/**
*
*
*/
void AT1846S_setFrequency(const freq_t freq);
/**
*
*
*/
void AT1846S_setBandwidth(AT1846S_bw_t band);
/**
*
*
*/
void AT1846S_setOpMode(AT1846S_op_t mode);
/**
*
*
*/
void AT1846S_setFuncMode(AT1846S_func_t mode);
/**
*
*
*/
uint16_t AT1846S_readRSSI();
/**
*
*
*/
void AT1846S_setPgaGain(uint8_t gain);
/**
*
*
*/
void AT1846S_setMicGain(uint8_t gain);
/**
*
*
*/
void AT1846S_setTxDeviation(uint8_t dev);
void AT1846S_setTxDeviation(uint16_t dev);
/**
*
*
*/
void AT1846S_setAgcGain(uint8_t gain);
/**
*
*
*/
void AT1846S_setRxAudioGain(uint8_t gainWb, uint8_t gainNb);
/**
*
*
*/
void AT1846S_setNoise1Thresholds(uint8_t highTsh, uint8_t lowTsh);
/**
*
*/
void AT1846S_setNoise2Thresholds(uint8_t highTsh, uint8_t lowTsh);
/**
*
*/
void AT1846S_setRssiThresholds(uint8_t highTsh, uint8_t lowTsh);
/**
*
*/
void AT1846S_setPaDrive(uint8_t value);
/**
*
*
*/
void AT1846S_setAnalogSqlThresh(uint8_t thresh);