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.

[参考译文] PGA411Q1EVM:为什么在FAULTRES未保持低电平时PGA411-Q1角度和速度读出失败?

Guru**** 2553950 points


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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/604920/pga411q1evm-why-does-pga411-q1-angle-and-velocity-readout-fail-when-faultres-is-not-kept-low

部件号:PGA411Q1EVM
在“线程”中讨论的其它部件:PGA411-Q1

您好!

我正在使用外部MCU (TriCore)在Eval PCB上对PGA411-Q1进行编程。
我成功地对设备进行了编程,它不会发出任何SFAULT值的信号。
设备CRC检查设置为"继续",FRCRC也保持为'0'。
如上所述,我在首次测试中使用FAULTRES = LOW。

当我强制FAULTRES引脚低电平时,angluar位置和速度值的ang读数正在工作。
当我拉高FAULTRES时,我只得到一个角度和速度值(似乎是初始值),但两个寄存器都不会再更新。

在文档SLAA688 (与任何主机系统一起初始化)中,图7中有一个启动图。
它表示,在进入正常状态后,只需要一个FAULTRES高-低-高切换。
即使这样做,我只得到一个初始值,但在连续读取角度和速度寄存器时没有更新。

我使用100us作为FAULTRES低电平,因为我在数据表中没有找到任何计时信息。
您是否知道FAULTRES针脚在芯片上应保持低电平多长时间?

当我保持FAULTRES针脚高电平时,在上述FAULTRES切换至正常状态后,
我的自定义配置未在芯片中使用,因为继续读取配置不会显示我的配置。

是否需要一些FULTRES处理?
你有什么想法,为什么我看到这样的行为?

巴西,

Markus

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

    100US对于FULTRES来说足够长。 听起来似乎nReset (重置)可能是意外切换而不是FAULTRES (FAULTRES)。 运行此程序时,您能否检查示波器上的nReset状态? 寄存器重置为默认配置的唯一方法是:

    1:发送命令以重新加载EEPROM
    2:切换nReset
    3:重置电源

    此外,当您将FAULTRES切换回高电平时,故障针脚的状态是什么?

    谢谢!

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

    您好Clancy!

    @1:EEPROM处理当前未实施;我只是写入设备寄存器(OVUV1至OVUV6,TLOOP_CFG,AFE_CFG,PHASE_CFG,config1, control1,Control2,Control3,CLCRC,CRC,CRC_CTL1)
    所以我不会想到这方面会出现问题。

    @2:我使用示波器进行检查;nReset引脚处没有峰值。 FAULTRES引脚有点不稳定,但很容易在数据表中给出的70 % 范围内。

    @3:我增加了电源的电流限制(从350mA到950mA @5V);现在我看到芯片上的配置是正确的;但角度的读数仍然只有在我保持FAULTRES处于低电平时才会更新。

    我目前的工作方式如下:
    1) FAULTRES -> HIGH (高)
    2) nReset -> 100us
    3)等待芯片“自初始化”6毫秒
    4)切换FAULTRES
    5)诊断模式->写入配置->正常模式->读取配置
    6)验证读取配置与预期配置的对比;如果符合预期(相同),则强制FAULTRES为低。
    7)定期读取STAT4,STAT5,STAT6,STAT7和CONFIG (仅检查是否保留)

    使用此序列,STAT5中的角度将更新。 如果我跳过步骤6,我只得到一个角度值。

    我的配置(为读取地址计算的CRC):

    DEV_OVUV_1 =(CRC = 60,ResStatus = 0,OSHORTH = 0,OSHORTL = 0,EXTILMTH_H1_2 = 5, EXTILMTH_L1_2 = 5,EXTOUT_GL = 8,ADDR = 83)
    DEV_OVUV_2 =(CRC = 40,ResStatus = 0,DVMSENL = 5,DVMSENH = 5,TRDHL = 3, XEXT_AMP = 0,RES = 0,ADDR = 107)
    DEV_OVUV_3 =(CRC = 52,ResStatus = 0,OOPENTHH = 7,OOPENTHL = 7,OVIZH = 3, OvEZL = 0,EXTOVT = 7,EXTUVT = 7,ADDR = 101)
    DEV_OVUX_4 =(CRC = 16,ResStatus = 0,FSHORT_CFG = 0,nBOOST_FF = 1,VEXT_CFG = 0, AUTOPHASE_CFG = 0,TEXTMON = 7,TSHORT = 7,RES = 0,ADDR = 236)
    DEV_OVUX_5 =(CRC = 53,ResStatus = 0,res = 0,TOPZH = 7,res2 = 0, 地址=82)
    DEV_OVUX_6 =(CRC = 61,ResStatus = 0,LPETHH = 3,LPETHL = 3,res = 0, BOUST_VEXT_MASK = 0,IZTHL = 7,RES2 = 0,ADDR = 233)
    DEW_TLOOP_CFG =(CRC = 27,ResStatus = 0,DKI = 4,SENCLK = 0,OHYS = 1, DKP = 4,MKP = 2,res = 0,ADDR = 166)
    DEG_AFE_CFG =(CRC = 28,ResStatus = 0,GAINSIN = 1,GAINCOS = 1,res = 0, 地址=194)
    DEG_PHASE_CFG =(CRC = 36,ResStatus = 0,PHASEDEMOD = 0,EXTOUT = 0,EXTMODE = 1, APEN = 1,PDEN = 0,EXTUVF_CFG = 0,ADDR = 87)
    dev_config1 =(CRC = 61,ResStatus = 0,MODEVEXT = 2,SCLFEXT = 0,res = 0, NPLE = 0,res2 = 0,ADDR = 190)
    DEP_control1 =(CRC = 16,ResStatus = 0,DIAGEXIT = 0,MEXTMON = 1,MAFECAL = 1, MIZUV = 1,MIZOV = 1,MEXTUV = 1,MEXTOV = 1,MFLOOPE = 1, MFOCOSOPL = 1,MFOSINPL = 1,MFOCOSOPH = 1,MFOSINOPH = 1,RES = 0, MFOSHORT = 1,RES2 = 0,ADDR = 144)
    DEP_CONTROL2 =(CRC = 37,ResStatus = 0,ENEXTUV = 0,ENEXTMON = 0,ENBISTF = 0, ENIOFAULT = 0,ENINFAULT = 0,RDC_DISABLE = 0,RES = 0,LBIST_EN = 0, ABIST_EN = 0,ADDR = 99)

    状态读数:
    DEW_STAT1 =(CRC = 39,ResStatus = 0,FOSHORT = 0,FGOPEN = 0,STAT = 0, FOSINOPH = 0,FOCOSOPH = 0,FOSINPL = 0,FOCOSOPL = 0,FLOOPE = 0, EXTOV = 0,EXTUV = 0,EXTIIM = 0,FTECRC = 0,FCECRC = 0, FRCRC = 0,FLOOP_clamp = 0,ADDR = 129)
    DEP_STAT2 =(CRC = 0,ResStatus = 0,SIORD = 0,SPRD = 0,res = 0, 地址=0)
    DEW_STAT3 =(CRC = 16,ResStatus = 0,FIZH1 = 0,FIZH3 = 0,FIZH2 = 0, FIZH4 = 0,FIZL1 = 0,FIZL3 = 0,FIZL2 = 0,FIZL4 = 0, OMIZ1H = 0,OMIZ3H = 0,OMIZ2H = 0,OMIZ4H = 0,OMIZ1L = 0, OMIZ3L = 0,OMIZ2L = 0,OMIZ4L = 0,ADDR = 132)
    DEP_STAT4 =(CRC = 31,ResStatus = 1,SOUTZ = 0,SOUTB = 1,SOUTA = 1, SFAULT = 0,IOFAULT = 0,FVDDOV = 0,FVCCOV = 0,LBISTF = 0, ABISTF = 0,FEXTMODE = 0,FTSD2 = 0,FVDDOC = 0,FBSTOV = 0, SPI_ERR = 0,FEXTMONL = 0,FEXTMONH = 0,ADDR = 31)
    DEP_STAT5 =(CRC = 28,ResStatus = 0,ORDANGLE = 393,ORDCLOCK = 0,PRD = 0, RES = 0,ADDR = 65)
    DEVE_STAT6 =(CRC = 62,ResStatus = 0,ORDVELOCITY = 1.6383万,PRD = 0,res = 0, 地址=111)
    DEP_STAT7 =(CRC = 17,ResStatus = 0,REVID = 3,OPTID = 1,DEVSTATE = 1, FAFECAL = 0,RES = 0,ADDR = 225)

    控件:
    DEP_CONTROL3 =(CRC = 5,ResStatus = 0,EXTEN = 1,LPEN = 1,SPIDIAG = 0, 保留= 0,ADDR = 221)
    DEW_CLCRC =(CRC = 55,ResStatus = 0,ECCRC = 0,res = 0,ADDR = 79)
    DEP_CRC =(CRC = 38,ResStatus = 1,RCRC = 122,res = 0,ADDR = 15)
    DEV_CRCCALC =(CRC = 33,ResStatus = 0,CRCCALC = 122,res = 0,ADDR = 217)
    DEW_EE_CTRL1 =(CRC = 24,ResStatus = 0,EECMD = 0,res = 0,ADDR = 227)
    DEV_CRC_CTRL1 =(CRC = 53,ResStatus = 0,CRCCTL = 1,res = 0,ADDR = 122)
    DEW_EE_CTRL4 =(CRC = 32,ResStatus = 0,EEUNLK = 0,保留= 0,ADDR = 186)
    DEV_UNLK_CTRL1 =(CRC = 2,ResStatus = 0,DEVUNLK = 240,res = 0,ADDR = 100)

    巴西,

    Markus

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

    此外,当您将FAULTRES切换回高电平时,故障针脚的状态是什么?
    当我保持FAULTRES高而不是低电平时,故障针脚保持低电平(通过OSCi在~1分钟的时间内进行验证,正常触发器,2.31V电平,上升沿)

    有趣:当我在配置验证(回读)后保持FAULTRES低电平时,故障针脚有时会在20us内每1毫秒切换约20us,时间为83ns (~12MHz)。

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

    您能否在示波器上检查SPI帧? 我还建议现在关闭连续设备CRC检查,尤其是在SPI帧中出现CRC错误时(Jon提到了这一点)。

    FAULTRES低电平时,故障针脚切换没有意义,除非FAULTRES有时也意外切换。 由于您是在EVM上执行此操作,因此EVM上的MSP430 MCU可能存在一些问题。 即使您没有为USB部分供电,它们也不是完全隔离的。 我需要在实验室中为您验证解决方案。 它将涉及添加一条线来强制电平转换器进入高Z状态,或者涉及完全删除电平转换器(如果您不需要使用GUI)。

    谢谢!

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

    示波器上的SPI帧正常。 数据随上升边缘变化,数据对下降边缘有效。 我使用的是2.5MHz SPI CLK。
    我在配置中禁用了继续CRC检查。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请仔细检查NCS信号是否在SPI帧之间切换。 PGA411不支持背靠背SPI帧,因此可能会导致您偶尔看到的SPI错误。 您可以通过在FAULTRES为高电平时触发故障引脚并检查在此之前的SPI信号来检查此情况。 当然,如果故障针脚保持低电平,这可能对您不起作用。

    您之前发布的状态读数是在FAULTRES低或高时出现的吗? 这一点很重要,因为在FAULTRES (FAULTRES)保持低电平时,所有故障都将被清除。

    这种情况很奇怪,因为听起来好像发生了故障,导致跟踪环路关闭。 这就是当FAULTRES较低时角度/速度更新的原因,但当FAULTRES较高时,角度/速度保持不变的原因。 但是,您还报告故障针脚未报告任何故障。 您能否运行快速测试以确保故障报告正常工作?

    1.保持FAULTRES高电压
    2.将IZF的其中一个针脚短接至5伏或接地
    3.监控故障引脚和DEP_STAT3寄存器的状态。 请注意,故障状态寄存器将在读取后清除,因此请注意不要对同一寄存器执行多个读取。

    谢谢!

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

    NCS在SPI帧之间切换。 它比下一个SPI帧高600ns。 根据数据表,这应该是正常的。
    我有时还会看到CS和CLK线在SPI帧之间进行部分切换。
    这将解释芯片发现不完整的SPI帧并发出SPI错误信号。 已检查接地连接(以mOhm为阻抗,接地1-2mV之间的电压(测量设备的容差)。

    我在 2017年6月23日上午7:10发布的读数配置 是我保持FAULTRES低电平的时候。

    也许我在这里总结一下,不会感到困惑,我目前可以观察到:

    ——— IZ*和OE*插针没有连接(“开路”)---
    -案例1:"保持FAULTRES低电平:"
     如果我这样做,我不会读取任何故障(通过SPI读取SFAULT)。 exten =1和LPEN=1被保留(我只需再次运行此案例>5分钟)。
     在这种状态下,我能够按预期读取角度/速度值,但由于没有IZ*,OE*连接,因此不是合理的。
    -案例2:“在配置验证后切换FAULTRES一次(应该正常,因为数据表中提到“去毛刺”时间;这肯定会通过),然后保持FAULTRES高电压,直到检测到SFAULT为止:”
     我在STAT4中读取SFAULT=1;当观察到时,我切换FAULTRES (高-低-高,低100us)。 SFAULT被读取为0。 但励磁机已禁用。
     这里我看到FLOOPE=1,OMIZ1L=1和OMIZ2L=1。 我可以确认在同一故障中,OMIZ2L和OMIZ1L设置为1。
     一段时间后,我只读SFAULT=1,但STAT1和STAT3没有变化;所以我读了错误,切换FAULTRES,但不能说是哪一个错误。 当我到达这个时,EXTEN=0和LPEN=0,不能通过写入Control3重新激活。

    ——— 使用IZ*和OE*插针的连接---
    案例1:
     如上所述,但角度/速度值现在是有意义的;EXTEN=1和LPEN=1保持;(再次测试>5min)
    案例2:
     角度/速度读数正常;但发生了EXTEN和LPEN被禁用(设置为0)的情况,但从STAT1,STAT3 (和STAT4)来看,我不能说出是哪个错误;只有SFAULT=1。
     一旦EXTEN和LPEN达到0,则无法重新启用。

    在IZ*和OE*连接的两种情况下,当EXTEN=0,LPEN=0时,我读取以下配置:
    (STAT1和STAT3只在首先读取SFAULT=1后才读取,而SFAULT=1在此状态下保持为1)

         confreg =(
           DEV_OVUV_1 =(CRC = 60,ResStatus = 0,OSHORTH = 0,OSHORTL = 0,EXTILMTH_H1_2 = 5, EXTILMTH_L1_2 = 5,EXTOUT_GL = 8,ADDR = 83)
           DEV_OVUV_2 =(CRC = 40,ResStatus = 0,DVMSENL = 5,DVMSENH = 5,TRDHL = 3, XEXT_AMP = 0,RES = 0,ADDR = 107)
           DEV_OVUV_3 =(CRC = 52,ResStatus = 0,OOPENTHH = 7,OOPENTHL = 7,OVIZH = 3, OvEZL = 0,EXTOVT = 7,EXTUVT = 7,ADDR = 101)
           DEV_OVUX_4 =(CRC = 11,ResStatus = 0,FSHORT_CFG = 1,nBOOST_FF = 1,VEXT_CFG = 0, AUTOPHASE_CFG = 0,TEXTMON = 7,TSHORT = 7,RES = 0,ADDR = 236)
           DEV_OVUX_5 =(CRC = 53,ResStatus = 0,res = 0,TOPZH = 7,res2 = 0, 地址=82)
           DEV_OVUX_6 =(CRC = 61,ResStatus = 0,LPETHH = 3,LPETHL = 3,res = 0, BOUST_VEXT_MASK = 0,IZTHL = 7,RES2 = 0,ADDR = 233)
           DEW_TLOOP_CFG =(CRC = 27,ResStatus = 0,DKI = 4,SENCLK = 0,OHYS = 1, DKP = 4,MKP = 2,res = 0,ADDR = 166)
           DEG_AFE_CFG =(CRC = 28,ResStatus = 0,GAINSIN = 1,GAINCOS = 1,res = 0, 地址=194)
           DEG_PHASE_CFG =(CRC = 36,ResStatus = 0,PHASEDEMOD = 0,EXTOUT = 0,EXTMODE = 1, APEN = 1,PDEN = 0,EXTUVF_CFG = 0,ADDR = 87)
           dev_config1 =(CRC = 61,ResStatus = 0,MODEVEXT = 2,SCLFEXT = 0,res = 0, NPLE = 0,res2 = 0,ADDR = 190)
           DEP_control1 =(CRC = 33,ResStatus = 0,DIAGEXIT = 0,MEXTMON = 0,MAFECAL = 0, MIZUV = 0,MIZOV = 0,MEXTUV = 0,MEXTOV = 0,MFLOOPE = 0, MFOCOSOPL = 0,MFOSINPL = 0,MFOCOSOPH = 0,MFOSINOPH = 0,RES = 0, MFOSHORT = 0,RES2 = 0,ADDR = 144)
           DEW_CONTROL2 =(CRC = 59,ResStatus = 0,ENEXTUV = 1,ENEXTMON = 1,ENBISTF = 1, ENIOFAULT = 1,ENINFAULT = 1,RDC_DISABLE = 0,RES = 0,LBIST_EN = 0, ABIST_EN = 0,ADDR = 99)
         StatReg =(.
           DEW_STAT1 =(CRC = 39,ResStatus = 0,FOSHORT = 0,FGOPEN = 0,STAT = 0, FOSINOPH = 0,FOCOSOPH = 0,FOSINPL = 0,FOCOSOPL = 0,FLOOPE = 0, EXTOV = 0,EXTUV = 0,EXTIIM = 0,FTECRC = 0,FCECRC = 0, FRCRC = 0,FLOOP_clamp = 0,ADDR = 129)
           DEP_STAT2 =(CRC = 0,ResStatus = 0,SIORD = 0,SPRD = 0,res = 0, 地址=0)
           DEW_STAT3 =(CRC = 16,ResStatus = 0,FIZH1 = 0,FIZH3 = 0,FIZH2 = 0, FIZH4 = 0,FIZL1 = 0,FIZL3 = 0,FIZL2 = 0,FIZL4 = 0, OMIZ1H = 0,OMIZ3H = 0,OMIZ2H = 0,OMIZ4H = 0,OMIZ1L = 0, OMIZ3L = 0,OMIZ2L = 0,OMIZ4L = 0,ADDR = 132)
           DEP_STAT4 =(CRC = 42,ResStatus = 0,SOUTZ = 0,SOUTB = 1,SOUTA = 1, SFAULT = 1,IOFAULT = 0,FVDDOV = 0,FVCCOV = 0,LBISTF = 0, ABISTF = 0,FEXTMODE = 0,FTSD2 = 0,FVDDOC = 0,FBSTOV = 0, SPI_ERR = 0,FEXTMONL = 0,FEXTMONH = 0,ADDR = 31)
           DEP_STAT5 =(CRC = 53,ResStatus = 0,ORDANGLE = 1,ORDCLOCK = 0,PRD = 1, RES = 0,ADDR = 65)
           DEVE_STAT6 =(CRC = 3,ResStatus = 0,ORDVELOCITY = 0,PRD = 0,res = 0, 地址=111)
           DEP_STAT7 =(CRC = 17,ResStatus = 0,REVID = 3,OPTID = 1,DEVSTATE = 1, FAFECAL = 0,RES = 0,ADDR = 225)
         RwReg =(
           DEP_CONTROL3 =(CRC = 40,ResStatus = 0,EXTEN = 0,LPEN = 0,SPIDIAG = 0, 保留= 0,ADDR = 221)
           DEW_CLCRC =(CRC = 55,ResStatus = 0,ECCRC = 0,res = 0,ADDR = 79)
           DEP_CRC =(CRC = 15,ResStatus = 0,RCRC = 97,RES = 0,ADDR = 15)
           DEV_CRCCALC =(CRC = 4,ResStatus = 0,CRCCALC = 255,res = 0,ADDR = 217)
           DEW_EE_CTRL1 =(CRC = 24,ResStatus = 0,EECMD = 0,res = 0,ADDR = 227)
           DEV_CRC_CTRL1 =(CRC = 46,ResStatus = 0,CRCCTL = 0,res = 0,ADDR = 122)
           DEW_EE_CTRL4 =(CRC = 32,ResStatus = 0,EEUNLK = 0,保留= 0,ADDR = 186)
           DEV_UNLK_CTRL1 =(CRC = 2,ResStatus = 0,DEVUNLK = 240,res = 0,ADDR = 100)


    对于简短测试,我使用了连接了IZ*,OE*的案例2,我发现当COS或SIN针脚短路(IZ*短路)时,FOSHORT=1被设置,当短路被消除时,FOSHORT=1被清除。

    巴西,

    Markus

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

    Markus,

    感谢您的详细备注。

    • 当IZF针脚断开时,角度输出继续变化是正常的。 如果你看着aout,你会看到什么是恒定速度输出。 这通常会在FAULTRES为高电压时导致故障。
    • 当设备检测到关闭励磁机的故障时,LPEN和EXTEN不能用于启用跟踪回路/启动励磁机。  
    • 大多数故障状态在读取后会被清除,但这不会从设备中清除故障状态。 SFAULT反映故障针脚的状态,因此在切换FAULTRES之前不会将其清除。
    • SPI故障将导致触发故障引脚,但您仍应能够读取角度和速度数据。

    您对"案例2 - IZF已连接"的描述仍然不一致。 当故障针脚变高时,我们应该会在其中一个STAT寄存器中看到故障。 您是否可以尝试计时在FAULTRES (FAULTRES)设置为HIGH (高)后,确认故障针脚需要多长时间? 您可以通过监控故障针脚来检查此情况。 您还可以监控aout引脚和/或OEx引脚,以查看数字跟踪环路和励磁机输出何时关闭。

    谢谢!

    -Clancy

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

    当设备检测到关闭励磁机的故障时,LPEN和EXTEN不能用于启用跟踪回路/启动励磁机。

    数据表PGA411-Q1指出,“dev_Control3寄存器中的EXTEN和LPEN位可以用作监视器来确定状态
    励磁机放大器和跟踪回路。 这些位也可以手动启用和禁用这些块。",因此我假定写入这些位将重新启用励磁机。 当然,SFAULT/FAULT在写入dev_Control3之前已解决。 数据表中的信息是否正确,或者是否应该切换到DIAG,解决故障并切换到正常状态?

    我将进一步检查最后描述的问题状态,然后返回此处查看信息。 目前我的工作如下:

    • 定期读取STAT5,STAT6,STAT7,Control3,STAT4 (仅通过原子操作确保一次,类似于信号量结构)
    • 如果发送了SFAULT信号,则只需读取STAT1,STAT3,Control3一次
    • 检查/等待FAULTRES信号之间的时间>= 500ms
    • 切换FAULTRES (这应清除SFAULT)
    • 重新启动读取回路(再次读取SFAULT=1并再次读取其它寄存器,因为这应该是新的故障)

    因此,目前似乎立即出现了另一个故障,其中励磁机无法恢复,但如上所述,我没有读取任何(有用的)故障信息。

    芯片中是否有可用于调试的(隐藏)模式,该模式将切换为读确认而不是读时清除?

    巴西,

    Markus

     

     

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

    关于案例2:
    监控故障和FAULTRES可在FAULTRES下降边缘10毫秒或40毫秒后出现另一个故障。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我解决了STAT1和STAT3寄存器的问题。
    导致PGA411-Q1挂起的错误是EXTOV=1。 切换FAULTRES不能解决问题。 即使在OE*针脚关闭后(通过示波器<500mV进行验证)。 发动机静止不动(未提供PGA411-Q1励磁机以外的任何其他电流)。

    confreg =(
    DEV_OVUV_1 =(CRC = 0x3C,ResStatus = 0x0,OSHORTH = 0x0,OSHORTL = 0x0,EXTILIMTH_H1_2 = 0x5, EXTILMTH_L1_2 = 0x5,EXTOUT_GL = 0x8,ADDR = 0x53)
    DEV_OVUV_2 =(CRC = 0x28,ResStatus = 0x0,DVMSENL = 0x5,DVMSENH = 0x5,TRDHL = 0x3, XEXT_AMP = 0x0,RES = 0x0,ADDR = 0x6B)
    DEV_OVUV_3 =(CRC = 0x34,ResStatus = 0x0,OOPENTHH = 0x7,OOPENTHL = 0x7,OVIZH = 0x3, OVIZL = 0x0,EXTOVT = 0x7,EXTUVT = 0x7,ADDR = 0x65)
    DEV_OVUX_4 =(CRC = 0x0B,ResStatus = 0x0,FSHORT_CFG = 0x1,nBOOST_FF = 0x1,VEXT_CFG = 0x0, AUTOPHASE_CFG = 0x0,TEXTMON = 0x7,TSHORT = 0x7,RES = 0x0,ADDR = 0xEC)
    DEV_OVUX_5 =(CRC = 0x35,ResStatus = 0x0,res = 0x0,TOPZH = 0x7,res2 = 0x0, 地址= 0x52)
    DEV_OVUX_6 =(CRC = 0x3D,ResStatus = 0x0,LPETHH = 0x3,LPETHL = 0x3,res = 0x0, BOUD_VEXT_MASK = 0x0,IZTHL = 0x7,res2 = 0x0,ADDR = 0xE9)
    DEW_TLOOP_CFG =(CRC = 0x1B,ResStatus = 0x0,DKI = 0x4,SENCLK = 0x0,OHYS = 0x1, DKP = 0x4,MKP = 0x2,res = 0x0,ADDR = 0xA6)
    DEG_AFE_CFG =(CRC = 0x1C,ResStatus = 0x0,GAINSIN = 0x1,GAINCOS = 0x1,res = 0x0, 地址= 0xC2)
    DEG_PHASE_CFG =(CRC = 0x24,ResStatus = 0x0,PHASEDEMOD = 0x0,EXTOUT = 0x0,EXTMODE = 0x1, APEN = 0x1,PDEN = 0x0,EXTUVF_CFG = 0x0,ADDR = 0x57)
    dev_config1 =(CRC = 0x3D,ResStatus = 0x0,MODEVEXT = 0x2,SCLFEXT = 0x0,res = 0x0, NPLE = 0x0,res2 = 0x0,ADDR = 0xBE)
    DEP_control1 =(CRC = 0x21,ResStatus = 0x0,DIAGEXIT = 0x0,MEXTMON = 0x0,MAFECAL = 0x0, MIZUV = 0x0,MIZOV = 0x0,MEXTUV = 0x0,MEXTOV = 0x0,MFLOOPE = 0x0, MFOCOSOPL = 0x0,MFOSINPL = 0x0,MFOCOSOPH = 0x0,MFOSINOPH = 0x0,RES = 0x0, MFOSHORT = 0x0,res2
    DEP_Control2 =(CRC = 0x3B,ResStatus = 0x0,ENEXTUV = 0x1,ENEXTMON = 0x1,ENBISTF = 0x1, ENIOFAULT = 0x1,ENINFAULT = 0x1,RDC_DISABLE = 0x0,res = 0x0,LBIST_EN = 0x0, ABIST_EN = 0x0,ADDR = 0x63)

    StatReg =(.
    DEW_STAT1 =(CRC = 0x3,ResStatus = 0x0,FOSHORT = 0x0,FGOPEN = 0x0,STAT = 0x0, FOSINOPH = 0x0,FOCOSOPH = 0x0,FOSINPL = 0x0,FOCOSOPL = 0x0,FLOOPE = 0x0, EXTOV = 0x1,EXTUV = 0x0,EXTIIM = 0x0,FTECRC = 0x0,FCECRC = 0x0, FRCRC = 0x0,FLOOP_clamp = 0x0,ADDR = 0x81)
    DEP_STAT2 =(CRC = 0x0,ResStatus = 0x0,SIORD = 0x0,SPRD = 0x0,res = 0x0, 地址= 0x0)
    DEW_STAT3 =(CRC = 0x10,ResStatus = 0x0,FIZH1 = 0x0,FIZH3 = 0x0,FIZH2 = 0x0, FIZH4 = 0x0,FIZL1 = 0x0,FIZL3 = 0x0,FIZL2 = 0x0,FIZL4 = 0x0, OMIZ1H = 0x0,OMIZ3H = 0x0,OMIZ2H = 0x0,OMIZ4H = 0x0,OMIZ1L = 0x0, OMIZ3L = 0x0,OMIZ2L = 0x0,OMIZ4L = 0x0,ADDR = 0x84)
    DEP_STAT4 =(CRC = 0x2B,ResStatus = 0x0,SOUTZ = 0x0,SOUTB = 0x0,SOUTA = 0x0, SFAULT = 0x1,IOFAULT = 0x0,FVDDOV = 0x0,FVCCOV = 0x0,LBISTF = 0x0, ABISTF = 0x0,FEXTMODE = 0x0,FTSD2 = 0x0,FVDDOC = 0x0,FBSTOV = 0x0, SPI_ERR = 0x0,FEXTMONL = 0x0,FEXTMONH = 0x0,ADDR = 0x1F)
    DEG_STAT5 =(CRC = 0x2D,ResStatus = 0x0,ORDANGLE = 0x0FFF,ORDCLOCK = 0x0,PRD = 0x0, RES = 0x0,ADDR = 0x41)
    DEVE_STAT6 =(CRC = 0x3,ResStatus = 0x0,ORDVELOCITY = 0x0,PRD = 0x0,res = 0x0, 地址= 0x6f)
    DEP_STAT7 =(CRC = 0x11,ResStatus = 0x0,REVID = 0x3,OPTID = 0x1,DEVSTATE = 0x1, FAFECAL = 0x0,res = 0x0,ADDR = 0xE1)

    RwReg =(
    DEP_Control3 =(CRC = 0x28,ResStatus = 0x0,EXTEN = 0x0,LPEN = 0x0,SPIDIAG = 0x0, 保留= 0x0,ADDR = 0xDD)
    DEV_CLCRC =(CRC = 0x37,ResStatus = 0x0,ECCRC = 0x0,res = 0x0,ADDR = 0x4F)
    DEP_CRC =(CRC = 0x0F,ResStatus = 0x0,RCRC = 0x61,res = 0x0,ADDR = 0x0F)
    DEV_CRCCALC =(CRC = 0x4,ResStatus = 0x0,CRCCALC = 0xFF,res = 0x0,ADDR = 0xD9)
    DEW_EE_CTRL1 =(CRC = 0x18,ResStatus = 0x0,EECMD = 0x0,res = 0x0,ADDR = 0xE3)
    DEV_CRC_CTRL1 =(CRC = 0x2E,ResStatus = 0x0,CRCCTL = 0x0,res = 0x0,ADDR = 0x7A)
    DEW_EE_CTRL4 =(CRC = 0x20,ResStatus = 0x0,EEUNLK = 0x0,保留= 0x0,ADDR = 0xBA)
    DEV_UNLK_CTRL1 =(CRC = 0x2,ResStatus = 0x0,DEVUNLK = 0xF0,RES = 0x0,ADDR = 0x64)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Markus,

    LPEN和EXTEN可用于启用和禁用励磁机和跟踪回路,只要禁用这些项目的故障未激活。

    听起来您可能已经尝试过此操作,但 您是否尝试过使用故障引脚上的触发器监控示波器上的OEx引脚?

    您是否使用第二个PGA411 EVM尝试过所有这些?

    您是否使用PGA411的增压来生成外部电压? 电源导轨是否稳定?  

    谢谢!

    -Clancy

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

    是的,我已经尝试写入LPEN=1和EXTEN=1。 但是,当EXTOV故障处于/保持活动状态时,该行为与您的描述相符。

      我的表中只有EVM可用,因此我无法使用其他EVM进行测试。

    是的,使用PGA411-Q1的增强(通过J2跳线,如EVM手册[=default]中所述)。
    在EXTOV=1的情况下,EVM上的外部电压为4.8 +-0.15V (OSCi)。
    在工作状态下,我通过在EXT测试上测量12.2V+-0.25V。
    VEXTS始终比VEXT低一点(~0.15V),但两者都在上述范围内稳定。

    检测到EXTOV时,VCCSW输出是否已禁用?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是,检测到EXTOV时,升温输出将关闭。 您的测试是否有任何进展?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    测试正在进行。 EXTOV标志不会与新EVM一起声明。 测试连续两天使用与以前相同的软件进行。 EVM每次运行超过1小时都没有问题。 (角度和vel读数测试正常)
    所以我想说这是硬件问题。
    感谢您的支持和全新EVM!