:::: MENU ::::
Posts tagged with: USB

V-USB

V-USB is a software-only implementation of a low-speed USB device for Atmel’s AVR® microcontrollers, making it possible to build USB hardware with almost any AVR® microcontroller, not requiring any additional chip.

위 설명처럼USB하드웨어가 없는 AVR에서 USB를 소프트웨어로 구현하는 코드. V는 Virtual 인듯

https://cortexprog.com/ 이런 프로젝트도 있다.



lsusb 명령어를 Mac OS에서 사용하기

리눅스에 있는 lsusb를 사용할 수 있는 프로그램: https://github.com/jlhonora/lsusb

다음과 같이 brew로 인스톨한다.

brew update && brew tap jlhonora/lsusb && brew install lsusb

다음과 같은 옵션으로 사용 가능.

List USB devices
  -v  Increase verbosity (show output of "system_profiler SPUSBDataType")
  -s  [[bus]:][devnum]
       Show only devices with specified device and/or
       bus numbers (in decimal)
  -d  [vendor]:[product]
       Show only devices with the specified vendor and
       product ID numbers (in hexadecimal)
  -p  Display manufacturer names in parentheses
  -t  Dump the physical USB device hierarchy as a tree
  -V  Show version of program
  -h  Show usage and help

USB 하드웨어 디자인 가이드

USB 하드웨어 디자인 가이드

  • GND, 샤시에 FB
  • 15 Ohm Termination resistor
  • ESD 인증에 문제가 있을 경우 protection device – NXP IP4220CE6
  • Common mode choke – Murata plw3216s900sq2t1
  • 2개의 USB 신호쌍은  parallel 하게하며, 간극은 최대 150 mil을 넘지 않도록
  • 신호선의 최대 길이는 18인치를 넘지 않도록

참고자료


USB 컨넥터와 핀맵

USB 1.0 ~ 3.0

  • USB 1 released in 1996 with speeds of 1.5 Mbps for Low-Bandwidth and 12 Mbps for High-Bandwidth;
  • USB 2.0 release in 2000 is the most used usb port at the moment at supports a maximum speed of 480 Mbps;
  • USB 3.0 released in 2008 in the latest standard who can support speed up to 5Gbps.

컨넥터의 종류는 7가지나 된다. 아래 그림을 통해 USB 컨넥터와 핀맵을 확인

usb_pinout

참고: http://www.usbpinout.net/


USB 디바이스의 VID, PID

USB 디바이스 제품을 개발하려면 필요한 것이 USB 디바이스의 VID(Vendor ID), PID(Product ID)이다. 여기서 VID는 제조사의 ID이고, PID 제조사의 제품의 ID로 이해할 수 있는데 각각 2바이트로 VID-PID의 쌍으로 수많은 USB 디바이스와 구별이 가능하게 된다.  VID, PID는 USB Implementers Forum, Inc.(http://www.usb.org)에서 발급을 하는데 문제는 발급하는 데 드는 비용이 $5,000이다.

발급 신청서 링크 – http://www.usb.org/developers/vendor/VID_Only_Form_withCCAuth_010113.pdf

이 발급 신청서에 보면 다음과 같이 발급된 VID는 다른 사람에게 판매할 수 없다고 되어 있다. 예외 조항은  “special circumstances, and then only upon prior written approval by USB-IF”

The company set forth above hereby applies for a USB Vendor ID Number and agrees to the following: The USB Implementers Forum is the authority which assigns and maintains all USB Vendor ID Numbers. Each Vendor ID Number is assigned to one company for its sole and exclusive use, along with associated Product ID Numbers. They may not be sold, transferred, or used by others, directly or indirectly, except in special circumstances, and then only upon prior written approval by USB-IF. Unauthorized use of assigned or unassigned USB Vendor ID Numbers and associated Product ID Numbers are strictly prohibited.

하지만 MCS에서는 PID를 9.95유로에 판매(링크)를 한다. 그리고 openmoko의 경우 오픈소스하드웨어에 한하여 PID를 사용할 수 있게 하고 있다. http://wiki.openmoko.org/wiki/USB_Product_IDs  이 리스트를 보니, Marlin, Pinoccio, SparkCore, Tessel등이 openmoko로 부터 PID를 받은 것을 알 수 있다.

각 업체들이 받은 VID, PID는 http://www.linux-usb.org/usb.ids  링크를 참고. 그리고 PC에 연결된 디바이스의 VID, PID를 확인하려면 windows의 경우 장치관리자에서 확인이 가능하다.  

Mac OS에서는 “이 Mac에 관하여 > 개요> 시스템 리포트의 USB” 항목에서 확인이 가능하다.


USB 기반의 Microcontroller


USB 기반의 Microcontroller 링크