PICがリセットし続ける:ブレッドボードの使用による副作用はありますか?


11

PIC18F4680を使用していますが、40 MHzの外部クロックソースまたはHSPLLモードの10 MHzクリスタルからの実行に問題があります。HSモードで10 MHzクリスタルを使用しても問題ないようで、HSPLLモードで5 MHzクリスタルも問題なく動作します。

何が起こるかは、PICが起動して数秒間動作し、その後しばらくシャットダウンしてから再び起動することです。サイクルの合計期間は約5秒で、PICの動作は2秒の早い段階で動作を停止します。

また、ブレッドボードの電源バスに十分に大きな放電コンデンサを追加すると、PICが正常に動作することもあります。興味深い点は、これは、PICが既に実行されているときにコンデンサを追加した場合にのみ発生することです。そこにコンデンサを付けてブレッドボードに電力を供給したり、完全に放電されていないコンデンサを配置したりすると、問題が残ります。

私はいくつかのサイトで、より高い周波数と最も低い動作電圧でのPICの消費電力の増加により、私のような問題が発生する可能性があることを読みました。これらの場合、電源でいくつかの短い電圧降下がある場合、それらはその周波数でPICの最低動作電圧に到達する可能性が高いので、その問題を解決するためにブレッドボードにコンデンサを追加することをお勧めします。40 MHzで全負荷の下で以来、64ミリアンペアの周りの回路全体の用途は、私の最初のアイデアはいくつか入れていた彼らは十分に大きいことや、問題を解決するために十分に低いESRを持っているだろうと期待してタンタルコンデンサを。1つは役に立たず、2つ目も役に立たなかった。だから私は、追加100 μ F10 μF100 μFアルミコンデンサとそれも助けにはならなかった。それから私は、追加影響なしにアルミ電解コンデンサを。最後に、1 mFのアルミ電解コンデンサを追加し、電源をオフにしてからオンにするまで、回路が初めて正常に動作しました。また、テストの目的で、このマイクロコントローラーの最大定格電圧である5.5 VのVccを使用していることにも注意してください。これにより、40 MHzで最低の動作電圧である4.2 Vまでの余裕ができるはずです。470 μF

10 kΩ10 MΩ

PICの発振器出力から発振器入力までの配線が長いため、問題が発生することが予想されましたが、PICの発振器ピンに非常に近い10 MHzクリスタルでは問題は発生しませんでした。また、水晶の場合、ブレッドボードによる発振器信号の歪みが問題であった場合、HSモードでも問題が発生すると予想しますが、HSモードでは、PICは正常に動作します。

通常、クリスタルには33 pFのコンデンサを使用しますが、15 pFでも試しましたが、変化を検出できませんでした。

また、このPICにはフェイルセーフクロックモニターと内部/外部発振器切り替え機能があることに注意してください。私はそれらの両方を有効にしてみましたが、少なくとも問題が発振器にあることを彼らが確認することを期待していますが、それらは問題の助けにはなりません。オンでもオフでも違いはありません。

テスト目的でウォッチドッグタイマー、電圧低下リセット、スタックオーバー/アンダーフローリセットも無効にしました。このチップのすべてのリセットソースをオフにしたと思います。また、プログラムは無限ループにあるため、終了していません。

PCF8583には問題はなく、PICが自身をリセットしているときでも正しく動作し続けますが、最小電圧ははるかに低くなっています。

残念ながら、オシロスコープはありませんが、サウンド(サンプルレート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

2
ブレッドボードを忘れて(私はそれらを使用したことはありません)、適切なPCBを使用すると、時間を大幅に節約できます。
Leon Heller、

3
@Leon Heller大幅に時間を節約できるかもしれませんが、現時点では、使用するすべての主要コンポーネントのリストさえないため、PCBは私の時間よりも高価です。
AndrejaKo 2012

1
@AndrejKoこれは私がボールに丸くなって泣きたくなるような問題の1つに聞こえます。あなたはあなたの時間はほとんど価値がないと確信していますか?私はPCBを作るだけです-それは通常とても楽しいです!
AngryEE 2012

1
@AndrejaKo:1週間ほど待ってもかまわない場合、私はこのグループのPCB注文で大きな成功を収めました:dorkbotpdx.org/wiki/pcb_order。自分で作成したくない場合、それは
クリスラプランテ

回答:


12

これはかなり古いアドバイスですが、あなたのマイクロに関連するかどうかはわかりませんが、約4年前にPIC18Fでプロジェクトを実行しました。レポートを読んで私の記憶を再度ジョギングした後、ここでそれを解決したようです:

あなたが持っていますかLow Voltage Programming Enableコンフィギュレーションビットが有効?あなたのPGMピンはオンPORTBですか?その場合は、リセット時に両方Low Voltage Programming EnablePort 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担当者
ジャンルカゲッティーニ2015

7

このような設定では、何が問題なのか正確に言うことはほとんど不可能です。しかし、私たちが言えることは、間違っていることです。多くの問題があり、少なくとも寒いほど正しくありません。これらのいずれかが問題の本当の原因である可能性がありますが、合計すると、表示されている問題と等しい問題の組み合わせが必要になる場合もあります。

これをデバッグする唯一の実際の方法は、それが喫煙銃であるかどうかに関係なく、間違っていることがわかっているものを修正することです。最終的には、問題は何らかの方法で修正されます。

このようなMCUが正しく実行されていない場合、ほとんどの場合、基本、電源、クロック、およびリセットに集中する必要があります。ブレッドボードを使用すると、これら3つすべてが疑われます。

私にとって最大の疑いは40 MHzクロックです。40 MHzは、空中に浮かんでいるワイヤー上を走るにはかなり高速です。また、「信号分配システム」が高速用に実際に設計されていないブレッドボードに詰め込むのも高速です。これがPCBの場合、トレースインピーダンスが一貫していることを確認し、信号を適切に終端するように指示します。残念ながら、ブレッドボードでは実際にそれを行うことはできません。私が言える最も良いことは、ワイヤーをできるだけ短くして、さらに短くすることです!クロックのOスコープを使用し、PICピンで直接プローブします。プローブのGNDリードもPICの最も近いGNDピンで直接プローブします。それはあなたの時計について多くを教えてくれます。

(可能であれば、o-scopeを借りてみてください。O-scopeがないと、デバッグが困難になります。)

#2容疑者は権力です。ワイヤーのインダクタンスと抵抗が比較的高いため、ブレッドボードでは電力も大きな問題です。ここでも、ワイヤを短くしてください。また、40 MHzの発振器にはデカップリングキャップがないことに注意してください。OSCの場合、0.1 uFとそれよりも大きいもの(4.7 uFから100 uF)を並行して使用します。PICは、0.1 uFキャップと並行してもっと大きなものを使用することもできます。通常、これより大きなキャップは必要ありませんが、ブレッドボードでは通常は何も起こりません。

容疑者#3がリセットされます。リセット信号については何も教えてくれなかったので、私が考えている中で最も低い信号だと思いますが、とにかくそれを確認する必要があります。その上にOスコープを置き、何が起こっているかを確認します。あなたは単に電圧計を使うことができるかもしれません。リセットピンの電圧がしきい値レベルに近い場合は、それを修正する必要があります。

さて、あなたが試したことを振り返ってみましょう:

電力線にキャップを配置することで多くの実験を行いましたが、結果はほとんどまたは混乱しました。これは、いくつかの上限を設定しなければならない時代の1つであり、彼らが何か肯定的なことをしているかどうか心配する必要はありません。あなたの力がうるさいかもしれませんが、問題を引き起こしているいくつかのもののうちの1つにすぎません。PICで0.1 uFキャップと並行して、より大きなキャップを追加します。40 MHz発振器にキャップを追加します。リードはできるだけ短くしてください。次に、次のことに進みます。

電力に対する追加の上限は、問題を引き起こす可能性が低いものの1つです。だからこそ、着るだけで心配はいりません。特に10-100 uFのキャップでは。

その後、すべてが正常に機能したら、これらのキャップを1つずつ取り外して、問題が再発するかどうかを確認できます。戻らない場合は、キャップに問題はありませんでした。しかし今のところ、これを潜在的な問題として削除する必要がありますが、上限を追加します。

フローティングピンは問題になる可能性がありますが、MCUがクラッシュするほど大きな問題になることはめったにありません。他の問題を引き起こすため、修正する価値はありますが、ここで問題になることはほとんどありません。注:未使用のピンがフローティングにならないようにする簡単な方法は、ピンを出力として設定することです!高か低かは関係ありません。ただし、PICがこれらのピンを駆動している場合は、フロートできません。


2
良い答えです。これらのすべての長い整然としたワイヤーは、これを厄介なブレッドボードで動作させることは時間と悲惨の価値がないと私に考えさせました。
Rocketmagnet

いいリスト!確認したら結果を報告します。
AndrejaKo 2012

4

PGM(LVPと呼ばれることもあります)ピンについては触れませんでした。これはLowに固定するか、または構成バイトでLVPを無効にする必要があります。

このPICは40 MHzを直接取り込めますか?内部PLLを介してのみ40 MHzに到達できるものもあります。データシートは確認しませんでしたが、確認する必要があります。たとえそうであっても、ブレッドボード上の40 MHzが適切に動作することは期待できません。ブレッドボードに注意してバイパスキャップを適切な場所に配置した場合でも、10 MHzクリスタルと内部4x PLLでPICを実行できるはずです。

この種の質問は定期的に出てきます。一般的な問題をすべて繰り返す代わりに、https://electronics.stackexchange.com/a/29620/4512を参照してください


ここに2つの正しい答えがあるようです:)
abdullah kahraman 2012

2

デビッドに同意する必要があります。非常に多くの長いワイヤーがあり、ブレッドボード上の40MHzは非常に楽観的です。私はあなたの時間が本当に価値があるほど信じられないので、小さなプロトタイプPCBを作る余裕はありません。これらのものはPCBトレインからたったの£30ほどです。近くに似たような人がいると思います。

なぜこれをしませんか。PIC、発振器、レギュレーターをSMDコンポーネントとして備えたPCBを設計し、次にパフォーマンスボードストリップの負荷全体を設計します。この方法でもプロトタイピングを行うことができますが、PICが満足していることを確認してください。

PCプロトタイプperfボード


2
ああ、私はアルティウムの3Dが大好きです!ちなみに、学生にとって£30は高くなる可能性があります:)パフォーマンスボードまたは自家製PCBを使用することをお勧めします。
abdullah kahraman 2012

1
なんとかして自家製のPCBを作ることができれば、私は間違いなくこのアイデアを試してみます。
AndrejaKo 2012

2
@AndrejaKo-かっこいい。次にチェックマークを付けます。
Rocketmagnet

1

外部変数Fジェネレーターがある場合は、レイアウト/チップの問題をテストするためにそれを使用することを検討してください。障害の原因となる外部Fを見つけます。延長アースケーブルがノイズクロストークのアンテナとして機能することを覚えておいてください。


0

プローブ uのように見えるが、ロジックプローブ、DVMまたは範囲を必要とする... http://search.digikey.com/us/en/products/DP%2052/BKDP52-ND/227492

クロックチップV + / gndにキャップを付け、遠い場合は40MHZのツイストペアを検討してください。Pic xtalには入力と出力があります。反転出力のDCレベルをチェックしてください= v / 2?.. Picは暖かくなりますか?ha ..

レイアウトの問題を回避するために、40MHzで10MHz Xtal PLLモードをお勧めします。

「HSPLLモードは、最大10 MHzの周波数でHSモード発振器を使用します。次に、PLLは発振器の出力周波数を4倍して最大40 MHzの内部クロック周波数を生成します。PLLは、 FOSC3:FOSC0構成ビットはHSPLLモード(= 0110)にプログラムされています。


私は実際にHSPLLと10 MHz水晶を使用してみましたが、HSPLLモードでは、発振器と同じ結果が表示されます。HSモードで正常に動作します。
AndrejaKo 2012

また、私が見る限り、PICは使用中に暖まりません。
AndrejaKo 2012
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.