dsPIC 芯片以正常速度的一小部分运行

电器工程 微控制器 图片 微芯片 实验室
2022-01-14 16:23:32

我有两个PCB。一个有 dsPIC30F6012a,另一个有 dsPIC30F6015。两者都在 MPLAB X 中使用 PICkit 3 从单独的独立 HEX 项目中进行编程。在此之前,这两种固件都已毫无困难地应用于数十个单元。目前,当从除一台以外的所有 PC 编程时,固件运行正常。在那台 PC 上,从昨天开始,两个固件程序都没有明显错误,但以大约 1/20 正常速度执行。昨天之前,那台电脑也对这些板进行了编程,没有问题。

启动画面需要两分钟而不是五秒钟,灯光闪烁非常缓慢,但除此之外一切正常。就好像振荡器配置位已更改,但我不知道 MPLAB X 中的任何地方都可以对独立项目进行。

因此,两个不同的固件,在两个不同的芯片上,在同一 PCB 设计的多个实例上,以不同的速度运行,仅取决于用于对其进行编程的 PC。在“好”的 PC 上重新编程慢板可以解决问题;在“坏”PC上重新编程同一块板子可以让它恢复原状。我所能想到的就是在那台电脑上有人点击了“让它慢慢走”按钮,但我找不到任何标签。(不过,我们的技术人员很有创意。)我目前正在卸载 MPLAB X,擦除用户设置,然后重新安装更新的版本。(从 1.3 升级到 1.6。)但即使修复它,我仍然不高兴不知道发生了什么。有人对这个问题有任何见解吗?

1个回答

在 MPLAB X 中,配置位不能与代码分开设置(就像 MPLAB 8 曾经让您这样做)。配置位可能“错误”的唯一方法是有人修改了代码。由于您使用的是独立的 HEX 文件项目,因此这不太可能。

您还没有说在“工作”PC 上重新编程其中一个“坏”板是否真的能解决问题。试试看。

您可以做的另一件事(如果您不使用代码保护)是从“工作”设置中读回 HEX 文件并将其闪存到一个故障板中。这应该消除作为不确定性之一的代码更改。

另一种(不太可能)的情况是,您的 dsPIC 库存包含多个修订版,并且逐步更改以某种方式使您的代码无效。确保 IC 部件号正确,当 PICkit3 连接时,您应该会看到一个版本代码,您可以交叉引用该芯片版本。

编辑:现在是时候确保 MPLAB X 的各种安装在所有 PC 上都匹配——它们是相同的版本吗?它们是最新版本吗?

每当 MPLAB X 有新版本时,PICkit3 固件往往会升级 - 可能存在错误或与旧 PICkit3 固件和您的 HEX 文件不兼容。

我最近遇到了类似的情况(现在我才恍然大悟——duh),我在我的机器上使用 MPLAB X 和 XC16 生成的 HEX 文件可以在我的机器上正确编程,但不能在另一台使用 MPLAB 8 v8 的机器上编程。 50 - 代码似乎运行得更慢(初始化 LED 看起来很慢)。当那台 PC 用 MPLAB 8 v8.88 更新时,使用相同的编程器和相同的 HEX 文件,事情又开始工作了。诡异的。