1
0
mirror of https://github.com/sandeepmistry/arduino-LoRa.git synced 2025-04-19 13:02:14 +03:00

Force LDO option set or unset (#668)

* Force LDO option set or unset

Some remote clients needs LDO using on any Spreading Factor. CDEbyte E32 for example.

* LDO state setter function realized

* Update keywords, minor style tweaks

---------

Co-authored-by: Sandeep Mistry <sandeep.mistry@gmail.com>
This commit is contained in:
Grigory Prigodin 2023-10-29 15:15:35 +03:00 committed by GitHub
parent 71d4c2998f
commit 7c2ebfd0d8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 0 deletions

View File

@ -51,6 +51,8 @@ enableCrc KEYWORD2
disableCrc KEYWORD2
enableInvertIQ KEYWORD2
disableInvertIQ KEYWORD2
enableLowDataRateOptimize KEYWORD2
disableLowDataRateOptimize KEYWORD2
setGain KEYWORD2
random KEYWORD2

View File

@ -586,6 +586,13 @@ void LoRaClass::setLdoFlag()
writeRegister(REG_MODEM_CONFIG_3, config3);
}
void LoRaClass::setLdoFlagForced(const boolean ldoOn)
{
uint8_t config3 = readRegister(REG_MODEM_CONFIG_3);
bitWrite(config3, 3, ldoOn);
writeRegister(REG_MODEM_CONFIG_3, config3);
}
void LoRaClass::setCodingRate4(int denominator)
{
if (denominator < 5) {
@ -632,6 +639,16 @@ void LoRaClass::disableInvertIQ()
writeRegister(REG_INVERTIQ2, 0x1d);
}
void LoRaClass::enableLowDataRateOptimize()
{
setLdoFlagForced(true);
}
void LoRaClass::disableLowDataRateOptimize()
{
setLdoFlagForced(false);
}
void LoRaClass::setOCP(uint8_t mA)
{
uint8_t ocpTrim = 27;

View File

@ -79,6 +79,8 @@ public:
void disableCrc();
void enableInvertIQ();
void disableInvertIQ();
void enableLowDataRateOptimize();
void disableLowDataRateOptimize();
void setOCP(uint8_t mA); // Over Current Protection control
@ -107,6 +109,7 @@ private:
long getSignalBandwidth();
void setLdoFlag();
void setLdoFlagForced(const boolean);
uint8_t readRegister(uint8_t address);
void writeRegister(uint8_t address, uint8_t value);