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.

[参考译文] MSP430FR6989:为单线通信协议生成2us 脉冲信号

Guru**** 2979400 points

Other Parts Discussed in Thread: MSP430FR6989

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/689285/msp430fr6989-generating-2us-pulse-signal-for-single-wire-communication-protocol

器件型号:MSP430FR6989

大家好、

我指的是 TI 网站上发布的这一单线制接口解决方案:  http://www.ti.com/lit/an/slaa768/slaa768.pdf

上述解决方案基于 MSP430FR2XXX 器件。

我遇到的问题是与 MSP430FR6989进行从器件通信时、逻辑-1脉冲宽度为2us、逻辑-0脉冲宽度为10us。 生成2us 的脉冲宽度是这里的挑战。

我已经尝试过 GPIO 位拆裂、我看到的脉冲宽度为3.5uS。

是否有方法可以使用位拆裂和/或使用定时器来生成2us 的脉冲宽度?

非常感谢您的反馈和支持。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不熟悉 SDQ、但从表面上看、它看起来像是许多其他单线协议。

    我的第一个想法:这些协议中的大多数都不是那么挑剔;3.5us 而不是2.0us 可能是好的。 我很确定 SAMPLE_HOST 没有得到他们声称的确切时序、因为他们的数字似乎没有考虑中间的位操作指令。 即:您现在可能可以了。

    此外、他们的代码似乎声称1是6us (而不是2us)、0是60us (之后暂停10us)。

    要回答您的问题:可以使用计时器生成2us 脉冲--只需设置 CCRx=(2-1)并使用 OUTMOD=7 (复位/设置),但您还需要将 TA0R (例如)设置为 CCR0-2并启动它。 有足够的设置步骤、这些步骤本身会使您的计时停止。

    我想用500kHz 的 SPI (只连接 MOSI)与 UC7BIT:每个 SDQ 位为70us、或者5个字节。

    若要发送1、请发送一个包含6/2=3个高位0的字节、后跟1、即0x0F (7位字节、请记住)。 然后发送四个全1字节(0x7F)。

    一个0位将是四个字节的0、后跟0x1F (五个1s = 10us)。

    您需要使 SPI 保持忙碌(没有暂停)、但这并不是太困难;使用 DMA 可以保证这一点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    为什么您需要2us 的如此高速? 据我所知、单线协议对于1位读取/写入为60us。 您的从器件是什么? 您可以与我分享数据表吗?

    此致、

    如果我的帖子有助于解决您的问题、请单击  验证答案    按钮。  

    冬季、

    搜索 E2E! 您的问题可能已经得到解答!  

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

    您好 Sanjeev、

    我以前使用过单线、没有任何问题。 您应该能够轻松获得该脉冲宽度。 MCU 能够提供16MHz 的频率,这意味着您应该能够将脉宽低至~60ns。

    您运行 MCU 的频率是多少?