2010年2月20日土曜日

【AVR】28pin AVRマイコン

これからはATmegaシリーズ
 AVRマイコンもずいぶんポピュラーになっています。このBlogでも40pinのAVRマイコンを扱ったことがあります。実際にはもっとコンパクトな28pinや20pinのチップの方に人気があるようです。

 AVRマイコンも高機能化の方向へ進化しています。一時はコンパクトな機能のTinyシリーズと、充実した機能のMegaシリーズで住み分ける方向だったようでした。 しかし全般に安価になったお陰で絶対的な価格差は縮小してしまい、新しく始めるならMegaシーズがだんぜんお薦めと言えそうなのです。 もはや少々安価と言うだけではATtinyシリーズの影は薄くなってしまったように思います。

 写真はずいぶん前にDigi-Keyから纏めて購入したATmega168(フラッシュメモリ:16k Byte)です。数名で纏め買いして@¥350-くらいでした。かなりお買い得だったのですが、それが今では秋月電子通商で単品買いでも¥200-です。 こうしたチップを使わないのは何だか損した気分にさえなります。BASCOM-AVRならチップの乗換もごく簡単なのですから。

 機能の詳細はデータブックを見てもらうとして、一口で言えば以前紹介した40pinのAVRとはポート数の違いくらいしかありません。ほとんど同じ機能が内蔵されています。 Timer/CounterやA/D ConverterのほかUARTはもちろん、I2C Interfaceもあっておおよそあらゆる用途に使うことが出来るChipでしょう。 かつて安価だったATtiny2313は今では@¥230-に価格上昇しており、特別な理由でもない限り購入する意味はありません。 これから買うならATmega8/48/88/168/328の28pin Megaシリーズが一番のお薦めです。 フラッシュメモリが32k Byteもあるシリーズ最上位のATmega328でさえも@¥250-なのだから!

参考:最近のフラッシュメモリ・マイコンではオンチップ・メモリ容量:64kB、128kB、256kB・・など珍しくもありませんが・・・。

28pin AVR テストボード
 AVRマイコン遊びは、ISP端子+LED+リセットスイッチくらいの、ごく簡単な回路からでも始められます。 それでも、初めから本格的なテストボードを作っておきたいと言う人も多いようです。こんなテストボードは如何でしょうか?

 この28pin AVRテストボードは上記の28pin Megaシーズに共通して使えます。 外付け水晶発振子を使う回路になっています。 しかしこのシリーズのAVRマイコンは初期状態で内蔵の1MHzクロック(自励発振器だが)で動作するから必ずしも水晶は必要としません。

 詳細は他のBlogページにあるので、省略しますが外付け水晶発振子を有効にするには「ヒューズビット」を書き換えます。それで外部クロックや水晶発振子が有効になります。クロック周波数によって処理能力や消費電流も大きく変わるので目的・用途によって選択すべきでしょう。

 ISP端子は、かつて一般的だった10pinタイプで書いてありますが、これから作るなら7pinのシングルインライン型(一列型)が良いでしょう。 詳しくは40pin AVRマイコンのページにあるので参照して下さい。 そのほかテストボードとしての機能は40pin 用ボードと同等になっています。

 キャラクタタイプのLCD表示モジュールを搭載していますが、最近は新種がたくさん登場しています。多くの新型LCD表示モジュールに互換性があってピン番号を合わせればそのまま使えるのですが、電源の接続だけが図とは異なっていることがあります。

 秋月電子通商でだいぶ前から売っていて、JAでは最もポピュラーなLCDモジュールにあわせて回路図は書いてあります。 しかしこのLCDモジュールは他の多くのモジュールとは電源(Vcc)とGNDの端子配置が逆なのです。 念のため自身が使用するモジュールに付属の説明書を良く確認し電圧を逆に加えて壊さぬよう注意して下さい。

 上記回路の個人的な利用に制限はありません。もし拙Blogの記事や回路を参照して製作記をお書きなら引用元を明確にし二次参照者にオリジナルのありかを示して便をはかるのがマナーでしょう。もしも商用的に利用したいならメールでご連絡下さい。

【新ラジオ・カウンタ】(活用例)
 何か具体的な応用をと思ったのですが、まだテスト段階で詳細を紹介できる状況ではありません。

 しかしこれからは様々な機能を持たせる都合から、既にお馴染みいただいた『TTT カウンタ』や、『TTT式 ラジオ・カウンタ』もATmega 28pinシーズで作ることになるでしょう。

 写真は『新型ラジオ・カウンタ』をテストしている様子です。 このように要望が多かったHF帯のフルカバーが実現されています。 もちろんATmegaシリーズとは言っても、クロック上限は公称20MHzなので単体でHF帯カバーは実現できません。 しかし比較的少ない外付け部品でこのように高い周波数までカバー出来ました。 9R59DのようなシングルスーパだけでなくTS-520やFT-101、さらにはKWM-2/Aと言った往年の名機にデジタル周波数表示を付加することも容易になった訳です。 ごく普通の『周波数カウンタ』としては約90MHz+までカバーできるものを汎用のICだけで実現していて入手が限られてきた専用プリスケーラICは使っていません。(注意:周波数カウンタあるいはラジオ・カウンタ専用回路による。上記テストボードとは異なります)

 こうした様々なAVRマイコンも、BASCOM-AVRと言う優れた開発ツール(開発用ソフトウエア)のお陰で統一的に扱うことができます。適材適所のチップ選択が可能なわけです。  潤沢なメモリが存分に活用できるようBASCOM-AVRもそろそろ正規版にアップグレードがお薦めです。de JA9TTT/1

参考:Webでお馴染みのATtiny2313を使った『ラジオ・カウンタ』も継続公開中です。中波ラジオ〜BCL用の11MHz帯まで、部品が少なく簡単に作れます。==>詳しくはこちらからどうぞ。

高機能で沢山のI/Oを持つ40pin AVRを扱ったページは:==>こちら
AVRマイコンの開発に必要なプログラムライタの製作は:==>その1その2で。
BASCOM-AVRが、USBaspを正式サポート 詳細は:==>こちらで。(2010.9)
製作したボードのBASCOM-AVR 初期設定については:==>こちらで。(2011.5)
AVRマイコンのヒューズビットの説明と設定については:==>こちらで。(2011.5)

(おわり)

(Bloggerの新仕様に対応済み。2017.04.03)

22 件のコメント:

JJ3CMV 酒井 さんのコメント...

おはようございます。

今年に入ってから、40ピンのMega644Pを使って遊んでいます。
SDカードにデータを記録し、Ethernetを通じて外部とデータのやり取りができるものを目指しています。

最近忙しくなかなか進捗しませんが、現在、SDカードの読み書きまで動作確認できました。

Ethernetは、Xportと呼ばれるプロトコル変換機(RJ-45のジャックよりひとまわり大きいだけで、TCP/IPを喋って、簡単なサーバ機能まで入っているもの)を使っています。AVRでシリアルデータを入出力すればTCP/IPでデータがやり取りできます。

以前、AVR+BASCOMの使い勝手をTTT/hiroさんに教えていただいたおかげで、私でもここまでできるようになりました。SDカードのアクセスはBASOMのDOS機能を使えば、いとも簡単に実現できました。

今日も今から出勤です。行ってきます。

TTT/hiro さんのコメント...

JJ3CMV 酒井さん、おはようございます。

早速のコメント有難うございます。
> Ethernetを通じて外部とデータのやり取りができるもの・・・
面白そうな製作ですね。 どんな目的に使うのでしょうか? SDカードと言えば、どこかでMP3プレーヤを自作する記事を拝見したことがありましたね。

> SDカードのアクセスはBASOMのDOS機能を・・・
簡単な組み込み用途ではDOS機能まで使いませんが、BASCOMにはフルキーボードなど本格的なPCのような機能などもあって幅広く使えますね。メモリの大きなチップもかなり安価になって来たので面白いと思います。

> 今日も今から出勤です。行ってきます。
ご苦労様です。 行ってらっしゃい!

JG6DFK さんのコメント...

おはようございます。

この前、ある目的でATMega168を秋月で買ってきました。処理速度以外、私にはオーバスペック過ぎるのですが、たくさんのI/Oを必要とする用途には、必然的にこの手の高機能チップを選択することになるようです。

併せて、秋月の最新ライタとAVR Studioも揃っていますが、PIC用のライブラリを移植するのが面倒で、その後何も進んでいません。もっぱらアナログ回路で遊んでいます。Hi.

それを言い始めると、AT90Sシリーズが一般に認知され始め、秋月がライタを発売し始めた頃から開発環境は揃えていたのですが、以来、AVRを搭載したセットはひとつもできていません。何をやっているのやら。Hi Hi.

アセンブリ言語に固執しなければもっとスムーズにいけるのでしょうが、昔から高級言語には抵抗があるので…

これから秋葉原へ行きます。お目当てはアナログ系部品です。Hi.

TTT/hiro さんのコメント...

JG6DFK 児玉さん、おはようございます。

コメント有難うございます。
> ATMega168を秋月で買ってきました。
このお値段なら、ごくありきたりの部品になったように感じますね。特定機能のつまみ食いで多くの機能を無駄にしても安いものだと思います。(笑)

> PIC用のライブラリを移植するのが面倒で・・・
児玉さんはPIC党ですから、資産を活かした活用が基本なのでしょう。 良い物を捨てるのも勿体ないですしね。

> アセンブリ言語に固執しなければもっとスムーズに・・
本格的プログラマのお方には『BASICなんて・・・』なのでしょう。hi でもBASCOMの構造は殆どCライクなので昔のインタープリタBASICとは別物です。むしろアセンブラやCを知ってるお方の方が活かせますね。 高級言語+多メモリ+高速チップの採用で『目的物』を早く容易に作るのも今風の開発だろうと感じますよ。hi hi

> お目当てはアナログ系部品です。Hi.
そちらの部品は消え行く運命でお安くなりませんね。FBな買物を。 行ってらっしゃい。

T.Takahashi JE6LVE/JP3AEL さんのコメント...

こんにちは。

BASCOMで使う場合ちょっとプログラムがふくらむと2KBでは足りなくなることが多く
その場合2313を使っていると回路まで変更する必要があるので
メインはmegaシリーズを使っています。
最近は価格も下がり容量も増え入手も楽になったので助かりますね。
先日も秋月で328を購入しました。
mega48から328まで差し替えられるのが便利です。
噂では2313の容量が増えた4313があるそうなのですが。

TTT/hiro さんのコメント...

JE6LVE 高橋さん。こんにちは。

コメント有難うございます。
> プログラムがふくらむと2KBでは足りなくなる・・
やはりコンパイラですと、少し複雑な処理やLCD関係のコマンドが多いと容量不足になりますね。 機能をアップした周波数カウンタは2k Byteでは無理があります。

> mega48から328まで差し替えられる・・・
どうやら容量の大きな168や328の方向に集約されそうな感じですが、ハードに共通性があるのは有難いですね。 微細加工技術の進歩でメモリ容量の大きいチップも安価に作れるようになっているのでしょう。

> 噂では2313の容量が増えた4313があるそう・・
A/Dコンバータが不要でメモリのみ多く・・と言うニーズもあるとは思いますが、既にmegaもかなり安価になってますからね。2313ピンコンパチの置き換えには良さそうです。(笑)

Komachi さんのコメント...

加藤さん、久々にコメント致します。ATTiny2313のカウンタは良好に動いています。Lo/BFO共にBufferアンプを入れていますが、ノイズも軽微で快適ですね。それから今回のATMEGAの周波数拡大版はいいですね。こちらも、PICに始まってAVRそしてUSB-IO,Arduino,GAINER,pepperと試してきましたが、いずれも低額で遊べてFBですね。但し、いつもLEDチカチカ+α以上には進めませんが...Hi
今回のプロジェクトも期待しております。
Best 72/73 de JA9MAT 小町秀彦

T.Takahashi JE6LVE/JP3AEL さんのコメント...

megaシリーズがここまで安価になるとtiny26を新たに選ぶ必要がなくなりますね。
t26を使うとすれば20ピンDIPは場所をとらないのと
ちょっとA/Dが使いたいだけなのに高機能なmegaを使うのは何となくもったいないという貧乏根性だけでしょうか(笑)


ただアナログ回路の配線は楽しいのですが、
デジタル系の配線は単純作業であまり楽しくないです。hi

TTT/hiro さんのコメント...

JA9MAT 小町さん、こんにちは。

コメント有難うございます。
> ATTiny2313のカウンタは良好に動いています。
ご利用頂きありがとうございます。 旨く使えているようですね。 小町さんの素晴らしい製作例のお写真をBlogで紹介させていただこうかと思ってます。

> ノイズも軽微で快適ですね。
少し心配でしたが、シールドなど特にされていないようですから、問題ない程度で済んだようなら良かったですね。

> ATMEGAの周波数拡大版はいいですね。
部品を増やせば可能なのは自明なんですが、如何に簡単にするか・・と言う部分で思案しているところです。いずれそのうちにでも。

マイコンは色々手軽な物が登場して面白いのですが、それぞれ手がけるとタップリ時間を取られるのが難点ですね。(笑)

TTT/hiro さんのコメント...

JE6LVE 高橋さん、再度こんにちは。

コメント有難うございます。
> tiny26を新たに選ぶ必要がなくなりますね。
ATtiny26はコンパクトでたくさんA/Dコンバータがあって面白いチップでした。XBY岩永さんがお好きなチップですね。 コンパクトに製作されるお方には2313や26のような20ピンの方が好まれるかも知れません。

> 高機能なmegaを使うのは何となくもったいない・・
そうなんです。 非常に高機能・高性能なので勿体ないようにも感じますが今やコーヒー1杯分以下ですから・・ネ。コーヒーも価格破壊してますけど。(笑)

> デジタル系の配線は単純作業であまり楽しくないです。hi
単純繰り返しですからね。だからと言って一つ間違えると動かないし。 特に多桁のLED常時器を手配線でやるのは・・・専用基板が欲しいです。

レイアウトや配線の妙味があるアナログ回路は難しさもありますが面白いです。hi hi

JG6DFK さんのコメント...

加藤さん、早速のコメントありがとうございます。現在、とってもいいところに半固定中です。食後のホワイトショコラはうさこちゃんのトッピング。Hi. さて、WILLCOM 03はこの先いつまで使い続けられるのでしょうか。Hi Hi.

>本格的プログラマのお方には『BASICなんて・・・』なのでしょう

おっしゃるように、今のBASICは立派な構造化言語なので、現状を知っているプログラマなら悪く言う人はもういないと思いますよ。

>『目的物』を早く容易に作るのも今風の開発

商用ソフト開発では必須でしょう。私のようなやり方は道楽だから通用するのであって、工数がコストに直結する商用ソフト開発でこんなことをやっていたら絶対に儲かりませんし、商機を逃します。Hi Hi.

TTT/hiro さんのコメント...

JG6DFK 児玉さん、こんにちは。

コメント返し有難うございます。(笑)
> とってもいいところに半固定中です。
秋葉原の某所なのでしょうね。 お楽しみ下さい。

> 悪く言う人はもういないと思いますよ。
まあ、そうなんですが、現状を知らずに自身のイメージ(想像)だけで物を言う人もたくさん居られますので。hi hi


> 道楽だから通用するのであって、・・・
例えば受信機を作ります。 バリコンの羽曲げで周波数直線性を出し、入念にダイヤル目盛を刻んで・・・と言う楽しみ方もあるでしょう。立派だと思いますが、これじゃ誰でも出来るものではないですね。

 難しい職人わざを排して多くの人にテクノロジーの力で可能性を引き寄せると言うような意味もあるので、高級な開発手段はむしろ趣味向きだろうと・・・なんて思ってます。(あくまでも私見ですけどネ)笑

お買い物楽しまれて下さい。 さて、こちらも近所のスーパーで買物です。

JG6DFK さんのコメント...

先ほど秋葉原から戻ってきました。あの後、某所はQRMがひどくなってきたので早々に退散しました。前回のコメントで「もう一休みしてから部品を買って帰ります」というようなことを最後に書いたのですが、見事に抜けてしまいました。

久しぶりにWILLCOM 03からインターネット接続を試みましたが、WILLCOMがなぜ倒産したのか、使ってみてその理由が身に染みてよくわかりました。Hi.

加藤さん、了解です。

> 高級な開発手段はむしろ趣味向き

今はソフトウェアでもラジオが作れる時代ですが、ソフト主導が過ぎて「アナログのラジオってどうやって作るの?」的エンジニアが増えても困りますね。ただ、目的達成手段のトレードオフは結構難しい問題だと思います。

いずれにせよ、ある目的を達成するための手段を複数知る人は強いと思います。

今日はアナログラジオ用の部品を買ってきましたが、当面は持ちこたえそうですね。ラジデパ某店の親父さんは「なくなったらウチが困るから…」と話していました。Hi.

TTT/hiro さんのコメント...

JG6DFK 児玉さん、こんにちは。

秋葉の買物も済んだようですね。 買いたい物もあるのですが、交通費と時間を考えるとなかなか行けません。

> WILLCOM 03からインターネット接続を・・・
WILLCOMでしたか。 不感帯が広いように感じたので、昨年解約しました。今はG3携帯です。 電池の持ちも違いません。

> 目的達成手段のトレードオフは結構難しい・・
正直なところ、今のメーカー製アマチュア用無線機の作り方は既に古いのではないかと思っています。 革新的な無線機はユーザー側の理解が無いからかもしれません。(年寄りの趣味ですから・笑)

> 当面は持ちこたえそうですね。
ちょっとしたラジオに使う部品くらいならあまり心配はいらないと思いますよ。案外小規模でも量産はできますから。

 特定の部品が値上がりしているだけなので、全般的にみると使い方を知っている人が減ったので値下がり傾向も見えます。 ネットで騒がないのが一番良い事だと思いますね。知られなければ安泰ですので。(笑)

JA6IRK@岩永 さんのコメント...

TTT/加藤さん、皆さん、こんばんは。
Twitterの方は、テンポが速くてついていけないです。つぶやいてると言うより、まくし立ててる感じ?!
AVR再開ですね! 今度は28Pinシリーズで、これは使いやすいです。A/Dもあり適当にポートもあります。当局も4433から使っていますが、変遷が早すぎます。
Mega88と168では少し仕組みが違うようでコンパイルした時のサイズが異なるようです。168は、メモリサイズがでかいので直接アドレスジャンプのため、プログラムが大きくなるとか!
当局は、今RAMエリアが足りなくて暴走してます(^^;

TTT/hiro さんのコメント...

JN3XBY 岩永さん、こんばんは。

コメント有難うございます。
> つぶやいてると言うより、まくし立ててる・・・
一部に機関銃のように書いてる人がいますね。私もとても付いて行けないので、全部流していますよ。(笑)

クライアントアプリを使うと選択的に読めるので良いのですが、モバイルからは難しいでしょうね。

> 28Pinシリーズで、これは使いやすいです。
機能・性能的には十分満足の行くチップだと思います。特殊な用途は別ですが、これでだいたい間に合いそうに思っています。

> コンパイルした時のサイズが異なるようです。
最近出ているA付きのタイプは内部がだいぶ違うのではないかと思われますので、BASCOM-AVRでどうなるのか気になっています。

> 168は、メモリサイズがでかいので直接アドレス・・
なるほど、そう言うこともあるのですね.mega328はもちろん同じことですね。644とかも同じでしょうか?

> 今RAMエリアが足りなくて暴走してます・・
大きな配列変数でも作ったのでしょうか? あるいは、ビデオメモリのような使い方でも・・? 確かに高級言語で使うのに、RAM容量は小さい感じがします。

JA6IRK@岩永 さんのコメント...

配列変数は、ベースが出来てからの予定でしたが、今は、それ以前です。
変数に単精度ですが、浮動小数点を使い過ぎているのが問題のようです。プログラム上はアラームは出ないのですが、タイマー割り込みが掛かると、スタックエリアが足らなくなって暴走するようです。
使い方が良くわかっていないのですが、BASCOM-AVRのシミュレータで色々やっていたら、大体わかりました。
今は、エンコーダーの読み込みを割り込みなしでうまく行っているのですが、取りこぼしが多いし、配列も使いたいので328になりそうです。今はプログラムは2KB少しなんですが(^^;

TTT/hiro さんのコメント...

JN3XBY 岩永さん、こんばんは。

コメント有難うございます。
> 今は、それ以前です。
了解です。てっきり大きな2次元配列でも定義されたのかと。(笑)

> 浮動小数点を使い過ぎているのが問題・・・
私も浮動小数点演算を無意識に使ってますが、RAMの少ないチップでは厳しいのですね。 冷静に考えたら当たり前なのでしょうが、そう言うことが実際に起こるとは勉強になりました。

> エンコーダーの読み込みを割り込みなしで・・・
他に重要な割り込みを使っていると無闇に多重割り込みは使いたくないですから仕方がないですね。レジスタの退避にもRAMを消費しますし。

> 今はプログラムは2KB少しなんですが・・
データ量が多い処理のようですね。 うまく行くことを祈ります。

exJE1UNX tamura さんのコメント...

加藤さん
ご無沙汰しています。

テストボードの回路図アップありがとうございます。

随所に、ほかでは見られない配慮をしていただきありがたく思います。
電源のチョークコイルを見て…
最近まったく使ったことがなかったので忘れていたのを思い出しました。

ATtiny2313もなくなってきましたので
ご紹介のものを使ってみようかと思います。

TTT/hiro さんのコメント...

JE1UNX 田村さん、こんばんは。

コメント有難うございます。
> 回路図アップありがとうございます。
これは基本的に拙webサイトにあったものの改訂版で殆ど同じものです。 ネット上にあまり無いようなので再びアップしてみました。(検索来訪も多いようなので・笑)

> 電源のチョークコイルを見て…
オマジナイ程度の物かも知れませんが、一応アトメルの推奨回路にも入っていたと思います。 あそこはアナログVcc端子ですね。 A/Dコンバータのバラツキに効くそうです。

> ATtiny2313もなくなってきましたので・・・
拙宅にもtiny2313が残っていますので、無くなるまでもう暫く使うつもりです。tiny26もかなりあります。hi hi

手持ちが無くなって来た時はmega88系に乗り換えるのが良いでしょうね。

JA1ELQ/高橋 さんのコメント...

ATmega88の便利さと安さで最近はこのシリーズばかり使っています。(なかなか完成しませんが Hi)
まとめ買いして残った90S2313が部品箱の隅っこで寂しそうにしています。必要な分だけ買うようにしないといけませんね。

BASCOM-AVRもまだDEMO版で、制限サイズに収まるように頑張ってきたのですが、そろそろ限界なので製品版を買おうと思っています。

TTT/hiro さんのコメント...

JA1ELQ 高橋さん、こんばんは。

コメント有難うございます。
> 最近はこのシリーズばかり使っています。
やはり機能豊富な割にお手軽お値段ですから重宝しますね。わたしとしてはポートの割り付けがちょっと気になったのですが、まあこれも慣れですので使い始めれば気にならなくなります。(笑)

> 90S2313が部品箱の隅っこで寂しそうに・・・
簡単な用途、たとえばデコーダのような単機能として使う手もあります。ただ、簡単な用途だと90Sシリーズはクロックが面倒になるかも知れませんね。そうしたことからもだんだん使わなくなってしまうのでしょう。

> そろそろ限界なので製品版を買おうと・・・
製品板をお薦めします。 Over 700ページものマニュアルからわかるように豊富な機能があるわけで、巨大なライブラリ付きのコンパイラと考えると非常に安いと思います。プロ用の開発ツールなら少なくとも数十万円の筈です。活用されるお方にとって約1万円は超お買い得ですよ。(少々バグっぽい所もありますけれど・笑)