「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



Aliexでサジェストされてた、メガドラ用のジョイパッドが
ふと目に留まったところから連想して、そういえば、Arduino
にUSBデバイスを繋いで、USBホストとして使いたかったんだ
よなと思い出す。ジョイパッドとかマウスとかの入力デバイス
をマイコンに繋ぎたかったんだよなと。

以前、ArduinoとUSBホストシールドを使って、ジョイパッドの
状態を読み出してLEDに表示するっていうのをやってみたん
だけど、

https://brown.ap.teacup.com/nekosan0/3048.html

まぁ、普通にできてた。ただ、USBホストシールドはちょっと
お値段するし、あれこれ考えながらAliexを色々検索してた
ところ、CH559っていうチップや、それを使ったボード類が
ヒット。

なんだこのチップ?って思ったら、どうやら中華製の
USB機能を内蔵したマイコンみたいだな。8051互換コアを
内蔵してて、USBホスト、USBデバイス、どちらにもなれる
らしい。ちかも、すごい安い。EZ-USBみたいなやつか?

https://silentworlds.info/2020/03/14/post-936/

ピン間が結構狭いな。0.65mmか…厳しいものがある。
ICのピッチがちっちゃいのは敷居が高いんだけど、、一緒に
ヒットした中にはさらにCH554とかCH552とかCH551とか色々
あるみたい。これらはいったいなんだ?と。

https://hakura03.hatenablog.com/entry/2019/04/18/232447

CH552について書かれてるページがあった。CH552やCH551は
USBホスト機能は無くて、USBデバイス機能があるやつみたい。

CH554やCH559はUSBホストにも使えるんだけど、CH554は
ピンの数がもっと少なくて、1.27mmピッチのやつもあったり
するので、これが良さげだなぁと思って、さらに色々検索。


http://www.wch-ic.com/products/CH554.html

データシートはここに置いてあったりした。スペック諸々
書いてある。一部分を抜粋すると、



CH554、CH553が兄弟チップで、どちらもUSBホスト機能も
搭載。どちらも低速・全速通信対応で、似たような構成
なのが判る。
違うのは、メモリ量とかってあたりなので、どちらを
使ってもいいんだけど、まぁメモリ大きい方がいいよな。

で、CH554をAliexで探してみる。

https://ja.aliexpress.com/item/4000800102685.html

10個あたり88.2ドルってのがある。すごい安いな。送料は
無料だから、単純に10で割ると、1個90円くらいか。
しかも、外付けクリスタルとか要らない。


https://hackaday.com/tag/ch554/

https://hackaday.com/2018/11/30/new-part-day-the-twenty-five-cent-usb-microcontroller-with-a-toolchain/

HackadayにCH554を使ってどうのこうのっていう記事が
あった。


問題は、これ自体がマイコンなので、自分でファームを
書いてやらないといけないこと。
開発環境のあれこれとか色々な情報はさっきのサイトに
日本語情報があったりしたんだけど、ただしCH552、CH551
なので、USBホスト機能が載ってないタイプだった。

なんか、仮にファームを一つ自分で作って書き込めたと
しても、しばらくしたらすっかり忘れちゃった…みたいな
ことになっちゃうよなぁ。
なので、とりあえずこいつには全機能を振り分けるんじゃ
なくて、USB通信だけ受け持たせておいて、その結果を
Arduinoとかに通信(シリアルorパラレル)で伝えてやって、
信号の料理はArduinoなんかで行っちゃう方が、使い勝手
というか汎用性は高い気がするよな。

8051だってマイコンだから、マイコンとの通信は特に
難しいもんでもないだろう。
問題は、接続したUSBデバイスを認識させたりUSBデバイスと
通信したりする部分を自分でコード書くのは厳しいなと。
USBの何たるかを全然わかってないので、レジスタを直接
叩いてゴニョゴニョするのは、オイラには難易度が高すぎ。

ってことで、適当なライブラリがその辺を隠蔽してくれて、
しかもそのライブラリがオイラが使いたいデバイス類を
サポートしていて、かつ、開発環境周りの情報ができれば
日本語で、日本語が無いならせめて英語で情報があれば、
なんとか挑戦してみようかという気にもなるんだけどなぁ…

もうちょっと調べてみるか。


そうそう。で、メガドラパッドについてもちょっと興味が
ある部分があったので、ちょこっと検索。
なんで、メガドラパッドって、ATARI互換っぽいi/fしてる
のに、ボタンがいっぱい(START含めて4個)あるの?と。

https://nicotakuya.hatenablog.com/entry/20081029/1225295517

ほほう。そういうことか。ATARI互換とは、一部配線が
入れ替わっているけど、D-SUB9ピン側からの1ピンだけ
出力信号になってるところを使って、「START/C」と
「A/B」の、それぞれどっちを読み出すのかを指定してて、
それでこれら4つのボタンをアクセスできる仕組みだった
のか。
(似たようなことは、MSXマウスの通信でもやってる。
当時、自分でマウス用のドライバをアセンブラで書いた
記憶がある)

MSXマウスって、ヤフオクで中古を探しても、ちょっと
高いか、好みのものじゃないかって感じがあったりした
んだけど、メガドラ互換だったら、連射コン付きのとか
でも、そこそこのお値段で買えちゃうんだな。
で、実際、それらをMSX用に改造して使ってるっていう
記事も散見される。
改造は必要だけど、MSX用のジョイパッドをとりあえず
用意したいって場合には、メガドラ用を手に入れて、
ちょっと改造したりするのが簡単で「新品」を味わえる
みたいだな。




https://qiita.com/iwatake2222/items/e92a950a2cf57d1a3ded

Raspberry Pi(というか組み込みLinux)のデバイスドライバ
を作ってみる系の解説が載ってた。
あとでじっくり見る。




https://www.youtube.com/watch?v=RAo17s023Pg

パオにB18Cを載せちゃうプロジェクトの続編が来た!じっくり
眺めよう。




https://www.youtube.com/watch?v=7K5zM1ASRaY

ひよりふぁくとりーの新しい動画来てた。これからみる。



コメント ( 0 )