Hi,
I'm using AD9375 and output from TX one signal tone sine as image. I see image rejection the same specification. But DC offset seems higher specification (is M2 point in image).
I had enabled DC_OFFSET in initCalMask to Calibration every change frequency:
mykonosErr_t SetFreq(mykonosDevice_t mykDevice, uint64_t u64TxFrq, uint64_t u64RxFrq)
{
mykonosErr_t mykError;
uint8_t errorFlag = 0;
uint8_t errorCode = 0;
uint32_t initCalsCompleted = 0;
uint8_t pllLockStatus = 0;
uint32_t initCalMask =TX_QEC_INIT |
LOOPBACK_RX_LO_DELAY |
LOOPBACK_RX_RX_QEC_INIT |
RX_LO_DELAY | RX_QEC_INIT | DC_OFFSET ;
MYKONOS_radioOff(&mykDevice);
if ((mykError = MYKONOS_setRfPllFrequency(&mykDevice, TX_PLL, u64TxFrq)) != MYKONOS_ERR_OK)
{
return MYKONOS_ERR_FAILED;
}
if ((mykError = MYKONOS_setRfPllFrequency(&mykDevice, RX_PLL, u64RxFrq)) != MYKONOS_ERR_OK)
{
return MYKONOS_ERR_FAILED;
}
Delay_Ms(100);
if ((mykError = MYKONOS_checkPllsLockStatus(&mykDevice, &pllLockStatus)) != MYKONOS_ERR_OK)
{
return MYKONOS_ERR_FAILED;
}
// LREP("\r\n[ LockStatus: 0x%x]", pllLockStatus);
// LREP("\r\n[ LockStatus1: 0x%x]", (pllLockStatus & 0x0F));
if ((pllLockStatus & 0x0F) == 0x0F)
{
LREP("\r\n [PLL Locked]");
}
else
{
LREP("\r\n[ PLL Not Lock]");
return MYKONOS_ERR_FAILED;;
}
// Make sure PA is ON
if((mykError = MYKONOS_abortInitCals(&mykDevice, &initCalsCompleted)) != MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug why failed > ***/
//errorString = getMykonosErrorMessage(mykError);
puts("abortInitCals failed");
fflush(stdout);
puts(getMykonosErrorMessage(mykError));
}
if ((mykError = MYKONOS_runInitCals(&mykDevice, initCalMask)) != MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug why failed > ***/
//errorString = getMykonosErrorMessage(mykError);
puts("MYKONOS_runInitCals");
fflush(stdout);
puts(getMykonosErrorMessage(mykError));
}
if ((mykError = MYKONOS_waitInitCals(&mykDevice, 60000, &errorFlag, &errorCode)) != MYKONOS_ERR_OK)
{
/*** < Info: errorString will contain log error string in order to debug why failed > ***/
//errorString = getMykonosErrorMessage(mykError);
puts("MYKONOS_waitInitCals");
fflush(stdout);
puts(getMykonosErrorMessage(mykError));
}
MYKONOS_radioOn(&mykDevice);
return MYKONOS_ERR_OK;
}
How to reduce DC offset in Tx and Rx?
Thanks