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.

[参考译文] TMS320F2.8035万:TMS320F2.8035万 eQEP中断问题

Guru**** 2543090 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/615166/tms320f28035-tms320f28035-eqep-interrupt-question

部件号:TMS320F2.8035万
主题:controlSUITE中讨论的其他部件

你好

我正在对一些我没有创作的软件做一些持续的工作,这些软件使用2.803万/35的eQEP外设来通过增量编码器进行运动控制

 2.8035万使用3个中断,SPI,ADC和 计时器

 

下面的代码是从ADC ISR调用的。 问题在于编码器无噪音。计数 器sPosFdbk.QuadratureError持续递增,即使未启用此中断

这使我怀疑QFLG.Bit.PHE已被设置,或者清除此位不起作用

我想知道

1)如果代码清除PHE 标志正确?

2)为什么在中断从未启用时设置中断标志(引导加载程序 //禁用并清除所有CPU中断)

 //更新位置反馈正交错误计数
 如果( EQep1Regs.QFLG.Bit.PHE )
 {
  sPosFdbk.QuadratureError++;
  EQep1Regs.QCLL.ALL = (0x0001 <<2)) ;     //清除正交错误标志--使用write代替r-m-w
 }

 //离开前清除ADC中断
 PieCtrlRegs.PIEACK.ALL = M_INT1;  //发出PIE ACK

 //为StatusUpdateIsr()设置中断标志
 PieCtrlRegs.PIEIFR7.bit.INTx1 = BOOL_TRUE;

 //于2013年7月12日添加以进行测试
 ADcRegs.ADCINTFLGCLL.bit.ADCINT1 =1;  //清除ADCINT1标志重新初始化下一个SOC

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

    标记,

    这可能与问题无关,但此行似乎有一个括号不匹配:

    EQep1Regs.QCLL.ALL = (0x0001 <<2)) ;     //清除正交错误标志--使用write代替r-m-w

    此致,

    Richard

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

    这是一个打字错误,我替换了头文件中定义的掩码,因此两个括号都在那里。 下面我看一下,这有点模糊,不清楚是零还是一个清除中断标志

    我还想知道是否需要解决中断问题?


    十一个中断事件(PCE,PHE,QDC,WTO,PCU, PCO,PCR,PCM,SEL,IEL和UTO)可以是
    已生成。 中断控制寄存器(QEINT)用于启用/禁用单个中断事件
    来源。 中断标志寄存器(QFLG)指示是否已锁定并包含任何中断事件
    全局中断标志位(INT)。 中断脉冲仅在发生任何中断时生成到PIE
    事件已启用,标志位为1,INT标志位为0。 需要清除中断服务例程
    全局中断标志位和已服务事件,通过中断清除寄存器(QCLr),先于任何其他事件
    产生中断脉冲。 您可以通过中断强制寄存器强制中断事件
    (QFRC),可用于测试目的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    标记,

    您所做的是正确的。 由于启用了ADC中断,因此您必须确认该中断,但是如果您尚未为QEP1启用INT5,则不必对其执行任何操作。

    按您所拥有的方式查询PHE位是正确的,因此您不应进入增加计数器的行,除非设置了PHE。 是否可以在条件语句上设置断点并监视PHE位? 检查当PHE为0时它是否不执行括号内的行,然后使用QFRC寄存器将PHE设置为1,并检查它是否执行这些行。 它在我的计算机上编译和运行正常,因此我认为应该检查一下。

    我同意TRM中的描述措辞不好。 我将提交一个关于该问题的缺陷,以供将来改进。

    此致,

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

    您好Richard

    简而言之,这是一个非常复杂的体系结构,经过多年的发展,它是一个非常复杂的交流驱动器,我没有JTAG访问Picolo,Picolo将错误传递给OMAP  DSP (运行控制理论的负载,所有优秀的数学材料都被正确描述了 在你的书里,我需要买一本复习)。通过 SPI  

    我对计数器进行了注释(我可以通过FTP修改piccolo代码进行调试) ,问题消失了(我猜IRQ标记未被清除。 我愿意接受建议吗?

    在此期间,我将把文件带回家阅读

    staff.ii.pw.edu.pl/.../spraa85a.pdf

    如果想知道 第6节中有关写入位字段的警告,请执行以下程序

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉,Mark,我目前没有其他想法。 帖子中的代码看起来正常,包括寄存器访问。 我想知道这是不是一个更微妙的问题涉及到计划的另一部分。 我会多考虑一下,但如果您发现任何问题,请告诉我。

    此致,

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

    标记,

    如果您仍有困难,您可能会尝试一些模糊的事情。

    首先,检查PIEIER和PIEIFR寄存器是否在任何ISR中操作。 如果是这样,则存在这样做的规则,如果不遵循这些规则,可能会导致奇怪的结果。 检查您是否有最新版本的F2803x系统控制指南,并浏览6.3 1和6.3 2部分。 我已在本文的底部放置了最新用户指南的链接。

    其次,查看此设备勘误表中的4.1 1部分。 本节介绍了某些代码序列如何导致意外中断。 我再次将链接放在下面的文档中。

    最后,请查看同一勘误表中第13页顶部的通报:预取超出有效内存。 让我想到这一点的是,删除一行代码就可以解决问题。 查看.map文件,了解代码的位置和大小。 同样,如果代码从保留的内存空间获取,则会发生奇怪的事情。

    此致,

    Richard

    http://www.ti.com/lit/ug/sprugl8c/sprugl8c.pdf

    http://www.ti.com/lit/er/sprz295 m /sprz 295 m .pdf

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

    您好Richard

    我与作者交谈,确认了需要您澄清的内容

    此标记QFlag.Bit.Phebbe能否用于检测正交错误而不启用IRQ?

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

    是的,正确。 PHE标志独立于任何中断运行。 其状态仅取决于Ain和bin输入的逻辑状态:如果它们同时更改状态,则将设置PHE。 您可以在不中断的情况下实现此标志上的轮询方案,这样就可以正常工作。 您可以使用QCLR寄存器重置它,就像您正在执行的操作一样。

    此致,

    Richard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Richard您好,我仍在努力获取JTAG,我将研究您的其他建议。

    编写此文章的工程师认为实际编码器硬件可能不兼容,换言之,3.803万可能会看到实际正交错误,我知道信号是否有噪音,但我不确定如何衡量实际正交错误是否实际存在 您可以评论一下您的体验中发生这种情况的可能性,我理解错误的根本原因是由A和B输入同时发生的变化引起的,这就是全部原因
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mark,您好!

    据我所知,只有QA和QB输入上的同步转换才会导致设置PHE标志。 用户指南第15页上有一个很好的状态图,将这些'非法'过渡显示为虚线。 例如,如果GPIO20和GPIO21设备引脚短接在一起,就可能会发生这种情况。 或者,可能存在内部编码器故障。

    您能否检查这些针脚处的物理信号,以确保在电机转动时有清晰的相位分离?

    此致,

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

    Richard

    我能够获得JTAG访问并验证清除标志序列是否正常工作不幸的是,我不得不将代码添加到后台循环中,而不是测试它是否在ADC IRQ中正常工作不确定这是否允许我总结相同的代码 ISR工作正常。 如前所述,计数器将递增并传递给另一个处理器,我认为其他处理器上的代码抓取和过滤计数不是可疑的,因为我在删除计数器增量时看到其他处理器上报告的错误消失了。 我想现在是时候关注编码器 硬件信号了吗?

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

    标记,

    是的,我也认为是这样。  许多正交编码器提供5V数字输出。  F2.8035万不具有5V容差,因此您可能拥有电平转换器,夹紧的电势分禾器或符合QEP输入的其它设备。  

    另外,请记得检查我前面提到的“正在获取有效内存以外的内存”错误。  我不能从我的头脑中明白,只要删除这条线就能解决问题。

    另外,我注意到QEP引脚的GPIO同步上出现了另一个错误。  您能否在F2.8035万芯片勘误表的第21页(上一篇文章中的链接)中查看有关在GPIO引脚上使用异步模式的说明?

    此致,

    Richard

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

    您好Richard

    随附示波器,有清晰的相位分离,但我现在没有看到更多Picolo错误

    我们正在使用所有4个输入A - B -

    我正在寻找一个原理图,这些信号是如何连接到Picolo的?

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

    Mark,您好!

    该器件没有互补输入引脚;它只需要A和B。 如果您的换能器具有差分输出,则需要在它和C2000之间安装收发器。  

    我一直在搜索一个有助于解决此问题的TI文档,但我尚未找到。  有关它的价值,请附上我们在"工业驱动器开发套件"上的QEP接口。  该套件的原理图和代码位于controlSUITE下载中。

    此致,

    Richard

    e2e.ti.com/.../IDDK-v2_5F00_0-QEP-interface.pdf

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

    您好Richard

    我们是同步模式 ,我看到与示例不同的是,上拉按钮被禁用

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

    您好Richard

    我们有十几个不同的位置都报告了此问题,他们选择了编码器,因此我不确定如何解释这么多编码器内部故障?

    我们有一个电平转换电路,为piccolo供电,我需要查看其输出。 此电路的输入未显示同步转换

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

    已理解。 请告诉我换档杆后您会发现什么。 谢谢。

    此致,

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

    您好Richard

    此时,我必须假设编码 器接口卡上的噪音或其他硬件设计问题导致QEP看到正交错误,我在示波器上没有看到错误,并且更换2.803万不是一个选项,因此重点将放在上面 通往picolo的道路

    我有关于QEP GPIO引脚的相关问题

    在具有限定条件的同步模式中,我们使用3个时钟

    如果将此样品值更改为较低值会对导致这些错误的任何因素产生什么影响?

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

    原则上,如果存在噪音问题,输入资格应该会有所帮助。 两个正交输入(GPIO20和21)应具有相同的限定条件,因此结果将延迟两个输入的三个采样周期。 采样窗口宽度是多少:即什么是Tsysclkout以及GPACTRL[QUALPRD2]字段中的资格期限设置?

    此致,

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

    设置如下所示,我被误认为现在是1个示例。 什么是tsysclock? 我们的运行频率为60 MHz,您指的是内部时钟吗?

    GpioCtrlRegs.GPAQSEL2.bit.GPIO20 = 0; //同步到SYSCLKOUT,1个样本
    gpioCtrlRegs.GPACTRL.bit.QUALPRD2 =9; //应用1.5us一致性滤波器(((6-1)*2*(9)/60MHz)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mark,您好!

    我看到GPIO20 (QEP1A)已同步到SYSCLKOUT,但我想您说您使用3个时钟进行同步吗?  GPIO21 (GPIO1B)的设置是否相同?  应该是这样。

    此外,第二行中有关"一致性筛选器"的注释看起来不正确。  当QUALPRD = 9时,您将SYSCLKOUT除以2^9 = 512,这在60 MHz时为25.6 Us,而不是指示的1.5 Us。

    我们可以谈谈传入正交脉冲的预期最大频率吗?

    此致,

    Richard

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

    我被告知编码器的最大预期频率为200kHz。
    据我所见,代码认为它在所有4个输入上都进行输入限定,但所有4个GpioCtrlRegs.GPAQSEL2.bit.GPIOXX = O
    这意味着同步到SYSCLKOUT,1个示例(即不是输入限定条件)
    获得HW后,我可以快速测试3个或6个样本的GpioCtrlRegs.GPAQSEL2.bit.GPIOXX = 1或2设置

    我有两个问题

    1)使用(即3或6样本)的正确值以及使用期限
    2)作者似乎担心这会影响所有8个引脚,请参阅下面的评论。 其他4个引脚是从SPI引脚
    //请注意,GpioCtrlRegs.GPACTRL.bit.QUALPRD2定义了采样周期
    //对于GPIO20-GPIO23,但此处未设置,因为它也定义了
    // GPIO16-GPIO19的采样周期。

    // PG输入A (GPIO20)
    gpioCtrlRegs.GPAPUD.bit.GPIO20 = 1; //禁用上拉
    GpioCtrlRegs.GPAQSEL2.bit.GPIO20 = 0; //同步到SYSCLKOUT,1个样本
    GpioCtrlRegs.GPAMUX2.bit.GPIO20 = 1; //为EQEP1A配置
    gpioCtrlRegs.GPADIR.bit.GPIO20 = 0; //配置为输入

    // PG输入B (GPIO21)
    gpioCtrlRegs.GPAPUD.bit.GPIO21 = 1; //禁用上拉
    gpioCtrlRegs.GPAQSEL2.bit.GPIO21 = 0; //同步到SYSCLKOUT,1个样本
    gpioCtrlRegs.GPAMUX2.bit.GPIO21 = 1; //为EQEP1B配置
    gpioCtrlRegs.GPADIR.bit.GPIO21 = 0; //配置为输入

    // PG选通(GPIO22)
    gpioCtrlRegs.GPAPUD.bit.GPIO22 = 1; //禁用上拉
    gpioCtrlRegs.GPAQSEL2.bit.GPIO22 = 0; //同步到SYSCLKOUT,1个样本
    gpioCtrlRegs.GPAMUX2.bit.GPIO22 = 1; //配置EQEP1S (选通)
    gpioCtrlRegs.GPADIR.bit.GPIO22 = 0; //配置为输入

    // PG索引Z (GPIO23)
    gpioCtrlRegs.GPAPUD.bit.GPIO23 = 1; //禁用上拉
    gpioCtrlRegs.GPAQSEL2.bit.GPIO23 = 0; //同步到SYSCLKOUT,1个样本
    gpioCtrlRegs.GPAMUX2.bit.GPIO23 = 1; //配置EQEP1I (索引)
    gpioCtrlRegs.GPADIR.bit.GPIO23 = 0; //配置为输入
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    标记,

    尽管有qual样本,但所有四个引脚的逻辑设置都是正确的。 当引脚配置为外设时,GPADIR负载实际上无关紧要,但它们无害。

    C评论暗示QUALPRD2是0,但在您的上一篇文章中,我想您说的是9? 在设备初始化后,您能否仔细检查GPACTRL寄存器以确保它符合您的预期? 当QUALPRD =9且3或6个采样时,输入信号将在200 kHz时被完全过滤掉。 在这种情况下,我怀疑当输入频率超过上限或在改变方向时,您可能会遇到相位错误。

    我认为您需要的设置是:GPACTRL.bit.QUAPRD2 = 0,所有四个QEP引脚的GPAQSEL2.bit.GPIO2x = 0。

    此致,

    Richard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Richard
    当前设置为QUALPRD = 9和GPAQSEL2.bit.GPIO2x = 0,在3秒内有多达360个qudrature errors

    我的目标是
    1)验证当前设置是否正确(这些设置是否会导致不存在的错误?)
    2)如果我仍然看到正确设置的错误,请使用限制条件过滤掉任何噪音(这是否可以在我的限制条件下实现?)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mark,您好!

    这些设置不应导致您看到的错误。  您是否有机会向我发送QEP模块的完整配置代码?  我可以在此处配置设备并尝试重现该问题。  另外,请在电机运行时检查CCS表达式窗口中的寄存器值,以确保没有意外更改。

    此致,

    Richard

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

    我必须检查一下。 我想澄清几件事

    1)输入资格
    如果GPAQSEL2.bit.GPIO2x = 0,没有输入鉴定正确吗?
    如果这是您的意图,为什么要将QUALPRD =9设置为?
    还是9 SYSCLOCK时钟仍在采样?

    2)您之前的回复

    尽管有qual样本,但所有四个引脚的逻辑设置都是正确的。 当引脚配置为外设时,GPADIR负载实际上无关紧要,但它们无害。

    我询问的是QUALPRD设置,而不是GPADIR
    如果4个GPIO引脚是SPI外设,您的回答是否仍然适用?
    由于QUALPRD影响所有8个引脚,我可能会遇到这样的情况:4组引脚需要一个特定的QUALPRD,而SPI需要其它一些东西才能正常工作。 我看到SPI设置正在设置QUALPRD的示例,请详细说明
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    标记,

    1)如果GPAQSEL2.bit.GPIO2x = 0,则输入将同步到单个SYSCLK循环。 QUALPRD不会影响此配置。

    2)所有鉴定和同步都会影响GPIO,即使配置为外围设备也是如此。 必须注意,如果信号使用3或6样本鉴定,则组中的其他IOS使用相同的QUALPRD。因此您是正确的。 如果只有2个信号需要鉴定,则可以将其它IOS设置为同步或异步,这样它们就不会受鉴定期的影响。

    您是否能够在收发器之后观察到QEPA和QEPB信号?
    您能否共享完整的eQEP配置和GPIO代码? 可以帮助我们在实验中重新创建设置。
    您是否能够确定发生PHE错误的常见情况? 温度,旋转频率? 改变方向?

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

    <<您是否能够在收发器之后观察到QEPA和QEPB信号?
    是的,我看不到相位错误。


    <<您能否共享完整的eQEP配置和GPIO代码? 可以帮助我们在实验中重新创建设置。
    我可以提供这些的寄存器设置以及初始化顺序和用例,但不能提供原始源代码。
    我需要几天时间,因为我关注您的以下问题,我正在尝试在另一组硬件上复制,我目前无法访问原始硬件

    <<您是否能够确定发生PHE错误的常见情况? 温度,旋转频率? 改变方向?

    当它出现故障并且并非总是出现故障时,它会快速出现故障3秒,请在接下来的几天内尝试并更好地描述它

    我有一个关于假设存在噪音抑制的问题。 在我看来,输入鉴定无法过滤出100%的噪音
    您是否同意,如果噪音导致此问题,输入限定可能不起作用,特别是当8个引脚中的4个被用作SPI引脚和带宽(200kHz最大值)时。 从正时图看,在采样期间发生的噪音似乎是一个问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    标记,

    我只需要GPIO和eQEP配置代码。 您认为可能有用的任何其他用例信息也很有用。 如果这些内容敏感,请随时与我离线分享。

    我不太确定我理解你的问题。 如果仅为SYSCLK同步设置eQEP,则为SPI设置的QUALPRD不应影响eQEP。

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

    我使用JTAG验证了所有寄存器设置,而原始代码可能是从您的示例中派生的。我可以为您提供我创建的请求区域流的伪代码。 转换不是什么大问题

    <<如果这些内容敏感,请随时与我离线分享。

    准备好了,请为我提供发送此邮件的方法
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    标记,

    我已向您发送朋友请求,允许我们以私人信息的形式交换信息。 请接受请求,以便我们继续调试。

    请分享准确的eQEP配置代码。最好进行复制/粘贴。

    标记
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在继续之前,您是否认为这些寄存器中的错误设置可能导致这些相位错误?
    您是否有我可以呼叫您的电话号码?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我目前还不能确定有什么。 如果没有其他信息,例如您的确切QEP和GPIO设置,甚至没有任何示波器捕获,就很难知道QEP处于什么状态。 如果存在无效的配置,甚至是角形安装类型,则可能会出现问题。 我可以使用此信息尝试复制设置,甚至通过我们的设计确认配置有效。  

    说到范围捕获,最好是在发生相位错误时触发GPIO上的范围,确保QEPA,QEPB和QEP索引信号也在范围内。 这将证明进入QEP信号的信号实际上不会导致相位错误,这意味着芯片内部的某个东西导致了错误。

    您是否成功测试了其他条件,以查看是否存在导致故障的常见原因?

    这是自定义硬件吗? 您使用的是TI套件吗?

    此致。

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

    您好Mark

    我在获取复制所需的设备时遇到困难,但希望尽快获得

    下面我想就你的建议发表意见

    <<关于范围捕获,如果您在发生相位错误时切换GPIO上触发范围,将非常好。请确保QEPA,QEPB和QEP <<索引信号也在范围内。 这将证明进入QEP信号的信号实际上不会导致相位错误,这意味着<<芯片内的某物会导致错误。

    a) 如果我确实在某个范围内捕获到故障,并且它没有显示相位错误,我会欣赏TI如何有兴趣复制和修复任何此类问题,但是更换处理器不是我们的选择,而且可能超出了我的工作范围,但是 我当然可以帮助您

    B)由于通过轮询和打开中断检测到相位错误(正交),并且添加额外代码将更改Picolo固件的行为( 该固件需要某些高优先级中断),因此触发器建议将不起作用。 值得一试,但这只是让我回到上面

    我认为这必须在piccolo 固件中修复,而似乎没有解决方案(除了尝试对传入PIN进行某些限定筛选)

    当我获得硬件来重现问题时,我将向您提供最新信息

    标记

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

    标记,

    感谢您的更新。 请告诉我您何时能够重现该问题。

    请务必跟踪可能与错误本身相关的任何有用情况。 温度,电机转速,电动机方向等

    关于b)只需要一个额外的代码行即可更改监视器引脚的状态。 这对代码来说是不引人注目的,正如我所能想到的那样。 无需启用任何中断或添加新分支。 从你最初的张贴,你只是在错误计数增量之后(或者代替)添加切换代码。 这仅用于调试目的,以触发错误检测的范围,以查看QEP是否确实生成了此错误,而QEPA和QEPB信号之间没有实际相位误差。

    //更新位置反馈正交错误计数

    如果( EQep1Regs.QFLG.Bit.PHE )

     sPosFdbk.QuadratureError++;

     // GpioDataRegs.GPxTOGLE.ALL =(0x0001 << x);//切换监视器引脚

     EQep1Regs.QCLL.ALL = (0x0001 <<2)) ;   //清除正交错误标志--使用write代替r-m-w

    }

    如果我们可以证明您看到的是错误位的设置,而没有看到实际QEP信号中的相位错误,我们可以研究如何在此处进行复制。 如果我们到了这一点,我们就可以跨越这座桥。 如果这意味着只共享QEP配置代码,或者共享其中一个出现故障的主板并进行一些调试调用,我们可以做到这一点。  

    谢谢!
    标记

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    <<<如果我们可以证明您看到的是错误位GET设置,而不是实际QEP信号中的相位误差,我们可以努力找出我可以在这里复制的方法

    我们的硬件团队从星期一开始就有故障硬件,他们将描述故障并收集范围捕获

    仅重申,如果没有NDA和适当人员的许可,我无法提供任何软件来复制问题,我们可以在到达时跨越这座桥