• ベストアンサー

ATTINY13のリセット端子は無効にできるか?

ATTINY13マイコンをAtmel Studio6.2でプログラミングしています。8ピンのマイコンなので、リセット端子でもある1番ピンを入力ピンとして使用したいと思っています。DDRレジスタでPB0端子を入力端子に設定して、この端子にスイッチをつけたのですが、スイッチONでLOWレベルにすると、マイコンの動作が止まってしまいます。 現在リアルタイムデバッガ機能は使用していないのですが、RESETが有効で動作しているのではないかと思われるのですが、RESET機能を無効にすることは可能でしょうか? どうぞ、ご教示頂きますよう、よろしくお願い致します。

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

  • ベストアンサー
  • neorg
  • ベストアンサー率54% (235/433)
回答No.1

http://homepage3.nifty.com/ARTWEB/avr1.htm のATTINY13/ATTINY13A(8ピンAVR)を使ってみる http://www.avr.jp/user/ds.htm のtiny13.pdf (2.46MB)の 33ページあたりの入出力ポート 24ページからのリセット が参考になるとおもいます

techhouse
質問者

お礼

回答頂きありがとうございます。ヒューズビットで解決できることを確認しました。

その他の回答 (2)

  • kabasan
  • ベストアンサー率44% (264/588)
回答No.3

リセットピンをIOとして使うのはヒューズ設定で切替。 NO1さんの示してくれたデータシート内で「RESET」を検索しましょう。 この場合リセットピンがなくなるので、一度書き込むとISP(イン・システム・プログラミング) が出来なくなるため、JTAGICE3では書き換えできなくなります。 覚悟の上でどうぞ。 ちなみに書き換え方法は「高電圧パラレルプログラミング」あたりで検索すると見つかります。

techhouse
質問者

お礼

回答頂きありがとうございます。ヒューズビットで解決できることを確認しました。なぜ、RESET端子機能を無効にするとISPができなくなるのかも理解できました。助かります。

  • koujikuu
  • ベストアンサー率43% (428/992)
回答No.2

ヒューズビット RSTDISBL を書き換えれば可能ですが、ISPライタでは以後プログラムの書き換えが出来なくなります、 (初期状態に戻すのには高電圧パラレルライタが必要) 参考)Page.6 RSTDISBL 参照 http://www.mcm.co.jp/avr/files01/ISP-01-20080609.pdf

techhouse
質問者

お礼

回答頂きありがとうございます。ヒューズビットで解決できることを確認しました。

関連するQ&A

  • アトメル社製ATtiny2313マイコンのINT0端子、INT1端子の割り込みに優先順位は設定できる?

    ATtiny2313で割り込み端子入力2つを使用してINT0が入力されたら赤LEDを点灯させて、INT1端子が入力されたら黄LEDを点灯させて、どちらの入力もなかったらパワーダウンモードでマイコンの消費電流を最小限まで落とすというプログラムを作って動作させています。 だいたい割り込みのプログラムはできたのですが、INT0とINT1端子がどちらとも入力されていた場合INT0を優先して、割り込み1ベクタルーチンに飛ぶようにしたいのですが、今のプログラムは先に入った方の入力が優先されるようで、後から入ってきた割り込み端子入力は全く無視するようなプログラムになっているようです。 ATtiny2313のデータシートでINT0端子に優先的な割り込み許可を与えるレジスタ設定などがあるのかなと探しているのですが、よくわからない状態です。 現在のプログラムの動きを試験しているテスト基板の画像をyoutubeで動画にして投稿しました。 どなたかご存知のかたいらっしゃいましたらご教授よろしくお願い致します。

  • ATtiny2313のヒューズビットOSCCAL

    ATtiny2313マイコンを使用しています。内蔵OSCの8MHzを動作で使用しているのですが、このOSCの微調整をすることができないかを調べています。OSCCALというヒューズビットの設定で微調整ができるようですが、これはAtmel Studioのプログラマソフトで変更できますでしょうか? どうぞ、ご教授頂き増すようお願い致します。

  • ATmega88の出力端子はオープンドレイン?

    ATMEL社製のATmega88マイコンを使おうと思っているのですが、端子ポートはオープンドレイン出力として使用できますでしょうか? どうぞご教授よろしくお願い致します。

  • atmegaxマイコンのPDI端子

    現在Atmel Studio6.2 + JTAGICE3でプログラミングを行っています。ATxmega64Aマイコンを使用してプログラミングを行っていこうと思っているのですが、ファームウェアの書き込みやデバッグなどを今まで使用していたATmega88マイコンなどではmiso,mosi端子などを使用して行っていましたが、ATxmega64AマイコンにはPDI,PDO端子というのが設けられていますが、 この端子だけでJTAGICE3でのファームウェアの書き込みやデバッグは可能でしょうか? miso,mosiの端子は書き込みやデバッグでは必要なくなり、SPI通信専用端子として使用できるようことでしょうか? どうぞ、ご教示頂きますよう、よろしくお願い致します。

  • ATtiny2313でsleep_mode()関数でパワーダウンモード機能はステートマシンでは使えない?

    C言語プログラミングでアトメル社製ATtiny2313マイコンでプログラミングをやってます。 ATtiny2313のパワーダウンモード機能を使って割り込み入力端子、INT0、INT1端子を使って、入力の組み合わせでLEDを数パターンの点滅させるステートを作り、入力がない場合は、パワーダウンモードのステートで消費電流を節約するようにし、次の割り込みを待つようなプログラムを作っています。 ただ、パワーダウンモードのステートに入って、きっかけである”sleep_mode();”関数を使うと、割り込み入力でウェイクアップさせようとしてもLEDの点灯ステートに行っていないようで、完全にマイコンが動作停止してしまいます。 この時の状態をyoutubeに動画投稿しましたので参照をお願いします。 現在このプログラムは https://sourceforge.jp/projects/midicv/svn/view/trunk/LED_FLASHER/?root=midicv このサイトで”Download GNU tarball”をクリックでダウンロードできるようになっております。 この問題の原因がわかるかたいらっしゃいましたら是非ご教授よろしくお願い致します。 ちなみに、このプログラムファイル”LED_FLASHER.c”の224行目のsleep_mode();関数をコメントアウトすると、このステートマシンはちゃんと動作できていることを確認しております。こちらも動画で掲載しております。

  • AVR ATtiny2313のアセンブラプログラム

    ATtiny2313をATMELスタジオ7.0でプログラムしようとしています。 今まではいわゆる1本プログラム(簡単なサブルーチンも使って)で組んでいましたが、 今回は欲を出して割り込みも使ってみたいと思っています。 PORTBを入力下位4Bitと出力上位4Bitで入力はプルアップに設定した後 LDI  R16,0X0F OUT  PORTB,R16 LDI  R16,0xF0 OUT  DDRB,R16 入力状態で出力を決めるプログラムですが、PB0~PB3の全パターンが全て必要なわけではなく、 PB3が1の場合はPB0~2は必要ない、以下PB2が1の場合PB0~1は必要ない的な場合とかが有ります。   IN  R17、PINB 双方向(InOut混在の場合出力(PB4~7)の状態によってR17はどう変化するのか? R17は0b0000XXXXになるのか、0B1111XXXXなのか0BYYYYXXXX ;YはOutの状況1か0 それとも出力状態は反映されないのかその場合は0なのか1なのか、(Xは入力状態部分) 例えばCPで4Bitの全部を比較すれば答えは出ると思うのですが、不要な分が多くて困ります。 SBICとかSBISがうまく使えそうなのですが、良く理解できません。 出来たら数値は統一し、0XZZ(8BitのヘキサでZZが00~FFの範囲なのかなまた、4ビット表記では?どうなるの?) もうひとつが、出力1をした後5秒以内に入力0が0から1にならなかった場合はサブルーチンで処理する的な事です。 今回その5秒の間に他の処理を考えています。 5秒の監視をウォッチドッグタイマーに任せて割り込み処理にしたいと思っていますが、 これに関して100%勉強不足で理解が出来ません。 例えば入力(Bit 0)でタイマーが開始それにより出力(Bit7)がOnした後5秒しても 入力(Bit1)が変更(0の場合と1の場合両方によって)されなかった場合に 出力(bIT6)をONするには?? ご教授 御願い申しあげます。  <(_ _)>

  • アトメルマイコンATtiny2313のパワーダウンモードに設定しても200uAも電流消費する。

    現在、アキバで買ってきたアトメルのマイコンATtiny2313で、割り込みが入った場合、一定時間を測って、それが終了したら自ら電源消費を抑えるためにマイコンの機能の”パワーダウンモード”に入って、次の割り込みが入るまで待つといったようなプログラミングをしています。 ATtiny2313には内部RC発振器があるので、水晶発振子部品を付けて動作させるのではなく、内部RC発振器で128kHzに設定して動作させています。 http://reef.path.ne.jp/~hero/pdf/tiny2313.pdf ATtiny2313のデータシートの122ページ目にはRC発振器を128kHzで使った場合は供給電圧が3Vの時には、だいたい20uAくらいというグラフになっているのですが、実際動作させてみると200uAくらい食っています。また、パワーダウンモードに移行させてみても、マイコンは200uAを常に食っている感じになってしまいました。 パワーダウンモードになれば電流消費が10uA以下になると考えていた私としてはちょっと電流の取りすぎと思っているのですが、やはりこれくらいの電流消費量になってしまうのでしょうか。 ご存知の方いらっしゃいましたら是非ご教授よろしくお願い致します。

  • xmega128のPB4-7端子をIO出力できない

    現在ATxmega128A1Uマイコンを使用して、プログラミングを行っています。 PBポート0~7をIO出力設定にして、H→L を繰り返すテストプログラムを作成してみました。 PBポート0~3はH→Lできたのですが、4~7がその動作をしません。 現在この動作の確認はJTAGICE3でデバッグモードでプログラムステップさせながら見ています。このPBポート4~7はJTAG端子としても兼用されているとデータシートには書いてありましたが、このことが動作しない原因となにか関係ありますでしょうか? どうぞ、ご教示頂きますよう、よろしくお願い致します。

  • AVR マイコンプログラミングについて

    atmega168pを用いてavrマイコンプログラミングをしています。 ad変換をマイコンの機能を使って行おうと思いプログラムを書いていたのですが、 DIDR0というデジタル入力禁止レジスタというものがどういう効果を持つのかがわかりません。 mega88pというatmega168pのPDFの163ページに解説があったのですが、いまいちなんのことなのかわかりません。このレジスタをHigh、またはLowにすることでどのような効果が生まれるのかを教えて下さい。

  • 組み込みマイコンでのソフトウェアによるリセット

    組み込み用マイコン向けのファームウェアをC言語で 書いています. ここで, ソフトウェア側からマイコンにリセットをかけ るにはどのような方法があるでしょうか? ※マイコン自体には内部的なハードウェアリセットを行 う機能は無いものとします. 素人考えで思いつく限りだと: ・リセットを行う場所の関数からmainまですべて戻る 経路を作っておく. main (または, mainを呼び出すスタートアップルーチ ンの部分)をループにしておき, その始めで内蔵周辺 機能のレジスタやstatic領域のメモリをすべて初期化 するようなコードを ひたすらハードコーディングしておく. (※static領域のメモリ初期化はどのみち行うからよ いとして, 内蔵周辺機能のレジスタをひたすら初期化 するのが面倒に思われます) ・ウォッチドッグタイマ機能があれば, わざとカウン タをオーバーフローさせてハードウェアリセットをか ける. ・外部リセット端子に何らかの形で出力ポートを 接続しておいて, 自分でハードウェアリセットをかける. 上記のものでもやればそれなりに動作しそうな気は しますが, どういう方法が一般的なのか知らないため どうしてよいか悩んでいます. どのようにリセットを行うのがスマートであるか ご教示いただけませんでしょうか?