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.

[参考译文] CC2640R2F:通过 UART 引脚将 cc2640R2F 连接到 MSP430

Guru**** 2502555 points
Other Parts Discussed in Thread: MSP430F6736A, CC2640, CC2640R2F, MAX202

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/850494/cc2640r2f-connecting-the-cc2640r2f-to-a-msp430-via-uart-pins

器件型号:CC2640R2F
主题中讨论的其他器件:MSP430F6736ACC2640MAX202

你(们)好

我有一个定制的 MSP430F6736A 板、它通过 UART 引脚与笔记本电脑通信、连接到 TTL->RS232适配器->笔记本电脑串行端口。
我还有一个 CC2640R2 LaunchPad、它还可以通过同一个 TTL->RS232适配器与同一台笔记本电脑进行通信(它还可以通过 BLE 成功地与另一个 BLE 设备进行通信)。

因此、两个电路板上的通信可根据需要正常工作。

现在、我只需将 Rx/Tx 引脚连接在一起即可将两个板连接在一起、但现在通信无法按预期工作。

为了进一步说明... MSP 读取 CC2640R2发送的内容、但 CC2640R2未正确读取 MSP 发送的内容(是的...我在一个上具有 Rx 引脚、而在另一个上具有 Tx 引脚)。

那么、如何解决这个问题呢?
1.我是否应该根据“UART 转低功耗 BluetoothRegistered(BLE)桥接参考设计”在两个板之间创建桥接电路?
2.为什么不能简单地连接相应的引脚?
3、为什么来自 CC2640的 Tx 正常工作、而不是来自 MSP 的 Tx?
4.它与引脚上的电压电平有关系吗?

另外、我注意到 TTL->RS232适配器将引脚上的电压从3、3V 升至4 V、但无论如何、3V 电平会注册为高电平。

谢谢

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

    您好 Moshe、

    您的连接看起来正确。 MSP430和 CC2640R2F 的电压电平必须相同。  

    您是否使用逻辑分析仪查看了 UART 线路、以了解线路上的实际情况?

    此致、
    Fredrik

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

    您好 Fredrik

    感谢您的回答。

    MSP 侧为3.3V、cc2640侧为3.3V、因此它们实际上都处于相同的电平、这就是我对此感到困惑的原因。

    是的、我确实使用逻辑分析仪查看了 Tx 和 Rx 信号...完全没有问题、逻辑分析仪可以正确读取两个信号值。
    我还在示波器下查看了这些信号、以比较连接2个电路板时的 Tx 和 Rx 波形...两个信号是相同的(就波形形状和幅度而言)。

    我将 projectZero 用作 CC2640的程序。
    projectZero CC2640设置中是否有任何可能影响 Rx 侧电气输入的内容?

    您能建议我可以尝试的其他测试/设置吗?

    谢谢

    Moshe

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

    您好 Moshe、

    在这种情况下、您必须检查 Rx 引脚是否未"双重预订"、换句话说、分配给板级配置文件中优先于 UART 的其他外设。

    此致、
    Fredrik

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

    您好 Fredrik

    实际上、我将 Rx 重新分配到另一个 IO 引脚 DIO22、但结果相同!

    如果 PIN 码是双倍码,那么 PC 上的 RS232->TTL 适配器也会损坏信号吗?

    我还使用了第二个 Launchpad 并获得了相同的结果...然后我移至完全不同的定制板、在那里我具有相同的体验。
    使用这两个定制板时、Rx/Tx 连接到接头、迹线上没有其他组件。

    在任何情况下、我都拍摄了波形的一些快照。
    XX_cc264_1是自定义电路板连接到 launchpad 时的情况。
    XX_PC_1是指自定义板连接到 PC 上的 RS232->TTL 适配器时。
    Rx 前缀是在适配器或 Launchpad 的 Rx 引脚上捕获的波形、而 Tx 前缀是在 LaunchPad 或适配器的 Tx 引脚上捕获的波形

    (顺便说一下、适配器使用 MAX202、由5V 电源供电。该适配器依次连接到 USB->RS232适配器、后者又连接到 PC 上的 USB 端口)  

    波形中是否有任何内容可以指示 LaunchPad 上的 Rx 为何不起作用?

    https://www.dropbox.com/sh/61b3gsqo21t7v4d/AACdYiyY5rZjjArUgPU78HsEa?dl=0

    (我尝试附加文件、但系统决定将图像粘贴到帖子中、因此下拉框链接...是否有方法可以附加文件、以便系统不会将其粘贴到帖子中??)


    谢谢
    Moshe

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

    您好 Moshe、

    您能否尝试以下示例: dev.ti.com/.../node

    此致、
    Fredrik

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

    您好 Fredrik

    实际上、我使用了 uartecho 的部分内容来修改项目0的 uartt 侧。

    但我会将其加载到 launchpad 中、看看它是否正确返回了我从定制板发送的内容...

    我会再来的

    Moshe

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

    您好 Fredrik

    我加载了 uartecho 程序。我将波特率更改为9600、这正是我在 MSP430的定制板上使用的功能。

    我每2秒从 MSP430发送2个字符。

    返回的内容基本上是正确的、但每5个左右的字符、接下来的几个字符的内容都被弄乱了...之前、我每20秒发送40个字节。

    例如从     定制板到 Launchpad 的 Rx Tx、从 Launchpad 的定制板上的 Rx
       d   j
    0xb0  f  
    0xe2  h
    0xb3  n
      h   p

    似乎一个字节中的奇数位或奇数2会丢失、发生这种情况时、launchpad 通过使用该位的剩余位以及下一个字节中丢失的位数来构造该字节、然后这会影响以下字节、依此类推、直到 a 总共8个位丢失了、此时更多的字节会出现问题。
    我的做法是 Launchpad 在端口上遇到溢出问题(但我尚未检查它是否实际报告此类错误) 但是、考虑到波特率较低以及当我通过 TTL 适配器从 PC 上的 PuTTy 发送数据时 LaunchPad 工作正常、这种情况似乎非常奇怪。 (并且 MSP430能够与 PC 正确通信)。
     
    是否有任何关于下一步的建议?

    谢谢

    Moshe

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

    您好 Fredrik

    我删除了之前的回复、因为我可能发现了问题。

    删除后的文章解释说、当我使用第二个 Launchpad 从安装了 uartecho 的第一个 LaunchPad 发送和接收数据时、一切都正常。

    我现在又回到了重新设置 MSP UART 的方式!!!  

    我现在已经更改了2个设置,它看起来工作正常(是的!!)... MSP 正在以16MHz 9600波特运行
    这就是我以前设置它的方式...

    UCA1CTLW0 = 0;//默认状态
    UCA1CTLW0 |= UCSWRST;//将状态机复位
    UCA1CTLW0 |= UCSSEL1;  
    UCA1CTLW0 |= UCRXEIE;  

    UCA1BRW = 0x0068;  
    UCA1MCTLW = 0xd600 | 0x0020 | 0x0001;  

    UCA1CTLW0 &=~UCSWRST;//初始化 USCI 状态机...
    UCA1IE |= UCRXIE;//启用 USCI_A1 RX 中断

    然后我去了,把下面的两行更改为它们的新设置。。。

    UCA1BRW = 0x6d3;
    UCA1MCTLW = 0xD600;  

    那么为什么第二个设置是正确的?

    编辑更新..........
    第二个设置起作用的原因是、我的定制板不是16MHz、而是16.77MHz!

    谢谢
    Moshe

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

    您好 Moshe、

    很高兴听到您已解决问题。

    我不熟悉 MSP430、因此我无法评论该器件的 UART 设置。 我建议您在 MSP430论坛中为此打开一个新主题。

    此致、
    Fredrik