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.

MMCHS_CAPA: "Reserved bit field. Do not write any value."



Given that a few of the fields in this register are listed as RW, how in the world is anyone expected to change the RW fields without writing to any of the rest of the fields?!

Given the ridiculousness of this, does the documentation incorrectly list the register those few bitfields as RW when they should be RO?

 

  • Matt,

    I think that in the case where a register has reserved fields these should be marked as RO; however, in cases like this I would suggest one of two things when accessing these registers to avoid any complications.

    A) When writing to the register perform a read-modify-write operation using the OR-EQUALS (register |= bits_you_want_high) or AND-EQUALS (register &= bits_you_want_low) modifiers. While annoying, this is probably the easiest way to avoid writing to reserved fields. Alternately,

    B) If you have a need to write a full 32-bit value to the device simply ensure that the default values of the reserved fields are not changed. This method is more prone to mistakes, but it can be done.

    Regarding the R/W vs RO portion please feel free to click the Submit Documentation Feedback button at the bottom of the datasheet/user guide in question as this feedback does go right back to the documentation owners. If you let me know which document(s) you are reading I will do so too.

  • Tim,

    My point is that you cannot do a write without writing ALL the bits.  Even doing a read-modify-write, you're STILL doing a WRITE.

    Also, I tried clicking on the link in the document, http://www.ti.com/csdocsurvey (it's on page 127 of SPRUGR0B.PDF), and was redirected to http://focus.ti.com/focus404.htm.

    Anyway, I was merely trying to point out an inconsistency in the documentation, not implying that I don't know how to:

    val |= BITS_I_WANT_ON;

    or

    val &= ~BITS_I_WANT_OFF;

    Thanks,

    Matt

  • MATT GESSNER said:
    My point is that you cannot do a write without writing ALL the bits.  Even doing a read-modify-write, you're STILL doing a WRITE.

    Anyway, I was merely trying to point out an inconsistency in the documentation, not implying that I don't know how to:

    Fair enough, and I hope my posting did not come off as too presumptuous. I think the main point the documentation is trying to make is that these register fields should not be modified at random as they're Reserved for some other function (maybe a test function), and erroneous rights can cause unexpected behavior.

    MATT GESSNER said:
    Also, I tried clicking on the link in the document, http://www.ti.com/csdocsurvey (it's on page 127 of SPRUGR0B.PDF), and was redirected to http://focus.ti.com/focus404.htm.
    Most of our documents have a link at the bottom of nearly every page which leads to this feedback page. Feel free to fill in the blanks if desired for this specific document. I have not seen that survey site before, but I will see if I can get in touch with the author to see if that can get fixed.