トップ 新規 編集 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

AVRよくある質問(FAQ) デバイス編

最終更新時間:2010年09月05日 00時14分00秒

AVRについてのFAQ

 チップについての話題

AVRとは何の略ですか?

AVRマイコンチップは何処で買えますか?

 *秋月電子若松通商IPIcompass-labOptimizeDigi-Keyストロベリーリナックスマルツパーツ館共立エレショップ千石電商 (まとめて買うならDigi-Keyが安い)

(旬なチップのみ掲載)(2005/10/27現在)
間違ってたら直してください(苺ってのはストロベリーリナックスのこと)
CPU PACK AGE クロック 内蔵RC発振 Flash ROM ADC PWM Timer Digi Key 1個 Digi Key 25個 秋月 Opti mize 若松 コンパス
ATTiny13-20PI DIP8 20M 9.6M 1KByte 10bit-4ch 2ch 8bit*1 165 103 x 4個@200 x 270 x
ATTiny45-20PI DIP8 20M 8M 4Kbyte 10bit-4ch 4ch #1 8bit*2 問合せ 問合せ x 4個@275 x 280 x
ATTiny26L-8PI DIP20 8M 8M 2KByte 10bit-11ch 2ch #1 8bit*2 291 182 280 x x 310(Lなし) x
ATTiny2313-20PI DIP20 20M 8M 2KByte x 4ch 16bit*1 8bit*1 266 167 100 4個@275 x 300 x
ATMega8-16PI DIP28 16M 8M 8KByte 10bit-6ch 3ch 16bit*1 8bit*2 431 271 x x 945 470 400
ATMega8-16AI TQFP32 16M 8M 8KByte 10bit-8ch 3ch 16bit*1 8bit*2 418 x x x x x 380
ATMega48-20PI DIP28 20M 8M 4KByte 10bit-6ch 6ch 16bit*1 8bit*2 305 192 x 4個@375 x x 300
ATMega88-20PI DIP28 20M 8M 8KByte 10bit-6ch 6ch 16bit*1 8bit*2 439 276 x x x 500 400
ATMega168-20PI DIP28 20M 8M 16KByte 10bit-6ch 6ch 16bit*1 8bit*2 466 293 x 2個@500 x 530 500
ATMega16-16PI DIP40 16M 8M 16KByte 10bit-8ch 4ch 16bit*1 8bit*2 744 467 x x 1575 850 x
ATMega162-16PI DIP40 16M 8M 16KByte x 6ch 16bit-2 8bit*2 768 482 x x x 880 x
ATMega32-16PI DIP40 16M 8M 32KByte 10bit-8ch 4ch 16bit*1 8bit*2 939 590 x x 2520 1070 x
ATMega64-16AI TQFP64 16M 8M 64KByte 10bit-8ch 8ch 16bit*2 8bit*2 1392 875 650 x x 850 x
ATMega128-16AI TQFP64 16M 8M 128KByte 10bit-8ch 8ch 16bit*2 8bit*2 1707 1072 850 x x 1980 1000
AT90S 2313 #2 DIP20 10M なし 2KByte x 1ch 16bitx1 8bitx1 444 - 150 x x 200 x

  • #1 64MHz-PLL駆動PWMあり
  • #2 安いのでAT90S2313も書いておきました。旧品番で、今後安定供給は望めません
  • Clock値は最大Clock(内蔵の最大クロックは固定の物もある)
  • ATTiny26には16M品のATTiny26-20PIもある(秋月は26Lのみ)
  • 26Lも問題なく16Mで動くという話があるようなないような・・とにかく無保証。
  • 品番末尾の「PI」は「DIP、工業用(-40度〜85度)」を示す。PCは「DIP,一般用(0度〜70度)」を示す。実際には値段はあまり変わらないみたいなので、選べるならPCよりもPIの方が良い。
  • Digi-KeyでAT90S2313は非在庫保有品に変更になりました
  • ATTiny13/45は8PINを有効に使おうとすると内蔵発振となる。それならATTiny13V/45Vのほうが選択としてはベスト。
送料関係
その他
  • ストロベリーリナックスの一部(mega8-TQFP)は「特注製品の余剰部品を頒布いたします」と書いてあるので注意。継続販売するのかどうかが、ちょっと気になる。それ以外は大丈夫なのかな?
  • RSコンポーネンツでも取り扱いを始めた模様。(送料1000円。在庫があれば18時までの注文なら翌日配達。)
  • chip1stopでも見積/注文できるみたいだが、値段不明。
通販価格調べ
  • 在庫のマークの意味は店舗によって違います。各店舗のサイトを参照してください。
  • デジキー・チップワンストップ・RSコンポーネンツは各種大量にあるが、少数買いするには高いです。

秋月電子通商 (2010年6月)
CPU 価格 在庫
AT90S2323-10PC 380 A
AT90S2313-10PC 150 A
AT90S1200-12PC - -
AT90S1200A-12PC - -
AT90S8535-8 700 A
ATtiny13A-PU 120 AA
ATtiny2313-20PU 100 AA
ATtiny2313V-10PU 100 AA
ATmega8-16PU 200 AA
ATmega88P-20PU 230 AAA
ATmega88V-10PU 220 AAA
ATmega168P-20PU 230 AA
ATmega328P-PU 250 AA
ATmega164P-20PU 400 AA
ATmega644P-20PU 500 AA
ATmega64-16AU 550 AA
ATmega64L-8AU 650 AA
ATmega128-16AU 850 AA

Optimize (2010年6月)
CPU 価格 個数 単価
ATtiny13-20PI 800 4 200
ATtiny13V-10PI 800 4 200
ATtiny45-20PI 1100 4 275
ATtiny2313-20PI 400 4 100
ATmega48-20PI 900 4 225
ATmega168-20PI 1000 2 500

若松通商 (2010年6月)
CPU 価格 在庫
AT90S1200-12PC - -
AT90S4414-8PI 945
AT90S4433-8PC 945
AT90S4434-8PC 945 100
AT90S8515-8PC 1890
AT90S2313-10SC 740
ATtiny2313-20SV 740
ATmega8515L-8PI 1365
ATmega8535-16PU 1260 30
ATmega32-16PC 2520
ATmega8-16PC 945
ATmega16-16PC 1575 25

compass-lab (2010年6月)
CPU 価格 在庫
ATtiny13-20PI 270
ATtiny45-20PU 280
ATtiny26-16PI 310
ATtiny2313-20PI 300
ATmega8-16PI 470
ATmega88V-10PI 500
ATmega88-20PI 500
ATmega168-20PI 530
ATmega8515L-8PC 690
ATmega8515-16PI 690
ATmega162V-8PI 880
ATmega162-16PI 880
ATmega8535L-8PI 740
ATmega8535-16PI 740
ATmega16L-8PI 850
ATmega16-16PI 850
ATmega32-16PU 1070
ATmega128L-8AI 1980
ATmega128-16AC 1980

ストロベリーリナックス (2010年6月)
CPU 価格 在庫
ATmega48-20PI 300
ATmega8-16PI - -
ATmega8L-8AI 380
ATmega168-20PI 500
ATmega88-20PU 400
ATmega128-16AI - -

共立エレショップ (2010年6月)
CPU 価格
AT90S1200-12PC 399
ATtiny12-8PU 231
ATtiny26-16PU 420
ATtiny45V-10PU 340
ATtiny2313-20PU 380
ATmega8-16PU 500
ATmega48-20PU 500
ATmega88-20PU -
ATmega163-8PC 1800
ATmega168-20PU 480
ATmega8515-16PU 700
ATmega8535-16PI 1200
ATmega128-16AU 850
ATXmega128A1-AU 1800
ATXmega64A1-AU 1600
ATXmega64A3-AU 1600
ATXmega16A4-AU 1000
ATtiny13V-10PU 180
ATtiny13-20PU 180
ATtiny25V-10PU 260
ATtiny45V-10PU 340
ATtiny85-20PU 450

マルツパーツ館 (2010年7月)
CPU 価格
ATmega128-16AU 1764
ATmega162-16PU 1008
ATmega168-20PU 525
ATmega32-16PU 1312
ATmega324P-20PU 1480
ATmega48-20PU 315
ATmega64L-8AU 819
ATmega8-16PU 399
ATmega8535-16PU 740
ATtiny2313-20PU 367
ATtiny2313-20SU 367
ATtiny24-20PU 346
ATtiny25-20PU 346
ATtiny26-16PU 420
ATtiny44-20PU 388
ATtiny45-20PU 346
ATtiny461-20PU 430
ATtiny85-20PU 472

 AVRで遊びはじめるにあたって

ライターとして利用できる市販品・市販キットにはどんなのがありますか?(2010/02現在)

純正品
  • ATMEL純正AVR-ISP mkII AVR ISP In-System Programmer(USB接続)
  • ATMEL純正AVR-ISP AVR ISP In-System Programmer(COMポート)
  • ATMEL純正STK500。パラレルライタ機能があり、ISPライタにはできないヒューズビットの書き換えが可能。
USB接続型AVRライター
COM接続、ダイレクトIOタイプ
USBシリアル使うときわめて低速もしくは動作不可
  • Olimex製のAVR-PG1Bは安い。Olimexだと$9.95。Olimexから買うのがアレなら、SparkfunとかSolitonWaveで買える模様。COMポート接続でSI-Prog互換(USBシリアル変換は×かな?)、ライターソフトはPonyProgが対応しています。
  • Strawberry-Linux:ChaN氏のavrsp互換ライター。
COM接続、STK500/AVRISPプロトコルタイプ
USBシリアルでもOK
  • ATMEL純正AVR-ISP AVR ISP In-System Programmer(COMポート)
  • ATMEL純正STK500。パラレルライタ機能があり、ISPライタにはできないヒューズビットの書き換えが可能。
COM接続、AN910互換
新しいデバイスへの対応に不安あり

プログラマ(=ライター、書き込み器)を自作したいのですけど、参考になるサイトありますか?

  • 一部のライターはAVRを用いていますので、他のライターがないと制作できません。ATMEL純正AVRISP/STK500互換ライター、AVR910互換ライター、USBasp、ELM-SER2SPIライターがそれに該当します。
  • これから新規に作成する人は AVR910互換ライターはやめておいたほうが良いです

USBしかないノートパソコンを使っていますがどうすれば?

USB直結ライター
USBシリアルでも使えるCOMポート接続ライター
ライター自体にAVRを使用しているものが多いので、制作に別の手段を要する。
  • AVR910互換ライター
  • ATMEL純正のAVRISP及びその互換品
  • ATMEL純正のSTK500及びその互換品
  • chan氏のUSBブリッジ
  • その他、COMポートを純粋にデータ転送に使っているタイプのライター
COMポートダイレクトIOタイプ

I-Progやchan氏のavrspCOMポートライター(USB-SPIブリッジでない方)などのポート直接制御タイプのものは、USBシリアル変換に接続して使用すると動かないまたはきわめて遅く不安定です。とりあえずUSB-SPIブリッジやUSBasp制作のためのライターとして考えてください。avrsp.exeを使用する場合は-dオプションで大きめの値を指定してください(最大65535)パラレル(プリンタ)ポート使用のライターはUSB/パラレル変換ケーブルではうまく動作しない(全滅?)。

  • chan氏のCOMポートライター+avrsp
  • USBシリアル変換IC(Logic出力)+インバータIC(74HC04など)+avrsp.exe

この接続はUSBシリアル変換アダプタにかなり依存します。

USBシリアル変換+ChaN氏のCOMポートライター+avrspによる書き込み状況

  • CP2101:動作不可(BREAK操作不可のため)
  • CP2102:あまりに低速(0.24bytes/sec,256バイトに18分)、不安定動作。ただしソフトウェアの工夫で改善可能。avrsp改で読み出し1.8Bytes/sec,書き込み4.6Bytes/sec
  • FT232BM、I/OデータのUSB-RSAQ2:書き込みのみで約1Bytes/secらしい
  • 秋月のUSBシリアルケーブル+avrsp改で書き込み50bytes/sec,読み出し25bytes/secはいける
AVR910の制限事項
  • AVR910オリジナルファームでは最新のCPUに対応できませんのでAtmel純正のAVR-ISPにUSBシリアル変換ケーブルつなぐのが現段階の解かな?
    • Atmel純正AVR-ISPとはATAVRISPのことです
    • 他にもAVRISPという名のプログラマが色々出ていますが互換性がありませんので注意が必要です。
  • AVR910は新規デバイス追加が容易なAVRDUDEと併用すれば、他のデバイスのデバイスコードを拝借することで最新デバイスでも書き込みは可能ですが、avr910インタフェースは上位ヒューズ、拡張ヒューズの読み書き、キャリブレーションバイトの読み書きに対応していませんのでまあ実質的に最新のAVRチップに対しては使用困難です。
  • 新規の作成にはAVR910互換ライターはやめましょう

USBしかないPCのみの環境でライターを自作できますか?

  • EZUSBなどUSB経由でファームウェアを書き込めるマイコンでライターを作る
  • H8などUART経由でファームウェアを書き込めるマイコンでライターを作る
  • 以下の手段でusb-spiブリッジやUSBasp用のAVRを書き込む
    • USB-RS232C変換ケーブル+ChaN氏のCOMポートライター+avrsp.exe
    • [USBシリアル-AVR直結+avrsp.exe改
    • TAD氏のWAV式、RS式ライター
    • 誰かに焼いてもらう、COM/LPTポートを持つPCを借りてくる、その他
  • FTDI BitBang AVR-Writer 秋月USBシリアル変換モジュールだけで作るAVRライタ

ATmega88等の新しいCPUに書き込みたいのですが・・・

ATmega48/88/168やATtiny13等の新しいCPUにはAVR910互換ライタでは書き込むことができません。

  • これはファーム・ライター両方で共通のMPU番号を振らなければいけないことに起因しています。互換性のない多数のAVR910が乱立しそうなこと+他にいい方式が出たことで誰も手を出さない?
AVR910系の状況:
  • ATmega8/ATtiny26等はオリジナルファームのAVR910では書けませんが以下の互換ファームでサポートされます。
  • ATtiny2313も上記の互換ファームでサポートされます。
    • この場合PC用のソフトも対応したものをお使いください(AVRDUDE等)
    • これはATtiny2313以後はAVR910用デバイスコードがavrprog(avrstudio)で存在しないため、avrdudeが提案したコードを使っていることによります。
AVRISP/STK500系の状況:
その他の状況:

Windowsマシンがないのですが・・・

  • DOSについてはChan氏のavrss.exeなどが対応
  • UNIX系なら書き込みソフトがいくつかあります。AVRDUDEやuisp等。
  • [MacでもOSXならやってる人はいる模様。
  • その他、ググって見たらワンダーウィッチとかHP200LXとか・・・

PC側の書き込みソフトウェアは何を用意すればいいですか?

書き込みソフト 対応ライター
AVRStudio内蔵AVR-Prog STK500、AVRISP、JTAG
AVRStudio同梱STK500.EXE STK500、AVRISP
PonyProg SI-Prog互換、STK200互換
yaap STK200互換、Jesperオリジナル5線抵抗接続 Altera/JTAG互換
AVRDUDE avr910、avrisp、STK200、STK500その他多数
ELM 専用ライター4種
ELM-avrss改 EZ-USB
uisp avr910、EZ-USB?その他
  • yaapをNT系Windowsで動かすにはDLPORTIOというドライバーが必要です。
  • AVRDUDEをNT系Windowsで動かすにはGIVEIOというドライバーが必要です。
  • ELMさんとこのライターをNT系Windowsで動かすにはGIVEIOというドライバーが必要です。(Win32APIモード時、USBブリッジ使用時は不要)

データシート、アプリケーションノート、その他の情報はどこで手に入りますか

英語文書情報
結構宝の山。がんばって覗いてみよう
日本語文書情報

その他お勉強になるサイトなどを紹介してください。

ためになる個人・団体サイト

[日本語サイト]

[英語サイト]

ためになる動画サイト

開発ソフトは何を用意すればいいですか?

とりあえずいじってみるのにおすすめのキットはありますか?

持っている人よろしく。

  • AVR Butterfly
    • あちこちで販売しているが、www.avrfreaks.netでも(変な?)ロゴ入りTシャツとセットで送料込み35ドルで売っている。ISP/JTAG経由プログラミングに加えて、bootloaderによるプログラミングができる。AVRFreaksのAVR Butterflyのページにはgccで書いたアプリケーションもある。Menu構築、Sleepの活用、ADCの使い方、文字入力方法、ブートローダーの構築の勉強になる。
  • AVR STK500
    • ビギナーからベテランまで使えるATMEL標準のプラットホーム。AVR STUDIOが完全サポートする。ヒューズビット書き換えなど高電圧パラレルプログラミングはこれがないと。。値段以上の価値あり。
  • Sparkfun
    • ここでOlimexの安価な製品(ボード、ライター($12)、JTAGICE($45)等が入手できる。カード使用可。但し送料が$25ほどするので、まとめ買い推奨。
  • Dontronics / Compass Lab.
  • TiniAVR

AVR FAQ

AVcc/Arefピンの処理

  • VCCとGNDを繋いだだけでは動きません。ADコンバータ使わなくてもArefとAVccはVccに繋ぎましょう。
    • (と書いてから気がついたんだが、ArefはGNDにつないでも大丈夫?まぁ将来使うかもしれないので、ArefはVccに繋いでおいたほうがいいと思うんだが。)
    • ArefはVccやGNDに繋ぐべきでない。ArefとGND間に0.1uF位のコンデンサをいれるだけにすべきだと思う。AVccに繋いだArefを基準電圧にするくらいなら、AVccを基準にしてArefにノイズ低減をまかせるべきだし、内部レファレンスを使う時にArefにAVcc繋いだままにするとショートしてしまう。
  • デバイスによってもArefの内部回路が異なります。
    • AT90S8535の場合は内蔵リファレンスがないのでArefに外部から基準電圧が必要です。
    • ATmega8535/ATmega8等は上記に書いてあるように外部に電圧を加えると設定によっては短絡の危険性があると記述があります。
    • ATtiny26は切り離し回路が存在するので他のCPUとはまた異なります。
    • ATtiny25/45/85はより細かな設定が可能です。
  • ADを使用しないときのArefピンの処置はどれがいいの?
    • AT90S8535は内蔵リファレンスがないのでAVccに接続
    • ATtiny26/ATtiny25はリセット時にArefが切り離され内部のVrefはAVccが接続されているのでオープンでも問題ない?
    • ATmega8等はリセット時にArefが内部のVrefと接続された状態です(外部基準電圧モード)。これはコンデンサ接続しているだけで良い?プルアップもしたほうが良い?あるいは使用しなくてもコンデンサをつけてかつ基準電圧をAVccか内蔵リファレンスに接続するようにプログラムしたほうが良い?
  • デバイスによって内部回路が異なっているようですので設計の時には今一度データシートで確認したほうがよさそうです。
  • 結局、AVccはVccにつなげ(精度の高いADCが必要ならデータシートにしたがってインダクタなども挿入)、Aref〜GND間に0.1uFをつなぐ、ADC基準電圧を外部基準電圧又はAVcc基準するときだけArefを外部電圧源又はAVccにつなぐ、ってことでいいのかな?。AVccにつなぐときは内部基準設定しない。不安なら10kくらいを介してつなぐってことでどうだろ?
  • AvrFreaksでの同じ話題

消費電流が予想より大きい

  • 不要な装置をONにしていないか?たいていのAVRではアナログコンパレータ機構をオフにするレジスタ設定があります。mega88などではその他UARTなどのうち使っていない装置をオフにすることができます。
  • 浮いたままの入力ピンがないか。何もつながれず、入力にされてプルアップされていないピンがある場合、入力電圧がふらついて閾値付近をさまよい消費電力を増やしてしまうことがある模様。未使用ピンはプルアップ入力または出力で。

なんか知らんけど動かん

  • オシレータ指定のヒューズビットはあってますか?
    • 外付けオシレータつけても、ヒューズビットが内蔵オシレータ指定なら内蔵オシレータで動きます。
    • たとえ内蔵オシレータ指定にしたい場合でも、初期値が外部発振子指定なら、外部発振子つけないと書き込みできません。
  • アセンブラ使いの方へ
    • スタックポインタをセットするのを忘れてない?
  • WinAVR使いの方へ
    • makefileのCPU種別指定はあってます?
  • Resetをオープンにしてませんか?
    • 理論上は「オープンでも、内部プルアップが働くので構わない」ですが、ちゃんと抵抗(10kΩ以上)でプルアップしたほうが安定するようです。
      • Resetピンがプルアップされている、という根拠は、チップのドキュメントの「DC特性」のところに「RESETピンプルアップ抵抗=30〜60kΩ」とか書いてる事によります)
      • (「10kΩ以上にする」というのは、AVRISPユーザガイド(AVRISP.CHM)での推奨値です。この抵抗が低すぎると、ISPに障害がある、と書いてあります)
      • ATTiny11/12では、「Resetピンのプルアップ抵抗」の記述がないので、多分、外部でプルアップしてあげないと、動作しない予感。(要確認)

FLASHに書き込めない。

他のAVRには書き込めるのでライタの故障とは思えない・・・ってな場合

ファームが古い
AVR910形式ライタ(COMポート経由で、コントロールにAVRなどマイコンを使うもの)は、ファームウェアが対応していないと書き込めない場合があります。新しいファームを捜して書き込もう。

買ってきた石のヒューズビット設定がおかしい場合

RESETピンが無効だったり、書き込み禁止だったり・・・etc。STK500のようなパラレルライタじゃないと使用できない場合もあります。RESETピンが無効設定ならISPプログラマは無力ですわな。

極端にクロック周波数が遅い
  • シリアルプログラミングの場合、クロック周波数の1/4〜1/6以下のSCKクロックを用いてプログラムする必要があります。低速の水晶発振子がつながっている場合の他、CKDIV8(1/8分周指定のヒューズビット)がセットされている場合などに問題が生じます。
  • ライター・ライターソフトに書き込みクロックを下げる設定があればそれを使用しましょう。
  • ELM氏のavpsp.exeの場合は-dオプションです。デフォルトの-d3で6μsec周期=200kHz程度まで対応しますが、それ以下の場合は値を増やす必要があります。(500kHz/システムクロック) の2倍程度でOK。32768Hz水晶なら15.25なので30程度指定。
クロックがない
  • 内蔵発振でやっているつもりで、実はヒューズビットは外部発振の設定の場合
  • 外部発振子はつないでいるが、ヒューズビットがそれに合致しない設定の場合

クロックが上手く供給されずプログラミングもできない可能性があります。まずは発振子をつなぐ、他の発振子(32768Hz水晶、数MHz水晶、数MHzセラロック等々)をつないでみる。

AT90S8535のTOSC1/TOSC2に32768Hzクリスタルをつけたんだけど、RTCとして使えない

某掲示板過去ログから。

エラッタにこんなことが書いてあるんだが.. 
>タイマ/カウンタ2のクロックに32.768kHz外部発振器を使用する場合 
>VCCが4.0V以上では正しいカウントを行いません。 

4V以上でしか動かないAT90S8535(LSではない)では動作が保証される環境がない。

EEPROMが化ける

  • 電源不安定、BOD(ブラウンアウト)対策してない→内蔵BODリセットを有効、またはリセットICなどをつける