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.

CC8520 - Basic SPI Operation and EHIF command set manual errors.

Hi, 

I have some issue with flash programming esp. Boot Reset, Block unlock SPI command are not effective. My question is there a way to execute these commands.  Also after reviewing datasheet manual I found lot of errors in Basic SPI operation and eHIF command set section. 

Please let me know if some one could help. 

RBG

 

  • Hi Ronak,

    Can you clarify? What do you mean by "not effective"? What status words do you read? (Remember to read the status word after every command and not the one that come out as you clock the command in.)

    Can you list the errors you see in the EHIF command section?

    Regards

    Kristoffer

  • Hi Kristoffer, 

    Thank you for the reply. When I execute Boot Reset followed by BL_Unlock_SPI and read my SW ,  the value returned after SW read is (0x8AIF)h ( which means EHIF ready for new SPI operation, Power level of (0x5)h, unexpected read/write SPI command and volume, power,network and baud rate setting changed). Most of these be must be reset to 0. 

    Also I have complete document for the errors in EHIF. I can share with you by mail. 

    Ronak

  • Hi Ronak,

    The bits in the status words used in the boot sequence have different meaning than the status words in active mode (this is confusing for sure).

    I have not done this myself and I'm waiting for the designer to enlighten me, but what if you, after BOOT_RESET(), stall in a while loop where you continously do the SW read and exit loop when sw = 0x8021. Then you do the BL_UNLOCK_SPI. Will this help?

    Kristoffer

  • Hi Kristoffer, 

    I ran Boot_reset in loop for all my test modules and device SW doesn't read 0x802. I kept a counter to read how many time it execute the instruction and the never exits and I have to kill my program to end it.

    I will surely wait for reply from Designer to see about the details. I am attaching you error report for the CC85xx Manual. Let me know if there are any correction or explanation. 2308.TI CC8520 Manual errors.pdf

    Ronak 

  • Thank you for the list. The typos will be corrected :-)

    I didn'n mean running BOOT_RESET() in a loop. I meant something like this (pseudo-code):

    BOOT_RESET();

    while(sw != 0x8021) {

             perform get status word (SPI command 0x8000)

    }

    // then performing BL_UNLOCK_SPI().....

    BL_UNLOCK_SPI();

     

    Regards

    Kristoffer

  • Hi Kristoffer, 

    Tried out both the ways. No change in SW read word. Verified with different modules too..

    Ronak 

  • Hi Kristoffer, 

    I think there is another major typo. error :-)

    3554.CC85xx manual errors.doc

    Ronak

  • Hi Ronak,

    Thank you for pointing out the typos :) We will correct them.

    I talked to the expert, and he had two possible explanations:

    -When CSn is pulled low (activating the SPI interface), are you waiting to give the SPI command until you see that MISO is high?

    -If you are waking from hardware low-power mode you must wait until the digital regulator (and possibly also XOSC) are running. I could be smart to wait for 1 ms from CSn pulled low until starting the SPI transaction.

     

    -Kristoffer

  • Hi Kristoffer, 

    I wish to know when CC85xx is programmed using Purepath Wireless Configurator is the boot loader memory or memory section from 0x1000 to 0x5FFF because I was interested to know where is the device info / manufacture info or chip info store. Are they in unprogramed memory or user programmed memory. 

    Ronak 

  • Hi Kristoffer,

    Thank you for the inputs. I tried my code with sufficient wait time. My problem is I am trying to load image generated by purepath using external hardware. I am able to perform most of the operation and commands. But now for SPI block transfer I am following the procedure as in manual but with additional delay and Status word check. The problem is when the system gets reset, SW reflects that the reset operation was performed. But when you give command for BL_SPI_UNLOCK the device reflects EVT_SPI_ERROR in SW. And system reset needs to be performed to come out of this mode. Tried out all means to find out the root cause for this issue. 

    Let me know of you are if you can provide some inputs on the same. 

    Ronak

  • Hi Ronak,

    I tried it myself now, and I got it to work. It's possibly an error in the user guide though (we will have to make sure). If you see the waveforms on page 66 for the BOOT_RESET() command, you see that after giving the command you are supposed to wait until the MISO pin goes high before you pull CSn high again. This is because the MOSI and CSn pin are checked some time after the cammand is given (50 us or so): if both are low this means BOOT_RESET, if MOSI is high and CSn is low this means SYS_RESET. The MISO pin was supposed to go high after this check had been performed, however this never happened when I tried. So what I had to do was to perform a manual wait and then pull CSn high. I tried with 80 us and 100 us which was both enough. When I then performed a GET_STATUS() (page 67) I got status word 0x8021 which means "waitig for the BL_UNLOCK_SPI command". If I then perform the BL_UNLOCK_SPI command I get 0x8020 ("unlock succeed"). Can you reproduce this?

    -Kristoffer

  • Hi Kristoffer, 

    Ya, there were some issue with waveform that you discussed. And seem that it worked out fine. Thanks for the reply. 

    -Ronak