I am using QM33120WDK1, looked for the source code qorvo providing.
The following figure is what I understood.
Based on variable d between two antennas 1&2 and variable r from antenna 1 to the tag, and lastly variable p, we can get the angle / coordinate x&y.
I was going back to the code that where variable p from.
I could reach to somewhere read pdoa result from this function.
/**
* dw3000_readpdoa - Read the PDOA result.
* @dw: The DW device.
*
* This is used to read the PDOA result, it is the phase difference between
* either the Ipatov and STS POA, or the two STS POAs, depending on the PDOA
* mode of operation. (POA - Phase Of Arrival).
* NOTE: To convert to degrees: float pdoa_deg =
* ((float)pdoa / (1 << 11)) * 180 / M_PI.
*
* Return: The PDOA result (signed in [1:-11] radian units).
*/
static inline s16 dw3000_readpdoa(struct dwchip_s *dw)
{
int16_t tmp;
dw->dwt_driver->dwt_mcps_ops->ioctl(dw, DWT_READPDOA, 0, (void *)&tmp);
return tmp;
}
Input is coming from this structure : dwchip_s → mcps802154_llhw : Low-level hardware without MCPS
Getting data from SPI communication from dw series chip.
Question 1. The terms that are used in here : Ipatov, STS POA, MCPS
Question 2. So, where is variable coming from?
Uwb sp1 type of frames structure is sync-sfd-sts-phr-data.
Sync is neutral and is equal to Ipatov, which is a name of scientist who discovered autocorrelated sequences which are named “ipatov sequences” - search wikipedia.
STS is a “Secure Time Stamp” specially generated by special block sequence, similar to ipatov, but is used for security, read 802.15.4-2020 standard.
POA is “phase of arrival”;
MCPS - is an abreviature from sw, in your case a structure which has a pointer to the low level driver instance…
I think if you’ll put more questions here, those who are writing documentation would improve it
The signal from the tag is received by both antennas but with different phases due to the distance “d”, from this difference, the AoA is estimated. So, no need to calculate “p” (I don’t even know if it is possible, considering the data available).
Please take a look at this FiRa Consortium video, explaining more about AoA/PDoA: