PIC不断重置:我是否看到面包板使用带来的副作用?


11

我正在使用PIC18F4680,在以HSPLL模式在40 MHz外部时钟源或10 MHz晶振上运行时遇到问题。在HS模式下使用10 MHz晶振似乎还可以,在HSPLL模式下使用5 MHz晶振也可以。

发生的情况是,PIC启动,工作了几秒钟,然后关闭了一段时间,然后再次启动。该周期的总时间约为5秒,其中PIC会在第二秒的早期停止工作。

我还注意到,有时当我在面包板的电源总线上添加足够大的放电电容器时,PIC会正常工作。有趣的是,只有在PIC已经运行的情况下添加电容器时,才会发生这种情况。如果我在那里用面包板为面包板供电,或者我将电容器没有完全放电,问题仍然存在。

我在一些站点上读到,由于PIC在更高频率和最低最低工作电压下的功耗增加,可能会发生与我类似的问题。在这些情况下,如果电源上存在一些短电压降,则它们很可能在该频率上达到PIC的最低工作电压,因此,最好在面包板上增加电容器以解决该问题。由于在40 MHz的满负载下,整个电路使用大约64 mA的电流,所以我的第一个想法是放置大约钽电容器,希望它们足够大并且具有足够低的ESR以解决问题。 。一个没有帮助,第二个也没有帮助。因此,我添加了一个铝质电容器,但这也没有帮助。100 μ ˚F10 μF100 μF470 μF铝电容器无效。最后,我添加了一个1 mF的铝电解电容器,然后第一次电路工作正常,直到关闭并打开电源。我还应注意,出于测试目的,我使用5.5 V的Vcc,这是该微控制器的最高额定电压。这应该给我留出一些空间,直到4.2 V(40 MHz的最低工作电压)为止。

接下来,我读到有时浮空的输出可能会引起毛刺,因此我在所有未使用的引脚上放置了下拉电阻,但这两个都没有帮助。之后,我已经读到,有时如果振荡器输入悬空,则可能会出现问题,因此我尝试使用大约电阻将它们连接至GND ,但这没有帮助。10 中号Ω10 kΩ10 MΩ

由于从振荡器的输出到PIC的振荡器的输入的线长,我预料会有问题,但我没想到与PIC上的振荡器引脚非常接近的10 MHz晶振会出现问题。同样对于晶体,如果由于面包板引起的振荡器信号失真是问题所在,我也希望在HS模式下也会出现问题,但是在HS模式下,PIC可以正常工作。

我通常使用33 pF的晶体电容器,但我也尝试使用15 pF的电容器,但无法检测到任何变化。

我还要注意,该PIC具有故障安全时钟监视器和内部/外部振荡器切换功能。我尝试启用它们两个,希望它们至少可以确认问题出在振荡器上,但是它们对解决问题没有帮助。它们是打开还是关闭没有区别。

为了测试目的,我还禁用了看门狗定时器,掉电复位和堆栈上溢/下溢复位。我认为我已关闭了该芯片的所有复位源。而且程序处于无限循环中,所以它没有结束。

PCF8583没有任何问题,即使PIC自身复位,PCF8583仍可以正常工作,但另一方面,它的最低电压要低得多。

不幸的是,我没有示波器,但是我使用声音(96 kHz采样率)卡进行了一些测试,并且我注意到RTC开启时,电源线上存在25 Hz的噪声。我正在使用的程序报告峰峰值在300 mV左右,但是我不知道有多少值得信赖,也不知道这是否足以对PIC造成任何问题。当一切都关闭时,噪声的峰峰值之间约为100 mV,因此应该没问题。

如果有帮助,请看以下面包板本身的图片:(右键单击->查看完整尺寸的图片) 在此处输入图片说明

有人知道这里发生了什么吗?

最后,我可以只在20 MHz下运行PIC,但是如果我需要更多的处理能力,我希望能够在40 MHz下运行。

更新

我在面包板本身上放置了另一个稳压器,现在声卡拾取的噪声要低得多(峰峰值之间约为50 mV),但这并没有影响主要问题。


1
嗯,我打算建议WDT和节电模式,但是您已经禁用了这些功能。您知道该PIC的节电情况吗?我从未尝试过在面包板上快速运行PIC。我们一直将18F4580与10MHz振荡器和HSPLL配合使用。他们工作正常。
Rocketmagnet 2012年

2
忘记面包板(我从不使用它们)并使用适当的PCB,它将节省大量时间。
Leon Heller

3
@Leon Heller可以节省很多时间,但是目前,PCB比我的时间贵,尤其是因为我什至没有我要使用的所有主要组件的清单。
AndrejaKo'4

1
@AndrejKo这听起来像是让我想要curl缩成球形并哭泣的问题之一。您确定您的时间值这么少吗?我只是制作PCB-通常也很有趣!
AngryEE 2012年

1
@AndrejaKo:如果您不介意等待一个星期左右,那么这个PCB订单组就非常成功:dorkbotpdx.org/wiki/pcb_order。如果你不想让自己的,那就是
克里斯Laplante提供

Answers:


12

这是一些相当老的建议,我不知道它是否与您的单片机相关,但是大约4年前,我使用PIC18F进行了一个项目,该项目遇到了奇怪的虚假复位。阅读报告并重新慢跑后,似乎可以解决此问题:

是否Low Voltage Programming Enable启用了配置位?你的PGM针脚在PORTB吗?如果是这样,您可能要考虑在复位时同时禁用Low Voltage Programming Enable和禁用Port B A/D Enable数字输入。根据我的旧报告,发生的事情是当我们将PORTB其作为模拟输入并触发该PGM引脚时,它们处于悬空状态。回顾过去,我不知道该诊断是否正确,但是我们确实成功完成了该项目,因此值得一试。


有趣!几分钟前,我注意到与程序员建立连接已影响了该问题,现在影响了此答案。我禁用了端口BA / D和LVP,到目前为止,它工作正常。PGM引脚上可能有某种奇怪的相互作用。
AndrejaKo 2012年

@AndrejaKo,根据我的经验听起来很熟悉。我希望它保持稳定...当您尝试完成某些工作时,挑剔的硬件可能会非常令人沮丧:S
Jon L

1
好吧,它已经运行了21分30秒。我希望它保持这种状态。我只是让它整夜运行,看看它是否会重置。
AndrejaKo 2012年

大!我很高兴它解决了这个问题。
abdullah kahraman 2012年

1
整整一天,我花了整整一天的时间试图弄清楚为什么我的PIC 16F887每隔几毫秒就会复位一次。设置电路编脚中的低电压,并且浮动PGM引脚拾取噪声以触发复位。为您+1代表
Gianluca Ghettini 2015年

7

使用这样的设置,我们几乎不可能确切地说出问题所在。但是,我们可以说的是错在哪里。有很多事情是错误的,或者至少不如它的正确。这些问题中的任何一个都可能是问题的真正根源,但也可能需要将这些问题组合在一起,使它们总和等于您所看到的问题。

调试此错误的唯一真实方法是修复您知道的所有错误,无论它是否是吸烟枪。最终,问题将以一种或另一种方式解决。

当这样的MCU无法正常运行时,您几乎总是必须专注于以下基础知识:电源,时钟和复位。有了面包板,所有这三个都是可疑的!

对我来说,排名第一的是40 MHz时钟。40 MHz可以非常快地在空中漂浮的电线上运行。装在面包板上的速度也很快,在这种情况下,“信号分配系统”并不是真正为高速而设计的。如果这是PCB,我会告诉您确保走线阻抗一致并正确终止信号。不幸的是,您不能真正在面包板上这样做。我能告诉你的最好的事情是让电线尽可能短-然后使它们更短!在时钟信号上使用O型示波器,直接在PIC引脚上进行探查,探针的GND引脚也直接在PIC上最近的GND引脚上。那将告诉您很多关于您的时钟的信息。

(如果可以的话,请尝试借用一个o型示波器。如果没有,则很难调试。)

第二大嫌疑人是力量。面包板的功率也是一个巨大的问题,因为导线的电感和电阻相对较高。再次在这里,使电线短。我还注意到,40 MHz振荡器上没有任何去耦电容。对于OSC,我将并联使用0.1 uF和更大的电容(4.7 uF至100 uF)。您的PIC也可以使用与0.1 uF电容并联的更大电容。通常不需要较大的盖子,但是面包板没有任何正常现象。

怀疑3重置。您没有提供任何有关复位信号的信息,我想说这是我怀疑的最低值,但是无论如何您都应该检查一下。在其上放一个观察镜,看看发生了什么。您也许可以简单地使用电压表。如果复位引脚上的电压接近阈值水平,则需要对其进行修复。

现在,让我们回顾一下您尝试过的事情:

您做了很多实验,将帽盖放置在电源线上,结果很少或令人困惑。在这种情况下,您只需要在其中加一些上限,而不必担心他们是否在做任何积极的事情。可能是您的电源嘈杂,但这只是造成问题的几种原因之一。在PIC上与0.1 uF电容并联增加较大的电容。在40 MHz振荡器上增加电容。确保引线尽可能短。然后继续下一步。

额外的功率上限是不太可能引起问题的事情之一。这就是为什么您可以穿上一些而不必担心它们太多的原因。特别是10-100 uF的电容。

稍后,一切正常后,您可以一次取下这些盖子,然后查看问题是否再次出现。如果它没有返回,那么上限不是问题。但是目前,您需要消除这一潜在问题,但要增加上限。

尽管浮动引脚可能是一个问题,但它们很少是足以引起MCU崩溃的大问题。值得解决,因为它会引起其他问题,但在这里不太可能成为问题。注意:阻止未使用的引脚悬空的简单方法是将它们设置为输出!高或低无关紧要。但是,如果PIC驱动这些引脚,则它们将无法浮动。


2
一个很好的答案。所有那些漫长而又不整洁的电线都使我认为,试图在一个讨厌的面包板上进行这项工作是不值得的时间和痛苦的。
Rocketmagnet'4

不错的清单!我会在报告结果时报告结果。
AndrejaKo 2012年

4

您没有提到PGM(有时称为LVP)引脚。必须将其约束为低电平或在确认字节中禁用LVP。

您确定此PIC可以直接采用40 MHz吗?有些只能通过内部PLL达到40 MHz。我没有检查数据表,但您应该检查。即使是这样,我也不希望面包板上的40 MHz表现良好。我确实认为您应该能够使PIC与10 MHz晶振和内部4x PLL一起运行,尽管如果您对面包板非常小心,并在正确的位置放置旁路电容。

这种问题经常出现。无需重复所有典型的问题,请参阅/electronics//a/29620/4512


似乎我们这里有两个正确答案:)
Abdullah kahraman 2012年

2

我必须同意戴维。导线很长,面包板上的40MHz频率非常乐观。我真不敢相信你的时间真的太少了,以至于你负担不起制作原型PCB的费用。这些东西在PCB Train上仅花费约30英镑。我敢肯定,您附近有人可以提供类似的东西。

为什么不这样做。设计一块将PIC,振荡器和稳压器作为SMD组件的PCB,然后将整个负载的穿孔板剥离。这样,您仍然可以进行原型制作,但是请确保PIC满意。

PC原型性能板


2
啊,我爱Altium的3D!顺便说一句,对一个学生来说,30英镑可能是很高的。
Abdullah kahraman 2012年

1
应该设法制造自制的PCB,我一定会尝试这种想法。
AndrejaKo 2012年

2
@AndrejaKo-酷。然后给我们打勾:)-甚至只是放两排针排,这样就可以将其插入面包板。
Rocketmagnet'4

1

如果您有一个外部变量F生成器,请考虑使用它来测试布局/芯片是否存在问题。并找出引起故障的外部F.并记住延长的接地电缆充当噪声串扰的天线。


0

探针看起来像您需要逻辑探针,dvm或示波器... http://search.digikey.com/us/en/products/DP%2052/BKDP52-ND/227492

跨时钟芯片V + / gnd盖上盖子,如果距离较远,则考虑40MHZ的双绞线。Pic xtal具有输入和输出..检查反相输出DC电平= v / 2?.. Pic会变暖吗?哈..

我建议在40MHz下使用10MHz Xtal PLL模式以避免布局问题。

“ HSPLL模式利用HS模式振荡器提供高达10 MHz的频率。然后,PLL将振荡器输出频率乘以4,以产生高达40 MHz的内部时钟频率。 FOSC3:FOSC0配置位被编程为HSPLL模式(= 0110)。“


我实际上确实尝试过使用HSPLL和10 MHz晶振,但是在HSPLL模式下,它显示的结果与振荡器相同。在HS模式下工作正常。
AndrejaKo 2012年

据我所知,PIC在使用过程中也不会变热。
AndrejaKo 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.