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.

[参考译文] CCS/CC3220SF-LAUNCHXL:CCS 7.1和 CC3220SF

Guru**** 2587365 points
Other Parts Discussed in Thread: CC3220SF, UNIFLASH, CC3200

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/591368/ccs-cc3220sf-launchxl-ccs-7-1-and-cc3220sf

器件型号:CC3220SF-LAUNCHXL
主题中讨论的其他器件:CC3220SFUNIFLASHCC3200

工具/软件:Code Composer Studio

您好!

我想将 CCS 7.1用于 CC3220SF Launchpad 以及我的定制 CC3220SF 应用。

在研究了 SDK 示例并浏览了互联网后、我没有找到 CCS 7.1的示例。

第一个问题:

是否有一个示例说明如何在 CCS 7.1中创建空项目非操作系统?

或者可能有我可以使用的模板吗?

第二个问题:

如何在 CCS 7.1或 Uniflash 实用程序中使用带 XDS 接口的 launchpad 对串行闪存进行编程?

此致

Jorg

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jorg:

    您可以在 SDK 中导入示例项目以用作开发模板。 具体来说,对于 CC3220SF 非操作系统,您可以导入 \examples\nortos\cC3220SF_LAUNCHXL\demos 中的任何一个项目。

    查看 快速入门指南的第3章 、逐步了解如何开始导入示例项目。

    2.上面链接的快速入门指南第3.4节中提供了一些有关使用 Uniflash 的说明。 您还可以通读 映像创建器和编程工具用户指南 、了解有关使用 Uniflash 的更多详细信息。

    此致、

    Michael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    感谢您的回答。

    在不使用操作系统的情况下使用 CC3220SF 时、是否具有可用的完整功能和 API 函数?
    SDK 中用于联网的唯一示例需要操作系统。

    要在我们的应用中对 CC3220MODSF 进行编程/刷写、我希望使用 FTDI 提供的 FT231X 芯片。 此芯片具有可用的全硬件握手信号。
    RTS 应连接到 nRESET、DTR 应连接到 SOP2 (如果需要、反之亦然)。
    是否有一个示例说明如何在 Windows 上配置 Uniflash、以便自动使用这些硬件握手信号进行刷写?

    此致
    Jorg

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jorg:

    SDK 中的 cloud_ota 示例演示了如何在不使用操作系统的情况下使用网络。 所有网络 API 函数都应在没有操作系统的情况下工作。 一般而言、不使用操作系统所放弃的主要功能是具有由调度程序管理的多个线程的功能。

    对于网络而言、这会影响到使用阻塞套接字与非阻塞套接字以及处理异步网络事件。 您可以比较 cloud_ota 的非操作系统版本和 TI RTOS 版本、以了解不使用操作系统如何影响您的网络代码。

    关于对 CC3220MODSF 进行编程、没有将 Uniflash 配置为使用该 FTDI 器件的示例。 您可能需要考虑使用 CC3220SF Launchpad 对器件进行编程、如以下主题所述:

    https://e2e.ti.com/support/wireless_connectivity/simplelink_wifi_cc31xx_cc32xx/f/968/p/587440/2165984

    另一种选择是使用 SPI 直接使用 Gang 映像对该闪存进行编程、如下所述:

    https://e2e.ti.com/support/wireless_connectivity/simplelink_wifi_cc31xx_cc32xx/f/968/p/590187/2170768

    此致、

    Michael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    再次感谢。

    为了澄清对 CC3220MODSF 进行编程的相关信息:
    是否有用于对该模块进行编程的 API 或 CLI、这些模块支持任何基于 PC 的 UART 的 RTS 和 DTR 线路用于复位和 SOP2? 或者将来是否提供此功能?
    这将使编程过程变得更好、更简单...
    在您提供的第二个链接中、串行闪存的 SPI 接口必须可访问、但在 CC3220MODSF 中、无法从外部引脚访问线路。

    我还有 CC3200 LaunchPad。 是否可以使用此板在我们的应用中对单独的 CC3220MODSF 进行编程?
    如果是、您能向我提供更多相关信息吗? 如何使用哪条线将电路板与模块连接?

    此致
    Jorg

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Jorg:

    目前、没有用于使用基于 PC 的 UART 对器件进行编程的 CLI。 目前在开发此类工具方面有一些开发工作、但我不确定发布的时间范围是多长。

    可以使用 CC3200 Launchpad 对 CC3220MODSF 进行编程。 您可以将来自 CC3200 Launchpad 上 FTDI 芯片的 UART RX/TX 线路与 nRESET 信号一起连接到 CC3220MODSF。 要从 CC3200 Launchpad 获取 nRESET 信号、您必须将导线焊接到 nRESET 网络上、因为遗憾的是它不会从任何 Launchpad 接头上输出。 将导线焊接到该网线上的最简单点是 launchpad 下方的 SW1引线。

    为 CC3220MODSF 加电并上拉 SOP2引脚后、Uniflash 应能够连接到器件进行自动编程、就好像您直接连接了 CC3220 Launchpad 一样。

    此致、

    Michael
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    在我之前的一个请求中、我犯了一个错误:串行闪存的 SPI 线路显然可以在模块的引脚上使用。
    我的问题是:
    当我想使用这些 SPI 引脚对模块的串行闪存进行编程时、我必须采取什么措施来使 CC3220SF (处理器)引脚保持在三态或集电极开路模式、以确保没有总线冲突?
    在使用外部 SPI 工具(在同一引脚上)进行闪存时、它是否只是保持 RESET 引脚为低电平?

    3220MODSF 中使用了哪个串行闪存组件? 我需要更多信息来解锁 FSM 以执行擦除操作。
    我认为、当我要使用外部 SPI 工具对闪存进行编程时、我必须首先擦除整个闪存、然后对 Uniflash 工具生成的完整映像进行编程。
    对吗?

    是否还可以使用此 SPI 工具仅更新(擦除和编程)一个文件(而不是完整映像)?

    此致
    Jorg

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Jorg:

    保持 RESET 引脚为低电平将防止处理器产生总线争用、因为它将在 RESET 为低电平时保持关断状态。

    3220MODSF 中使用的闪存部件是 Macronix MX25R3235FZBILR。 正确、要对闪存进行编程、您将首先擦除整个闪存、然后对通过 Uniflash 创建的 Gang 映像进行编程。 一次不能更新/编程一个文件;如果要进行任何更改、必须擦除并重新编程整个二进制文件。

    此致、

    Michael
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    关于闪烁的最后一个问题:
    在 SOP2模式下使用 UART 闪存时、是否可以将 UART 引脚自由分配给任何 UART0可用的 GPIO?
    或者是否需要使用 GP01 (UART0 Tx)和 GP02 (UART0 Rx)?

    此致
    Jorg

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Jorg:

    当您处于 UART 闪存模式时、引导加载程序会硬编码为多路复用器 UART0、以连接到 GPIO1和 GPIO2对应的引脚。 引导加载程序已编程到 ROM 中、无法更改。

    此致、

    Michael
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    您是否有用于通过 SPI 接口对 SPI 闪存进行编程的基于 Windows 的工具?
    可能是支持 FTDI USB 转 SPI 接口的接口、如 FT232H?

    此致
    Jörg μ A

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Jorg:

    目前、我们没有用于直接刷写 SPI 闪存的任何 Windows 工具。 您必须了解首选 USB 转 SPI 器件的软件支持。

    您可能需要考虑简单地获取 CC3220SF Launchpad 并使用板载 XDS-110对您的模块进行编程。

    此致、

    Michael
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    是否可以在 CCS 中将旧的 CC3200工程切换到 CC3220SF 工程?
    我提到的是、3220 SDK 中的新示例比3200 SDK 中的新示例更复杂。

    到目前为止我所做的工作:在 CC3200项目中、转到属性、常规并将所有 CC3200更改为 CC3220SF。
    顺便说一下:那么、我仍在使用 CC3200 SDK、而不是 CC32xx 的 SDK -这也起作用了吗?

    此致
    Jorg

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Jorg:

    CC3200 SDK 和 CC3220 SDK 之间进行了许多更改、这些更改要求您进行代码修改。 在 CC3220 SDK 的 docs\simplelink_mcu_sdk\文件夹中、有一个 SimpleLink Gen1至 Gen2 SDK 迁移指南可供参考。

    我建议您不要尝试更改 CC3200工程的属性以正确使用 CC3220 SDK、而是导入 CC3220示例工程、将您的源文件从 CC3200工程移至新导入的 CC3220工程、 然后按照迁移指南编辑源文件以反映所有 SDK 更改。

    此致、

    Michael
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Michael、

    感谢您的回答-我会尝试它。

    但是另一个问题:在 PinMux 4.1中、生成.h 文件是否会出现问题?
    c 文件似乎可以、但在.h 文件中、例如、未包含定义的 GPIO、仅包含一些默认定义。

    此致
    Jorg
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jorg:

    似乎引脚多路复用工具未正确生成 CC3220SF_LAUNCHXL.h 文件。 您必须手动编辑该头文件的 CC3220SF_LAUNCHXL_GPIOName 枚举、以插入在 CC3220SF_LAUNCHXL.c 文件中配置的正确数量的 GPIO。

    例如、如果您具有以下 GPIO_PinConfig 结构:

    GPIO_PinConfig gpioPinConfigs[]={
    /*带有回调的输入引脚*/
    /* CC3220SF_LAUNCHXL_GPIO_SW2 *
    GPIOCC32XX_GPIO_22 | GPIO_CFG_INPUT| GPIO_CFG_IN_INT_INT_RISING、
    /* CC3220SF_LAUNCHXL_GPIO_SW3 *
    GPIOCC32XX_GPIO_13 | GPIO_CFG_INPUT| GPIO_CFG_IN_INT_INT_RISING、
    
    /*输出引脚*/
    /* CC3220SF_LAUNCHXL_GPIO_LED_D7 *
    GPIOCC32XX_GPIO_09 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、
    /* CC3220SF_LAUNCHXL_GPIO_LED_D6 *
    GPIOCC32XX_GPIO_10 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、
    /* CC3220SF_LAUNCHXL_GPIO_LED_D5 *
    GPIOCC32XX_GPIO_11 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、
    /* CC3220SF_LAUNCHXL_GPIO_LCD_DISP */
    GPIOCC32XX_GPIO_06 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、
    /* CC3220SF_LAUNCHXL_GPIO_LCD_POWER *
    GPIOCC32XX_GPIO_03 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、
    /* CC3220SF_LAUNCHXL_GPIO_MIC_Preamp */
    GPIOCC32XX_GPIO_08 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、
    /* CC3220SF_LAUNCHXL_GPIO_LCD_CS *
    GPIOCC32XX_GPIO_12 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW、
    
    }; 

    您可以将 CC3220SF_LAUNCHXL_GPIOName 枚举编辑为:

    typedef 枚举 CC3220SF_LAUNCHXL_GPIOName{
    CC3220SF_LAUNCHXL_GPIO_SW2 = 0、
    CC3220SF_LAUNCHXL_GPIO_SW3、
    CC3220SF_LAUNCHXL_GPIO_LED_D7、
    CC3220SF_LAUNCHXL_GPIO_LED_D6、
    CC3220SF_LAUNCHXL_GPIO_LED_D5、
    CC3220SF_LAUNCHXL_GPIO_LCD_DISP、
    CC3220SF_LAUNCHXL_GPIO_LCD_POWER、
    CC3220SF_LAUNCHXL_GPIO_MIC_Preamp、
    CC3220SF_LAUNCHXL_GPIO_LCD_CS、
    CC3220SF_LAUNCHXL_GPIOCOUNT
    }CC3220SF_LAUNCHXL_GPIOName; 

    各个 GPIO 枚举的名称并不重要、但您需要在 CC3220SF_LAUNCHXL_GPIOName 中定义 n+1个枚举、n 是您正在使用的 GPIO 数量。 确保将最后一个枚举定义为 CC3220SF_LAUNCHXL_GPIOCOUNT。  

    您必须修改 CC3220SF_LAUNCHXL.h 文件、以便各种外设的枚举具有与生成的 CC3220SF_LAUNCHXL.c 文件中这些外设的结构相同的定义成员数量。

    此致、

    Michael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    现在、我可以使用 UniFlash 对闪存进行编程、我有另一个问题:
    在开发新软件版本时、我尝试使用 UniFlash。
    但仍然使用旧的二进制文件(mcuflashimg.bin)-我认为它保留在某个缓存中。
    因此、当我编译新的二进制文件时、旧的二进制文件仍保留在 UniFlash 中。

    如何更新此二进制文件而不会反复删除和添加此二进制文件(和证书文件)?

    此致
    Jorg

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Jorg:

    遗憾的是、重新编译时、必须手动删除并重新添加 mcuflashimg.bin。 Uniflash 无法自动检测二进制文件的更改。

    此致、

    Michael
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    还有其他可能、如 CLI 吗?
    我无法使用 JTAG 接口、因为我将其用于另一个基于串行应用的连接。
    也许还有其他建议吗? -否则,发展是非常困难或不可能的。

    何时在 UniFlash 中修复此问题? -从我的角度来看、这是使用您的 CC3220SF 模块的最低要求!
    使用 JTAG 也是一个糟糕的解决方案、只能使用此模块的 SRAM、并且 JTAG 引脚上的多路复用 I/O 不可用!

    是否还需要在开发过程中对 mcuflash.bin 文件进行签名?
    是否可以关闭此安全功能?

    此致
    Jorg

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jorg:

    可以通过 CLI 使用 Uniflash。 请参阅 《Uniflash ImageCreator 用户指南》的第6节。 每次重新编译/更改二进制文件时、您仍然需要覆盖 mcuflashimg.bin 并对其进行签名、但执行如下所示的脚本比多次单击 GUI 更容易:

    set cwd =%~DP0
    set cwdAcert LAASH ="c:\ti\uniflash_4.1"
    set cwdMCUIMG="C:\ti\simplelink_cc32xx_sdk_1_30_01_03\examples\CC3220S_LAUNCHXL.demos\network_terminal\%wcert ctradement-c32xx_cpue-mctrade-ce-ce-ctradce-ce-ce-ctradce-ce-ctrab-ce-ce-ctrab-ce-ctradce-mce-mce-mce-ctradce-ce-ce-ce-ctradce-ce-ce-ctrab-ce-mcu-ce-mctrab-wdcp-ce-ctradce-ce-ce-ce-mce-ce-ctradce-ce-ctradce-ce-ce-ce-mcu-ce-mcu-ce-mcu-ctrab-ctradce-mce-mce-
    
    
    
    
    dslite.bat dslite.bat 

    遗憾的是、即使在开发模式下、也无法关闭文件安全。 这意味着无法绕过重新签名新二进制文件。 希望使用 CLI 将有助于简化工作。

    此致、

    Michael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    这很好-谢谢!
    供参考:您提供的"Uniflash ImageCreator 用户指南"链接已断开。

    最后一个问题:为什么需要在 CLI 中指定项目文件?
    未在命令行中设置的其余参数是否来自此项目文件?

    此致
    Jorg

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Jorg:

    感谢您指出损坏的链接、现在应该正确地指向用户指南。

    是的、ImageCreator 使用项目文件来执行其余参数。 这就是您需要在 CLI 中指定它的原因。

    此致、

    Michael