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.

[参考译文] MSP430F6736:IrDA 堆栈

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/586136/msp430f6736-irda-stack

器件型号:MSP430F6736

你好

我想知道在任何地方是否有任何示例代码显示了用于 IrDA 通信的堆栈。

提前感谢

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

    有一份使用 MSP430实现 IrDA 的应用报告(SLAA202A)、几个代码示例包中包括 IrDA 示例(MSP430G2xx3、MSP430FG461x 等)、但这些示例似乎仅限于 USCI 外设、并且没有用于与 MSP430器件进行 IrDA 通信的官方软件栈。 IrDA 与 UART 非常相似、因此应该可以从 MSP430FR6736 UART 示例开始、并使用提供的其他示例添加 IrDA 功能作为参考。

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

    您好、Ryan

    感谢您的意见。

    是的、我确实看到了202A、我想我可以通过汇编器进行尝试。
    我还找到了具有"c"示例的 slac485h。

    但有趣的是、我当前的问题似乎是设置 IrDA 控制寄存器。
    例如:字段 UCIRRXPL 应为1或0、还是由试错确定的值?

    我的当前设置为:
    UCA2CTLW0 |= UCSSEL_ACLK; //使用 ACLK 32k
    UCA2CTLW0 |= UCPEN | UCPAR | UC7BIT;//奇偶校验使能,7位

    UCA2BRW = 0x0006;//对于300波特、UCBRx 39.3.10
    UCA2MCTLW = 0x00ed | 0x000d0 | 0x0001;//对于300波特,请参阅39.3.10 p1038 UCBRSx=0xED
                                             // ,UCBRFx=0x0d
                                            // ,UCOS16=1
    UCA2IRCTL = 0x9000 | UCIRXFE | 0x0014 | UCIRTXCLK;// UCIRXFLx =(1/波特)*(3/16)* fCLK * 2 - 4 = 36=0x24、
                                                           // UCIRRXPL = 0、
                                                           // UCOS16=1时、UCIRTXPLx=5、
                                                           // UCOS16=1时、UCIRTXCLK=1=BITCLK16

    谢谢

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

    UCIRXPL 位取决于系统的极性、收发器在看到灯时是发送高脉冲还是低脉冲。 在改变任何 UCA2寄存器之前、应该执行一个 eUSCI 软件复位(UCA2CTL1 |= UCSWRST;)。 您的应用是否需要偶数7位奇偶校验? ACLK 源将导致通信缓慢、尤其是因为3/16脉冲整形需要过采样模式(UCOS16)。 此外、IrDA 编码器/解码器应该被启用(UCA2IRCTL |= UCIREN;)。 使用示波器或逻辑分析仪将有助于分析您的通信脉冲并确保它们符合预期。

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

    谢谢 Ryan

    是的、我已经这么做了。。。我只是把这些代码行遗漏了、所以帖子不会太乱。
    300波特是我需要实现的 IEC 协议的一项要求。  

    我正在尝试拾取并响应光学探头发送的信号...但现在我不确定我的硬件是否正常工作...因此知道我的软件设置是否有效会从公式中删除1级未知。

    谢谢

    Moshe