マイコンリセットについて

このQ&Aのポイント
  • マイコンのリセット信号が一定時間ローレベルに保持する必要があるのは、電源が安定するまで、プログラムが動きだすのを抑えるためです。
  • リセットはリセット信号の立下りエッジでかかり、その後、リセットが立ち上がるまでリセット状態を保持します。
  • 電源が安定した状態でマニュアルリセットをかけたい場合には、ローレベル保持時間は必要ありません。
回答を見る
  • ベストアンサー

マイコンリセットについて

これまで、マイコンのリセット入力にはあまり深く考えずにリセットICを用いていたのですが、ちょっと疑問が出てきたので質問します。 マイコンのリセット信号が一定時間ローレベルに保持する必要があるのは、電源が安定するまで、 プログラムが動きだすのを抑えるとのことですが、これは、リセットをかけるのに保持時間が必要なわけではなく、リセット自体は、リセット信号の立下りエッジでかかって、その後、リセットが立ち上がるまでリセット状態を保持すると思っていいでしょうか? また、とすると、電源が既に安定した状態で何らかの理由でマニュアルリセットをかけたい場合には、上記のローレベル保持時間は必要ないと思っていいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

>リセット自体は、リセット信号の立下りエッジでかかって、その後、リセットが立ち上がるまでリセット状態を保持すると思っていいでしょうか? そういうマイコンが多いです。(ただし、下で書いたように、ノイズ対策のため、完全に立ち下がりエッジではなくて、少し時間がたってから) リセットがLの状態で、クロックの立ち上がり(or立ち下り)エッジでリセットされるものもあります。 >また、とすると、電源が既に安定した状態で何らかの理由でマニュアルリセットをかけたい場合には、上記のローレベル保持時間は必要ないと思っていいのでしょうか? 基本はそうです。ただし、リセット信号ラインに突発的にのったノイズなんかでリセットされてしまったら困るので、通常は、リセット信号を何us以上の期間Lに保つ、などと規定されていると思います。

zaki_shin
質問者

お礼

回答ありがとうございます。よくわかりました。原因がわからないのですが、しばらくログインできなくて、お礼遅くなり申し訳ありません。

関連するQ&A

  • マイコンのシステムリセットについて

    3.3Vと5Vの2種類の電源を使用したマイコンのシステムリセットについて教えてください。どちらの電源も重要なので両方の電源を監視してリセットをかけようと思っているのですが、2電源を監視できるシステムリセットICは探してみてもほとんど販売されていません。とういことは、2電源を監視してリセットをかけるということは通常行わないのでしょうか? 2種類の電源を使用した場合のリセットは一般的にどのように行われるのですか?どうぞ教えてください。

  • アルテラ CYCLONE3のリセット信号は

    アルテラ社のCYCLONE3を使用した回路を製作していてリセット信号の事でお聞きします。 電源投入後コンフィギュレーションを開始しコンフィギュレーション完了後に内部ロジックが動作を始めますが、この時リセット信号は外部からリセットICなどにより入力する必要はないのでしょうか? 内部ロジックではリセット信号処理を必要としています。  always@(negedge rst or posedge clk) などとしています。 外部からリセットICなどによりリセットを入れる場合、そうとうにディレイ時間の長いリセットICが必要になると思いますが、FPGA専用のリセットICなど有るのでしょうか。 またはCYCLONE3には内部にPOR回路がある様ですが、この回路を内部ロジックのリセット信号に使用する事は出来ないのでしょうか。 宜しくお願いします。

  • マイコンのソースについて

    マイコンのC言語プログラムのソースについての質問です。 マイコンを使い自由落下の時間差を測定しようと考えています。使用するマイコンはH8SX/1655です。ソフトウェアとしてHEWを使用しています。 システムとしてはマイコンのクロックを使い 、マイコンに2箇所から光の信号を入力して、物体を自由落下させ、物体が光を遮ったときを参考にして、その差分から時間を計測するというシステムを考えています。 具体的には (1)フリーランタイマーを走らせるプログラム (2)オペアンプからの入力を一定間隔でA/D変換するプログラム (3)A/D値が定常状態から動いていたら、「レーザーが遮られた」ということなのでそのタイミングでフリーランタイマーのカウンタを取得するプログラムを 作ればいいということを教えていただいたのですが、プログラムの書き方がわかりませんでした。 この3つのプログラムのソースの書き方について解答・解説・指摘お願いします。 また、参考になるサイトがあれば紹介お願いします。

  • マイコンによるLED制御について

    プルダウン抵抗が内蔵されているマイコンでH or Lの信号を送ってLEDを動かす回路があります。 プルダウン抵抗が内蔵されているため、アプリが立ち上がる前はローレベルになると思っているのですが、電源起動後ずっとハイになります。アプリが立ち上がるとローになります。プルダウン抵抗はローになるという認識は間違いでしょうか。 ちなみに外付けでプルダウン抵抗が近くにありすが、これが邪魔をしているのでしょうか。 ソフト的には問題はなく、ハード的に何か問題ないのか質問致しました。 電源投入後、無理やりローにする方法ございますでしょうか。

  • マイコンのエミュレータについて

    現在E8エミュレータを使ってマイコン(H8tyni 3687)のデバッグを行おうとしております。 しかしプログラム上にブレークポイントをいくつか置いてデバッグをする際に、1つ目のブレークポイントまでは正常にプログラムが停止するのですが、2つ目のブレークポイントまでプログラムを実行させると、プログラムが停止することなく、固まってしまいます。 1つ目のブレークポイントから2つ目のブレークポイントまでのプログラムで無限ループに入っているのかと思い、1つ目のブレークポイントを削除し、リセットから直接2つ目のブレークポイントまでプログラムを実行させると、正常にプログラムが停止します。しかし次のブレークポイントまで実行させるとまた固まってしまいます。 他の製品にも同じマイコンを使用しているものがあるため、そちらに今回のプログラムをダウンロードしE8エミュレータをつないだところ、特に問題なく1つ目のブレークポイント、2つ目のブレークポイントでプログラムが停止します。 今回問題が発生している基板でエミュレータとマイコン間の波形をオシロで確認したところ、1つ目のブレークポイントから2つ目のブレークポイントまで実行するときに、マイコンのP86(42ピン)が途中まで信号を出力して、突然Lowになってしまいます。(正常なときは信号を出力し終えた後はHighになります。) ちなみにP86(42ピン)はマイコンからエミュレータに対して信号を出力するポートです。 このような現象をご経験された事がある方や、何かお気づきになられた方がいらっしゃいましたら、どのような事でもかまいませんので、ご教授ください。 よろしくお願いいたします。

  • 組み込みマイコンの誤動作について

    ある組み込みマイコン(ASSP)を使っています。AD変換と、コンパレータが入っていて、コンパレータは閾値以上の電圧が入ると割り込みをかけてくれます。 そのマイコンで誤動作が見つかり、AD変換値のレジスタにアクセスしているとき、コンパレータからの割り込み要求があると、マイコン自身がエラーが発生したと誤判定してプログラムをとめてしまいます。 コンパレータは電流を電圧に変えた信号が入るようになっていて、一定以上の電流が流れたら、スイッチ(FET)を切るため=保護のため使っているので、それをやめることはできません。 メーカーはマイコンを設計しなおすのはお金がかかるから、AD変換値を読んでいるときは、コンパレータを動作させない(=保護ができない)ようにして使ってくれといいます。 AD変換も電源電圧を読んでいてこれまた保護のために使っています。 もともと、そのコンパレータで保護もできるというのがウリであったのですが、メーカー・日本の販売商社の見解として、マイコンは不具合のまま(保護できないタイミングがある状態で)使ってくれというのですが(日本の販売商社がリクエストをとめている可能性もあります)、海外メーカーのマイコンというのはそういうものでしょうか? ちなみにこのマイコンはすでに売られている車にも搭載されているものです。 みなさんのご経験と「こんな風に回避またはメーカーに働きかけた」といったことがあったら教えていただけませんでしょうか? よろしくお願いいたします。

  • マイコンによるDCモータの制御

    マイコンでDCモータの正転、逆転を制御したいのですがうまくいきません。 お力添えをお願いします。 ・使用するマイコン:PIC16F84A IC:TA7291P ・させたい動作 RB1のスイッチが押されると、2秒正転、2秒静止、2秒逆転、2秒静止→ループ ・問題点 マイコンからの出力をLEDに変えるとこの動作はうまくいくのですが、ICに出力するとうまくいきません。下にプログラムの一部を書きますが、while(s_f==1)のループに入れていないようです。 また、ICへの出力をマイコンからではなく、電源からの電流をスイッチングすると正転、逆転はうまくいきます。 マイコンとICの間に何かはさむ必要があるのでしょうか? while(1){ if(RB1==0) { while(s_f==1){ /*動作内容*/ RB4=1; RB5=0; delay(2000); //2秒待つ PORTB=0; delay(2000); RB4=0; RB5=0; delay(2000); RB4=0; RB5=1; delay(2000); } } }

  • 【電気回路】リセットIC起動時の出力グリッジ対策

    オープンドレイン出力のリセットICについて、伺いたいことがあります。 リセットICのVDD電圧で、出力をプルアップして用いるのが一般的だと解釈しています。 検索して出てきたデータシートの8ページ目に丁度良い記述と図がありました。 http://www.rohm.co.jp/products/databook/voltage_ … 「電源投入時、VDDが動作限界電圧を越え、tPHL間の出力は不定です。」 VDDとプルアップ電圧が同系統の場合、リセットICが動作する電圧(動作限界電圧)までは、 プルアップ抵抗を介して、出力に立ち上がり途中のVDDの電圧が乗ってくる(=グリッチが発生する)ものと思われます。 今回、リセットICのつなぎ先のマイコンの電圧が低いため、このグリッチによって一時的にリセットが解除されないかと懸念しています。 電源投入から、リセット解除までは、リセットICの出力(=マイコンのリセット端子)ロー確定状態と しておきたいのですが・・・ この対策として、簡単なものは何でしょうか。 電気回路はまだまだ勉強中で、説明も分かりにくいところもあるかと思いますがご教授頂けたら幸いです。 出力端にプルダウンを入れておくのが良いのかなとは思いますが、どうもプルアップとプルダウンを同時にするのはどうなんだろうと思ってしまいます。

  • 一定時間たつと、リセットしたい

    C言語であるプログラムを作成中なんですが、一定時間たつとプログラムをリセットしてまた最初からプログラムを実行するような感じにしたいのですが、わからず困っています。 例えば、 if (100秒たったら) { 配列に入ってるデータなどをリセットして、 最初から実行。 } という感じにしたいと思ってます。要するに、プログラムを実行してから、時間を数え、100秒たったらまた1から実行しなおすという風にしたいと考えています。 そういう時間を数える関数などはあるのでしょうか? どなたかご教授おねがいします。

  • リセットラインのPCB設計について教えてください。

    リセットラインのPCB設計について教えてください。 会社の先輩設計者(といってもまだ20代半ばですが)から、マイコンのリセット端子と外付けリセットICを結ぶリセットラインはGNDでガードするように言われました。 外部からのノイズによってリセットラインが揺らされ、リセットがかからないようにする対策らしいですが、効果があるのかどうかはよくわからない、と言っておりました。 高周波の信号ラインはGNDガードや反対側の層をベタGNDにするというのは聞きますが、このようなリセットラインもGNDガードをしたり反対側の層をベタGNDにするのは外部からのノイズの影響を低減させる効果はあるのでしょうか?