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.

[参考译文] RM48L952:N2HET:n2HET 程序未检测到 HET1引脚27边沿(无 IRQ)、引脚27监控器也检测到 HET1引脚26边沿(从错误引脚提供 IRQ)

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/609942/rm48l952-n2het-het1-pin-27-edge-is-not-detected-by-n2het-program-no-irq-het1-pin26-edge-is-detected-also-by-pin27-monitor-gives-irq-from-wrong-pin

器件型号:RM48L952
主题中讨论的其他器件:HALCOGEN

您好!

我们还有另一个与 N2HET 相关的问题、可以通过 TMDSRM48HDK 套件(S2全部关闭)重现。 我们在新硬件中发布了完全类似的内容、其中一个引脚从 GPIO 端口更改为 HET1引脚27。 注意:边缘(引脚上行状态)足够长的 HET、可以在实际硬件中检测到它、我们具有其他引脚所在的冗余功能(之前的硬件中已经存在) 连接到 HET 1_14引脚、它提供 IRQ、而当旧的硬件 GPIO 端口正常工作时、1_27不提供 IRQ。 最初、虽然这是新硬件中的电路板问题、但由于 DIN 正确显示了引脚状态、连接良好。

请参见附加项目。 如果使用"#define TEST_PIN26   1"(第132行)运行它-引脚26的上升沿被生成- HET 也在引脚27中检测边沿(当(1)到达时、请参阅'au32HetIrqs'内容)。 如果使用"#define TEST_PIN26   0"运行它-引脚27的上升边沿被建立- HET 不检测任何边沿。

DIN 显示目标引脚确实已上升、其他引脚已下降... 在本演示中、我们仅控制该引脚、该引脚通过 HET 进行监控、但在现实生活中、我们将实际输入源连接到该引脚、并且存在完全相同的问题(由于监控输入、因此控制自身也起作用)、 当受监控的引脚27上升时,HET 不会发出 IRQ 信号,如果我们控制引脚26 (它是在实际中输出的,用于完全分离的东西),也会生成引脚27....的 IRQ

HET 1_27引脚有点特殊、它具有直接焊球 A9和可复用焊球 B2 (嗯、多路复用器不会将 B2引导至 HET)、同样 具有 HET 1_29 (A3和 C3)和 HET 1_31 (J17和 W9)引脚。 所有这些情况的常见情况是、如果 A9、A3或 J17上升、则不会发出 IRQ 信号。 未测试是否控制1_28或1_30、如果这些会生成1_29和1_31的 IRQ、例如1_26会生成1_27。 此外、17、19、21、23和25也具有类似的2引脚连接可能性、但尚未测试这些...

从 TRM 或数据表中可以发现这些引脚/ HET 端口是"特殊"的、应该以不同的方式使用它们... 我知道、如果可复用引脚也被路由到 HET、可能会出现一些问题、但在演示和实际硬件中、只有固定引脚应该进入 HET。

勘误表提到了 PCNT 在测量脉冲长度时的一些问题、因为根本不使用 HR、并且只需要 IRQ。这些勘误结果不应产生任何影响(如果 PCNT 完全从 HET 代码和应用端删除、演示应用程序也会失败)...

我们已经尝试在 ECNT 和 PCNT HET 指令中在上升沿提供 IRQ、但两者的工作方式相似、 在演示项目中、这两个项目同时使用、并且所有 IRQ 被同时计数、并且每个偏移也被单独计数、以验证通过调试器从阵列插槽读取的 IRQ 计数与总数相匹配。 我还在 IRQ 使能之后和边沿生成之前放置了"假"延迟、以确保如果代码在边沿使 HET 有足够的时间运行1个周期前被停止(这应该是无用的、但情况正好是这样)。

您能从代码中找到一些错误吗? 或者这些... 27、29、31个 HET 引脚、某种程度上是特殊的、不能像我们想使用的那样使用? 当 DIN 显示引脚27朝下且26朝上时、为什么引脚26中的边沿会被引脚27的监控说明中的 HET 代码捕获...
 

这是重新生成情况的项目(再次使用2个 HDK、2台不同的计算机和地理位置进行测试)、所有"应用"代码都位于 sys_main.c 中 应用程序只是为目标偏移线初始化 HET、启用 IRQ、将引脚26&27置于低电平、启用 HET IRQ (清除来自该偏移的可能挂起的 IRQ)、然后将上升沿变为引脚26或27。
e2e.ti.com/.../8875.N2HET_5F00_irq_5F00_problem.zip




  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这似乎是由 N2HET 引脚的缺省 HalCoGen 设置引起的? HR 共享在引脚0-7和引脚24-31... 在我关闭引脚26/27的 HR 共享后、将按预期检测 IRQ。。。 这是一个很烦人的功能、因为 CPU 中共享寄存器的默认值全部关闭、并且 HalCoGen 改变了...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Jarkko、

    很抱歉给您带来不便。 我已将帖子发送给我们的 Halcogen 销售线索、以检查是否有原因、是否有意。 如果不是故意的、我将在上面开一个 TT。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jarkko、

    使用基于 HALCoGen 的 Init 函数时、用户已查看所有与 GUI 相关的设置。 HALCoGen 绝不会声称保留了默认寄存器值、用户有责任查看 GUI 配置、如果不需要某些配置、则将其删除。 。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我有点同意您的观点、但由于看起来只有一些引脚发生了更改、有些引脚没有更改、这似乎更像是" gooy setting "、而不是 GUI 的故意操作。

    如果默认情况下每个引脚始终开启或关闭、我会购买 GUI 设置(在这种情况下、更有可能是关闭、因为不应该有任何理由期望"嘿、他们最可能希望共享而不是引脚-让我们为他们共享"。 此" goofy 设置"的原因可能是"默认 HET 代码"、因此它使用具有此类配置的引脚。 但是、如果用户选择"enable advanced config"、则应取消可能用于"默认 HET 代码"目的的设置、以增强用户体验。
    -这是我以这种方式遇到的第一个 HalCoGen 配置、因此我的防护是针对这种行为而关闭的、例如、所有 VIM 通道默认设置为 IRQ、而不是 IRQ/FIQ/IRQ/FIQ。。。

    如果我自己发现原因、我就不会制作该线程。我一直都很确信错误是我的代码/设置中的某个位置、但由于花费了太多的时间来查找它、 决定在继续搜索错误的同时询问它、因为我非常确信可以从演示应用中立即指出错误。 在最初寻找错误时、我很确定我也尝试了 HR 共享、但很可能是由于28和29对大错误而意外关闭、因为在这之后、我基本上消除了这种可能性。 第二个错误是不使用"演示代码"再次尝试、因为实际应用可能还发生了一些其他故障、这会阻止 IRQ 进入、即使尝试了正确的引脚也会从 HR 共享中选择...

    我还查看了 HETHRSH 寄存器说明-从这个说明中、我至少看不到 HET 代码根本就不能处理该输入、因为只有 HR 被提到并且我没有在指令中使用它(高分辨率)。

    在我发现了什么问题后、我通常也会尝试从 TRM 中重新寻找问题-只是为了了解我没有注意到或理解的问题。 但对我来说、这仍然是一个难以理解的问题、也许是"HR"一词使我感到困惑/困惑。

    TRM 20.2.5.3和20.1.1.2基本上提到、HR 正在帮助克服信号测量/生成中的 LRP 限制
    -到目前为止我已经假设(并且仍然完全基于 TRM 文本)、如果 HR 在指令中未启用、那么这个 HR 的内容对您来说几乎没有意义-错误的假设

    TRM 20.2.5.5也没有直接说、它提供了多个技巧、这些技巧结合在一起、您很容易得出结论:如果启用了 HR 共享、HET 代码根本无法读取/处理引脚、尽管您是否在说明中使用了 HR 分辨率功能、 但是、由于您已经建立了错误的假设、因此只需阅读文本就可以克服这一错误假设、这是相当棘手的问题。


    我想说的是、即使您"查看"设置、您也可能找不到错误。 之后、在引脚27指令中想到引脚26的"可见性"应该更早地响铃、但由于没有执行太多 HET 代码、它没有... 和使用的 HalCoGen 代码是几个月前生成的(例如、我在应用中激活 HET 偏移 IRQ、而不是从 GUI 中激活、因为细微的 HET 代码更改偏移导致基于 GUI 的激活、同时激活错误的偏移)、并且生成的代码迄今没有问题 (由于 HET 代码中未使用这些奇数引脚)、因此 HR 共享在该角度也被很好地隐藏了...

    嗯、这不是第一次(也不会是最后一次)、因为一切都依赖于寄存器中的1个错误位-问题将始终只是找到那个位...