您好!
我的客户对 IIR 有疑问。
它们在 INT 变为活动状态之前读取 IIR。
[第1季度]
IIR 是否可能= 0x03h?
IIR 位0 = 1是无中断挂起。
此时、IIR 位[3:1]值无关。
因此,我认为上述数值并无问题。
问题2.
如果 IIR 读取和中断产生时序冲突、会发生什么情况?
问题3.
IIR 读取和中断生成之间的冲突是否存在勘误表?
此致、
Kaede Kudo
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.
您好!
我的客户对 IIR 有疑问。
它们在 INT 变为活动状态之前读取 IIR。
[第1季度]
IIR 是否可能= 0x03h?
IIR 位0 = 1是无中断挂起。
此时、IIR 位[3:1]值无关。
因此,我认为上述数值并无问题。
问题2.
如果 IIR 读取和中断产生时序冲突、会发生什么情况?
问题3.
IIR 读取和中断生成之间的冲突是否存在勘误表?
此致、
Kaede Kudo
您好、Kaede、
问题1:
我之前使用过 IIR 器件时、没有对该器件进行任何活动扫描、因此我实际上无法确定答案。 如果您有一个寄存器初始化和测试序列供我运行以验证这一点、我可以尝试查看我是否可以复制会创建它的内容、否则我不确定。
我的最佳猜测是、如果位0为1、则不应存在要读取的中断。 数据表中的表15似乎表明、在这些中断源中、位0应该为0。
问题2:
你能给我举个例子吗? 我不确定是否遵循? 您是否说有中断、但它没有显示在 IIR 中?
问题3:
TL16C752D 器件没有错误输出。
-Bobby
您好、Bobby、
感谢你的答复。
我将与您联系、因为我具有更清晰的背景和客户要求。
您可以检查一下吗?
他们正处于非常匆忙的情况、因此尽早回答会很有帮助。
[背景]
完成 Tx 后、确认 INT 引脚为高电平、并执行 IIR 读取。
执行与 IIR 指示的中断源对应的处理、然后读取 IIR。
此时 IIR 的值为0x03h。
*第二次 IIR 读取并不意味着在 INT 引脚上升时读取。
至于时序、当 TXRDY 位低时、在时序上执行 IIR 读取。
*第二次读取 IIR 的目的是检查是否发生了任何其他中断。
[客户在0x03h 上的视图]
在第一个中断处理完成后读取 IIR。
IIR 内容变化的时间和读取的时间都是安打的。
那么、我能否读取位0 = 1表示中断复位完成、位[3:1]≠000表示第二个中断源的值?
[问题]
1 μ s 在.条件下读取 IIR 时、是否可以读取0x03h 的值?
*中断处理后、TXRDY 下降时是否可以读取 IIR?
-初始设置
LCR=0x03
*字长度=8位
*1个停止位
*无奇偶校验
*正常操作条件
*中断控制位=中断条件
设置 EFR=0x00
*无传输流控制
*无接收器流量控制
*增强功能已禁用
*正常运行
禁用* RTS 流控
*禁用 CTS 流控
设置 FCR=0x0F
*启用发送和接收 FIFO
*清除接收 FIFO 并将其计数器逻辑复位为0
*清除发送 FIFO 并将其计数器逻辑复位为0。
*DMA mode=1.
*设置 RX FIFO:1字符的触发级别
*设置 TX FIFO 的触发级别:8个空格
设置 IER = 0x0F
*启用 RHR 中断
*启用接收器线路状态中断
*启用 THR 中断
*启用调制解调器状态寄存器中断
2.当对0x03h 的看法不正确时、是否可以确定 IIR 位[3:1]的值是当前正在发生的中断源并执行该过程?
*在上述时序读取的 IIR 位0的值是否可忽略?
3.当生成多个中断时、TI 是否建议有关 INT 引脚行为和处理的任何程序和条件?
示例:当 THR 和 RHR 中断同时发生时、在 INT 的上升沿读取 IIR 应指示 RHR 中断。
执行 RHR 中断复位处理后、何时可以确认发生了 THR 中断?
・INT 变为低电平后、它是否会在读取 IIR 之前再次变为高电平?
・INT 始终为高电平、是否需要在处理并再次读取 IIR 后设置延迟?
我不知道 INT 在生成多个中断时的行为、复位处理以及 IIR 寄存器的反射时序。
此致、
Kaede Kudo
您好、Kaede、
很抱歉,我们在星期一有一个全国性的假期(你发送详细的帖子的那一天),我昨天没有在办公室。
----------
"那么、我能否读取位0 = 1表示中断复位完成、位[3:1]≠000表示第二个中断源?"
只需再次检查这里、客户已确认看到0x03h?
"二. 当对0x03h 的判断正确时、是否可以安全地确定 IIR 位[3:1]的值是当前正在发生的中断源并执行该过程?
*在上述时序读取的 IIR 位0的值是否可忽略?"
中断具有优先级、如果有多个中断、那么您可以在读取 IIR 时看到具有最高优先级的中断。 如果您看到 IIR 位3:1不为零、则应启动中断服务例程。 (在本例中、位0没有意义读取)。
"示例:当 THR 和 RHR 中断同时发生时、在 INT 的上升沿读取 IIR 应指示 RHR 中断。
另一种方法是查看器件的 TXRDY 和 RXRDY 引脚、以查看是否存在数据(您可以将 DMA 模式0设置为在1字节触发)。 当 FIFO 为空时、TXRDY 变为低电平;当 RX FIFO 中至少有一个字节时、RXRDY 变为低电平。
另一种方法(使用此器件时、我最常使用此方法)是使用 LSR 寄存器并读取 Bit5、以查看 THR 是否为空或位0、以查看 RHR 是否有存储在 FIFO 中的值。
执行 RHR 中断复位处理后、何时可以确认发生了 THR 中断?
・INT 变为低电平后、它是否会在读取 IIR 之前再次变为高电平?
・INT 始终为高电平、是否需要在处理并再次读取 IIR 后设置延迟?
如果您有多个中断、它应该保持高电平
我不知道 INT 在生成多个中断时的行为、复位处理以及 IIR 寄存器的反射时序。"
如果存在多个 INT、则 IIR 中将显示具有最高优先级的 INT。 (除非您提前解决、否则其他 INT 仍应存在)。 您可以在表15最左列中看到优先级。
-Bobby