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.

[参考译文] TIR1000:16Xclk 的占空比

Guru**** 2519290 points
Other Parts Discussed in Thread: TIR1000, TL16C550C, SN54LS674

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/760436/tir1000-duty-cycle-for-16xclk

器件型号:TIR1000
主题中讨论的其他器件: TL16C550CSN54LS674

您好!

我从 Microchip 订购了一些 mpc2221芯片。 它是一个小型芯片、能够将 USB 信号转换为双 RS232信号。 我还从 Vishay 订购了一些 LED、以及... TI 的 TIR1000。  到目前为止都很好。 现在是问题。 如何生成我需要的16XCLK 波特率时钟信号?? 经过一些思考和阅读,我发现照片能够输出他的时钟信号(内部以12MHz 运行)!! 12MHz 正常、可由 PLL 加倍至24MHz。

所以我在想... 如果我可以使用该 pic 输出信号并将其除以我可能会以某种方式满足 1.843 MHz 以驱动16Xclk 时钟而不是标准可用的1、5MHz???  现在是12/1、8 = 6、5。 很重要。 但在 PLLx2模式下。  24mh (最大误差率为05%,12MHz 校准为0.25%) /13=1,846153846153846  !!!!!!! 我得出的结论是、24MHz/13在115K 和38K 波特率上提供了1%的误差率。  但可悲的是... 我们无法使用我们自己的代码对该 pic 进行编程。 只需启用并设置 INTclk OUT 分频器。

现在这里已经到了!!! 为什么不使用专用的14位计数器???  假设"74hc4060"、我们将复位线连接到 Q13、将 CLKIN 连接到 Pic 的24MHz 输出时钟。 我们去了。

我的问题是。 该脉冲雨水位于 PWM 1/13而不是50/50中。 因此、Hz 几乎是完美的。 但占空比已降至7、7%。  

第一个问题是 :这是个问题吗?

第2个问题。  这是否起作用?

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

    嗨、Tom、

    这实际上是一个非常有趣的问题。 通常、当您提供时钟频率(16x 时钟)时、占空比为50%、但在您的情况下、您有一个高7.7%、低93%的脉冲、尽管该频率仍为1.843MHz 以支持115k 波特率。

    这是我从未考虑过的情况、我假设器件的设计使预期的时钟信号具有50%的占空比。 时钟的上升沿和下降沿旨在被器件用作参考、以了解何时对接收到的数据进行采样并生成以指定时钟速率(1/16)发出的数据。 我认为将会发生的情况是、数据采样和发送的时间可能会受到某种程度的影响。 另一种可能是器件可能无法在时钟的高电平周期内执行所需的操作、并且可能会忽略/错过下降沿、因为它尚未完成内部所需的操作。 (只是一个猜测)

    我唯一能为您提供确切答案的方法是订购 TIR1000的一些样片并进行一些测试。 我怀疑样本需要几天时间才能到达这里、我可能无法立即进行测试、直到下周初。(我将在发布后订购样本)

    我还看到您提到过您在原始帖子中使用 TIR2000、此器件已停产、我们不再支持。 我想验证您的问题是否与 TIR1000或 TIR2000有关。 我不确定此器件的状态机是否彼此相似、因此我的测试可能不支持 TIR2000。

    谢谢、

    -Bobby

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

    您好、Bobby、

    感谢您的意见。  是的,TIR2000是一个拼写错误:)我是指 TIR1000。  

    因为我不想等待这里的答案、所以我完全一样。  我对  TI 的几个 TIR1000和几个 CD74HC4020E 进行了采样、并处理并确认了我的请求。 4020更适合工作、因为他没有构建自运行振荡器开关的内部信息、这不是我们的目标。 仅一个时钟、一条复位线路和14个触发级。 我也会在我获得样片后立即执行此测试。 不管怎样、还在等待 DE LED 和 USB/RS232芯片。 所以... 需要一些时间。 发布我的问题的唯一原因是查看其他人是否曾尝试过。 在这种情况下、我不需要重新发明热水。 如果你知道我的意思的话。  

    数据表中的问题。 他们是如此... 摘要。 您可以查看4020数据表。 它们几乎解释了芯片中的每个晶体管。 如果您查看 TIR1000数据表、您只会看到芯片连接以及有关如何使用它的摘要。 TI 甚至提供了"TL16C550C"开关内部的一些信息、甚至不能再解释 TIR1000。  就像你一样、我不知道里面发生了什么。  

    我的第一个猜测是:在内部、我们发现一个36khz 自由运行振荡器连接到 IR LED 的驱动器、并由 TX 发出命令。 然后、它还具有一个类似光电二极管输入的简单施密特触发运算放大器。 问题是什么? 它们是否已锁存? 以及它们是否被锁存。 它们如何锁存? 上升沿还是下降沿? 占空比是否是该16XCLK 输入上的关键因素?? 无法通过阅读数据表来判断。 它们是否已锁存。 我认为7.7%的占空比可以实现正常的50/50% PWM。 因为它只是用来同步内部信息的 puls。 上升沿或下降沿。 这不是问题。 如果这是一个问题、 我们只需用晶体管将 Q13反相、以匹配上升沿或下降沿所需的输入...  

    另一种可能性。 我们提供16倍波特率。 但 TI 认为在最坏的情况下、"就像我这样希望提供质量差的 PWM 脉冲的人:)"并且只是为了确保、他们通过/2开关使输入频率偏离线、使其获得8倍波特率、而不是将8个脉冲计数到中间位空间、 它们只计算4、因为它们已经偏离了 clk16x by2。 这些覆铜脉冲的时基不变、因此计数的脉冲 nr 4将与 16XCLK 输入脉冲8完全匹配。 但是! 这种工作方式会使他们在内部处于50%/ 50%的工作状态...

    我进行第二次猜测是因为我已经读过、对于这个问题、TI 自己建议在相关芯片没有专用波特率输出引脚的情况下使用来自微控制器的免费 PWM 通道来生成16波特率。 他们没有谈到任何占空比值。 它们只讨论频率。 也许他们认为、人们会知道他们必须提供50/50%的 PWM。 或者... 他们没有解决这一问题,因为它是不相关的,因为他们无论如何都执行那个/2。。。。

    TI。 如果您阅读此内容。 请与我们分享您的 TIR1000在内部的工作原理。 仍有人在阅读数据表:)

    另一种方法。 如果 HC4020没有和 TIR1000结识最好的朋友。 (我当然希望他这样做)但如果他不这样做的话。 我可能只能得到有关该50/50%占空比问题的答案。

    专用串行移位寄存器是否可以作为答案? 查看74F675开关、它是一个16位专用串行/并行移位寄存器。 我们将24MHz 连接到它的时钟。 我们不使用任何读取/写入、我们禁用它的复位线路、因此他可以继续自由运行。 但是!!!  我们使用一个简单的晶体管将其 Q13反相、并将其作为 WEL 馈送到 TIR1000的16XCLK 输入中的数据输入锁存器。 最终结果:在开始。 无时钟,Q13处于低电平状态,晶体管向串行数据锁存器馈送逻辑1,1个脉冲,Q13仍为低电平,数据仍为1,脉冲2,脉冲3,... 直到脉冲13。 Q13开始激活、因此将晶体管端子反相、从而开始向锁存器中的数据馈入0。 脉冲14也是如此、因为整个寄存器(最多13个)都填充了1。 15岁的人都一样,16岁的人也一样… 直到脉冲26。 Q13再次以二进制0移位,翻转晶体管,然后打开,再打开...  

    最终结果? 我们仍然有效地执行24MHz/13 (在我们移动13个时钟直至发生什么情况时)以获得16XCLK @正确的速度。 但这次我们不进行任何复位、让寄存器进行位移、实际上我们现在使用中的数据锁存器作为我们的16倍波特率信号、但现在这个是@μ s 正确的50/50占空比。

    我还订购了移位寄存器。 无论如何、我将对这两种方法进行测试!  一个小问题。 TI 的典型寄存器称为 SN54LS674是有原因的。 检查数据表后。 这一个"LS"只能处理高达20MHz 的速度。 很明显、开关在24MHz 下会减慢。 Fairshild 有 一个最小频率为100MHz 的74F675A 16位移位寄存器。 我们只需要将写引脚连接到主时钟,就可以看到正在转换的输出... 但正如我发现的。 这些器件已停产。 您可以找到一些。 但生产已停止...

    另一个洗浴是为第二张照片编程。 12F1840命名为1。 将他的 eusart 编程为自动波特、并使他将0%误差完美16 x 波特率馈送到 PIR1000。 这意味着、即使您更改波特率并且始终先发送"U"。 您可以选择所需的任何波特率。 这里的诀窍是坚持使用115和38 Kbaud。 AL 其他速度不能使用/13分频器技巧来实现。 但正如您可以想象的那样。 我认为这是愚蠢的。 那么您可以编程一个支持 USB 的图片。 自己实现 CDC 堆栈并使用内部计时器生成 Baudx16。 但这不是我打算在这里做的。 我打算购买转换器芯片、该芯片在出厂时已针对他的任务进行了编程。 按预期用途使用。 和... 如果需要、添加1个或2个器件来安排一些东西。 不会编写单个代码字母。 即用型产品...

    另一个想法是只使用其中一个 FTDI 芯片。 但它们并不便宜、也不能提供波特率。 因此、问题甚至比预编程的 pic 解决方案更复杂。 +完成对最终用户的操作后、他们永远不会再收到我任何部分的任何订单。 将您的官方驾驶员武器化以打击假冒产品的工作尚未完成。 他们还有其他办法来处理这种情况。 所以... 在任何情况下、我都无法选择 FTDI。 我不喜欢他们的风格,也不喜欢芯片价格和硬件变得更复杂...

    您对此有何看法?

    此致、

    Tom

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

    我同意这样一个事实、即在一个有能力的控制器芯片内全面实施 CDC 堆栈是这项工作中最好/最优雅的洗浴。 所有(甚至非标准)波特率都可供终端用户使用。 在我们为自身的 UART 生成波特率时。 我们当然可以为 TIR1000提供该精确值。 但您需要先完成该操作。 您需要了解该堆栈的工作方式:)-->现在的原因。 我想使用一个现成的转换器+也许还有一些额外的硬件...

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

    我的样片今天就来了、我将在分线板上焊接一些样片、并尝试在明天进行测试。

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

    嗨、Tom、

    很抱歉耽误我的答复。 我今天能够进入实验室并执行测试。

    我使用 Agilent 33220A 函数发生器在~7.7%的占空比下获得1.846MHz 时钟。 您可以在下面的时钟信号上看到我的测量值。

    我想说、这看起来非常好。

    因此、我设置了一个 MCU、通过串行0xAA 向 TIR1000的 U_TXD 发送数据、然后监控 IR_TXD:

    请原谅串扰。 我在一个分线板和长导线上设置 TIR1000、结果就是这样。

    蓝色是输入:U_TXD

    紫色是输出:IR_TXD

    占空比对传输无关紧要。 那么、现在我们需要问、接收的内容是什么?

    嗯、我决定了验证这一点最简单的方法是将 IR_TXD 短接至 IR_RXD、输入应与输出匹配并延迟一段时间。

    蓝色是输入:U_TXD
    紫色是输出:IR_TXD

    绿色表示输出:U_RXD

    由此我们可以成功地说、发送和接收输入在7.7%的占空比下成功工作。 我还认为 U_TXD 是下降沿速率触发的、而 IR_RXD 是上升沿触发的。

    谢谢!

    -Bobby

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

    谢谢 Bobby!

    我将建立这个想法并告诉您结果。

    仍在等待一些样片。

    Tom