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 μ Fアルミコンデンサとそれも助けにはならなかった。それから私は、追加影響なしにアルミ電解コンデンサを。最後に、1 mFのアルミ電解コンデンサを追加し、電源をオフにしてからオンにするまで、回路が初めて正常に動作しました。また、テストの目的で、このマイクロコントローラーの最大定格電圧である5.5 VのVccを使用していることにも注意してください。これにより、40 MHzで最低の動作電圧である4.2 Vまでの余裕ができるはずです。
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)。しかし、それは主要な問題には影響しませんでした。