SSブログ

遂に出たー!「試しながら学ぶHC08マイコン入門」 [HCS08]

勝手に画像をキャプチャしています。すいません。
46051.jpg
CQ出版からの発売だそうです。
http://www.cqpub.co.jp/hanbai/books/46/46051.htm

発売が楽しみですね!。
※画像は無いけれど、アマゾンリンク入りました!

試しながら学ぶHC08マイコン入門

試しながら学ぶHC08マイコン入門

  • 作者: 川野 亮輔
  • 出版社/メーカー: CQ出版
  • 発売日: 2008/04/15
  • メディア: 単行本



nice!(0)  コメント(25)  トラックバック(0) 

nice! 0

コメント 25

noritan

http://amazon.co.jp から「HC08」で検索しましたが、まだ並んでいないようでした。その代わりに下の方の「スポンサー・サイト」として丸文さんの CodeWarrior が出てきます。こちらも、がんばっていらっしゃる。

by noritan (2008-04-10 08:27) 

Sim

リンク先見てきました。なにげに基板付なんですね。
このところCQ出版は雑誌も含めてマイコン本ラッシュです。

by Sim (2008-04-10 08:49) 

hamayan

アマゾンの掲載はまだですね。あの人もそうだったけれど、CQだと遅いのかな。アマゾンへの掲載が開始次第、リンクを貼ります。

基板は扇風機の基板?、ツクモでパーツセットの販売とかの流れにもなるかな。結構作り応えが有ります。

by hamayan (2008-04-10 08:59) 

masato

同時期に出る AVR 本と同価格で基板付!?
あー、財布が厳しー。
by masato (2008-04-10 10:02) 

k_t

宣伝していただき、ありがとうございます!

パーツセットは、マルツさんで取り扱っていただけることになっています。

> 同時期に出る AVR 本と同価格で基板付!?

うっっ 実は基板で釣っているという・・・。
(あちらの方が内容が濃いのは間違いありません)

基板だけでなく印刷済み厚紙も付いていますので、私も楽しみです。

by k_t (2008-04-10 10:20) 

槫林

おまけ(基板)付に釣られてやってきました (笑)

おまけに釣られてInterfaceやらDesignWaveやら買ってしまっていますが
USBマイコンに興味があるので、私も買ってみようかなぁ。

by 槫林 (2008-04-11 08:17) 

hamayan

「おまけ!」
なんと甘美な響きでしょう。本屋に平積みされていると、ついつい死蔵する事が判っているのに買ってしまいます。Interface、、、DWM、、、。

で、USBマイコンと言えば、JB16マイコンボードが物凄く余っています。
1枚250円で良いので、如何ですか。

JB16マイコンと言うか、現在USBで最も頼りになるサイト
http://noritan-micon.blog.so-net.ne.jp/

by hamayan (2008-04-11 09:48) 

noritan

墜に発汗

「試しながら学ぶHC08マイコン入門」
お化けキーボードを題材にした電子工作とマイコン・プログラミング

hamayan,noritan 著
B5変型判 152ページ
基板,マイコン付き
定価2,520円(税込)

な~んてのをその余った基板で企画しちゃいましょう。

by noritan (2008-04-11 12:31) 

hamayan

なるほど、なるほど。
基板付きにするのですね。そうなると、ちょびっとだけ足りないなあ。まあ初版3000部として、2970枚くらい。

しかし、noritanさんのblogへの書き込みで、既に完了してしまっている気もする。
著者名もTuneo=Noritan>>>>>>>>>>>>hamayan位

by hamayan (2008-04-11 12:43) 

槫林

おまけのある所には、私の姿が・・・。

と、冗談?はさておき、hamayanさんが言ってるJB16マイコンボードとは
どれの事ですか?恐らく基板のみだと思いますが・・・。

部品集めて半田して作る元気があるかというと、心はDesignWaveの
加速度センサ付基板に行ってるので、ちょっとないかなぁ・・・。

Interfaceは買ってみたら、USBがUSBシリアルでガッカリ。

by 槫林 (2008-04-11 20:07) 

hamayan

> Interfaceは買ってみたら、USBがUSBシリアルでガッカリ。

えっ!、ホストにもターゲットにもなると書いてありますよ。
多分発振器を用意しないと動かないでしょうけれど。

JB16基板は、noritanさんのblogでUSBカテゴリで使用されている基板です。
今流行りのGainerとかArduinoとか、最終的にああ言った形で利用してもらえれば嬉しいんです。
まあ基板以外は一からになってしまいますが。

noritanさんのblog見ながら、一からUSBを勉強するのがお勧めなんだけれど。

by hamayan (2008-04-11 21:27) 

槫林

おぉ!? 実装されているUSBシリアルだけじゃなくて、別にSBあるんですね。コネクタは実装されてないけどw
実はCP2102見た瞬間に、何だよ・・・とげんなりしてしまっていました。

これで死蔵グループから抜けせるかも・・・行きたいところですが、全ては今日amazonから届くDesignWaveしだいかなぁ。

※メーカーで内臓USB用の無料Winドライバーを出してくれれば、仕事で使う機会も結構あるんですがねぇ・・・。

by 槫林 (2008-04-12 07:28) 

hamayan

> ※メーカーで内臓USB用の無料Winドライバーを出してくれれば

そこなんですよ!。

USBデバイスがどう言った動きをするのかをPCが把握する方法は、最初のエニュメレーションでデバイス側が、私はこういう者で、こういった動きをします!って宣言しているからだと言う事が、noritanさんの一連のblogとコメントへの書き込みで判ります。
つまりデバイス側が勝手に語っちゃえば良いと。

勿論物理的に無理なものは無理です。ハードウエア的にLOW SPEEDしかサポートしないのにFULL SPEEDのふりをするとか。
製品としては既存の製品のベンダーIDやプロダクトIDを語るのはまずいです。

しかし、例えば柏野さんの汎用USBドライバーを使用するなら、、、。
あと、もしかしたら富士通側でも汎用的なドライバーの提供がなされているかもしれません。探してみるのも手かと。

※後閑さんの参考ページ
http://www.picfun.com/usb20/usb2019.html
by hamayan (2008-04-12 07:58) 

Sim

今日、マルツの店頭に扇風機部品セットが売っていました。
本の方はまだみたいでした。
AVRの方の本は売っていました。

by Sim (2008-04-12 19:19) 

k_t

ええっ 早いっ!! Simさん情報ありがとうございます。
本は 4/17 発売予定なので、もうちょっとですね。

by k_t (2008-04-12 20:32) 

DAI

あれ~、手元にJB16が4個、ポリスイッチが4個、これはhamayanさんに基板を4枚お願いするようにと言うことか。

hamayanさん、4枚、大丈夫でしょうか。

よく考えると、青色LEDも12MHzの水晶もあったなあ。
by DAI (2008-04-13 14:40) 

hamayan

ほら!何処からか聞こえてきませんか。
「マイコンを死蔵していると、勿体なー-い、勿体なーぃ」と。

是非ご連絡を!。

by hamayan (2008-04-13 16:39) 

Tsuneo

> ※メーカーで内臓USB用の無料Winドライバーを出してくれれば

やっとMSがWinUSBをMSなりに仕上げてきました。まだパフォーマンスにやや難がありますが。WinUSBはコントロール・バルク・インターラプト転送をサポートする汎用デバイスドライバです。VistaにはもれなくWinUSB がついてきます。WinXPにもインストールできます(WDKを使って)。

LinuxのlibusbやMacOSXのIOKitに遅れること幾歳月。MSDOSの時代から、見てくれを真似するのは早いんですけど、中身はなかなか真似できないようで。中身までしっかり真似してくれれば何の文句も無いんですけど、ってそれってもうWindowsじゃない!?

WinUSB on MSDN
http://msdn2.microsoft.com/en-us/library/aa476426.aspx

How to Get the WDK and the WLK
http://www.microsoft.com/whdc/DevTools/WDK/WDKpkg.mspx

WinUSB by J.Axelson
http://www.lvr.com/winusb.htm

Tsuneo
by Tsuneo (2008-04-13 23:04) 

hamayan

> やっとMSがWinUSBをMSなりに仕上げてきました。

お世話になっています。
なるほど、OSレベルで汎用ドライバーを提供してくれるのですね。
一段とUSBを使う事への閾値が下がる事になるのかな、、、とっても期待してしまう。

一番最後のアクセルソンさんのページでは、3月13日に更新された、「これが私のWinUSBを使った最初のアプリケーションよ!」って登録されていますね。

by hamayan (2008-04-14 01:01) 

Tsuneo

>一段とUSBを使う事への閾値が下がる事になるのかな

XPへのインストールはまだまだ面倒です。
WinUSBのWinXPへのインストールは、上記のリンクで登録後、WDKをダウンロードします。さらに、
「WinUSB を使用して USB デバイスと通信する方法」
http://www.microsoft.com/japan/whdc/device/connect/WinUsb_HowTo.mspx
このページの右側の「ダウンロード」から、
WinUsb_howto.docx (英文)
http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/WinUsb_HowTo.docx
を参考にしてINFファイルを改訂します。それで漸くインストールできます。


Windows(XPSP2,Vista)には、オフィス・家庭で使用するデバイスの主なものに対しては、USBデバイスドライバがすでに組込まれてきました。
- マウス・キーボード用のHIDクラス
- USBメモリ・ハードディスク用のマスストレージクラス
- プリンタクラス
- スキャナ用のスチルイメージクラス
- モデム・シリアル用のCDC
- オーディオクラス
- ビデオクラス
- ネットワーク用のRNDIS
しかし汎用のUSBデバイスドライバは、DDKでサンプルが示されるもののWindowsには組込まれていませんでした。これは何を意味するか。

こういったデバイスドライバは、どうもてんでばらばらに開発されてきたきらいがあります。普通の開発工程を考えるなら、USBドライバスタックの下部をなすUSBDIやハブ用のドライバを検証するのに、汎用のUSBデバイスドライバとアプリを用意してストレステストをかけるはずです。そうすると、ドライバスタックの下層が仕上がる頃には、汎用ドライバはそのまま検証済みで出荷待ちという状態になります。その上で、汎用ドライバのコードを元に、上記のクラスドライバが作られていく、というのがまともな開発の仕方でしょう。ところが今頃になって漸く汎用ドライバが出てきて、しかもそれが最初はまるで仕上がってなかった。じゃあ、下層の検証は終わってるの? 他のクラスドライバは?
前途多難ですね。え、誰がって当然それを使ってる我々がですよ。


>一番最後のアクセルソンさんのページでは、3月13日に更新された、「これが私のWinUSBを使った最初のアプリケーションよ!」って登録されていますね。

雑誌のおまけの話が出てましたが、アクセルソンさんの本にはどれにもおまけのCDがついてないんです。その替わりというか、本に盛り込まなかった多くの情報や補遺を含めて、ソースコードをこうしてウェブで公開されている。じゃあ、ウェブだけ見てればいいじゃんという人もいるかとは思いますが、本の内容もソースコードが由来するところの背景の解説が実に充実している。おまけに頼らなくても売れる自信があるのでしょう。「USBコンプリート」や「USB Mass Storage」は、まさにその通りの本です。

アクセルソンさんは、USB-IFフォーラムでも質問に積極的に回答されてます。多くの質問に答えるのは実に大変な労力でしょうが、その中で、何が理解しづらいのか、どう説明すれば理解しやすいのかという解説書を執筆する上での極意を日々磨いていると見受けます。

またメールを通じて、多くの人々と積極的につながっています。近著の「Serial Port Complete」の改訂版では、USB-IFフォーラムで数回話したことがある程度のアクセルソンさんから突然、査読依頼のメールをいただいて恐縮しました。USBシリアルコンバータ、CDC、RNDISの章についていくつかの助言をしましたが、私の長ったらしい文章から要点をまとめる手際に感心しました。

彼女の熱意には本当に頭が下がります。とてもおいそれと真似のできる技ではありません。

Tsuneo
by Tsuneo (2008-04-14 06:52) 

noritan

WinUSBは、3月8日公開の以下のページでちょっかいを出したのですが、HIDデバイスをうまく認識させられなかったので、放置していました。

http://noritan-micon.blog.so-net.ne.jp/2008-03-05
USB プロジェクト - 懲りずにWinUSBに手を出す
:新適当マイコン電子工作研究所:So-net blog

3月13日に更新されていたのですか。もう一度、試してみようかな。

UUSBDでもHIDデバイスを認識させられなかったのですが、HIDデバイスならHIDデバイスドライバで扱い、勝手プロトコルはUUSBD/WinUSBで扱うと考えたほうが良いのでしょうか。

by noritan (2008-04-14 08:53) 

hamayan

> WinUSBは、3月8日公開の以下のページでちょっかいを出したのですが

そうか!、あれがそうだったのか、、、って気付いていなかったのかよ、、、

by hamayan (2008-04-14 09:21) 

Tsuneo

>UUSBDでもHIDデバイスを認識させられなかったのですが、

a) 既存のレジストリ上のVID/PIDとバッティング
b) INFファイルのVID/PIDがデバイスと一致していない

a) Windows はまずデバイスのVID/PIDを見て、既にレジストリに登録されているならその情報を優先します。ドライバを付替えるにはこの登録を変更する必要があります。

登録されているVID/PIDは次のレジストリキーの下で一覧することができます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\
しかし、これを直接いじらないでください。見てるだけー。
これと関連したいくつかのレジストリキーがあるので、ここだけをいじると修復が面倒なことになります。

デバイスマネージャでそのVID/PIDを持ったデバイスインスタンスを探し出して、
-「ドライバの更新」をする
- そのデバイスインスタンスを削除する
あるいは、
- 全く異なるVID/PIDをデバイスに与える
で、レジストリを更新できます。
元がHIDなら「ヒューマンインターフェースデバイス」の下に元のデバイスインスタンスがあるでしょう。例のDevManager.batなら、元のデバイスを挿す必要が無いので便利ですね。

実はWinDDK付属のDevConでやった方が操作は簡単なんですが、操作を覚えるのが簡単ではないし、操作を間違えるとたいへんなことになるので、デバドラの開発でもするのでなければお勧めしません。


b) もう一つの可能性は、INFファイルに書いてあるVID/PIDが、デバイスのVID/PIDと一致していないということでしょう。
INFファイルをテキストエディタで開けてUSB\VID_vvvv&PID_pppp (vvvv、ppppは16進数)を探してください。デバイスのVID/PIDと一致していますか。
UUSBDのINFファイルの書式だと、何カ所か変更するという説明だったと思います。
変更が一カ所で済むようにINFを書き直すこともできます。
WinUSBもINFファイルをVID/PIDに応じて変更する必要があります。


>HIDデバイスならHIDデバイスドライバで扱い、勝手プロトコルはUUSBD/WinUSBで扱うと考えたほうが良いのでしょうか。

HIDデバイスは、HIDデバイスドライバで扱う方が当然便利に出来ています。でも汎用デバイスドライバでも扱えるので、用途によって、あるいはいたずらで汎用デバイスドライバに割当てるのもありでしょう。この場合、HIDデバイスドライバが行う機能は汎用デバイスドライバには期待できません。ホストアプリで何とかするか、そのサービスを諦めるかでしょう。

例えば、HIDデバイスドライバは次のような機能を実装しています。
- インターラプトIN EPのbIntervalで指定された間隔でこのEPをポーリングする(polling IN transaction)
- Inputレポートをリングバッファに保持する

Tsuneo
by Tsuneo (2008-04-14 16:56) 

Tsuneo

UUSBDやWinUSB などの汎用デバイスドライバが期待されるのは、転送速度が必要な用途でしょう。フルスピードのバルク転送で800K-1MByte/sくらいまで、ハイスピードだと20M-40MByte/sそこそこといったところでしょうか。まあ、もともとバルク転送で転送速度を「保証」はできないんですがその辺の混入った話は別の機会に。

ハイスピードはUSB MCUの種類もまだ少ないのですが、サイプレスEZ-USBファミリにはデバドラとしてCyUSB.sysが用意されています。しかし他のメーカーはデバドラを出していません。実際はCyUSBは他のメーカーのUSB MCUでも何の問題もなく動作します。もちろんEZ-USB特有のファームウェア転送やRenumerationを除いて。USBは標準プロトコルなのでそれに準拠している範囲は動作して当然なのです。しかし、個人のプロジェクトはいざ知らず、製品として販売するにはCyUSBを他のメーカーのUSB MCUに抱合わせるのは御法度です。メーカーが囲込み戦略として利用しているわけです。そういったマーケッティング戦略上でWinUSBは意味を持ちます。

フルスピードでもデバドラに関しては同様の状況です。フルスピードだと、HIDやUSB-シリアルチップが視野に入ってきますが、HIDだとフルスピードで64kByte/s (64,000)まで、USB-シリアルチップだと300KByte/sあたりでしょう。それ以上だとUSB MCUでバルクEPを直接叩くことになります。それでデバドラが必要になってきます。ここでもCyUSBは動作するけど御法度と。

汎用デバドラはJungo WinDriverやThesycon USBIOなどの製品がありますが、それなりに値段が張ります。開発費を抑えたいのは常ですからただで使えるWinUSBは魅力的です。しかし、MSには散々煮湯を呑まされているので皆さんWinUSBの採用には慎重です(ただほど高いものは無い :-))

WinUSBの持つ意味はこういった文脈で理解していただければ良いと思います。

ちなみにHIDはハイスピードでも動作しますが、512kByte/sまでです。MSがHID デバイスに対してSet_Interfaceを発行するAPIを用意しといてくれればalternate interfaceでもっと(24MByte/s)出せたんですが。

ところで、USB-シリアルチップの300KByte/sですが、実はやや無理のある数字です。この速度を出そうとすると、MCUは約3usに1バイトずつ処理することになります。割込みでこれを処理すると割込みのオーバーヘッドが無視できなくなってきます。非力な8ビットMCUでは、レジスタの退避だけでも0.5 - 1usかかるのはざらです。そうするとMCUの実行時間のうち1/6 - 1/3も単に割込みのオーバーヘッドに喰われてしまうことになります。それでコードはかなりきつくなります。

バルクエンドポイントだと64バイト(フルスピード)までまとめられるので、割込みオーバーヘッドをさほど気にする必要がありません。フルスピード バルクの理論限界は、1エンドポイントあたり19パケット/1ms USBフレームですが、ここまで転送速度が出たとしても約50usの割込み間隔に止めることができます。

フルスピードで100KByte/sあたりから上を狙うなら、USB-シリアルチップは諦めてUSB MCUで直接バルクEPを叩いたほうがMCUのコードは断然楽になります。

Tsuneo
by Tsuneo (2008-04-15 15:49) 

hamayan

なるほど、現在のWinUSBの立ち位置がよく判ります。
フルスピード位までは何とか使いこなせるようになりたいです。

by hamayan (2008-04-15 16:22) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。