18.4.3 CORDIC Block
The CORDIC block implements the CORDIC algorithm’s rotation mode. It accepts three inputs: x and y coordinates describing the feedback angle, , in input CORDIC registers RDCCORDXIN, RDCCORDYIN and RDCCORDANGIN respectively. The CORDIC block performs a vector rotation on the input x and y coordinates. The resulting rotated x and y coordinates are then output to the RDCCORDXOUT and RDCCORDYOUT registers. An example of a software tracking loop is provided in Example 1 of the Application Example.
While the CXIN(RDCCORDXIN[17:0]), CYIN(RDCCORDYIN[17:0]), and CANGIN(RDCCORDANGIN[17:0])
input bits are generally readable and writable, writes are blocked when CORDICSTART is
set. When CORDICSTART(RDCCON[0]) = 1, the module will begin executing
the CORDIC algorithm, and the CORDICDONE(RDCSTAT[7]) bit will be cleared. When the
execution of the algorithm is completed, the CORDICDONE bit will be reset to
1, and the RDCCORDXOUT and RDCCORDYOUT registers will be updated
with the x and y coordinates. When the CORDICDONE bit is set or the module is disabled
by clearing ON(RDCCON[15]), the CORDICSTART bit will be cleared. See Example 2 in the Application Example for a demonstration
of x, y, and feedback angle () inputs and their resulting outputs.
