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.

[参考译文] ISO1228:nINT 引脚和断线位

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

https://e2e.ti.com/support/isolation-group/isolation/f/isolation-forum/1645787/iso1228-nint-pin-and-wirebreak-bits

器件型号: ISO1228

尊敬的 Sirs:

我尝试使用 nINT 引脚作为中断、连接到微控制器 (MCU) 上的引脚、
只在出现变化时读取输入状态。 但是、nINT 引脚始终为低电平。
该引脚是否需要上拉电阻器? 一旦 nINT 引脚在检测到变化后变为低电平、
如何将其恢复到高电平? 读取后是否应自动变为高电平?

关于断线寄存器、即使在相应的情况下、我也会启用断线位 
引脚电平为 24V、引脚状态读取寄存器正确并设置为 1。 我这是什么
出问题了吗? 在我的 PCB 中、我遵循了开发板的设计。

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

    您好、Jose、

    感谢您的联系。

    为了评价导致此问题的原因、我们需要看到完整的原理图连接、其中显示了所有引脚连接、而不仅仅是 IN1 和 LED1。

    此外、如果您有任何波形图来分享如何看到启用断线和 nINT 随 INx 上的数据一起被拉低、这将非常有用。

    此致
    Varun

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

    尊敬的 Varun:

    连接了我的电路。明天我会给您发送波形。

    谢谢。

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

    e2e.ti.com/.../msio_2D00_pcb_2D00_16x-DIGITAL-INPUTS.pdf

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

    您好、Jose、

    感谢原理图。

    在原理图连接中没有明显的危险信号。

    在探测波形时、最好将 F0 和 F1 设置为低电平、这样就不会过滤掉干扰

    此致
    Varun

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

    尊敬的 Varun:

    我对迟迟不答复表示歉意。 我 附加了波形。  
    如电路图所示、我有两个芯片采用菊花链配置。 
    您看到的波形对应于输入状态、断线寄存器、
    和故障寄存器。 只有第一个芯片的第一个输入设置为 1、其余输入悬空。

    我的讲座例程:

    void dinputsLibDinputsReadStatus(){
      Uint8_t txValues[DINPUTS_CHIP_MAX_N * 3]={0、0、0、0、0、 0};
      uint8_t rxValues[DINPUTS_CHIP_MAX_N * 3]={0、0、0、0、 0};

      //读取(菊花链,在中设置 DINPUTS_CHIP_N)
      cliLibPrintDebugAsync(“DIG 输入读取状态\r\n“);

      #if DINPUTS_CHIP_N =1
      //对于第一个芯片
      txValues[0]= DINPUTS_SPI_ADDR_WIRE_BREAK | DINPUTS_SPI_MASK_READ;
      #elif DINPUTS_CHIP_N =2
      //对于第一个芯片
      txValues[0]= DINPUTS_SPI_ADDR_WIRE_BREAK | DINPUTS_SPI_MASK_READ;
      //对于第二个芯片
      txValues[1]= DINPUTS_SPI_ADDR_WIRE_BREAK | DINPUTS_SPI_MASK_READ;
      #else
      #error “请选择 DINPUTS_CHIP_N 的有效值“
      #endif

      // leemos 寄存器断线故障 (tambien se Lee el Estado de las entradas ya que se devuelven el byte de directcion)
      if (spiLibMasterExchange (dinputsDev.spiIndex、dinputsDev.spiDev、txValues、rxValues、(DINPUTS_CHIP_N * 3)、 (DINPUTS_CHIP_N * 3)、0)){
        dinputsLibDinputsReadStatusUpdate(rxValues);
      }
      否则{
        dinputsLibDinputsReadStatusFail();
      }
    }


    静态 void dinputsLibDinputsReadStatusUpdate(uint8_t *values){

      cliLibPrintDebugAsync(“dinputs read status comm answered\r\n“);

      #if DINPUTS_CHIP_N =1
      //芯片 1(芯片 in1 -> PCB in1...)
      dinputsDev.inputs     =(uint16_t) values[0];
      dinputsDev.wireBreak   =(uint16_t) values[1];
      dinputsDev.fault[0]= values[2]   ;
      #elif DINPUTS_CHIP_N =2
      //芯片 1(芯片 in1 -> PCB in1...)
      //芯片 2(芯片 in1 -> PCB in16..)
      //菊花链、llegan antes los datos del chip 2.
      dinputsDev.inputs     =((uint16_t) reverse_bits (values[0])<< 8)|(uint16_t) values[1];
      dinputsDev.wireBreak   =((uint16_t) reverse_bits (values[2])<< 8)|(uint16_t) values[3];
      dinputsDev.fault[0]=   值[5];
      dinputsDev.fault[1]   =值[4];
      #else
      #error “请选择 DINPUTS_CHIP_N 的有效值“
      #endif
    }

    使用函数“reverse_bits“是因为第二个芯片的输入与编号的顺序相反。


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

    再次嗨瓦伦  

    我填写以下信息:

    ChA:SCLK、ChB:MOSI、CHC:MISO、CHD:CS。

    我还注意到、当所有输入都为时、故障引脚变为电平 0(逻辑有效) 
    悬空或接地、仅在所有输入均为时才变为 1(逻辑无效)
    连接至 24V。 这看起来不是正确的行为、对吧? 此外、在第一种情况下、
    故障寄存器的值为 0、它无法准确反映引脚的状态。

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

    您好、Jose、

    请留出一些时间来查看这些意见、并在 5 月 22 日收到星期五的回复。

    此致
    Varun

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

    尊敬的 Varun:

    是否有进展?

    此致。

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

    您好、Jose、

    抱歉、我无法从上面分享的波形中检索任何根本原因。

    为了分步调试这个问题、而不是在所有方向上都存在分歧、我们先从报告的问题开始。

    此外、如果您有任何波形图可以分享您如何看到启用断线功能和 nINT 随 INx 上的数据一起被拉低、这将非常有用。

    请使用实际的示波器和探头设置进行探测、其中我们会同时看到 INx 和 nINT 以及 nFAULT、以查看实际的输入输出行为

    此致
    Varun

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

    尊敬的 Varun:

    CHA 输入 IN1、CHB nINT、CHC 故障。 我已经在没有上拉的情况下进行了测试。 然后、我在 nINT 引脚中使用相同的波形使用 4k7 上拉电阻器重复测试。

    我已经确认、如果它未通过 SPI 读取、则 nInt 会保持低电平、尽管数据表中没有明确说明、 
    似乎是预期的行为。



    nInt 引脚的问题很明显是由于数据表中缺少信息、 
    因为它没有指定需要使用上拉电阻器的任何位置
    (然而,需要上拉电阻是我此主题中的第一个问题...)
    关于断线和 nfault 位问题、我仍在等待您的帮助。

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

    您好、Jose、

    感谢您的意见。

    您是否声明 nINT 上的上拉电阻器可以完全解决 MCU 的错误中断问题? 或者、您是说只有在 SPI 读取之后、nINT 才会按预期开始运行?

    此致
    Varun

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

    当使用上拉电阻器时、nInt 引脚保持高电平、直到输入发生变化
    发生这种情况时、它会保持低电平、直到通过 SPI 读取寄存器。 在我看来、这是正确的行为。
    因此,你的第一个假设是我要说的。
    如果没有上拉电阻、无论输入变化、SPI 寄存器读取等情况如何、nInt 引脚始终保持为 0

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

    您好、Jose、

    感谢您的澄清。

    读取 SPI 寄存器的 nINT 功能是一种预期行为、但数据表中也未提及上拉电阻器。

    我需要与设计团队讨论这个问题,看看数据表中是否确实存在缺失 — 即使您目前有一个有效的解决方案,我也会对此进行更新。

    [引述 userid=“699520“ url=“~/support/isolation-group/isolation/f/isolation-forum/1645787/iso1228-nint-pin-and-wirebreak-bits/6365262
     [/报价]

    这里、CHC (RED) 是 nFAULT 吗? -但它看起来像你描述的 nINT 行为。 您能否确认?

    另外,时间刻度单位是什么 — 是 10ms/div? 我们需要它来与设计讨论。

    此致
    Varun