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: cc3100 stm32 mcu通信

Part Number: CC3100
Other Parts Discussed in Thread: CC3200, , UNIFLASH

TI工程师好,想请教以下问题:

我通过STM32 mcu 通过spi与cc3100通信, 目前通过串口已经烧写完成servicepack_1.0.1.15-2.14.0.0.bin

[01:52:52] INFO: --- please restart the device ---
[01:52:59] INFO: connection succeeded
[01:52:59] INFO: getting storage list
[01:52:59] INFO: > Executing Operation: ServicePackProgramming
[01:52:59] INFO: Path to the service pack file: C:/ti/CC3100_CC3200_ServicePack_1.0.1.15-2.14.0.0/servicepack_1.0.1.15-2.14.0.0.bin
[01:52:59] INFO: reading version info
[01:52:59] INFO: CC3100R Device detected.
[01:52:59] INFO: NWP/MAC/PHY Version from Service Pack:
[01:52:59] INFO: NWP Patch version: 2.14.0.0
[01:52:59] INFO: MAC Patch version: 1.6.0.2
[01:52:59] INFO: PHY Patch version: 1.0.3.37
[01:52:59] INFO: reading version info
[01:52:59] INFO: DEVICE CC3100 ES1.33
[01:52:59] INFO: reading version info
[01:53:01] INFO: Downloading file "/sys/servicepack.ucf" with size 38868
[01:53:05] INFO:

New Token is 0x2DFB45DB
[01:53:05] INFO: Download complete
[01:53:05] INFO: > Executing Operation: Disconnect
[01:53:05] Operation ServicePackProgramming returned.

我移植了例程到mcu程序,通过spi测试例程成功,然后使用getting_started_with_wlan_ap/station例程卡在_SlDrvSyncObjWaitTimeout里。

正常调用sl_Start函数得用多长时间呢?mode = sl_Start(0, 0, 0); 有时候会耗时1分钟多返回mode = 3

接着继续执行 retVal = sl_WlanSetMode(ROLE_STA); 最后进入LOOP_FOREVER()

想请问怎么排查问题

  • 您好,

    sl_Start是用来打开NWP的,若没有回调函数它应该是阻塞的;若有InitCallBack,它将立即返回。

    Sl_Start – This function initializes the communication interface, sets the enable pin of the device, and calls
    to the init complete callback. If no callback function is provided, the function is blocking until the device
    finishes the initialization process.


    _i16 sl_Start(const void* pIfHdl, _i8* pDevName, const P_INIT_CALLBACK pInitCallBack);

    所以您可以重点检查一下你是否在 sl_start 提供了回调函数。

  • 检查导致驱动程序挂在 _SlDrvSyncObjWaitTimeout 调用上的高级函数调用。

    这个问题似乎与内存管理、 FreeRTOS 有关。

    考虑检查内存的分配方式、堆大小以及可能的利用 FreeRTOS 支持通道。

  • 你好,我用的C:\ti\CC3100SDK_1.3.0\cc3100-sdk\platform\stm32discovery文件进行移植的,是不带rtos的,也不带回调函数是mode = sl_Start(0, 0, 0),我查看demo里的例程都没有带回调函数的

  • 1.您是在CC3100上运行 getting_started_with_wlan_ap/station 例程卡在 _SlDrvSyncObjWaitTimeout 里吗?

    2.sl_Start(0, 0, 0) 是启动 CC3100 吗?CC3100 的.bin文件有没有烧录到SPI Flash中

    3.请确认烧写 cc3100 的一个对的文件到 FLASH 中

  • 1,CC3100只通过串口烧写servicepack_1.0.1.15-2.14.0.0.bin文件到外部flash里,除了烧写这个还需要其他bin文件吗?

    2,getting_started_with_wlan_ap/station 例程 这个例程我是移植到stm32 mcu里的,该mcu是和cc3100 spi通信

    3,第3点没明白什么意思,除了烧写servicepack还需要其他的bin文件吗?

    我的理解是这样的: 先对cc3100外部spi flash烧写servicepack文件,然后我就可以通过stm32 mcu以spi接口方式配置cc3100的各种网络模式等,可能我对这款芯片的理解不对,望指正

  • 对cc3100外部spi flash烧写servicepack文件 我是用TI提供的uniflash,我也试过通过uniflash配置AP模式这些都是可以的。现在我需要stm32 mcu通过spi来对cc3100做ap/station配置,然后做一些网络通讯工作