Key words:ATMEL,AVR,Micro Controller,MPU,BASCOM-AVR,ATtiny2313,AT90S2313,Fusebits,Clock,Clock Divider

How to transfer from AT90S2313 to ATtiny2313.

AVR & BASCOM-AVR:Part Seven/ Let's Try ATtiny2313 with re-write fusebits.
巻・7:AT90S2313から新型のATtiny2313への乗換えかた

(Ver.1.0c : March 18th 2007+Ver.1.1 : May 17th 2007+Ver.1.2 : Sep. 26th 2007)

Counter

written by Takahiro Kato JA9TTT/JH1WBU, Saitama JAPAN

http://ja9ttt.homedns.org/hamf/myexp/Transfer_2313.html



このページの目的
新型のAVRマイコン、ATtiny2313をAT90S2313と同等に使う方法を説明します.


関連のページ
AVRマイコン入門と活用・応用編・実用編には、以下のページがあります.


はじめに:
AVRマイコン・ATtiny2313が秋月電子通商で安価に売っています.AT90S2313の互換品の位置付けですが、同じように使うためにはヒューズビットの書換えが必要です.ヒューズビットを書換えさえすれば、同じに使えるので具体的方法をまとめます.もちろん、ATtiny2313はATtiny2313らしく使うのがベストですが、旧型と互換にできれば、既存の回路設計やプログラムをそのまま活かすことができます.


何をすれば良いか:
見掛け上、AT90S2313と同等になるようにヒューズビットの書換えます.BASCOM-AVRでATtiny2313を使う上では、多くの場合それだけで十分動作します.ヒューズビット書き換えは少し面倒に感じますが、簡単な操作で@120円のATtiny2313が活かせます.ATtiny2313を使うにはBASCOM-AVRのバージョンに注意が必要です.これについてはあとで説明があります.

ATtiny2313に乗換えるメリット:
安価というメリット以外にもATtiny2313には多くのメリットがあります.幾つか例をあげれば・・

  1. クロックの周波数上限が2倍になった.・・・・・10MHz→20MHz
    計測上限周波数がクロック周波数に依存する周波数カウンタのようなアプリケーションには有利です.
  2. 簡単な応用には外付けクロック不要・・・・・内蔵クロックがある
    簡単な応用なら内蔵クロックを使えば部品数が削減できる.同時に、I/Oピンを2本増やせる.
    但し、内蔵発振器は自励発振なのであまり安定ではないが.
  3. AT90S2313にはなかった機能がある.・・・・PWM機能などがある.
    BASCOM-AVRにコマンドが用意されていれば簡単につかえる.
など・・・.


ご案内
左側の写真をクリックすると大きな写真を見られます.
大きな写真から戻るにはブラウザのバックボタンで戻って下さい.

ふたつの2313:
AVR_2313s.JPG 写真はAT90S2313とATtiny2313です.パッケージは同じ20ピンです.また、I/Oポート(入出力端子)の種類、ピン配置も同じになっています.内部のレジスタなども上位互換なので、AT90S2313用に書かれたプログラムが多くの場合そのまま動作します.しかし、ATtiny2313はAT90S2313を意識した設計にはなっていますが、かなりの機能拡張もあります.また、ATtiny2313は初期値では内蔵のクロックオシレータで動作するので、そのまま差し換えが可能な完全コンパチブルではありません.ヒューズビットを書換えてAT90S2313と同等に動作するようにするのが以下の作業です.


ヒューズビットの書換え方法:
AT90S2313同等にするためのヒューズビットの設定方法を説明します.
なお、ヒューズビットについてはATmega168のページでも扱っています.


ヒューズビット書換えの回路:
Fbits_RW.JPG ヒューズビットの書換えと聞くと、何か特別なものが必要なように感じます.しかし、特別な道具は不要です.AVRマイコンにプログラムを書込むときの道具(基板やケーブル)がそのまま使えます.図はATtiny2313を使う最低限の回路ですが、これに限らず、ISP(In System Programming)が可能な回路なら問題なく使えます.要は、プログラム書込みとおなじ方法です.なお、以下の説明はSTK-200/300互換のプログラマ(プログラム書込器)を想定しています.USB経由の書込器でヒューズビットを書き換える方法については、別途扱う予定です.


ヒューズビットの設定手順:
XTAL_CERALOCK_01.JPG 注意! 上図のように、必ず外付けのクリスタル(水晶振動子)をピン4とピン5の間に接続します.セラミック振動子(商品名:セラロック)も使えます.セラミック振動子には2端子型と3端子型があります.2端子型の場合は上図でOKです.3端子型はコンデンサC101とC102が不要です.両端の端子をピン4とピン5に接続し中央のピンはアースします.

作業手順:

1・接続方法
プログラムを書き込むときと同様にISP用ケーブルを接続します.パソコンにも接続します.ICソケットにATtiny2313を装着します.回路に電源を与えます.電源電圧は5Vが一般的です.なお、マイコン基板に三端子レギュレータが載っている場合は、8〜12V程度の電源電圧が必要です.要は普通にAVRマイコンが動作する状態にします.

2・BASCOM-AVRの起動
パソコンが起動していなければ、まずは起動します.続いてBASCOM-AVRを起動します.特別なことはせず、普通に起動します.


3・マニュアルプログラミング画面の呼び出し:

SC_2313_001A.JPG 左図のようにProgramアイコンにマウスのポインタ(矢印)を合わせ、左ボタンを押しながらスライドすると、「Manual Programming」が出てきますの、それを選択します.


注意!:マイコン回路が接続されていない、回路に電源が供給されていない、マイコンが装着されていないなどの場合はエラーになります.これは、BASCOM-AVRが実際に装着されているチップを見て確認をしているからです.もしエラーになったら接続を含めて再確認を!


4・ヒューズビット変更画面の表示:

SC_2313_002A.JPG
続いてFuse Bitsタブをクリックして左図の画面になるようにします.


5・ヒューズビットの選択と書き換え
2項目を変更します.外部クロックへの切り換えと、クロック分周器のオフを行います.

SC_2313_003A.JPG ●外部クロックの使用
図のように、Fusebit A987と言うタブをクリックすると種々の設定が現れます.
AT90S2313と同じように外付けの水晶発振で動作するように、図の「external XTAL 1111:1111」を選びます.


SC_2313_004A.JPG ●クロック分周器のオフ
続いてFusebit Cと言うタブをクリックします.
図のように、1:Divide clock by 8 Disableに変えます.


SC_2313_005A.JPG ●ヒューズビットの書込み
上記の2項目の選択が終わったら、図の書込みボタン:Write FBボタンを押します.
このボタンを押すことで、設定した結果がATtiny2313に書込まれます.変更した内容に書換えが終わると「Write FB」ボタンが薄い表示になります.あらためてヒューズビットの内容を変更すればふたたびボタンを押せる状態になります.

以上で書換えられました.文章では長ったらしい説明になりますが、作業そのものは簡単だったと思います.


トラブル・シューティング:
それほど難しい作業でもないので、トラブルもなくできると思いますが、もしうまく行かないときには、以下を確認します.

  1. 書込みケーブルの接続
    プログラムを書き込むためのケーブルと同じ物を使います.接続方法もプログラムを書き込むときとまったく同じで良いです.
  2. マイコンの確実な装着
    ソケットに確実に装着されているか、足の位置がずれていないか、向きは逆ではないかなど確認します.
  3. マイコンに電源が加わっているか.
    マイコン(マイコン回路)には通常の電源電圧を加えてあるか.一般的には電源電圧は5Vです.AVRマイコンはプログラムを書き込むときや、ヒューズビットを書き換えるときにも、特別な電圧を与える必要はありません.普通の電源電圧を加えておきます.
  4. 外付けの水晶(セラロック)に間違いはないか.
    プログラムの書き換え、ヒューズビットの書き換え、いずれの場合も、クロックがマイコンに与えられていなくてはなりません.
特に注意すべきは、内部発振器から外部水晶(または発振器)に切り換えるときです.ATtiny2313は、購入したままの初期状態では、内部発振器で動作しています.ヒューズビットの書き換えを行なって、外付けの水晶(セラロック)に切り換えたとき、もし水晶(セラロック)が発振しないとクロックが与えられないことになります.そうなると、内蔵発振器に戻すことは出来ません.そのような場合は応急に外部の発振器から5番ピン(XTAL 1)にクロックを与えます.ジャンクの水晶振動子(セラロック)には発振しにくいものもあるので、間違いないものを使うようにします.付けた水晶がダメそうなら交換してみるのも良いです.その場合の水晶は2MHz〜10MHzくらいが適当でしょう.その後、チップが応答する(フューズビットの画面が読出せるようになる)ようになれば再び書き換えできます。壊れた訳ではないので心配いりません.


まとめ:
ヒューズビットというものは何となくわかりにくいものですが、プログラムを書き込む操作と似た方法で出来るわけです.既に、AT90S2313でLEDチカチカなど作った実績があれば、そのプログラムを書き込んだ時と同じように接続すれば良いです.外付けの水晶(セラロック)に確実性が必要ですが、よほどのジャンク品でもなければ、普通そうしたトラブルも起きません.

なお、内部発振器から外付け水晶、あるいはその逆にしたり、外部の水晶発振器からクロックを与えるような設定にもできます.無限の回数とは言わぬまでも、ヒューズビットは常識的な回数なら何回でも書き換えできます.気の済むだけやってみましょう.

一つだけ、やってはいけないことがあります.それは、リセット端子を無効にする書き換えです.プログラムとヒューズビットを書込む時には、リセット端子を操作しています.もしこれを無効にしてしまうと、何も出来なくなります.万一やってしまったら、もうISPによる書換えは出来ないので、パラレルライタをお持ちのお方に助けてもらって下さい.君子危うきに近寄らず・・リセット端子を操作するヒューズビットにはご用心を.


BASCOM-AVRのバグについて:(最新版で解消しています)
現時点(2007年9月26日)における、BASCOM-AVRはVer.1.11.8.8が最新です.このバージョンは、その前のバージョン(Ver 1.11.8.5など)のバグが解消され、ATtiny2313も問題なく使えるようになりました.以前の、Ver.1.11.8.5(またはVer.1.11.8.3)はTimer割込みを使ったプログラムがATtiny2313で正常動作しません.従って、ATtiny2313を使うには古いVer.1.11.8.1(またはそれ以前)もしくは、Ver.1.11.8.7以降の最新版を使う必要があります.それさえ注意すれば、プログラムはどちらの2313でも動きます.最新版のBASCOM-AVR_デモ版は、MCS Electronics社のサイトからダウンロードできます.


エピローグ
ちょっと目新しい用語が登場すると、誰しも戸惑いを感じるものです.ヒューズビットもそうでした.しかし、ATtinyあるいはATmegaシリーズのAVRマイコンを使うには必須の知識です.ヒューズビットの書き換えによって実現できる機能は、上記以外にもたくさんあるのですが、単にAT90S2313と同等の動作を実現するためだけならシンプルです.必要になったら他のヒューズビットの機能もマニュアルにあたれば良いです.安価になったATtiny2313を積極的に使いたいものです.

どうしてもうまく行かないお方は掲示板やメールでご相談を.

関連のページにもどる


Back to Experiments Index

Back to Site Top


End / おわり

(c)2007 Takahiro KATO All rights are reserved.
Not for republication in any form without written permission.