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.

CC3100 CNYS lost

Other Parts Discussed in Thread: CC3100

Hello, all

We have a problem with CYNS loss during the running. As a result our single thread system got to stuck on VERIFY_PROTOCOL  and recovers by watchdog reset only.

We found that in Errata for SercvicePack 1.0.0.1.1 this case is described (MCS00131560)

We need to know the following:

- what does in mean "Wait for a long period of time before reading the response"? 

- when the Next service pack with such case protection is expected?

RGRDS, Alex

  • Hi Alex,

    This specific issue is caused when the Host is getting interrupted while doing a read operation from the device. if the interrupt is for a very long time >XmSec this issue can occur.

    Is this what happens in your system?

    To overcome it we are currently proposing two options:

    1. Complete the transaction without interrupting it in the middle
    2. Work in Always Active (if option 1 is not available)

    We don't have a firm date for the next service pack - we will update once available.

    Best Regards

    Nir Nitzani

  • Hello, Nir

    1. We have a problem with disabling interrupts during sl_Recv() call (here the problem occurs) because this is a long procedure that prevent normal functionality of modem UART we have on our system

    2. Please point me on Always Active using: we use AP mode and don't change any power saving mode of the CC3100

    3. Some more info about our problem (we sent this infot to Alon via email at Oct 13 and did not receive answer yet)

    Our system call sl_Recv() every 20 ms. CC3100 is Access point

     

    The SDK got stuck in driver.c row#1232:

    function _SlDrvRxHdrRead(),

    statement VERIFY_PROTOCOL(SyncCnt < SL_SYNC_SCAN_THRESHOLD);

     

    The reason is that on H2N_CNYS_PATTERN sending the SPI response is not valid and after some readings is the same (2 same pairs)

     

    The SPI exchange trace is the following (WR and RD means Write and Read):

     

    // Previous successful call

    WR    4 bytes     21 43 34 12

    WR    4 bytes     0A 94 04 00

    WR    4 bytes     00 06 90 00

    WR    4 bytes     65 87 78 56

    RD    4 bytes     BF DC CD ab

    RD    4 bytes     0A 10 08 00

    RD    4 bytes     17 00 00 01

    RD    4 bytes     F5 FF 90 00

    // The call that got stuck

    WR    4 bytes     21 43 34 12

    WR    4 bytes     0A 94 04 00

    WR    4 bytes     00 06 90 00

    WR    4 bytes     65 87 78 56

    RD    4 bytes     BC DC 79 dd

    RD    4 bytes     9A 57 14 20

    RD    4 bytes     10 00 2E 00

    RD    4 bytes     01 02 EA ff

    RD    4 bytes     21 01 7B b9

    RD    4 bytes     7B B9 7B b9

    RD    4 bytes     7B B9 7B b9

    RD    4 bytes     7B B9 7B b9

    RD    4 bytes     7B B9 7B b9

    RD    4 bytes     7B B9 7B b9

    … (all time 7B B9 7B b9)

     

    In other "bad" case the repeated value may be BC DC BC DC

     

    The configuration of the CC3100 is the following

    - SL Host Driver Version: 1.0.0.1

    Build Version 2.2.7.1.31.1.2.4.2.1.5.3.23 (same was on 2.0.7.12.31.0.0.4.5.1.5.3.20)

    Chip ID 03000003, ROM ver,2222

    - Mode – AP

    - SPI frequency 1…12 MHz (different frequency were tested)

    - Our socket is opened as following

        g_RawPacketSockID = sl_Socket(SL_AF_PACKET,SL_SOCK_RAW,0);

        unsigned long enebleOption = 1; // SlSockNonblocking_t

        Status = sl_SetSockOpt (g_RawPacketSockID, SL_SOL_SOCKET, SL_SO_NONBLOCKING, &enebleOption, sizeof(enebleOption));

     RGRDS, Alex

     

  • Hi Nati,

    Can you please provide the silk on your CC3100 module? it should be something like XCC3100HZ

    Also, can you please provide a logic capture of the SPI lines during the time the issue happens?

    Thanks,
    Alon

  • Hi, Alon

    1. We use modul XC3100MODZH1MAMOB

    2. As Nati infromed you via the email, we have no logic analyzer

    RGRDS, Alex

  • Hi Alex,

    Can you please try disabling any other interrupts in your system except the CC3100 interrupt?

    Thanks,
    Alon

  • Hello, Alon

    1. I did such test during 72 hours (stand alone unit) with other interrupts disabling during sl_Recv() call and did not see CNYS problems. But in this case  we got a lot of modem UART overrun errors that does not allow for our system work properly.

    Note, that with other interrupts enabled I see CNYS problem about 1-2 times per 2 days

    In any case I wil disable interrupt in your _SlDrvRxHdrRead() function during the syncronization and will test onto other our stand alone unit

    2. I did not receive answer about Always Active option. I suppose that this is a default, but how can I check this?

    RGRDS, Alex

  • Hello, Alon

    After about 10 days of standalone unit running I have got ASSERT on VERIFY_PROTOCOL(SyncCnt < SL_SYNC_SCAN_THRESHOLD)  in _SlDrvRxHdrRead() function while other interrupts are disabled.

    Unfortunately because this is an standalone unit, I can not send SPI exchange history, but I suppose it is that same as in debugger

    RGRDS, Alex