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.
大家好!
当我们将 TXOUT 路由到 MP0时、会出现一种奇怪的行为。 或者初始计划是将 TXOUT 路由到 MP0、同时将 LOCK 路由到 MP1。
- MP0 TXOUT
- MP1锁
我们通过向寄存器0x78写入0xBD 来尝试这一点。 顺便说一下、我们移除了 W8跳线。
w 80 78 bd
当我们执行此操作时、我们会在引脚 MP0和 MP1上看到 TXOUT。
让我们吃惊地看到它。 因此、将 TXOUT 路由到 MP1并锁定到 MP0、它会起作用。 我们看到 MP0上的锁定和 MP1上的 TXOUT
w 80 78 db
这可以通过 EVM 轻松测试。 您是否知道这个问题、或者它为什么是这样的?
此致、
埃里克
Eric、 在 这两种情况下、当您写入寄存器 H78时、请立即对这些寄存器 执行读操作、然后查看读数。 如果读取 正确、我也会在脚本末尾再 写一次读取、以查看它写入、但随后会发生变化。 冲突的地方。
此致、
阿拉什
尊敬的 Arash:
好吧,我尝试了它,它真的很有趣。 请查看下面的脚本。
脚本
#Can't route LOCK to MP1 and TXOUT to MP0 thats why reversed #w 80 78 dd -> causes disconnect #w 80 78 bd -> causes TXOUT on MP0 and MP1 w 80 78 bd #w 80 78 db r 80 78 01 #Set MPIO_A/B IO direction (not used) w 80 79 00 #Set MPIO_C IO direction (not used) w 80 7a 00 #Set MPIO_A/B IO output level (not used) w 80 7b 00 #Set MPIO_C IO output level (not used) w 80 7c 00 #7d MPIO_A/B IO input level (read only, not used) #7e MPIO_C IO input level (read only, not used) r 80 78 01
读回
r 80 78 01: BD r 80 78 01: DD
我将0xBD 写入寄存器0x78、第一次读回是使用0xBD 正确的。 但末尾的最后一次读回显示为0xDD。 但是可以看到、我不再写入寄存器。 我删除了脚本以避免任何其他冲突、但当您将这3行代码插入脚本时也会发生这种情况。
w 80 78 bd r 80 78 01 r 80 78 01
第一次读取将显示正确的响应0xBD、第二次读取将显示0xDD。 当然、板之前已复位。
这很奇怪。 你对此有什么解释吗?
此致、
埃里克
好的,所以我怀疑,它重新写了它与 D . 这很有趣,但我相信它背后有一个逻辑,我们只需要找到它!
对此进行调查的一种方法是在两次读取之后立即读取所有寄存器、然后进行比较、看看还有什么变化。 那就是
W 80 78 BD
r 所有寄存器
r 所有寄存器
(使用任何软件( 例如 Beyond Compare 或类似程序)比较上述2个单独读取操作)
您也可以 WRTIE 0xDB 并再次针对这种情况执行相同的读取操作,现在将这组读取 操作与前一 种情况进行比较,以查看发生了什么变化。(我认为这种情况的第一个读数(0xBD)应该与另一种情况的第一个读数(*0xdb)匹配。 但第二次读会不同。
另一个可以做的实验是选择 LOCK 和 TXOUT 以外的其他情况 (例如 MCKO 或其他情况)并交换寄存器以查看它是否读取正确或者再次重写。
这是非常有趣的事情,我 以前从未见过这一点,可能有冲突的东西, 此寄存器并覆盖它)
此致、
阿拉什
嗨、Arash、
我试过你说的。 顺便说一下"r all 寄存器"不起作用。 它在命令窗口中提供错误。 我使用了示例脚本中使用的"r 80 20 5e"来读取所有寄存器。 该功能工作正常。 在这里您可以看到差异。
第3行中的08 08仅是寄存器0x38、0x39、是只读的、因此不存在问题。 然后、如预期的那样、行寄存器0x78已从0xBD 更改为0xDD。 最后一个寄存器是未使用的寄存器0x7D。 它不在数据表中、因此我甚至可以通过少读取一个字节来跳过它。
似乎只有寄存器0x78发生了更改。 但我注意到了一点。 当我按下命令窗口中的"record "来查看发生的情况时、我可以看到 CodeControl 软件自动添加了"w 80 78 DD"。 请查看下图:
这就是寄存器值发生变化的原因。 我这边有2个问题:
-为什么会发生这种情况?
-你认为当我用我的 MCU 在后期产品将寄存器0x78写入0xBD 时,它会正常工作,还是你认为软件会由于一些内部限制而阻止这一设置?
顺便说一下、MCKO 或其他设置和 TXOUT 具有相同的效果。 当 TXOUT 0x0d 被路由至 MP0时、它一直是一样的、它一直位于 MP1上。 此处是不同设置的片段。 CodeControl 软件始终自行将0xDD 写入0x78。
此致、
埃里克
您好、Eric、
当我提到 R 所有寄存器时,我并不是说这是脚本,它只是用于调试过程的指令!! 我可能不应该以脚本格式显示。
我从未见过 向脚本中添加代码、但 坦率地说、 我不使用 CodeControl、而是使用 PPC3 (纯路径控制)软件附带的 I2C 主站。 您可以从 ti site 下载 PPC3、 其 GUI 外观与上述相同、请使用 PPC3进行尝试、如果未执行此操作、则是 与 CodeControl 相关的问题。
另一个建议是将这些寄存器设置为默认值 、看看它是否 在末尾再次添加额外的一行、或者在什么条件下不添加。
此致、
阿拉什
尊敬的 Arash:
非常感谢您的更新。 我将使用 PPC3重试、并告知您。 我在 MCU 上并行尝试过、一切似乎都正常工作。 似乎实际上是 CodeControl 的一个错误。 感谢您的全力帮助。
此致、
埃里克
当然、Eric、
如果您有任何需要、请告诉我。 我暂时关闭了此帖子、但在您使用 PPC3进行测试后、您可以随意添加您的发现。
此致、
阿拉什