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.

EMIF GBLCTL register documentation

I am working with the C6713B and looking at SPRU266e. Figure 3-15 shows the reserved bits 13-12 to have a default value of 1. Note 'A' states: "The reserved bit fields should always be written with their default values when modifying the GBLCTL. Writing a value other than the default value to these fields may cause improper operation."

In Table 3-11 the description for reserved bits 31-12 shows a value of zero and the description states: "Reserved. The reserved bit location is always read as 0. A value written to this field has no effect."

So which is true Note 'A' which states I have to write the default values or the description in Table 3-11 which states writing any value to these bits have no effect? 

Also, I read the EMIF registers with an emulator and the GBLCTL register showed bits 13-12 as 1 which seems to disagree with the description in Table 3-11.

Can you provide clarification?

  • Dave,

    Welcome to the TI E2E forum. I hope you will find many good answers here and in the TI.com documents and in the TI Wiki Pages. Be sure to search those for helpful information and to browse for the questions others may have asked on similar topics.

    Unfortunately, I do not have access to the design document of the device to answer a discrepancy like this. But I wanted you to at least get a response from us.

    My experience with errors like this is that you can reason through the differences to figure out what would have been put in deliberately (and therefore correct) versus what would have been cut-and-paste or missed in a review (and therefore suspect to be wrong).

    In this case, since individual bits are listed for 15-12 with their default values, my recommendation is to trust Figure 3-15 and scoff at Table 3-11, for those bits.

    The fact that you confirmed bits 13-12 = 11b by reading them, that supports my recommendation pretty strongly.

    A safe recommendation is to always do a read-modify-write on this register when setting or clearing any bits.

    I am not sure I can promise a revision date for the document, so I will offer my apology for this and the confusion it has created.

    Regards,
    RandyP

  • Thanks for your response and normally your reasoning would be enough but we have some other conflicts with this. We have two versions of a radio that both use the C6713B, one has SDRAM and one SBSRAM.

    The SBSRAM version has been setting the value of the GLBCTL to 0x000030F8 and it has been booting up fine (in production for a couple of years). We changed it to 0x000030E8 since bit 15 is reserved for the C6713B and the unit locks up at power up. If we change the value to 0x000000E8 it will boot up fine.

    The radio with SDRAM uses a value of 0x000030E8 and it boots up at power up just fine. So as you can see we have one unit that now fails when bits 13-12 are set to 1 and one unit that passes when bits 13-12 are set to 1. They both seem to boot up fine with a value of 0x000000E8.

    Thus you see me delima. Which is the correct value? We have been having some intermittent unit lock up problems with the SDRAM version when the NOT RESET line is activated. Changing the value to 0x000000E8 did not stop these intermittent lock up problems.

    I don't want to set one unit to one value and the other unit to another value because this is the exact kind of problem that will come back to bite you later on. 

    I think you really need to find the design document or other proper documentation so that I can have a definitive answer as to which part of the documentation is correct and what is the proper way to handle bits 13-12.

  • Why would you not use 0x000030F8 for both? Since you are using C6713B, bit 4 is not required to be low as it is for the C6713.

    I am assuming when you said bit 15 you meant bit 4. If not, I have missed the point and need another chance to understand.

    Regards,
    RandyP

  • Yes it was bit 4 and yes you did miss the fact that a unit that has run fine for a couple of years suddenly won't boot up at power up when bit 4 is corrected to be zero. The value 0x000030F8 is not correct accocrding to spru266e. I believe it should be 0x000030E8 but this value caused a failure on one version of the radio while the other version of the radio contiues to work using that value. The radio that breaks will work with 0x000000E8. The confusion is still what bits 13-12 should be according to TI. As I have stated spru266e has conflicting information on what these bits should be set to. Since the value 0x000000E8 works on both versions of the radios I could use that value but I want to know what the proper value for bits 13-12 should be in case a different problem is being masked.

    As stated previously reading the register with an emulator right after reset seems to verify that the default value of 1 is correct for bits 13-12 which adds to the confusion as to why one version of the radio has problems booting up when these bits are set to 1. One place in the documentation states you must write the default values or improper operation my occur while another place states these bits should be 0 and writing has not effect. Just want an answer from the experts on which is correct.

     

  • Dave,

    In Table 3-15 for bit 4, it says "On C6713, C6712C, and C6711C DSP, this bit must be programmed to 0 for proper operation." You are not using any of those three devices, since you have said you are using the C6713B. The "B" rev is not included in this statement, so bit 4 should be used as needed, which in your case appears to be 1.

    If you use 0x000030F8, will both boards operate? This choice has not been mentioned in your posts above. Please let us know how well 0x000030F8 works for you.

    Regards,
    RandyP