Hatena::ブログ(Diary)

やねうらお−ノーゲーム・ノーライフ このページをアンテナに追加 RSSフィード

tokutoku777 tokutoku777 ランキング
電王戦出場記念! 書籍化されたで! 監修したで!(`ω´) 絶版なってしもた Kindle版で復活!! 記事書いたで!
解析魔法少女美咲ちゃん マジカル・オープン!

YaneuLabs / やねうら王公式 / やねうらおにメール / twitter / プロフィール

 | 

2008-02-28 いますぐPICをやめてAVRに移行すべき10の理由

[] いますぐPICをやめてAVRに移行すべき10の理由  いますぐPICをやめてAVRに移行すべき10の理由を含むブックマーク  いますぐPICをやめてAVRに移行すべき10の理由のブックマークコメント


電子工作用のお手軽なワンチップマイコンと言えば、AVRPICである。数年前、国内ではPICのほうが日本語での情報が多く、国内での入手性が良かったのでPICばかりが普及した。PIC本で有名な後閑さんの功績も大きいだろう。


だが、いまから始めるなら間違いなくPICではなくAVRにするべきだろう。値段的にもPICと大差ないし、国内でもAVRマイコンをある程度調達できるようになってきた。


では、いまPICをやっている人はAVRに移るべきか?


迷っている人のために、「いますぐPICをやめてAVRに移行すべき10の理由」というのを書いてみる。


1) AVRなら、ほとんどのモデルでCで開発することができる。もちろん、フリー環境。(AVRStudio + WinAVR)


PICの上位モデル限定のくせに60日すぎたら最適化レベルが下がるどっかの体験版(?)のCとは大違い。


2) AVRアセンブラPICほど変態アーキテクチャじゃない。


AVRレジスタが多いし直交性にも優れている。


3) AVRのライタは100円ぐらいで作れる。*1 ほとんどのAVRに書き込み可能。


新しいデバイスにライタが対応してるか心配しながら石を選ばなくてはいけないPICとは大違い。書き込むときにPICのように高電圧(12V)をかけなくて良いのが大きい。


4) AVRライタの完成品を買うとしてもデジットUSB接続のが2100円。電源不要。


新しいデバイスに全く対応しないくせに外部電源が必要でUSBで書き込もうとすると別途USB-シリアル変換器の必要な秋月の腐ったPICライタとは大違い。


5) 秋月にATmega88 , ATmega164 , ATmega644のDIPが入荷された。


ATmega644は64KBと余裕の大容量。40pin(I/O 32pin) 550円。

AVRは近年、共立電子などでも扱うようになってきた。


6) AVRは1クロックで1命令実行される


PICはたいてい4クロックで1命令しか実行できない。おまけにレジスタ直交性がないのでCで生成されるコードは効率の悪いものになっている。同一クロックで動作するPICAVRとを比較すると、5〜8倍ぐらい処理速度が違う。


7) AVRI/Oに対して完全な read - modify - writeが出来る。


AVRにはI/Oの特定のビットだけをset / resetする命令がある。PICではそれが出来ない。


PICは出力レジスタの状態はピンから読むように作られている。


例えば、PICで、RA4にLEDをぶら下げてLEDを点灯させることを考える。RA4はオープンレインである。LEDの消費電力を抑えるため1.5Vの電源をLEDのアノードに抵抗を介して接続してあるとする。


いま、LEDをOFF(RA4に'1'を書き出す)にしたあと、RA0ポートを'0'にすることを考える。ポートの内容を読み込み、そのデータに修正を加えてポートに書き出すのだが、RA4ポートLEDの電源が低い(1.5V)ので読み込むと'0'になる。


このため、RA0の変更のためにRAポートまるごと読み込み、RA0のbitだけ書き換えてRAポートに書き出すと、RA4の内容まで変更してしまう。PICのBCF/BSTはそういう動作になっている。(参考 : AVRマイコン・リファレンス・ブック―AVRのCPUアーキテクチャ、豊富な内蔵周辺機能を詳細解説 (マイコン活用シリーズ))


このように、read - modify - write命令が用意されていないPICプログラミングが何かと面倒である。*2


8) AVR日本語の資料が充実してきた


AVRマイコン・リファレンス・ブック―AVRのCPUアーキテクチャ、豊富な内蔵周辺機能を詳細解説 (マイコン活用シリーズ)パソコン用手作り外部インターフェース―USBモジュール、PIC、AVR、H8を使って実装し、パソコンから入出力を行う (マイコン活用シリーズ)AVRマイコン活用ブック―オリジナル電子ゲーム&ロボット製作 (わかるマイコン電子工作)

このようにAVRのほうが優れていることは疑いようのない事実だが、日本語の資料が不足していることが長らく問題であった。


近年、データシートを日本語翻訳している人*3が現れたし、AVRを扱った書籍も出てきた。AVR日本語wiki*4も充実してきた。


9) 海外ではAVRのほうが勢いがある


海外ではPICよりAVRのほうが(趣味電子工作などには)よく使われている。その分、海外ではAVRのほうが情報が多い。


10) JTAGICE mkII の cloneが安い


id:yaneurao:20080226で書いたようにAVRのJTAGICE mkIIのcloneが$49.95で買える。


Cで書いたプログラムICEデバッグというようなことがAVRならわずかな出費だけで可能だ。JTAGICE mkIIは、PICのICD2より強力で迅速なデバッグが出来ると評判だ。


■ 関連記事


PICを叩き壊してやりたいほど憎らしい17の理由

http://d.hatena.ne.jp/yaneurao/20080723

central_dogmacentral_dogma 2008/02/20 11:59 AVRは、NXTにも入っているので勉強する価値大だと思いました。
NXTにデバッガをつけてデバッグできるようになるといいなあ。

yaneuraoyaneurao 2008/02/20 12:05 NXTではAVRはサブで使われているだけなのでデバッガで追いかける価値はあまりないような…。

NXT用にI2Cで接続する外部機器を自作するときに、AVRで書けばCで簡単に書けますね。(今日紹介している「AVRマイコン活用ブック」にもそういう工作が載っています。お勧め。)

k-8k-8 2008/02/20 21:03 うはー、これは乗り換えざるを得ない。
専用ICの設定用にPICを少し齧りましたが
これはもうAVRに乗り換えですね。
というか、理由の1〜4には激しく同意です。

abcdefgabcdefg 2008/02/21 02:14 ライタで力尽きた自分がきましたよ。
2100円で完成版ならもういっかい挑戦してみようかな

通りすがり通りすがり 2008/02/21 12:27 1週間後の未来の書き込みか?
Hatenaの仕様かな?

常連常連 2008/02/21 13:14 ↑やねうらおさんは、インターネット界の週刊少年ジャンプと呼ばれています。

## 2008/02/22 18:29 常連ワロタ

central_dogmacentral_dogma 2008/02/24 13:52 AVRマイコン活用BOOKの加速度センサ
は作りましたよ!
デバッガほすいので、クレジットカード
作りまーす。

SYOSYO 2010/02/26 15:18 つPIC24F,PIC24H,DSPIC30F,DSPIC33F

このファミリーとAVRの比較をやってみましたか?
こいつらは16ビットで、24Fシリーズは16MIPS、30Fシリーズは30MIPS、24Hシリーズ、33Fシリーズは40MIPSと高速かつ、ハードウェア乗算機を持っています。
さらに、DSPICシリーズはその名の通りdspを内蔵しています。
AD変換も高速です。(500ksps、1Msps)

Cも当然使用可能でgccベースのC30コンパイラーを使用しますが、
無償版でも製品版に近いレベルで最適化がかかりますし、最適化なしでもAVRのCコンパイラ(製品版)が最適化を最大限かけて吐き出すコードと大差ないサイズです。
最適化をかければサイズは遥かに小さくなります。

ここで言われているI/O周りの問題も既に解決済みです。

ライタもUSB接続可能な純正のPickit2が3500円(秋月)で販売されてます。

yaneuraoyaneurao 2010/02/26 15:34 ↑PIC24以降のものは私は使ったことがありません。私が電子工作で必要となるのは、たいてい一番下位のシリーズでして、PIC12Fとか16Fとかです。その2つのシリーズに対するまともなCコンパイラが提供されていないのが最大のネックだと私は考えています。

上位シリーズに関しては、PICのほうがAVRより性能は上だという話は聞きます。また私がこの記事を書いたときには、PICkit 2は秋月で販売されてませんでした。いまなら、ライターは、PICKit 2があるので問題はないのかも知れません。

あとはPICでもICEでのデバッグが安価で出来ると良いのですが。

tombtomb 2010/03/23 10:42 腐った、は、言いすぎです。

だしょーだしょー 2010/05/10 13:07 PICを使っていて、AVRに乗り換えました。非常に快適に実装して、プログラミングできるので気に入りました!
バンクメモリはあかんやろ>PIC16F690
シーケンシャルなメモリ空間、シンプルいずベスト。
私はデジットのAVR汎用基板とプルグラマーを使っています。
AVRでちょっと改善してほしいところは、ドキュメントです。
PICのドキュメントはよくまとまっていてピンアサイン等読みやすかった。AVRは情報がまとまっているけど、あちこち散らばっているような感覚を受けました。

通りすがり通りすがり 2011/04/09 16:46 4番のデジットのライターは書込みに外部電源が必要です。
逆にpickit2はUSB電源供給するので外部電源が必要ないですよ。

yaneuraoyaneurao 2011/04/09 17:09 ↑デジットのAVRWRTはそうですね。私、target電圧、USB側から取ってたのですっかり勘違いしてました。

おれおれ 2012/10/22 20:57 これはPIC16と比較していて適切ではない。
たとえばPIC18は大幅に強化、改良されており、
欠点を克服している。
また、消費電力ではPICが有利。

 | 

人気blogランキング tokutoku777
1900 | 01 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 06 | 08 | 10 | 11 | 12 |
2015 | 01 | 02 |


Microsoft MVP
Microsoft MVP Visual C# 2006.07-2011.06