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.

[参考译文] TL16C752D:FIFO 就绪寄存器

Guru**** 2392905 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1119108/tl16c752d-fifo-ready-register

器件型号:TL16C752D

您好!

我们使用 DMA 模式1:通过这种方式、TX FIFO 满时、TXRDY 输出变为高电平、当可用空间大于所选阈值时(使用组)、TXRDY 输出变为低电平。

问题是关于 FIFO RDY 寄存器的位0和位1。

  • 它们是 TXRDYA 和 TXRDYB 的副本(如第1页所述)吗?
  • 或者是否按照第38页所述在没有迟滞的情况下进行管理?

谢谢

Robert

----------------------------

文档:SLLSEN8C–2015年9月–2017年6月修订

从第27页开始:

8.4.1.2块 DMA 传输(DMA 模式1)

发送器:当一个触发电平的空间数量可用时、TXRDY 被激活。 当时、它将变为非活动状态

FIFO 已满。

 

从第1页开始:

通过 FIFO RDY 寄存器、软件可以获得

一个中的所有两个端口的 TXRDY 或 RXRDY 状态

访问

 

从第38页开始

8.5.15 FIFO 就绪寄存器

FIFO 就绪寄存器提供两个通道的发送和接收 FIFO 的实时状态。 表19.

显示了 FIFO 就绪寄存器位的设置。 表19中提到的触发级别是指中的设置

FCR (当 TLR 值为0时)或 TLR (当它具有非零值时)。

 

表19. FIFO 就绪寄存器

位0设置

0 =通道 A 的 TX FIFO 中可用的 TX 触发级别空间少于一个

1 =通道 A 的 TX FIFO 中至少有一个 TX 触发级别的可用空间数

 

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

    您好、Bottini、

    它应该与第38页描述的内容相比较、其中它将当前数据/字节数量与设置的触发字节电平进行比较。  

    您是否看到其他情况发生?  

    -Bobby

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

    您好、Bobby、

    感谢你能抽出时间。
    我们仍在研究原理图。
    我们必须使用 RXRDY 信号吗?我们不能只使用 FIFO RDY 寄存器(位0)来了解何时向 UART 发送新消息?
    对吧?

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

    您好、Bottini、

    两种方法都可以。查看 RXRDY/TXRDY 引脚需要处理器提供额外的 GPI、但比尝试从752D 器件访问寄存器要快一点、因此两者都有优缺点。  

    您还可以执行猝发写入、然后检查 LSR 位6以查看 THR 何时为空或检查 IIR 是否为 THR 中断。 这一切实际上取决于您想要如何设置系统/ISR。

    -Bobby

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

    抱歉、所有方法都不同。

     

    假设发送 FIFO 的触发深度(TLR 寄存器)为"52"。

    1. 使用 TXRDY 信号(随附手册的第27页):
      • 当 FIFO 满时、TXRDY 变为高电平(64个字符等待发送)。
      • 当 FIFO 中至少有52个空闲位置时、TXRDY 变为低电平。
    2. 使用 LSR[6](随附手册的第33页):
      • 当 FIFO 为空(移位寄存器也为空)时、位6变为高电平
      • 当 FIFO 中存在1到64个字符时(而不是当 FIFO 已满时)、位6变为低电平。
    3. 使用 FIFO 读取[0/1](随附手册的第38页):
      • 当 FIFO 中有0-51个空闲位置时、位0/1变为低电平(当 FIFO 满时不需要)
      • 当 FIFO 中有52-64个空闲位置时、位0/1变为高电平。

     

    因此、如果我按照所附的手册操作、当我需要传输数据时、检查 FIFO 是否已满的唯一方法是查看 TXRDY 信号。

    但是、在第一页、该手册指出:

    通过 FIFO RDY 寄存器、软件可以获得

    一个中的所有两个端口的 TXRDY 或 RXRDY 状态

    访问

    FIFO RDY 寄存器的描述与第38页的描述有很大不同:

    • 按照第“0”页的说明,FIFO RDY 寄存器的0/1位是 TXRDY 信号的副本,因此它们可以用来检查 FIFO 是否已满。
    • 根据“33”页的描述,FIFO RDY 寄存器的0/1位只指示 FIFO 中是否有多于或少于52个空闲空间,而不指示 FIFO 是否已满(0个空闲位置)。

     

    您能否澄清 FIFO RDY 寄存器中的位是否是 TXRDY 信号的副本? 如果不是、请修改手册、因为其中包含错误信息。

     

    为了便于参考、我还随附了兼容器件(SC16C752B)的手册;FIFO RDY 寄存器的说明如下:

    0 FIFO Rdy [0]发送 FIFO A 状态。 与 DMA 相关。

    1 FIFO Rdy [1]发送 FIFO B 状态。 与 DMA 相关

    它们是指 DMA 描述、描述了 TXRDY 信号。 因此、FIFO RDY 似乎保存 TXRDY 信号的状态。

    谢谢 Bobby

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

    您好、Bottini、

    我已经联系过该器件的一位设计工程师、看看我们是否可以验证 FIFORDY 寄存器逻辑。

    当我听到他的回声时、我会告诉你。

    -Bobby

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

    我已经向我们的设计工程师确认了这一点。 FIFORDY 寄存器的工作原理与第38页的描述相同、它将队列中的当前字节与触发电平进行比较、不会像 TXRDY 在 DMA1模式下所做的那样进行锁存。  

    -Bobby