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.

TiWi-SL CC3000 Programming the service pack

Other Parts Discussed in Thread: MSP430FR5739

On the patch programmer wiki (http://processors.wiki.ti.com/index.php/CC3000_Release_1.10_-_Patch_Programmer) it states:

Driver Patch Programmer

The first part, driver patch programmer, first performs reading of your EEPROM parameters - Radio Module parameters and MAC address.

This is done in order to restore those values after rewriting the EEPROM.

Why does the Driver patch programmer need to read the radio module parameters and the MAC address?  The radio parameters and MAC address are stored in a different section of the EEPROM so writing the driver patch to its section shouldn't touch the other sections.  The wiki statement seems to imply that the MAC address and radio parameters will get overwritten when programming the driver patch.  Can someone please clarify why the driver patch programmer needs to needs to deal with these other EEPROM sections?

  • Hi,

    The reason both radio module parameters and the MAC address are stored first, is because of re-writing the EEPROM's FAT. By doing this, the content is actually "erased".

    Re-writing the FAT is required as by default the original FAT isn't compatible with the current patche's size. We needed to increase each from 4KB to 8KB (FW and Driver patches dections).

    Hope this clarifies.

    Regards,

    Tomer

     

  • Hi Tomer,

    Thanks for the info. I need little more info the this regard:

     I somehow upgraded to v1.10 from v1.3. The process included the FAT writing as well. And now I can read the SP version as 1.10. But at this point I am not sure the radio parameters are written correctly or not.

    When I try to read the parameteres, it gives me error 0x03.

                 for (index = 0; index < 16; index++)
                 {
                   return_status |= nvmem_read(NVMEM_RM_FILEID, 8, 8*index, pRMParams);
                   pRMParams += 8;
                 }

    And  writing default params also not successful.

    So my question here is:

    a) After upgrading to v1.10, should we be able to read and write radio parameters without going back to v1.5 ?

    b) Please suggest what could be the issue in my case?

    c) Once we have SP version retured as v1.10, do we ever need to go back and write older patch for any required operation.

    d) Apart from reading patch version thru API call, what operation we should perform to make sure we that all latest and gratest stuffs in the TiWi-SL module.

    Please clearify above doubts so that we can focus on rest of the development.

    Thanks in advance.

    Regards

     

  • Hi,

    a) Once you flash V1.10, Only the patches FILE IDs and the MAC FILE ID are writable. All other sections are actually protected from writing from the host. You should be able to read though from every FILE ID. Please note that in the patch programmer, in order to have write access to the FAT, we have to load with old patches first, which doesn't protect any FILE ID, nor the FAT.

    b) Please put debug point in the patch programmer right after reading the content of the radio modules. cRMParamsFromEeprom array should be filled. I would like to understand if this array is zero after reading the content. 

    c) No, you will only need to upgrade to newer service packs in order to obtain the latest release which will contain bug fixes, and maybe small features.

    d) You should make sure you flash first the driver patches, and then the fw patches. Once this is done, it is sufficient to read the SP version, and to verify. If the number matches, then it should be ok. 

  • Thanks Tomer.

    a) thanks

    b)

    value in cRMdefaultParams is as above starting from address '0x200082BC'. It is not same as default values or not even zero. Please let me know if you think it is still valid. by the way what are the radio parameteres and what is the structure of this array. From developper point of view, where these parameters will come into the picture? Also the return of the "nvmem_read(NVMEM_RM_FILEID, 8, 8*index, pRMParams); " is 0x03.

    Also let me know if I need to go back to v1.5 and need to update the RM parameters again.

    c) thanks for answer

    d) From this it looks like we have correct and latest patch now. Does it matter what FAT contents we have right now. Do we need to verify this ?

    Thanks and Regards,

     

  • Hi,

    The radio module parameters should reside at 0x6830 address of the 32KB EEPROM. http://processors.wiki.ti.com/index.php/CC3000_EEPROM_user_interface

    Those parameters are used to generate "nvs" file which contains the calibrated data. This file is generated on first boot up ever of a device's lifetime. 

    From developer's point of view, the structure should not play a role. The parameters should not be changed, and are defined by the module maker based on the specific module vendor.

    If you used the patch programmer, the FAT is ok, as it's structured in this utility. I will update you b/o next week about the status 0x3 you receive.


    Regards,

    Tomer

  • Hi,

    Looking into the code, 0x3 means invalid data. This means that the programmed radio module parameters are invalid. In case that happens, the patch programmer should write the default ones. This means that on your next attempt to run the patch programmer, or just reading the radio parameters, you should receive correct values.

    Regards,

    Tomer

  • Thanks Tomer for looking into this.

    But then you said with patch v1.10 only mac file ID and patches IDs are writable. So does it mean to write correct or default radio parameters I need to go back to patch v1.5?

    In currect suitation, It does not write the defaults with patch v.10.

    Please clarify. Also Where we should see the issues if I do not have correct radio paramteres in my module?

    Thanks in helping clarifying all subsequent doubts.

    Regards,

  • The patch programmer works in a way that it first reads the radio module parameters, and at the end of the operation (rewriting the FAT, and writing the patches), it rewrites them back to the EEPROM. 

    In case the read operation fails (radio module parameters are not written correctly for some reason), it will write default parameters as defined in the patch programmer. Those parameters are optimized for TI module, but should work fine for other modules as well.

    You don't need to go back to SP1.5. Also, I don't expect misbehavior due to using default parameters from the patch programmer. For example, you may encounter small deviation (probably less than 1dB) in output power, but probably no more than that.

    Regards,

    Tomer

  • If the radio parameters are now corrupt in the TiWi-SL module the module will no longer be FCC/IC compliant.  The original radio parameters must be programmed back into the module.  Attached are the original radio parameters for the TiWi-SL module.  You can place them in a struct in the code and be sure to add "0x" to each byte to denote it is a hex value.

  • Agree, that should be the right approach. Just change the patch programmer radio parameters to match your module.

  • Hi Tomer and Ryan,

    Ryan:

    The file that you gave have 127 bytes but the default paramteres have 128 bytes of data. Is this still ok ? From PP code it is going to write 128 of bytes. Please suggest.

    Tomer:

    I still have err code 0x03 for nvmem_read and 0x05 for nvmem_write. Function comments says it returns number of bytes read/written. but there is no description for errors.

    What could be the reason that even read does not work?

    What could be issue in this case? With this module, we got few things working e.g. get/set mac addr, get sp ver, connect to router, send data from module to PC server, etc. and still few things we are having trouble getting work are SmartConfig, reliable reception in TiWi module etc.

    Please let me know what you think?

  • 127 bytes is the correct size of the radio parameters.  There should be no issue.  Maybe Tomer can comment on why there is an extra byte written.

  • Hi,

    The patch programmer does write 128 bytes, but the last byte doesn't actually take affect since only the 127 bytes represent the radio module parameters. So it should be ok.

    0x3 means invalid data. This means that the programmed radio module parameters are invalid. Please run the patch programmer as is. It will write the default parameters since the existing data is invalid. Then put a break point at the read. You should not receive any error. 

    Incorrect radio parameters affect calibration process, and may affect the behavior of the chip. This may explain the instability that you see.

    Are you using MSP430FR5739?

    Please note that you're only allowed to write to the radio module parameters if booting without patches, or when loading with old patches as implemented in the patch programmer (loading with V1.5 where the FILE IDs are not protected).


    Regards,

    Tomer


  • Hi Tomer,

    Thanks!

    We are NOT using MSP430FR5739. We are using a non-TI host micro (MCF5253). Is there any difference with respect to host micro ?

    I shall again try as per your instructions.

    Regards,

    Manish K

  • HI,

    There should not be a difference, as long as you're using the exact application as we release.

    I don't assume you have a problem with your EEPROM, but for that please follow the test I've requested, just run the patch programmer as we provide, and then run again. Make sure to put break point by the time it reaches the read parameters section. 

    Thanks,

    Tomer