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.

CC3135: Consistent FATAL ERROR: No Cmd Ack detected

Part Number: CC3135
Other Parts Discussed in Thread: SYSBIOS

Tool/software:

Hello,

I'm using the CC3135 on a custom pcb. I have it up to date and programmed with the latest servicepack available in Simplelink_sdk_wifi_plugin_4_20_00_10, the latest software available on the ti page for the cc3135.

I am talking to the cc3135 with a cc2674R10RGZ running SDK 7.10 and TIRTOS. The sl_Task() function is being initialized via the kernel/tirtos7/packages/ti/sysbios/knl/Task.h interface since that's what we use for the other tasks we're running and I've gave it the highest priority ala

    Task_Params_init(&slProcTaskParams);
    slProcTaskParams.stack = slProcTaskStack;
    slProcTaskParams.stackSize = sizeof(slProcTaskStack);
    slProcTaskParams.name = "slProcTaskFxn";
    slProcTaskParams.priority = 15; // highest priority.
    slProcTaskHandle = Task_create((Task_FuncPtr)sl_Task, &slProcTaskParams, NULL);


I'm calling sl_Start with a callback and both sl_Start and the callback when it fires return 0.

When I run any of the device information functions in device.h, ie

             _u8 pConfigOptWlan;
             _u16 pConfigLenWlan;
             _u32 statusWlan;
             pConfigOptWlan = SL_DEVICE_EVENT_CLASS_WLAN;
             pConfigLenWlan = sizeof(_u32);
            int rc = sl_DeviceGet(SL_DEVICE_STATUS,&pConfigOptWlan,&pConfigLenWlan,(_u8 *)(&statusWlan));

or attempt to scan/connect via the wlan.h functions like below I get the No Cmd Ack detected errors

        SlWlanSecParams_t secParams;
        secParams.Key = "Ourpassword";
        secParams.KeyLen = strlen("Ourpassword");
        secParams.Type = SL_WLAN_SEC_TYPE_WPA_WPA2;
        int rc = sl_WlanConnect("ssid", strlen("ssid"),0,&secParams,0);
        DBG_log(LOG_INFO, "sl_WlanConnect returns %i", rc);

and the failed cmd opcode is 0x8c80. For the `sl_DeviceGet` functions, if I try those instead I get opcodes corresponding to those commands. When the failed cmd opcode comes back I'll get -2005 errors, which is SL_SPI_ABORTED.

I have verified that the user.h's SL_TIMESTAMP_TICKS_IN_10_MILLISECONDS is reasonably accurate, it says theres 1000 ticks in 10 ms and rough timer testing calling the same function returns 1010. I've also set CPU_FREQ_IN_MHZ to 48 since the cc2674 is a 48MHz processor.

I've reduced the spi bit rate to 1Mbit and then further to 100kbit and it seems to have no impact on this problem. The analog of the SPI lines looks clean?

What else can I do to further debug why the cc/driver doesnt seem to want to behave?


Time [s],Packet ID,MOSI,MISO
1.534197000000000,0,0x00,0x32
7.929017600000000,0,0x00,0xC3
7.929112600000000,0,0x00,0xBC
7.929207600000000,0,0x00,0x2B
7.929302600000000,0,0x5E,0x7F
7.931573500000000,0,0x6E,0xFF
7.931668500000000,0,0x66,0xFF
7.931763500000000,0,0xD5,0xFF
7.931858500000000,0,0x84,0xFF
7.931953500000000,0,0x00,0xFF
7.932048500000000,0,0x0A,0xFF
7.932143500000000,0,0x00,0xFF
7.932238500000000,0,0x12,0xFF
7.934504300000000,0,0x00,0xFF
7.934599300000000,0,0x02,0xFF
7.934694300000000,0,0x03,0xFF
7.934789300000000,0,0x00,0xFF
7.934884300000000,0,0x00,0xFF
7.934979300000000,0,0x00,0xFF
7.935074300000000,0,0x00,0xFF
7.935169200000000,0,0x08,0xFF
7.937686200000000,0,0x88,0xFF
7.937781200000000,0,0x88,0xFF
7.937876200000000,0,0x88,0xFF
7.937971200000000,0,0x80,0xFF
7.938066200000000,0,0x00,0xFF
7.938161200000000,0,0x08,0xFF
7.938256200000000,0,0x18,0xFF
7.938351200000000,0,0x80,0xFF
7.938446200000000,0,0x00,0xFF
7.938541200000000,0,0x00,0xFF
7.938636200000000,0,0x00,0xFF
7.938731200000000,0,0x00,0x90
8.307078300000001,0,0x00,0xA1
8.307173300000001,0,0x00,0x9A
8.307268300000000,0,0x00,0x09
8.307363300000000,0,0x00,0x40
8.309610599999999,0,0x00,0x46
8.309705599999999,0,0x00,0x12
8.309800600000001,0,0x00,0x00
8.309895600000001,0,0x00,0x01
8.312204299999999,0,0x00,0x05
8.312299299999999,0,0x00,0x80
8.312394299999999,0,0x00,0x00
8.312489299999999,0,0x00,0x00
8.312584299999999,0,0x00,0x00
8.312679299999999,0,0x00,0x00
8.312774299999999,0,0x00,0x00
8.312869299999999,0,0x00,0x07
8.312964300000001,0,0x00,0x36
8.313059300000001,0,0x00,0x34
8.313154200000000,0,0x00,0xBB
8.313249200000000,0,0x00,0x32
8.313344200000000,0,0x00,0xB9
8.313439199999999,0,0x00,0xBA
8.313534199999999,0,0x00,0x37
8.313629199999999,0,0x00,0xB1
8.313724199999999,0,0x00,0xB5
8.313819199999999,0,0x00,0xB0
8.313914199999999,0,0x00,0xB4
8.314009199999999,0,0x00,0x90
8.314104199999999,0,0x00,0x90
8.314199199999999,0,0x00,0xA0
8.314294200000001,0,0x00,0x20
8.314389200000001,0,0x00,0x12
8.314484200000001,0,0x00,0x3A
8.314579200000001,0,0x00,0xB6
8.314674200000001,0,0x00,0xB6
8.314769200000001,0,0x00,0xB2
8.314864200000001,0,0x00,0xB9
8.314959200000001,0,0x00,0x19
8.315054200000001,0,0x00,0x18
8.315149200000000,0,0x00,0x19
8.315244099999999,0,0x00,0x18
8.315339099999999,0,0x00,0x00
8.315434099999999,0,0x00,0x00


EDIT: I'm seeing that the 32xx sdk contains a mildly newer servicepack. Is that what I'm supposed to be using for the service pack and host driver for the cc3135instead of the stuff on the downloads page for the cc3135?

  • Hi,

    Basically, you can take the host driver from CC32xx SDK but your issue is very basic and should work even with the older CC31xx SDK so for now I would stay with that.

    Can you attach the full logic capture with the SPI lines and also with the IRQ and nReset line?

    In addition, it would be good to get the NWP log. With CC3135 it should be easier since you don't need to modify the code, just connect a level shifter to the logger pin and record the binary stream.

    Have you done it before?

    you can find instructions in our NWP programmers guide, see. SWRU455 chapter 20. 

    Lastly, I would be out till beginning of next week so please expect a delay in my response.

    Regards,

    Shlomi