This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28335: McBSP RJUST field does not right justify with sign extension

Part Number: TMS320F28335
Other Parts Discussed in Thread: ADS1278, CONTROLSUITE

I have a TMS320C2000™ Experimenter Kit [R3] with a F28335 Delfino Family Control Card [R2.2].

I'm using its McBSP-B to read data from a ADS1x7xEVM Rev F populated with an ADS1278, which works as expected throughout all the configuration I've set up.

Now, due to the format in which the ADS1278 sends the data, 24 bits of data in twos complement format,  I wanted to get the sign extension so when retrieving DRR2 (MS word) and DRR1 (LS word) data the whole 32 bit value would be interpreted correctly as a signed 32 bit value.

Surprise, surprise! McbspbRegs.SPCR1.bit.RJUST = 0b01; doesn't work!

As per datasheet:

My findings reveal that values 0 and 2 work as expected, value 1 does not sign-extend so basically works just like value 0.

Out of despair I just tried value 3 which is reserved and advised not to use, and this value 3 did the sign-extension just as value 1 was supposed to do.

EDIT: Sorry, I was too quick to look at the data, value 3 DOES NOT sign-extend the value! So I have no way to sign-extend using the McBSP hardware as it is supposed to. END EDIT

I've checked DSP2833x_Mcbsp.h hoping to find a misalignment on the bit fields of struct  SPCR1_BITS, but everything was OK.

Code Composer Studio  Version: 6.1.3.00034 + controlSUITE v3.4.0

So, I could circumvent the problem, but still there is some problem with my silicon rev or what? I'd like to get an answer as to the cause of such issue.

Thanks.

Best regards,

Rui