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.

[参考译文] MSP-EXP430FR6989:包含 CC3100电子邮件示例

Guru**** 2595805 points
Other Parts Discussed in Thread: MSP430FR6989, CC3100, MSP-EXP430F5529LP, MSP-EXP430FR5969, MSP430FR5969

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/738163/msp-exp430fr6989-with-cc3100-email-example

器件型号:MSP-EXP430FR6989
主题中讨论的其他器件:CC3100MSP-EXP430F5529LPMSP-EXP430FR5969MSP430FR5969、MSP430FR6989

我一直在 CC3100论坛上与 Michael 进行发帖和对话。 他建议我也尝试这个论坛。

到目前为止、我还无法成功使 CC3100与 FR6989 Launch Pad 配合使用
-同样、我的终极目标是:将 CC3100 WiFi 添加到我的 FR6989产品中
-难以置信 TI 或某些用户没有工作示例。
-我相信很多人都非常感谢您发布了一封使用 CC3100 - FR6989的 WiFi 电子邮件

CC3100_SDK_1.3.0、CCS_8.2.0、编译器 TIv18.1.3.LTS
-完美地处理 F5529示例
-我成功地将我的 F5529产品移植到了最新的 SDK、CCS 和编译器,与我的 F5529产品完美配合

-完美地使用 FR5969示例
-到目前为止、我无法成功将其移植到端口、以使 CC3100与 FR6989 Launch Pad 配合使用

-我使用了 FR6989开箱即用示例(启动非常简单的应用程序),并尝试通过添加 FR5969示例中的文件将 CC3100 WiFi simplelink 添加到其中
-如 SDK 下载文档中所述:CC3100_SDK 移植指南可在 cc3100-sdk/docs/simplelink_api/html/index.html 找到:
 -根据我创建了自己的 user.h 本地副本的说明(未链接到 CC3100_SDK 库、或者由于它是一个链接文件、它将更改基本文件并中断所有其他示例和项目)
 -我复制了原始 user.h 中的所有正文、但随后不得不更改副本以链接到1)板、2) CLI_UART、3) SPI 的新副本
 - UART 和 SPI 的引脚和实例对于每个 LaunchPad 都是不同的(请参阅下表)
 -我创建了 boardFR6989.C 和.h、cli_uartFR6989.c 和.h、spiFr6989.c 和.h
 -在这些文件中,我更改了引脚编号和中断矢量以匹配 FR6989

-到目前为止:我有一个干净的编译器、它运行、我可以单步执行、通过观察寄存器可以看到它写入反向通道 UART 缓冲器、但反向通道 UART 上不显示字符、WiFi 不工作

此帖子提供了指向 wiki 页面的链接、该页面为这些 LaunchPad 提供了有效的 UART。
FR6989 UART 工作正常、代码编写和记录得很好
https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/465550?help-MSP430FR6989-launchpad-deverlopment-UART
http://processors.wiki.ti.com/index.php/MSP_UART

myUART_05_example.zip …适用于 FR6989
myUART_5529.zip myUART_5529.zip (MSP-EXP430F5529LP LaunchPad)
myUART_5529.zip myUART_5969.zip (MSP-EXP430FR5969 LaunchPad)

我的下一步是获取适用于 FR6989的有效 myUART_05_example.zip、现在尝试向其中添加 simplelink、因为至少反向通道 UART 已经证明可以正常工作。

我将发布从 FR5969 CC3100示例…中修改的 cli_uartFR6989.c 代码、以防有人发现容易明显的错误

-为便于其他用户使用、这是每个 CC3100 WiFi 引脚到相应 LaunchPad 引脚编号的映射
-我使用了选项卡,所以我希望在发布后,它的格式仍然正常


CC3100       CC3100        FR5969       FR6989       F5529
升压器        左侧          左侧          左侧           
打包                外行        外行        外行     外行

VCC 3.3V         P1.1                3.3V                3.3V                3.3V 3.3V 3.3V
未使用            P1.2                                                                
UART1_TX       P1.3                P2.6 Rx           P4.3 Rx           P3.4 Rx
                                               eUSI_A1          USCI_A0          USCI_A0
UART1_RX       P1.4                P2.5 Tx            P4.2 Tx           P3.3 Tx
                                               eUSI_A1          USCI_A0          USCI_A0
NHIB                P1.5                P4.3                P3.2                P1.6
未使用            P1.6                                                                
SPI CLK           P1.7                P2.2                P1.4                P3.2
                                               eUSCI_B0        eUSCI_B0        eUSCI_B0         
未使用            P1.8                                                                
未使用            P1.9                                                                
未使用            P1.10
                                                                       
CC3100        CC3100       FR5969       FR6989        F5529
升压器        左侧          左侧          左侧           
包装                内行         无收割台       内行         内行
Pack                内行         无收割台       电路侧      电路侧
5V                   P3.1                无插头       5V                    
GND                P3.2                无接头       GND                 
未使用            的 P3.3                                                                
未使用            P3.4                                                                
未使用            P3.5                                                                
未使用            P3.6                                                                
未使用            P3.7                                                                
未使用            的 P3.8                                                                
未使用            P3.9                                                                
未使用            P3.10

CC3100       CC3100        FR5969        FR6989       F5529
升压器        右侧        右侧右侧        右侧右侧右侧右侧         
包装                外行        外行     外行        外行
GND                P2.1                GND                GND                GND GND GND
IRQ                  P2.2                P1.2                P2.1                P2.0
SPI CS            P2.3                P3.0                P1.5                P2.2
未使用            的 P2.4                                                                
nRST               P2.5                RST                 RST RST RST RST                  
SPI_MOSI        P2.6                P1.6                P1.6                P3.0
                                               eUSCI_B0        eUSCI_B0        eUSCI_B0
SPI_MISO        P2.7                P1.7                P1.7 P3.1                
                                               eUSCI_B0        eUSCI_B0        eUSCI_B0

未使用            的 P2.8                                                                
未使用            P2.9                                                                
未使用            P2.10

CC3100       CC3100        FR5969       FR6989        F5529
升压器        右侧        右侧右侧        右侧右侧右侧右侧         
包装                内行         无收割台       内行         内行
Pack                内行         无收割台       电路侧      电路侧
未使用            P4.1                                                                
未使用            的 P4.2                                                                
未使用            的 P4.3                                                                
UART1_CTS     P4.4                无接头                   P3.6                P1.4
UART1_RTS     P4.5                无接头                   P3.7                P1.3
未使用            的 P4.6                                                                
NWP_Log_TX  P4.7                无接头                   P1.3                P4.3
NWP_Log_TX  P4.8                无接头                   P3.0                P4.0
未使用            P4.9                                                                
未使用            P4.10

启动            焊盘                FR5969            FR6989        F5529
                                                                       
Lnch Pad Bck-ch-UART Rx          P2.0                           P3.4                P4.4
                                               eUSCI_A0                    USCI_A1          USCI_A1
Lnch Pad Bck-ch-UART Tx          P2.1                           P3.5                P4.5
                                               eUSCI_A0                    USCI_A1          USCI_A1
Lnch Pad Bck-ch-UART RTS        P4.1                           P3.1                P6.7
Lnch Pad Bck-ch-UART CTS        P4.0                           P3.0                P1.7


//LH 10-11-2018这是我从 TI Michael Reymond 收到的用于回复我的帖子的 CLI-UART
//我使用它作为基础来尝试为 FR6989创建工作版本
//到目前为止,此代码编译干净、运行,但不会写入反向通道 COM 端口
/*
 * cli_uart.c - msp430fr5969 launchpad 应用 UART 接口实现
 *


//
//
//! \addtogroup cli_uart
//! @{
//
//

#include
#include
#include


//FR5969使用 UCA0、但 FR6989使用 UCA1
//#define UCA0_OS  1   //* 1 =过采样模式、0 =低频率模式*
//#define UCA0_br0 17  // UCA0BR0寄存器的值*/
//#define UCA0_BR1 0   // UCA0BR1寄存器的值*/
//#define UCA0_BRS 0   // UCA0MCTL 寄存器中 UCBRS 域的值*/
//#define UCA0_BRF 6   // UCA0MCTL 寄存器中 UCBRF 域的值*/

#define UCA1_OS  1   /* 1 =过采样模式、0 =低频率模式*/
#define UCA1_br0 17  /* UCA1BR0寄存器的值*///波特率为零
#define UCA1_BR1 0   /* UCA1BR1寄存器的值*/ //波特率1
#define UCA1_BRS 0   /* UCA1MCTL 寄存器中 UCBRS 域的值*/
#define UCA1_BRF 6   /* UCA1MCTL 寄存器中 UCBRF 域的值*/

#define ASCII_ENTER    0x0D

//LH 10-16-2018添加了下一行内容、因为代码跳过该行、似乎未定义
#define _use_cli_    1.

#ifdef _use_cli_
unsigned char * g_ucUARTBuffer;
int cli_have _cmd = 0;
#endif /*_use_cli_*/

/*!
   \brief         应用 UART 中断处理程序

   \param[in]     无

   \不返回任何内容         

   注意

   警告
*

//TI 帮助发布 myUART_05-FR6989显示 P2.0 P2.1适用于 EUSCI_A0_BASE
 //查看 LaunchPad、发现它使用的是 P3.4和 P3.5、因此使用的是 EUSCI_A1
#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
//#pragma vector=USCI_A0_vector
//_interrupt
//#Elif defined (__GNU__)
//__attribute__((中断(USCI_A0_Vector))
//#endif
//void UART_ISR (void)
//{
//   开关(__even _in_range (UCA0IV、0x08))
//   {
//       情况0:中断;                            //向量0 -无中断*/
//       案例2:                                  //矢量2 - RXIFG */
//#ifdef _use_cli_
//           * g_ucUARTBuffer = UCA0RXBUF;
//           if (* g_ucUARTBuffer == ASCII_ENTER)
//           {
//               cli_have _cmd = 1;
//               * g_ucUARTBuffer = 0x00;
//               __BIC_SR_REGISTER_ON_EXIT (LPM0_Bits);
//           }
//           g_ucUARTBuffer++;
//#endif /*_use_cli_*
//           __no_operation();
//           中断;
//       案例4:中断;                            //向量4 - TXIFG */
//       默认:break;
//   }
//}

//LH 10-16-2018将使用 A1矢量
#pragma vector=USCI_A1_vector
_interrupt
#Elif defined (_GNU_)
__attribute__((中断(USCI_A1_vector))
#endif
UART_ISR ()

   switch (__evo_in_range (UCA1IV、0x08))
   {
       情况0:中断;                            /*向量0 -无中断*/
       情况2:                                  /*向量2 - RXIFG */
#ifdef _use_cli_
           *G_ucUARTBuffer = UCA1RXBUF;
           if (* g_ucUARTBuffer == ASCII_ENTER)
           {
               cli_have _cmd = 1;
               *G_ucUARTBuffer = 0x00;
               _BIC_SR_REGISTER_ON_EXIT (LPM0_BITS);
           }
           G_ucUARTBuffer++;
#endif /*_use_cli_*/
           __no_operation()
           中断;
       情况4:中断;                            /*向量4 - TXIFG */
       默认值:break
   }


内部
cli_read (unsigned char * pBuff)

   if (pBuff =NULL)
       返回-1;

#ifdef _use_cli_
   cli_have _cmd = 0;
   G_UARTBuffer = pBuff;
   //FR5969使用 UCA0、但 FR6989使用 UCA1
//   UCA0IE |= UCRXIE;
   UCA1IE |= UCRXIE;

   _bis_SR_register (LPM0_bits + GIE);

   while (cli_have _cmd =0)
       ;
   //FR5969使用 UCA0、但 FR6989使用 UCA1
//   UCA0IE &=~UCRXIE;
   UCA1IE &=~UCRXIE;
   return strlen((const char *)pBuff);
#else /*_use_cli_*/
   返回0;
#endif /*_use_cli_*/


内部
cli_Write (unsigned char * inBuff)

   if (inBuff =NULL)
       返回-1;

#ifdef _use_cli_ //LH10-15-2018、它只是跳过这一步、所以请进行注释、因此在调用时必须执行代码
   unsigned short ret、usLength = strlen ((const char *) inBuff);
   RET = usLength;
   while (usLength)
   {
       //FR5969使用 UCA0、但 FR6989使用 UCA1
//       while (!(UCA0IFG & UCTXIFG));
//       UCA0TXBUF =*inBuff;
       while (!(UCA1IFG & UCTXIFG));
       UCA1TXBUF =*内 Buff;
       usLength --;
       inBuff++;
   }
   返回(int)转塔;
//#else /*_use_cli_*/
//   返回0;
#endif /*_use_cli_*/


无效
CLI_Configure (void)(配置(空))

#ifdef _use_cli_//LH 10-15-2018 5:23PM 主调用 config 时、它会跳过这一点、原因是什么? 因此、请注释掉 IF
   PM5CTL0 &=~LOCKLPM5;          /*禁用 GPIO 上电默认高阻抗模式
                                      激活先前配置的端口设置*/
//FR5969 UART 引脚 P2.0 = Tx、P2.1 = RX
   //TI 帮助发布 myUART_05-FR6989显示 P2.0 P2.1适用于 EUSCI_A0_BASE
   //因此、让我尝试这些引脚、因为上面的中断矢量是针对 EUSCI_A0的
   //查看 LaunchPad、发现它使用的是 P3.4和 P3.5、因此使用的是 EUSCI_A1
//   P2SEL1 |=  (BIT0 + BIT1);     // P2.0、1 = USCI_A0 TXD/RXD
//                                      (在 P2.0和 P2.1上设置 UART 引脚)           */
//   P2SEL0 &=  ~(BIT0 + BIT1);

//   UCA0CTLW0 |= UCSWRST;          //将状态机置于复位状态*/
//   UCA0CTL0 = 0x00;
//
//   UCA0CTLW0 = UCSSEL_SMCLK + UCSWRST;   //使用 SMCLK,保持复位*/
//                                           /* 8MHz/115200 =0x45 (请参阅用户指南)*/
//   UCA0BRW = 0x341;                       // 8MHz/9600 = 833 = 0x341 (请参阅用户指南)*/
//
//   UCA0MCTLW = 0;
//
//   UCA0CTLW0 &=~UCSWRST;                 //初始化 USCI 状态机*/

//FR6989 UART 引脚 P3.4 = Tx、P3.5 = RX
   //TI 帮助发布 myUART_05-FR6989显示 P3.4 P3.5适用于 EUSCI_A1_BASE
   P3SEL1 |=  (BIT4 + BIT4);     /* P2.0、1 = USCI_A0 TXD/RXD
                                      (在 P2.0和 P2.1上设置 UART 引脚)           */
   P3SEL0 &=  ~(BIT4 + BIT5);

   UCA1CTLW0 |= UCSWRST;          /*将状态机置于复位状态*/
   UCA1CTL0 = 0x00;

   UCA1CTLW0 = UCSSEL_SMCLK + UCSWRST;   //使用 SMCLK,保持复位*/
                                           /* 8MHz/115200 =0x45 (请参阅用户指南)*/
   UCA1BRW = 0x341;                       // 8MHz/9600= 833 =0x341 (请参阅用户指南)*/

   UCA1MCTLW = 0;

   UCA1CTLW0 &=~UCSWRST;                 /*初始化 USCI 状态机*/

   /*在 UART 上禁用 RX 中断*/
   //FR5969使用 UCA0、但 FR6989使用 UCA1
//   UCA0IFG &=~(UCRXIFG | UCRXIFG);
//   UCA0IE &=~UCRXIE;
   UCA1IFG &=~(UCRXIFG | UCRXIFG);
   UCA1IE &=~UCRXIE;
#endif /*_use_cli_*/


洛恩

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Lorne、
    最后、您的主要问题是 MSP430FR6989 UART 与 CC3100的通信故障。 对吗?
    如果是 UART 故障、您可以检查几件事情。
    1.检查 FR6989上的 UART 输出功能
    2.检查 CC3100的命令序列

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

    如何求解链接未定义的符号 MPUSEG、_mpusam、_mpuseg?

    这是上下文
    -我的最终目标:将 CC3100 WiFi 添加到我的 FR6989产品
    - CC3100_SDK_1.3.0、CCS_8.2.0、编译器 TIv18.1.3.LTS

    方法由于不存在 TI"有关 FR6989示例的电子邮件":合并两个有效项目:
    我获取了一份工作副本"FR6989"的 myUART_05_example.zip…、并添加到了 F5529 -CC3100电子邮件示例的工作文件中

    -根据我创建了自己的 user.h 本地副本的说明(未链接到 CC3100_SDK 库、或者由于它是一个链接文件、它将更改基本文件并中断所有其他示例和项目)
    -我复制了原始 user.h 中的所有正文、但随后不得不更改副本以链接到1)板、2) CLI_UART、3) SPI 的新副本
    - UART 和 SPI 的引脚和实例对于每个 LaunchPad 是不同的(请参阅昨天发布的表格)
    -我创建了 boardFR6989.C 和.h、cli_uartFR6989.c 和.h、spiFr6989.c 和.h 以及 UART_FR6989_CC3K.c 和.h
    因此、这些都是仅指向工程的本地文件、不会链接回"CC3100_SDK_1.3.0 F5529电子邮件示例"、否则所有示例文件都会发生更改

    -编译 OK…。没有标记为红色的文件,但我收到此链接错误
    构建目标:"myUART_05-FR6989_WiFi-email-10-18-2018.out"

    调用:MSP430链接器


    ***I 截断了控制台输出,因为它成功地完成了几十行………

    以下是错误前的最后3行
    "./simplelink/source/netapp.obj ""./simplelink/source/netcfg.obj ""./simplelink/source/nonos.obj ""./simplelink/source/socket.obj ""./simplelink/source/spawn.obj ""./simplelink/source/wlan.obj ""./spi/spiFR6989LH.obj ""./UART_CC3100/UART_FR6989_CC310.obj ""./lnk_msp430fr6989.cmd" -llibc.a -llibpu_init.a -lbmmath.a  
     未定义的首次引用                                                                                                          
     符号                                                                                                                     
     ------ --------                                                                                                          
     MPUSEG   C:\ti\code-com-stel-8-2-10-2-2018\ccsv8\tools\compiler\ti-cgt-msp430_18.1.3LTS lib\rts430x_lc_rd_eabi.lib
     _mpusam C:\ti\code-com-clus-8-2-10-2-2018\ccsv8\tools\compiler\ti-cgt-msp430_18.1.3LTS lib\rts430x_lc_rd_eabi.lib
     _mpuseg C:\ti\code-com-clus-8-2-10-2-2018\ccsv8\tools\compiler\ti-cgt-msp430_18.1.3LTS lib\rts430x_lc_rd_eabi.lib
     
    错误#10234-D:未解析的符号仍然存在
    错误#10010:链接期间遇到错误;未构建"myUART_05-FR6989_WiFi-email-10-18-2018.out"



    此帖子提供了指向 wiki 页面的链接、该页面为这些 LaunchPad 提供了有效的 UART。
    FR6989 UART 工作正常、代码编写和记录得很好
    https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/465550?help-MSP430FR6989-launchpad-deverlopment-UART
    http://processors.wiki.ti.com/index.php/MSP_UART

    myUART_05_example.zip …适用于 FR6989


    感谢您的帮助、
    在您的帮助下、所有用户都可以访问"FR6989 - CC3100 - WiFi 电子邮件"的工作示例、因为一旦我们联合创建此解决方案、我将发布该解决方案。
    (或者更好的是、TI 发布有效的解决方案!)

    洛恩

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Lorne、
    此帖子是否有任何更新? 链接未定义的符号 MPUSEG、_mpusam、_mpuseg 是否仍然存在问题?

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

    您好、现金、

        我们了解"MPUSEG、_mpusam、_mpuseg"与 FR6989中的存储器保护单元有关。 我们花了几天时间研究可能导致问题的原因、但我们无法解决问题。

        由于在感恩节之前发布产品的时间压力以及我们需要完成的其他更高优先级项目、我们暂时搁置了此 FR6989产品的 Wi-Fi 功能。

      我们已告知早期客户、我们在其他产品上安装了 CC3100 Wi-Fi、但目前我们无法使其与 TI FR6989配合使用。 我们已告知他们我们已与 TI 联系、但到目前为止、TI 未能提供 FR6989的工作示例、说明如何使用 CC3100 Wi-Fi 模块来执行任何类型的 Wi-Fi 示例或发送电子邮件。 我们已告知他们、我们希望在2019年的未来版本中提供此功能、或者如果 TI 能够提供解决方案、则更早提供此功能。

      现金如果 TI 的任何人能够提供 FR6989与 CC3100一起使用的实用归档 CCS 示例、我们将非常感激我们的客户。

    PS 我们喜欢使用 TI 产品、因此有助于我们成为忠实的客户。

    洛恩