HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2022/07/07

USB HOST機能が欲しいのでワンチップマイコンの GPIOで USB HOST機能を実現する USB HOST機能が欲しいのでワンチップマイコンの GPIOで USB HOST機能を実現する

(FPGAに USBデバイスを接続したいのですが、USB HOSTの通信を実装できないので困っています)

Tags: [FPGA], [電子工作], [Xilinx XC6SLX9], [FPGA 2022]




● USB HOST機能が欲しい

 FPGAに USBデバイスを接続したいのですが、USB HOSTの通信を実装できないので困っています。

 その後、FPGAに USB HOST機能を実装できました。

2022/07/23
USB HOST機能を FPGAに実装する方法、FPGAの GPIOに USB HIDデバイスを接続したい!!
USB HOST機能を FPGAに実装する方法、FPGAの GPIOに USB HIDデバイスを接続したい!!

  FPGAに USB HOST機能を実装して Low Speedの USB HIDデバイスを接続するのら


● FPGAで USB HOST機能

 CQ出版 FPGAマガジン No.2 「USBフル/ロースピード対応USBホストシステムの実装~ハードウェア編~」の元になった記事

オープンソースのIP Coreを利用したUSBシステムの実装

Kenji-Ishimaru / usbhlib

USBホスト・プログラミング - Interface - CQ出版

 OpenCoresで公開されている USBHostSlave IPCore
USB 1.1 Host and Function IP core
 usbhostslave_latest.tar.gz Rev 45 2011-03-18 17:52:17 GMT

 うん、頭が痛くなったので断念。


● FPGAの中に AVRマイコンの coreを入れて AVR USB HOSTを実装する

 いしかわきょーすけさんの製作記事。
USB ホスト倶楽部 - asahi net

 当時はこの AVRの実装をマルパクして Philips LPC2106の ARMマイコンに移植しました。

2004/03/16
OLIMEX LPC-H40(Philips LPC2106)
OLIMEX LPC-H40(Philips LPC2106)

  MOTHER BOARD for LPC-H40(LPC-H2106) and ASM Sample Program.

OpenCores

 >> OpenCoresや GitHubを検索して幾つか動かそうと試しましたが、私でも動かせる AVR coreが見つからなかったので断念。

 ちなみに USBデバイスの場合は V-USBが使えそう。
V-USB
 V-USB is a software-only implementation of a low-speed USB device for Atmel’s AVR microcontrollers


● USBの制御信号の D+ D-の電圧レベルは?

 USB機器への供給電圧は +5Vですが、USBの制御信号の D+ D-の電圧レベルは +3.3Vです。

 なので USBデバイスを接続する FPGAやワンチップマイコンの ICが 5Vトレラントに対応していなくても大丈夫です!

アプリケーションノート 3891 USBの絶縁
USBコネクタには、2本の給電用(VBUSおよびGND)ワイヤと、2本のUSBデータ(D+およびD-)伝送用ワイヤの、4本のワイヤが収容されています。VBUSワイヤは、最大500mAの5V電力を供給します。D+およびD-信号は双方向であり、信号速度12Mbps (ビットセル当り83ns)で動作します。D+とD-の信号電圧は3.3Vです。
 D+と D-の信号電圧は 3.3Vです。


●ワンチップマイコンの GPIOを駆使して USB HOST機能を実装する

● AT90S2313を使う

 いしかわきょーすけさんの製作記事
 >> 半田付けが面倒くさいので断念。

 AT90S2313のお手軽モジュール基板どっかにないか?

 この AVRの実装を元に USBの通信方法を理解する事にしました。

2022/07/17
USBの通信プロトコルを勉強する
USBの通信プロトコルを勉強する

  今まで漠然としていた USBデバイスの通信方法を理解します

● RP2040 Raspberry pi Picoを使う

Raspberry Pi Pico SDK: tinyusb_host TinyUSB Host-mode

sekigon-gonnoc / Pico-PIO-USB

Raspberry pi Pico FAQ

Q: Is RP2040 5V tolerant?
A: No. RP2040 microcontrollers use 3.3V for GPIO.

● ESP32-S2を使う

 ESP32-S2には USB OTG機能が有る。

ESP32-S2 wemos.cc S2 mini

 USB HOST OTG機能の GPIO 19 D-と GPIO 20 D+は USB Type-Cコネクタに普通に配線されている。

USB Device Driver
 TinyUSB stack

 ESP32-S2 board
 GPIO 19 D-
 GPIO 20 D+

・Hardware USB Connection
Hardware USB Connection



● ESP32を使う

 ESP32モジュールが余ってるからそれで作るかな?

sdima1357 / esp32_usb_soft_host
 esp32_usb_soft_host
 esp32 USB-LS pure software host thru general IO pins. Up to 4 HID devices simultaneously.

tobozo / ESP32-USB-Soft-Host
 ESP32 USB Soft Host library for Arduino IDE

ESP32 Series Datasheet  ESP32は GPIOの耐圧に関して記載が無い。

 ESP32の GPIOピンの耐圧?に関する興味深い記事。
ESP32 5V tolerance
Re: 5V tolerance
Postby FiwiDev » Sat Mar 14, 2020 7:57 pm

I've been doing some tests on this lately, and have come up with the following (non-official) conclusions.
Basically, I'm testing with a 1K resistor from 6.4v to an ESP-WROOM-32 on a Devkit module that is powered via USB and running with all I/Os at default states.

Only some of the I/O pins appear to have a "strapping" protection on them (generally pulling the resistor down). The others may barely start to pull a few uA at 6.5vDC.

GPIO 0 - 4.6v
GPIO 1 - 3.4v (driven, TX0)
GPIO 2 - 4.2v (has blue LED on Devkit module)
GPIO 3 - 4.9v
GPIO 4 - 4.6v
GPIO 5 - 6.1v
GPIO 6-11 (reserved for FLASH chip)
GPIO 12 - 4.6v
GPIO 13 - 4.6v
GPIO 14 - 4.6v
GPIO 15 - 4.6v
GPIO 16 - 6.4v (!)
GPIO 17 - 6.4v
GPIO 18 - 6.4v
GPIO 19 - 6.4v
<GPIO 20>
GPIO 21 - 6.4v
GPIO 22 - 6.4v
GPIO 23 - 6.4v
<GPIO 24>
GPIO 25 - 3.9v
GPIO 26 - 3.9v
GPIO 27 - 4.6v
GPIO 32, 33, 34, 35, 36, 39 - 4.6v


● USB HOSTコントローラを使う

● Maxim MAX3421E
 USB HOSTコントローラ IC
 この ICを制御する為の CPUが必要。

MAX3421E SPIインタフェース付き、USBペリフェラル/ホストコントローラ - Maxim Integrated

felis / USB_Host_Shield_2.0
 This is Revision 2.0 of MAX3421E-based USB Host Shield Library for AVR's.

 QMKの USBアダプタでも使用している MAX3421E用のライブラリを使用しています。

2022/03/13
市販のキーボードを無改造で QMK化する QMK USB Converterを作ってみる
市販のキーボードを無改造で QMK化する QMK USB Converterを作ってみる

  QMK firmware QMK USB to USB keyboard protocol converter Pro Micro 3.3V + USB Host MAX3421E

2022/06/04
QMKファームウェアの USB_Host_Shield_2.0のバージョンを 1.1.0から 1.6.1にアップデートする方法
QMKファームウェアの USB_Host_Shield_2.0のバージョンを 1.1.0から 1.6.1にアップデートする方法

  QMK firmware Update USB_Host_Shield_2.0 library version 1.1.0 to 1.6.1

● WCH CH559T
 8051 CPU内蔵の USB HOSTコントローラ IC
 この ICだけで USB HOST機能を実装可能。

8位增强型USB主从单片机CH559
 CH559是一款兼容MCS51的增强型E8051内核单片机

WCH CH559 CH559T USB Development Board Evaluation Board Learning Board HOST/DEVICE

● WCH CH9328
 シリアル通信を USBの HIDに変換する IC(キーボードだけ)

串口转USB键盘芯片CH9328
 CH9328是一款串口转HID键盘芯片

Keyboard Chip CH9328 USB Driver-free Chip TTL Serial Port to HID Analog Keyboard Module Key Input

● WCH CH9329
 シリアル通信を USBの HIDに変換する IC(キーボードとマウス)

串口转HID键盘鼠标芯片CH9329
 CH9329 是一款串口转标准 USB HID 设备(键盘、鼠标、自定义 HID)芯片

● WCH CH9350
 USBキーボードや USBマウスの内容をシリアル通信に変換する IC

USB键鼠转串口通讯控制芯片CH9350
 CH9350是USB键盘鼠标转串口通讯控制芯片

CH9350 USB Serial Communication Contro Module Evaluation Board HID Keyboard Mouse Serial Port Develop For Arduino

Ch9350 mini USB Master-slave Module Mouse Keyboard Scanning Gun Automatic Identification Serial Port Two-wire Connection

Ch9350 Module Hid Keyboard Mouse to Serial Port Virtual Keyboard Scanning Gun to Serial Port KVM


●その他

Monkey USB Keyboard Modified Main Control Board DIY Modified Mechanical Keyboard Notebook Keyboard
 ATMEGA32L

Real USB Keyboard Chip Ic Module HID Large Keyboard Can Be Used as a Game Console Console

Hid to Serial Keyboard Mouse Code Scan Gun to Serial Ch9350 HID2UART Communication Cat

USB Custom Keys Keyboard and Mouse Simulation USB Switch 9-way Shortcut Keys USB Keypad

USB Dual-head Keyboard Mouse Recorder Simulation Button Warcraft Dungeon Adventure Island Script Recording



Tags: [FPGA], [電子工作], [Xilinx XC6SLX9], [FPGA 2022]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

USB HOST機能を FPGAに実装する方法、FPGAの GPIOに USB HIDデバイスを接続したい!!
USB HOST機能を FPGAに実装する方法、FPGAの GPIOに USB HIDデバイスを接続したい!!

  FPGAに USB HOST機能を実装して Low Speedの USB HIDデバイスを接続するのら

USBの通信プロトコルを勉強する
USBの通信プロトコルを勉強する

  今まで漠然としていた USBデバイスの通信方法を理解します

OLIMEX LPC-H40(Philips LPC2106)
OLIMEX LPC-H40(Philips LPC2106)

  MOTHER BOARD for LPC-H40(LPC-H2106) and ASM Sample Program.

AMD Xilinxの FPGA Spartan-6 XC6SLX16のボードを買ってアーケード ゲームを動かす
AMD Xilinxの FPGA Spartan-6 XC6SLX16のボードを買ってアーケード ゲームを動かす

  ALINX AX309 XC6SLX9の中華クローンの XC6SLX16版を購入しました

FPGA Spartan-6 XC6SLX16でファミコンを動かす!
FPGA Spartan-6 XC6SLX16でファミコンを動かす!

  Xilinx FPGA Spartan-6 XC6SLX16 NES clone in ALINX AX309

Xilinxの FPGA Spartan-6で PicoBlaze KCPSM 8 ビット マイクロコントローラーを動かす!
Xilinxの FPGA Spartan-6で PicoBlaze KCPSM 8 ビット マイクロコントローラーを動かす!

  PicoBlaze KCPSM6 in Spartan-6 with ISE WebPack

パソコンと USBで接続して使用する USB 8ch 24MHzロジック アナライザ
パソコンと USBで接続して使用する USB 8ch 24MHzロジック アナライザ

  Cypress EZ-USB FX2LP CY7C68013A使用で内部のバッファ ICに LVC245Aを使用のチョイ性能アップ版




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2022 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/hardware/usb_host_one_chip_cpu/