自作回路でUSB EndPoint5 [無断転載禁止]©2ch.net
,マイコン側と言っても それなりなOS載せてるなら デバイス依存部分はデバドラで違和感ないやろ その程度の話やで 素人な質問ですみません 自作のUSB2.0 HIDデバイスでコネクタだけType-Cにする場合、CC端子は 5.1kでプルダウンするのが正しいのでしょうか?それともオープンのまま どこにも繋がなくていいんでしょうか? ホスト側はMacBookなどのUSB3.1 Type-Cを想定しています 使用時注意で「このデバイスをPDアダプタ等には絶対繋がないでください」と することは可能です(つまり絶対にMacBookのようなPCとしか繋がない前提) デバイス側でCCが未処理だった場合にホストがどういう動きになるのか 調べてもわかりませんでした CCを未処理とした場合、e-markedケーブルを使った場合に限り sink側が つながっていないと判断されてまったく給電されなくなる? デバイス側のコードに大チョンボ見つけてしもた・・・ ホストのRequestを受けてHID Class-Specific descriptor返す処理で、 descriptorが格納されてるアドレスの指定がずれてた なんでこれで今まで正常に動いてたのか全く理解出来ない 海外には野良でゲームコントローラーを作って売っているところが複数あるけど国内であのレベルの物を製造・販売している人っているんか? 日本のコントローラー自作の記事を見ても既成コントローラーの乗っ取りが主流に見える USBマイコンにプログラム書いて作っている人がすでにかなりレア。製品化できる能力を持つ人はいないという事なんだろうか コントローラ変換アダプタなら ATR-USB UMJ-FX とか個人で作って売ってるよ ほかにも探せば自分専用オンリーで作ってる例ならたくさん見かける 特に今ならarduinoをHIDデバイスに見せかけることが簡単だからそっち使って コントローラ自作してる例とかあるね github探してみなよその類いのプロジェクトたくさんある。 俺のもその内のひとつ。 いやアダプターとコントローラーじゃ必要な工業力や管理能力が全然違うじゃん アダプターはコネクタが出ていればいいがコントローラーだとスイッチと実用に耐える筐体が要る 相応に値が張るし真っ当な販路とサポート体制も必要だろう つーかここでUMJの名を見るとは・・・以前にコンバーターを自作した時に調べた時はホストがリクエストを 投げてくるたびにレポートを返すクソ実装だった。UMJ-FXはマトモになっているのかな >>243 リポジトリ教えてよ >>244 =241 君が言うような「コントローラのケース、スイッチ、ケーブルアセンブル等 込み込みで完成体のコントローラを野良で作ってる例」って言うのを知らないんで 是非教えてくれない?まさかretro-bitとか言わないよね >ホストがリクエストを投げてくるたびにレポートを返すクソ実装 ゲームコントローラなら普通の実装でしょ。ナニ言ってんの? レポートの内容が変化した時だけ返すなんてキーボードくらいでしか実装見たこと無いわ ていうかIdelRateの範囲内で毎回レポート返す実装のどの変が糞なのか(爆笑 >>245 GAMO2とかどうだ? 以下に書く情報は当時(ホビーで使えるUSBマイコンと言えばEZ-USBシリーズしかなかった頃)調べた内容。今は知らん 複数個のUSBゲームパッドを調べたが常にレポートを投げ返している商品は一つも見つからなかった 常に投げ返しているのはUMJとPS-USB変換だけだった。そのような実装は普通ではなかった あとUSBの仕組みを考えればリクエストが飛んでくるたびに投げ返すのはメリットない 無用にバスの帯域とホストのリソースを消費するだけ。それを軽減するためにインターバルを増やせば遅延が増大する 常に投げ返す実装でインターバルを1にしたらWindowsのCPU負荷を常時1割くらい消費していた よってUSBゲームコントローラで常にレポートを投げ返す実装は合理的ではない どなたかご存知でしたら教えて下さい Report Descriptorにおいて1byteサイズのデータの取りうる範囲は -127〜+127 なんでしょうか?それとも-128〜+127なんでしょうか? -128という値を送るのに、1byteデータで良いのか2byteデータにしなければ ならないのか調べても核心が持てませんでした 0x7F : 127 0x7E : 126 ... 0x01: 1 0x00: 0 0xFF: -1 0xFE: -2 ... 0x82: -126 0x81: -127 0x80: -128 ジョイスティックとマウスの合体も?デバイス自作基板の新作「REVIVE USB ADVANCE」が発売 - エルミタージュ秋葉原 http://www.gdm.or.jp/crew/2019/0930/322107 >>242 自分は昔の所有するゲームコントローラーのUSB対応は全てarduinoで対応してる 変換アダプタって結構いい値段するなぁという理由で始めたが 海外サイトが結構参考になったなぁ わかりそうなら教えて下さいませ。 外部デバイスからPCに、USB3.0ルートでファイルをガンガン転送する仕組みをテストしたいんですが、 PCと、サイプレスのEZ-USB FX3は既にあって あと他に何が必要でしょうか? ヒト、モノ、カネがそろわないと駄目だ まず、お前じゃだめだから、出来る人を金で雇え >>251 サイプレスで出来るか知らんがgithub上にSTM32でUSB-Ethernetを作る例がある。 stm32-ecm あとはlwip スタック上にSMBでも積めば可能だと思う。 道のりは果てしないが君くらいのスケベ根性ならなんとかなると思う。 幸運を祈る。 1つのデバイスが複合デバイスを名乗るんじゃなくてHUB+複数デバイスを 名乗ることって可能なんでしょうか。 複合デバイスには対応してないんだけど、HUBには対応してるHOSTなんで… 一つのデバイスでハブの下に複数のデバイスが繋がってるように見せたいんでしょ >>255 USB HUBだって所詮デバイスの一つだし技術的には出来るんじゃない? ひょっとすると仕様上出来ないUSBデバイスコントローラがある可能性はあるが ネット上に落ちてるUSB Complete 4th Editionを斜め読みしてみたらハブはfunctionの一種で composite deviceは一つのアドレスで複数のfunctionを持つとなってるから 少なくとも規格的には可能なんだろうね 知らんけど ん? >>255 は「ハブを含む複合デバイスは可能か?」と聞いてるのではないのか? compound deviceのことを言ってるのかな? HUBとして振る舞い複数の機能を提供するデバイスをcompound deviceというのか。一つ勉強になった compound deviceのサンプルコードとか見たことないな。あるところにはあるのだろうか composite deviceならあるみたいだが。ない場合気合いと根性で実装する事になりそう >>262 hub部分は普通専用IC使うからコード要らんしそれ以外は単なる単体USBデバイスだから Device descriptorのiManufacture,iProduct,iSerialNumberにそれぞれ0入れて その項目を使用しないって指定するのはどこかのローカルルールでしょうか? USB2.0specにはそんな事書いていなかったのですが?(3.0も) >>264 2.0と3.0の仕様書のstring descriptorの説明に明記されてるね string descriptorがoptionalだから、 string descriptorを使用しないデバイスではゼロにする必要がある こういう電気回路とか工作素人なんですが、 アルミサッシを通せるUSBケーブルを自作しようと思ってます。 秋月かどっかでUSB端子とリボンケーブルを買ってきて、作れるようなものでしょうか? USBケーブルの使いみちはUSBカメラです。 アルミサッシを通せるLANケーブルが市販されてるから、それを流用するのが 一番よさそう まあ、今ならUSBで100W取り出せるからな PDなら肉くらい余裕で焼けるだろ USBの伝送路(NRZIとか送受信の切り替え)について解説されている資料ってあまりないよな ディスクリプタがどうの的な資料はいっぱいあるが usb.orgに行けばリファレンスあるからねえ。二次的な資料はいらないのかも。 公式の見てもタイミングチャートとかほとんどなくね? >>275 その手のレイヤーはコントローラでやるからコントローラ自体を作るような人でないとほぼ必要ないし、そういう人は>>276 も書いてるようにusb.org見るだろうしね ・完成組み立て済み ・市販されている ・高くない ・USB HOSTとUSB FUNCTONを各1ずつ搭載。出来ればコネクタ実装済み みたいなマイコン基板ってあるかな? >>282 ラズパイゼロってUSBコントローラーを2機積んでいるの? 調べてみたけどOTG 1機に見えるんだけど ttps://www.raspberrypi.org/documentation/hardware/raspberrypi/schematics/rpi_SCH_Zero_1p3_reduced.pdf 2つあるUSBコネクタのうち信号線が繋がっているのは1つのようだが? パソコンのポートに挿すとWindows 認識するけどHUB経由だと認識しないってのは一般的にどう切り分けるべきなんでしょうか? STM32F072でHAL利用です。 >>288 スレッド管理人の米沢です >288 さんの質問は「STM32F072をWindowsパソコンのポートに接続すると 認識するが、HUB経由でつないだ場合は認識しなくなる」と言うことですね このスレの >1-280 を探してみましたが同事象と思われるものは見つかりません でした 引き続きこちらの回答を募集しています まさかと思うがパソコンとUSBハブの間を繋いでるのがUSBケーブルじゃなくて充電ケーブルというオチ? バスパワーのデバイスをバスパワーのハブに繋ぐと認識しないというのはよくあるけど そういう基本的なことではないよな そもそもHUBはちゃんと仕事しているのか? USB2.0以降のロゴ取得品なら大きな問題はないと思うが 古い奴とかロゴがない奴だとUSB Compliance test failureの可能性も あとSTM32の場合 http://rio2016.5ch.net/test/read.cgi/denki/1528514691/216 なんて話を見たことがある。自分は真偽を確認していないので参考までに つかUSBのエニュメレーションにからむトラブルはUSBアナライザ等の 物理層をキャプチャ出来る装置がないとドツボに填る可能性が高い(経験者) 市販されているUSB HUBの中に電源のみON/OFF出来る物が存在するけど あれってUSB規格に準拠しているのだろうか USB3.xデバイスを電気的にON/OFFしたいのだが 作業場が何故焦げ臭いのか原因を突き止められない無能現場監督もどきジジイ(笑) あれー?なんだろー、焦げ臭いなぁーなんだろうなーって作業場をノロノロウロウロするだけの様子は痴呆症の徘徊のようだ(笑) そんな奴がよく他人様を小バカにできるよな(笑) 無駄に年取ってないで謙虚に生きたら?(笑) USBポートを横に二つ並べる時ってどのくらいの間隔を開けるかって 規格で決まってたりするんですか?USB Type-Cです 首が90度曲がってるようなコネクタも多いから ほどほどに間隔空けてないと後悔すると思う 端子の金具はμm単位でサイズが決まっているけど、金具を包む外装は言及されて いないから自分が困らなければ間隔短くても良いんでない USB3.xなHUBとかUSB3.x to SATAが載った物を作りたいけど チップの入手もファームウェアの用意も基板の設計・製造も難易度高いぜ ASMほげほげみたいなやつか 一番の安定入手ルートは製品買ってきて剥がすことやな チップだけあってもデータシートやSDKや基板デザインガイド等がないと手に負えそうにない SSを見よう見まねは流石にちょっと ぐぬぬ。2層でSuperSpeed伝送路の設計例がめっちゃすくない 大抵4層や6層推奨とか書いてある。4層や6層は高いねん >>306 一応こんな物はある USB3.0 HUB Reference Board Design Kit (2-Layer) ttps://www.renesas.com/jp/ja/software/D3015099.html ←ダウンロードは要登録 しかしどのように設計すればいいのかは書いていない >>307 板厚薄くすれば何とかなると思う。 普通に1.6mm位の板厚だと層間が大きすぎて、インピーダンス下がらない。 ちょっと質問。USB2.0の仕様書より 1.ホストに関する10章のエラーハンドリングの所 > 10.2.6 Transmission Error Handling > If the error count for a given transaction reaches three, the host retires the transfer. > 〜 って書いてあるけど具体的にどのようなパターンで再試行するのかとか転送をあきらめた後にどうするかは書いてないように見える。実装依存? 2.1つのフレームに入れられるトランザクションの数って決まっていた気がするけど何処に書いてある? 例えばFSの場合インタラプト転送は1つまでだったような Universal Serial Bus Specification Revision 2.0 Revision 2.0 April 27, 2000 のP.19 4.5.2 Error Handling A USB Host Controller will try a transmission that encounters errors up to three times before informing the client software of the failure. The client software can recover in an implementation-specific way. Table 5-1. Low-speed Control Transfer Limits ...................................................................................................41 Table 5-2. Full-speed Control Transfer Limits ....................................................................................................42 Table 5-3. High-speed Control Transfer Limits...................................................................................................43 Table 5-4. Full-speed Isochronous Transaction Limits........................................................................................45 Table 5-5. High-speed Isochronous Transaction Limits ......................................................................................46 Table 5-6. Low-speed Interrupt Transaction Limits ............................................................................................49 Table 5-7. Full-speed Interrupt Transaction Limits .............................................................................................50 Table 5-8. High-speed Interrupt Transaction Limits............................................................................................51 Table 5-9. Full-speed Bulk Transaction Limits ...................................................................................................54 Table 5-10. High-speed Bulk Transaction Limits................................................................................................55 サイバーガジェット CY-NSP4WCL VID:0x0413 PID:0x503F ググったらこのVIDはLeadtekらしい。リードテックが非ライセンスコントローラなんて作っているの? それともひょっとして・・・ >>310 ありがと。その表の前後を確認してみたけどそれっぽい記述は見あたらないような。例えば ttps://www.renesas.com/jp/ja/solutions/key-technology/connectivity-wired/usb/usb1-1.html >USB1.xでは一つのエンドポイントに対するInterruptまたはIsochronous転送は1 フレーム(後述)に1回以上は行えませんでしたが の根拠は何なんだろうか あと3回とは書いてあるけど試行パターンは書いていなくね? ・同フレーム内で再試行 ・次のフレームで再試行 ・しばらく経ってから再試行 などが考えられると思うけど仕様的にはどれでもかまわないのかな USBハブが何しているのか書いてある資料って全然ないのな フルスピードハブについて調べているんだがusb.orgにあるUSB 2.0のpdf見ても 規格値がずらずら並んでいるだけで信号がどのように流れるのかとかよく判らん しかもハイスピードがちょくちょく混じって面倒 USBハブコントローラチップのデータシートの方がよくないか? >>313 USBの規格書はUSBの信号特性とかプロトコルを記述したものなので、実際にHUBの 中でどんな処理をやっているかが書かれているのは>>314 が言うとおりコントローラ チップのデータシートとかマニュアルだよ 規格書で見なきゃいけないのは 本体の奴もだけど デバイスクラス定義のHubの奴な USB Type-CのCCって5.1kで終端という事になってますが、抵抗の誤差はどこまで 許されてるのか資料を探しても見つけられません 間違って5.11k ±1% を買ってきてしまったんですが、仕様が5.1k 誤差10%なら 5.11kでも問題なく使えるだろうと思ってるんですが。 10%の場合と20%の場合があったと思う microchipの資料で見た DOCを見ても確信が得られなかったので質問させて マウスに対してset_protocolを送りたいんだけど、送るタイミングはinterfaceの 情報が得られた後ならいつでもいいの? interface情報を取得してbootProtocolに対応したマウスである事を確認した直後に set_protocolを送ってんだけど、reportがbootProtocolにならない (ちゃんとbootProtocolになるマウスもある) マウスがset_protocolを無視してるだけなのか判断つきかねてます USBデバイスの電源について質問です。 最近は電源スイッチ付きUSB-HUBとかUSB電源スイッチアダプタとか売ってると思いますが、 それらはスイッチでVCCをオープンにしてオフにする仕組みになっているようです。 例えば、そのオフ状態で、USBホスト側からD- D+信号が来た場合、オフ状態のデバイスにD- D+ポートに電圧が発生し、 デバイスで何も対策してない場合、電圧が最悪VCCに回りこむ恐れがあると思いました。 実際、スイッチをオフにしても電源が入るデバイスもあるようです。 そういうデバイスの場合、D-とD+信号線にクランプ回路等の保護回路を挟んだ方が良いでしょうか。 >>321 アタッチのトリガーはデバイスによるD+/D-のプルアップかつD+/D-はホストで プルダウンされているので規格通りの通りならそのようなことは起きえないのでは get_report get_protocol get_idle これって3つとも実装必須なんだっけ? ひとつも実装してないのに良く不具合無く動いてたなぁ 既存プロジェクトのMicro Bを type Cに変える場合 (USB 2.0 HSのまま、バスパワー100mA以下) マイコンのD+ <->コネクタD+(表,裏) D- <-> D- VBUS <-> VBUS (表裏4本) GND <-> GND(表裏4本) を繋いでおけば良いのでしょうか? CC1、CC2を5.1kでプルダウンしておいたほうがいい >>323 結局、Windowsが使っていない要求は処理しなくても使えちゃう。 今SuperSpeedなデバイスを作ろうとした場合どんな構成が定番なの? FPGA+SuperSpeedトランシーバとか?解説や作例自体少ないし・・・ ニュー速+板で大ニュースになってる ダイソーの「PD対応」USB付き電源タップ(1100円) PD対応ではなかった [神★] https://asahi.5ch.net/test/read.cgi/newsplus/1667186253/ 324と同じ感じでtypeCデバイスとして500mA使いたいんですが、 複数あるGNDは無警戒に繋いで良いんでしょうか? VBUS側も同様。 それとも、安全にする回路を付ける必要がありますか? 安全回路を見た事が無いので皆さん無警戒に繋いでそうな気がしてます。 デバイス側が無警戒だと、ホスト側は安全回路を付けないと焼けそう。 USB HID のインタラプト転送ってレポートデスクリプタにはINの定義しかないんだけど OUT使っても大丈夫なんだろうか ホストとデバイスの両方で問題なく合意が出来ていれば(データは4byteで、その内訳は こうで、みたいな)別にreport descriptorとかなくてもいいんかな ちょっとググググッてみたらUSBプロトコルアナライザって2週間1万強っていうわりと妥協できる 金額でレンタルできるっぽいんだけど案の定法人しか相手にしてくれないんだよなぁ 安いLINE EYEの奴でも購入15万とかはさすがに個人では無理 read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる