月別アーカイブ: 2014年8月

ロジックICコレクション

引き出しにあるロジックIC(7400, 4000, 4500シリーズ)の写真をとって
メーカごとに一覧にするページを作ってみました。
The “Face” of Logic ICs」というタイトルです。
数千個のロジック IC から選抜しています。

たいして珍しいものは所有していないのですが、
こうして製造元別に見ると、いささかコレクションらしく見えてきますね。
こんなのとか、
こんなのとか、それなりに古いものもあります。

今日の買い物@14/08/22

☆aitendo 実店舗

全品1割引、セール品あり。
ここは行くたび配置が変わっています。
夏休みにも関わらず、来店客の年齢層は他のパーツショップより高め…。

値段はだいたい。

・ICクリップつきケーブル 20P x1 ¥570
ケーブルとクリップの色が異なることに我慢できればお買い得。

・ソケットつきケーブル x1 ¥280

・ソケットつきケーブル x1 ¥100

・PLCC32-DIP32 変換 x1 ¥395来るたびに探していたもの。やっと見つかった。

・バーアンテナ x2 ¥200長いものと短いものがありました。

・HD14562P x2
・TC4017BP x2
CMOS ロジックがいくつか売っていました。

・9月いっぱい、新店舗で使える割引券をもらいました。

☆そのほか

デッドストックの TTL ロジックをいくつか。

今日の買い物@14/08/19

日米にて、ICレールが投売り状態。
めぼしい物はすでに買ってしまったので、型番のみで購入

・SN74LS273N (TI) x18 ¥108
 Quad D-FFs

・M54519P (三菱) x25 ¥108
 7ch Darlington Tr Array

・10149A (Signetics) x25 ¥108
 ECL PROM(モトローラ MECL 10,000 )
– 完全に読み間違い。値札が「TL10149A」となってたせいで、何かのアナログICだとばかり・・・。
というか Signetics も ECL 作ってたのですね。

大したものは残ってないけど、日立の u-Law CODEC はまだありました。

・スピーカ、スペーサほか ¥324

・LM95221CIMM (NS) x5 ¥53
– 温度センサ

・MCH6412 (SANYO) x10 ¥53
– N-ch MOSFET 30V 5A 27mΩ

* 実は74VHC573 を買いに行ったのですが、これは売り切れのよう…。

最近はモトローラ製 MECL とか 日立 HD2500 シリーズとか、
いにしえの IC がよく転がり込んで来ます。
半世紀前の IC となると、もはや蒐集の対象ですね。

AVR vs PIC

まあ、日本では 8bit MCU は PIC の方が人気なようで、
私のウェブ・ページでももらう質問は PIC のものばかりでちょっと悲しい。
ホビーで使うなら、AVR のほうが圧倒的に使いやすいと思います。

8bit の AVR と PIC について、個人的な感想を少し書いておきます。
#大学や高専のレポートに使ってもかまいませんが、事前にコメント欄から連絡すること。

☆PIC の欠点

・ペリフェラルがだめ。

ローエンドのMCUの周辺機能はだいたい単機能で、
ちょっと凝った応用を考えると破綻する。
また、1つの品種の周辺機能を覚えたところで、
他の品種の周辺機能は全然構成が異なるので、
また1から覚えなおし。

AVR はローエンドからハイエンドまで、
ほぼ同じモジュールが組み込まれており、開発がとても楽。
また、それぞれのペリフェラルはよくできていて、
いろいろな用途に対応できる。

汎用 I/O ひとつ取ってみても、PIC では、
やれこのピンはプルアップが使えないだの、
このピンはシュミットトリガじゃないだのと、しばしば問題にあたりますが、AVR ではそのようなことはまずありません。

・データシートが見づらい。

レジスタ確認するために、あっちこっちのページを見なきゃいけない。
開発に時間がかかるひとつの要因。

・MPLAB X がだめ。

動作遅い、メモリ大食い。

・Cコンパイラの最適化オプションが有料。

AVR は GCC が使えてよいです。
最適化が使えないってことは、AVR の ROM 1kワード は
PIC の ROM 1.8kワード に匹敵するってことですからね!
これを考慮してコスト・パフォーマンスを議論すべき。

・無駄に多品種。

PIC の多品種っぷりを誇る人がいますが、これはナンセンス。
1つの品種でカバーできる範囲が狭いってことだからね。

☆AVR の欠点

ISP がクロック依存。

クロックを与えなければ In-circuit のプログラミングができない。
慣れていないと、ヒューズビットでクロックソース設定を間違えて、
プログラミングができなくなってしまうことも。

・入手性が悪い。

SOP の AVR だったり、USB 対応品を手に入れようと思っても、
秋葉原にはほとんどありません。

・内蔵発振器の周波数が低い。

だいたいの AVR では、内蔵発振器は最高でも 8MHz です。これは PIC の 32MHz 相当とはいえ、あと 2倍ほしいケースも。

・ペリフェラルの種類が少ない。

DAC とか USB とか PGA とか、凝った周辺機能をもつ品種は多くありません。
まあ大抵の場合、汎用の周辺機能が強力なので、
あとはプログラマの ”工夫” で何とかなるのですが。

☆アーキテクチャについて

Cなどの高級言語を使う限りは、アーキテクチャはそれほど議論の対象にならないと思います。
確かに PIC では、たとえば汎用レジスタが少なかったり、
レジスタ・RAM アクセスにバンク操作が必要だったりして、
その理解は実に面倒ですが、これらはむしろ些細な問題といえます。

アーキテクチャを議論する上でのポイントは 3 つ。

(1)命令サイクル / クロック周波数

PIC も AVR も、アーキテクチャとしては同じ 2段パイプライン動作です。
AVR はクロック周波数をそのまま内部クロックとして与えられるため、
クロック周波数はそのまま命令サイクルとなります。
いっぽう PIC は前置分周器で 4 分周しているため、
命令サイクルは クロック周波数 ÷ 4 になります。

以前どこかの雑誌で、クロック周波数が 32kHz のときの消費電流の比較をもって、
PIC と AVR の消費電力を比較していたのを見たことがあります。
これではナンセンスどころか、全く誤った比較です。

(2)スタックの扱い

サブルーチン呼び出しや割り込みのときに、プログラムカウンタ(PC)や
データを保持する機構がスタックです。
PIC ではスタックは PC スタックのみで、
段数固定のハードウェアによるインプリメンテーションです。
これはハードウェアの規模は少なくて済むのですが、ちょっと原始的ですね。
POP も PUSH もありません。

一方 AVR では、たとえ 8ピンの ATtiny13A のようなローエンドであっても、
スタックポインタによるスタック呼び出しや POP/PUSH をサポートしています。
(90S1200 を除く)

(3)割り込みの扱い

ローエンド PIC ではそもそも割り込みの概念がなかったり、
割り込みルーチンは 1 つか 2 つで、ソフトウェアによる条件分岐と
手動での割り込みフラグ解除が必要です。
PIC では、割り込みは必要最小限のハードウェアになっています。

一方 AVR では、たとえ 8ピンの ATtiny13A のようなローエンドであっても、
割り込みベクタやフラグ自動解除機構は当たり前にサポートしており、
多重割り込みも簡単に実現できます。
しかし、AVR では優先度付き割り込みをサポートしていないので、
(PIC の一部では簡単ながらサポート)
場合によっては問題となるかもしれません。

☆まとめ

個人的な感想としては、PIC はコスト重視、AVR は使いやすさ重視の MCU という印象です。
量産で設計するならいざしらず、しろうとの趣味程度の数では、
PIC のわかりづらいデータシートを見ながら使いづらいペリフェラルと格闘するならば、
20-30 円高くても AVR を使った方が 数時間、場合によっては数十時間も
開発の苦労が減らせると思います。

今日のパーツ:ATtiny2313A (ATMEL)

ATMEL の AVR の中でも、ATtiny2313A は頻繁に使う IC のひとつです。
ATtiny2313A は ATtiny2313 の改良版で、バイナリレベルで上位互換になっています。

使いやすい IC なので、レールで買ってしまいました。
秋葉原では手に入れづらい、1.27mm ピッチの SOP 品です。
値段は 1つ ¥100 強といったところ。

主なスペック

FLASH: 2kB (1kW)
SRAM: 128B
EEPROM: 128B
Vdd: 1.8 – 5.5V
fclk: 20MHz@5V, 10MHz@2.7V, 4MHz@1.8V

ATtiny2313 と ATtiny2313A の相違点

ペリフェラル機能に大きな変化はありませんが、細かい違いはあります。
相違点の詳細は AVR533 にもありますが、
個人的に気になったところを以下に記述します。

続きを読む