PIC AVR 工作室->TopPage->工作のツボ->参考書籍

参考書籍

このページには、私がモノ作りをする際に参考に役立った書籍について、概要や感想などを記します。 ご参考になりますかどうか…。

AVR関連の書籍

AVRマイコン・リファレンス・ブック (CQ出版) 山根彰著

日本のAVRの第一人者、山根彰さんのAVR解説本。タイトルどおりリファレンスとして永く使用できる本だと思います。 かなり詳説ですし、解りやすいと思います。この本でAVRの仕組みを理解してしまえば、各チップの英文マニュアルは 簡単に読み解けるようになるでしょう。

この本のコンテンツ:

  • 開発環境の解説(AVRstudio、STK500、AVRISPなど)
  • CPUアーキティクチャ(メモリマッピング、割り込み、fuseビットなど)
  • ペリフェラル解説(I/Oポート、タイマ・カウンタ、各種シリアルI/F、ADコンバータなど)
  • セルフプログラミング(ブートローダの使い方など)
  •  …などなど

AVRはPICと同様ハーバードアーキティクチャのCPUなので、メモリアクセス(SRAM、プログラムメモリ)に少々クセが有り、 その仕組みをよく理解しておく必要があります。また、AVRの32個のレジスタは比較的同レベルの機能を持っているのですが、 0~15番と16~31番では使い方にちょっと違いがありますし、さらに26~31番のレジスタペアとしても使えるレジスタは 上記のメモリアクセス方法と併せて理解しておかないと使いこなせません。またI/Oレジスタについては0~63番までとそれ以降では アクセスする命令が違っていて、アセンブル時にエラーが出てビックりなんてことも多々。こういったアドレッシングやメモリマッピング関係 についてもこの本では詳しく触れられています。

以前マルツパーツ館で山根さんのAVR講習を受けさせていただきました。それまではPICのような日本語解説本がなかったこともあり、 AVRって得体の知れないマイコンだなぁって思ってたんですが、氏の講習やデモンストレーションがとてもわかりやすく、 AVRも使ってみたくなり、早速この本とAVRISPmkⅡを入手してしまいました。

本文中のサンプルソースは、アセンブラとC言語で記載されています。ただし、氏はWINAVRではなく image craft社のCコンパイラを利用されているので、この本のC言語サンプルソースは image craft社Cコンパイラ用です。ご注意。

WINAVR目的なら、松原さんの AVRマイコン活用ブック の方が向いているかもしれません。メモリーカードリーダーやmp3プレイヤー、仕舞いにはロボットまで作ってしまっていて、作成例として とても参考になると思いますが、この本もWINAVRを詳しくまとめているわけでは無いのでリファレンスとしては不十分でしょう。 リファレンスとしては、やはりAVR-wikiのGetting Started Notesなどが参考に なると思います。

PIC関連の書籍でいうと、後閑さんの「電子工作のためのPIC16F活用ガイドブック」に相当する本でしょう。

PICの書籍

電子工作のためのPIC16F活用ガイドブック (技術評論社) 後閑哲也著

PICのミドルレンジチップ向けの入門としてもリファレンスとしても有用な本です。内容的にはAVR関連書籍の 「AVRマイコン・リファレンス・ブック」と比較すると方向性や詳細さの点で似た感じです。

私がまだ「ワンチップマイコン」について真っ白の状態のころ一番最初に手に入れた本がこの後閑さんの本でした。 それまでマイコンといえば、80年代の8ビットパソコン程度の知識しかない私(当時はZ-80アセンブラ少しだけ かじってました)にとって、ワンチップマイコンというのはどのようなもので、どの程度のことができるのかがよーく 理解できました。

私の持っているのは、この本の改定前のバージョン(電子工作のためのPIC活用ガイドブック)です。 新旧ともおおよそ同じ内容なので、改定前の古本を安くgetする手もありますが、旧版は誤植などがたくさんあったり (後閑さんのサイトの正誤表参照)、作例で使用しているICが16Cシリーズ(ワンタイム品)だったりすること、 そして何より開発環境のMPLABのバージョンが古いことを考慮すると、リファレンスとして利用するなら改定後の 方を入手しておいた方が良いかもしれません。

それにしても、まさかこんな小さいマイコンのプログラムをC言語で開発できるとは!と驚きました。しかも、 USARTやADコンバーター、その他色々なペリフェラルまで小さなチップに搭載してるとは!って。80年代の パソコンの中身がまるまる1個ICの中に入っちゃった感じです…。

この本のサンプルプログラムはアセンブラとC言語です。C言語はCCS社のCコンパイラです。これを読んだ当時、 無料で使えそうなPIC用C言語は見当たらなかったし、マトモなドキュメントは後閑さんの本しかなかったので、 CCS社から直接通販でPCM(=14ビット版のCコンパイラ)を入手し、ワンチップマイコンについて勉強させて頂きました。 この本と、後閑さん著の C言語によるPICプログラミング入門 の2冊を合わせると、ミドルレンジ(14ビットコアPIC16シリーズ)のアセンブラ開発に必要な知識は充分だと思います。

C言語によるPICプログラミング入門 (技術評論社) 後閑哲也著

PIC用のCCS-Cコンパイラ用の解説本です。PIC18やPIC24、dsPICシリーズなら純正のコンパイラ、 機能限定で使えるので最近CCS-Cは流行ってないと思いますが、単なるC言語リファレンスでもなく、 単なる作例でもなく、リファレンスとして使えつつ、なんだかんだでマイコン全般のクセとかがよく解るように書かれてる本。 その辺はやっぱり後閑さん。

私の場合、最初の環境設定やプロジェクトファイルの作り方みたいな初歩的な操作方法から、 コンパイル時に出力されるCall Tree Listの見方とか、各種組み込み関数の使い方や割込みの設定、 PIC内部のレジスタ設定と意味などなど、普通のPC上の開発と比べてマイコンがどんなクセを持っているのかを理解するのに役立ちました。

特に、PICの機械語のアーキティクチャは変態的なため、アセンブラだけではプログラムを組む気力がないので、 どうしてもCCS-Cは欠かせないツールでした。 (フリーのBASICコンパイラ等色々あるんだけど、やっぱ紙媒体のリファレンスが無いと効率が悪いので)

今だったらあえてPIC16シリーズなんて使わずPIC18シリーズを使って、 電子工作のための PIC18F本格活用ガイド を買ったほうが役立つでしょうね。

実装関連の書籍

プリント・パターン作成ツールPCBE (CQ出版) 能登尚彦著

フリーソフト「プリン基板エディタPCBE」の解説本です。つい最近出たようです(2007年11月現在)。 三省堂でたまたま見つけて、一通り立ち読みしてきました。イラストも多く読みやすいのですぐに読みきれると思います。

このソフトについては後閑さんのサイトでその使い方を覚えたのですが、もっと早くこの本が出ててくれれば…。 初めて使うなら、やっぱり手元に本があったほうが操作しながら覚えられて楽だろう思いました。 (私はもう操作法を覚えてしまったので今から買わないと思いますが)

一般的なソフト(フォトレタッチソフトなど)と比較すると、このソフトのユーザI/Fや概念は少々独特な気がします。 なので、何の解説も無く使おうとするとかなり苦労します。レイヤの概念とか、部品の登録方法とか、ベタグランドの作り方とか。

クリックすると、VECTORの ダウンロードページを開きます。まだPCBエディタ類を使ったことが無い方はぜひ一度お試しを。

使い慣れてしまえば、ソフトの機能や使い勝手に特に不満は無くなると思います。ガーバーファイル出力すれば、P板.comなどに 基板作成を依頼することも可能です。

その他の書籍

ビデオ信号の基礎とその操作法 (CQ出版) 今村元一著

ビデオ信号関係の解説本です。NTSC信号についてネットで色々調べても断片的な情報が多く、手元にリファレンスとして 使える本が欲しいと思って入手しました。2003年出版の本なので、HDMIやHDCPなどの最新デジタル信号関係については 触れられていませんが、どうせこの手のGHzレベルの信号は20MHz程度のマイコンでは手におえないので、この本の内容で充分でしょう。

ネット検索で得られる情報で充分ならこの本は特に必要ないと思いますが、ビデオ信号の規格を正確に押さえたいと思ったら 手元に置いておいて損は無いかと思います。

うーん、今もう一度よく読みなおしてみたら、ちゃんとコンポーネント信号のCb、Cr信号の電圧レベルについても ちゃんと細かく記載されてました! 通常は-0.3V~0.3Vの0.6Vppで、色飽和時は±0.35Vの0.7Vppなのか…。 あぁ、ネットであれこれ探すよりこの本しっかりと読めばよかった…読みが足りてないな…反省。

入門ソフトウェアシリーズ1 C言語 (ナツメ社) 河西朝雄著

ANSI-C準拠のC言語入門書。学生時代に卒論でC言語使うことになって、本屋で入門書を10冊くらい読み比べてこれを買ってきました。 それ以降これ以外の本は特に必要にならないので、今でもなんとなく愛用しています。

基本的なことは一通り書いてあります。データ型とポインタ、配列とポインタ、制御構文、標準入出力、共用体、構造体、型とキャスト、 スコープ、プリプロセッサ(#includeやマクロ定義)、call by valueとcall by referenceなどなど、平易にかかれています。 当時C言語を全く知らない状態から読んで、一通り読んだらすぐにプログラム組めるようになりました。 (当時「大阪弁変換フィルター」っていうのが流行っていたので、それを真似して作ってみました。)

何年か前に同僚や後輩がC言語を使うプロジェクトに就いたときに貸してあげたんですが、やはり解りやすいと言ってました。 その際、一応本屋に行ってC言語の参考書を改めて探してみたんですが、やっぱりこれより簡潔で解りやすい本って見つからなかったんですよね…。 (単に私がこの本読み馴れているだけ?)

ちなみに、PIC用のCCS-CはANSI-Cとは変数のバイト長や使える型が違っているのでプログラム作成の際はご注意。

amazonの評価を読むと賛否まちまちなのですが、個人的には他の本と比べ最低限の説明で必要なことを簡潔に平易に説明してあって、 良いと思いました。ちなみに、この本の知識+情報処理試験の問題集1冊だけで情報処理試験のC言語問題は充分OKでした。

もしかしたら、オライリーの C実践プログラミング の方が入門書としては向いているのかも知れません。高いけど。でもまぁ、そこはやっぱりさすがオライリーということで…。

絵ときでわかる オペアンプ回路 (オーム社) 内山明治、村野靖著 高橋寛監修

オペアンプの入門~応用に使える本です。名前の通り絵解きで原理から解りやすく解説。

オペアンプを「油圧ポンプ」に例えて、そもそもオペアンプって何?というところから、オペアンプって どうやって増幅するの?(てこの原理がなぜ働くのか?)、正帰還・負帰還って何?とか、反転/非反転って何?とか、 増幅倍率ってどうやって設定するの?とか、仮想短絡(イマジナルショート)って何?とか、スルーレートって何?とか、 オフセットって何?とか、応用回路の考え方、オペアンプの選定の仕方などなど盛りだくさんの内容を、 油圧ポンプの絵と対比させて解りやすく解説。規格書の読み方も触れられています。ホント、よくまとまった本です。

また、応用として各種フィルタや発振回路、各種センサーとの接続例や、PWMを使ったモーター制御などなど。

オペアンプについて調べていた時に、ネット検索だけでは良く理解出来なかったので、きちんとオペアンプの勉強出来る本が欲しいと思い、 三省堂で2~3時間かけて30冊以上のオペアンプ関係の本を読みまくって見つけた1冊です。目にとまった中では最も平易に書かれていて 解りやすく、しかも応用も利く本だと思います。

他の本は、ネットで調べればわかるような数式や回路図ばかり出てくるのですが、その原理とか応用範囲とかが今ひとつピンと 来なかったんですよね…。この本に書いてある油圧ポンプが頭に入ってしまえば、オペアンプが単純な「てこ」とは違うということも 自然に理解できるし、それゆえに動作速度(周波数)やオフセットについて気をつけないとならないんだ、と確信を持って応用できると 思うんですよね。

CD-ROM付 電子回路シミュレータ入門 増補版 加藤 ただし著

講談社のブルーバックスのシリーズです。電子回路シミュレーター「CircuitMaker」のCD-ROMが付属した 解説本という感じの本です。Student版なのでソフトは無料で使えます。今は亡きラオックス・ザ・コン館で買いました(^_^)。 4年も前に買ったまま放置していました。(なんとなく難しそうだったのでつい後回しに…)

が、チャージポンプで負圧を生成する実験を行った際、どうしても納得行かない 結果が出てきたので、仕方なく本棚から引っ張り出してきて使ってみました。…もっと早く使えばよかった。私の手元にあるのは改定前の ものなので国内の部品リストに対応してませんが、今の版は国内部品にも対応しているようです。

amazonのレビューを読むと、同種の本電子回路シミュレータPSpice入門編―電子回路の動作をパソコンで疑似体験! (ツール活用シリーズ) の方が評価がよさそうですが、付属しているソフトが違っているようです。身近な人がどちらを使っているかとか、パッと見どっちが 好みかで選択されると良いかと思いますが、この手のものが1つあるとアナログ回路の動きを事前に可視化して見ることが出来、便利かと思います。

アナログ回路だけでなく、デジタル信号用のICも使えます。論理ゲート(ANDとかOR)だけじゃなく、カウンタや フリップフロップもあるし、なんとRAMやROMのICまで入ってました。アナログ部品では抵抗やコンデンサ、インダクタ、 トランジスタ、オペアンプあたりは当然入ってます。というか、一生使いそうも無い部品もいっぱい入ってました。

しかも、これらアナログとデジタルの部品を繋いで、交流信号などをインプットさせて、時間的な変化をグラフに可視化できます。 フーリエ変換なんかも出来るようですが、その辺になると私の理解範囲を少し超えるので、まだ使いこなせてません。 チャージポンプ回路の出力波形をフーリエ変換して、どこらへんの周波数にどの程度ノイズが乗ってるのかとか調べたかったのですが…残念。 追々勉強して行こうと思います。

いずれにしても、読み始めて、サンプル回路を試してみて、そこそこ使い方が解ってからチャージポンプの回路を組んで 動かしてみるまでに2時間くらいでした。個人的にはソフトの出来は決して悪くないんでは?と思います。