Fixed C6000_setModOffset in MD-UV3x0 HR_C6000 driver, now behaves in the same way as TYT firmware does. Provides a fix for #21, although it still have to be sharpened a bit.

replace/1a7c49764b199eb119487577160099df7c502a0f
Silvano Seva 2021-03-31 16:57:35 +02:00
rodzic c13bc94e91
commit 3f9d46dc2a
2 zmienionych plików z 14 dodań i 8 usunięć

Wyświetl plik

@ -279,8 +279,8 @@ void C6000_setModOffset(uint16_t offset)
void C6000_setModAmplitude(uint8_t iAmp, uint8_t qAmp)
{
_writeReg(0x00, 0x45, iAmp); // Mod2 magnitude (HR_C6000)
_writeReg(0x00, 0x46, qAmp); // Mod1 magnitude (HR_C6000)
_writeReg(0x04, 0x45, iAmp); // Mod2 magnitude (HR_C6000)
_writeReg(0x04, 0x46, qAmp); // Mod1 magnitude (HR_C6000)
}
void C6000_setMod2Bias(uint8_t bias)

Wyświetl plik

@ -175,17 +175,23 @@ void C6000_terminate()
void C6000_setModOffset(uint16_t offset)
{
uint8_t offUpper = (offset >> 8) & 0x03;
uint8_t offLower = offset & 0xFF;
/*
* Same as original TYT firmware.
* Reference: functions @0802e7d4 and @080546cc in S18.16 binary image
*/
uint8_t offUpper = (offset < 0x80) ? 0x03 : 0x00;
uint8_t offLower = offset + 0x80;
_writeReg(0x04, 0x48, offUpper);
_writeReg(0x04, 0x47, offLower);
_writeReg(0x04, 0x48, offUpper); // Two-point bias, upper value
_writeReg(0x04, 0x47, offLower); // Two-point bias, lower value
_writeReg(0x04, 0x04, offLower); // Bias value for TX, Q-channel
}
void C6000_setModAmplitude(uint8_t iAmp, uint8_t qAmp)
{
_writeReg(0x00, 0x45, iAmp); // Mod2 magnitude (HR_C6000)
_writeReg(0x00, 0x46, qAmp); // Mod1 magnitude (HR_C6000)
_writeReg(0x04, 0x45, iAmp); // Mod2 magnitude (HR_C6000)
_writeReg(0x04, 0x46, qAmp); // Mod1 magnitude (HR_C6000)
}
void C6000_setMod2Bias(uint8_t bias)