최근에는 대부분의 주변기기가 USB 인터페이스를 이용해서 다양한 종류의 USB 장치가 컴퓨터에 연결되는 경우가 많다. 그런데 항상 아답터를 꼽아놓으면 사용하지 않는 경우에도 전력을 소모하게 되고 그렇다고 매번 사용할 때 마다 플러그를 뽑는것도 귀찮다.

그래서 컴퓨터의 USB포트에서 나오는 전원을 일종의 스위치로 이용해서 컴퓨터가 켜지면 자동으로 USB 장치의 전원을 켜 주고 컴퓨터가 꺼지면 USB 장치의 전원도 같이 꺼지는 회로를 생각해 보았다.

바로 이전의 포스트에서 만든 110/220V 전원 스위칭 모듈(이것 역시 저렴한 비용으로 간단하게 만들 수 있다.)을 사용하면 별도의 추가 회로 없이 USB 케이블에 커넥터만 만들어 주는 것만으로 쉽게 해결된다. 물론 아무 소프트웨어도 필요없고 단순히 USB 포트의 5V 전원만 사용하기 때문에 (너무나 당연한것이지만) OS의 종류나 컴퓨터 기종에 아무 상관없이 모든 경우에 사용할 수 있다. :)


110/220V 전원 스위칭 모듈을 만들었다면 케이블 제작에 필요한 부품은 다음과 같다.

- USB type A male connector

- USB type A female connector

- 2 pin connector

USB 커넥터의 핀 순서를 먼저 정확하게 확인해준다.

Male connector의 핀 순서이다.

Female connector의 핀 순서이다.

케이블은 D+, D- 신호는 그냥 pass-through하고 Vcc와 GND만 전원 스위치 모듈의 입력으로 넣어주면 된다.



이렇게 만든 케이블의 오른쪽 커넥터는 컴퓨터에, 왼쪽 커넥터에 USB장비 케이블을 연결하고 2 pin 커넥터를 전원 스위치 모듈의 입력에 연결해 주면 된다. 그리고 해당 USB장비의 아답터를 전원 스위치 모듈에 꼽아주면 된다.

위의 그림처럼 연결되어 있는 것을 아래와 같이 연결해주면 된다.

그리고 어짜피 컴퓨터 전원을 사용하는 장비는 이 커넥터가 필요없고 외부아답터를 사용하는 장비는 USB포트에서 많은 전류를 끌어쓰지 않기 때문에 전원 스위치 모듈의 opto-coupler가 약간의 전류를 먹는 정도는 문제가 되지 않는다.

* 컴퓨터의 BIOS 셋팅에서 컴퓨터 전원이 꺼져도 USB포트로 전류를 흐르게 할 수 있는 옵션이 있는데 이 옵션이 선택되어 있으면 이 회로는 동작을 하지 않는다. 즉, 컴퓨터가 꺼져도 USB장비의 전원은 꺼지지 않게 된다.

Posted by nautes

컴퓨터의 USB포트의 케이블에 메인보드에 꼽혀있지 않거나 파워가 불안정해서 USB포트로 공급되는 전원이 5V보다 상당히 높거나 낮으면 그 포트에 꼽혀 있는 장치가 제대로 동작하지 않거나 심한 경우 USB 메모리의 내용이 망가질 가능성도 있다.

그래서 Linear Technology의 LTC 2912 Voltage monitor chip을 사용한 USB 전압 테스터를 설계 해 보았다.
3개의 LED를 사용하여 정상전압인 경우 녹색의 LED가 들어오고 비정상 전압인 경우 Over Voltage, Under Voltage를 알려주는 빨간색 LED가 들어오게 된다.

여기서 R1, R2, R3는 저항값 및 오차범위를 지켜줘야 한다. (이 부분에서 전압을 divide한다.)


PCB로 뜨면 위의 그림처럼 조그마한 USB 메모리 스틱 크기로 만들어 줄 수 있다.
Posted by nautes

iPhone 3G와 새로 나온 iPod Touch의 경우 케이블을 컴퓨터의 usb포트에 연결하거나 같이 포함되어 있는 충전기를 사용하지 않으면 충전이 되지 않는다.

원인은 변경된 충전회로 때문이다.


200811222311.jpg

위 사진은 iPhone의 회로인데 빨간색으로 표시 된 칩이 Linear Technology의 LTC 4066 USB Power Controller and Li-Ion Linear Charger이다. 즉 아이폰의 배터리 충전과 사용을 컨트롤하는 칩이다.

여기서 문제는 USB 전원을 사용할 경우가 되는데 USB포트에 500mA의 전류가 공급되는 경우에만 USB 전원을 사용하게 된다. 하지만 USB 케이블을 컴퓨터에 연결하는 것 만으로 컴퓨터가 바로 500mA를 공급해 주는게 아니고 enumeration이라는 과정을 거치며 USB장치(여기서는 아이폰)와 컴퓨터간에 정해진 절차(즉 컴퓨터가 아이폰에게 '너 전류가 얼마나 필요해?'라고 물어보고 아이폰이 500mA라고 알려줘야 그에 맞는 전류를 공급해준다.)를 거친 후에야 컴퓨터가 그 포트에 500mA의 전류를 흘려주게 된다. 이 절차 후에 컴퓨터가 충분한 전류를 공급해 줄 때부터 LTC 4066은 USB 전원을 사용해서 충전을 하게 된다.

그런데 일반 외부 아답터를 사용하는 경우는 처음부터 필요한 전류를 항상 공급해주지만 LTC 4066에 그 사실을 알려주지 않으면 LTC 4066은 USB 포트의 전원을 사용할 수가 없다. 이 사실을 알려주기 위해서는 LTC 4066의 HPRW(pin 13)과 WALL(pin 20) 핀을 1.25v이상으로 풀-업(pull-up) 해주면 된다.

200811222322.jpg


200811222323.jpg

아이폰에서는 이 두 핀이 USB 커넥터의 D+, D-에 연결되어 있다. 즉 USB 케이블의 +(USB커넥터의 1번 핀)에 5V를 공급해주고 D+, D-핀을 1.25v이상으로 풀업 해 주면 아이폰은 USB 포트를 통해 공급되는 전원을 사용해서 충전을 할 수 있게 된다.

200811222326.jpg

즉 아래와 같은 회로를 만들어주면 된다.


iphone-chg.jpg


다음 포스트에서 실제 제작방법을 볼 수 있다.

(DIY) 아이폰/아이팟 터치 충전회로 제작.

Posted by nautes

무선랜을 사용하는데 거리가 멀어지면 수신감도가 급격하게 떨어져 버린다. 그래서 신호강도가 어느 이하로 떨어지면 연결 자체가 유지되지 못하고 붙었다 끊어졌다를 반복하게 된다.

현재 위치에서의 무선 상태는 D-link DWL-G122를 사용하면 공유기가 아예 안보이고 macbook pro의 에어포트를 사용하는 경우 안테나 방향(즉 액정화면이 어느쪽을 보고 있는가), 기온, 외부의 전파 잡음등에 따라 연결이 되다 말다 하는 정도라 안정적으로 인터넷에 연결할수가 없었다.

예전부터 가지고 있던 외부 안테나와 외부안테나 커넥터가 있는 Orinoco PCMCIA 무선랜카드는 맥에는 expresscard 34슬롯밖에 없어서 사용할 방법이 없었다. 2.4GHz 외부안테나를 몇개 가지고 있지만 다들 RP-SMA female 타입의 커넥터를 가지고 있고 RP-SMA male to MMCX male cable로 Orinoco에 연결을 하게 되어 있다.

그래서 일단 USB무선랜(DWL-G122)에 외장 안테나를 붙여보기로 마음을 먹었다. 인터넷을 뒤져본 다음 케이스를 열어보니 안테나 부분은 다음과 같았다.

사용자 삽입 이미지

사진의 가운데가 외부 안테나를 연결할 수 있는 커넥터이고 오른쪽의 가운데에 파란색 선이 그어져 있는 부품이 칩 안테나이다. 다만 문제는 U.FL female타입의 커넥터라 현재 가지고 있는 MMCX 커넥터를 사용할 수 없었다. 다른 방법으로는 패턴의 녹색부분을 긁어내고 직접 케이블을 납땜하면 되는데 그것 보다는 그냥 ebay에서 U.FL male to RP-SMA male cable을 주문하기로 했다. 이 케이블이 배달되면 위의 회로에서 칩 안테나만 뗘 내고 케이블을 커넥터에 꼽아주기만 하면 된다.

사용자 삽입 이미지

일단 주문한 케이블이 오려면 약 2주정도 기다려야 할 거 같아 집에서 구할 수 있는 재료만으로 간단하게 무선신호 감도를 높일 수 있는 반사판을 만들었다.



재료는 적당한 크기의 골판지 박스, USB확장 케이블, 테입, 알미늄 호일만 있으면 된다.
먼저 골판지를 적당히 자르고 가운데 USB 확장케이블을 꼽아 줄 수 있는 구멍을 내고 그 구멍 뒤쪽을 타원형으로 잘라준다. 그 타원형 부분에 종이를 둘러주고 종이의 뒷면에 알미늄 호일을 붙여주면 된다.
말로 설명하는 것 보다 만들어 놓은 사진을 보면 쉽게 이해가 될 것이다.

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

순전히 집에 있는 재료만으로 만들어서 별도의 재료비는 하나도 들지 않았다.
컴퓨터에 연결해서 확인해 본 결과는 놀랄만큼 좋았다. 무선 신호 계측기가 없어서 수치적으로 비교할수는 없었지만 Macbook pro에서 잡히지 않던 무선랜이 안정적으로 연결되었고 연결이 끊어지는 현상도 나타나지 않고 있다.
원래 omni-directional(특별히 방향성 없는) antenna의 뒤쪽에 일종의 반사판을 붙여 directionl antenna로 바꿔준 것이기 때문에 상자의 방향을 돌려가며 가장 신호 감도가 좋게 나오는쪽으로 놓고 사용하면 된다.

지금 현재만으로도 꽤 만족할만한 결과가 나와서 주문한 커넥터 케이블이 도착한 다음 외부 신호증폭 안테나를 사용하고 뒤쪽에 반사판을 붙였을 경우의 성능향상이 크게 기대된다.
추후 그 결과에 대해서도 여기에 업데이트 할 예정이다.

* Mac 사용자의 경우 D-link는 DWL-G122용 맥 디바이스 드라이버를 지원하지 않는다. 대신 Ralink에서 2500시리즈용 mac os x 드라이버를 설치하면 된다. 다운 받아보면 10.3/10.4용 드라이버만 있는데 10.4를 설치해도 10.5에서도 잘 동작한다. 현재 os x 10.5.3을 사용하고 있는데 별다른 문제는 없었다.
Posted by nautes

간단한 임베디드 보드를 만들거나 회로 실험을 할 때 별도의 아답터가 있어야 하면 귀찮기도 하고 잊어버리고 놔두고 가기라도 하면 낭패가 아닐 수 없다.
그래서 대용량의 전류는 무리지만 웬만한 보드정도는 그냥 pc에서 바로 전원을 받아 사용할 수 있는 방법들을 소개한다.

1. USB를 이용하는 방법
사용자 삽입 이미지

컴퓨터의 USB 포트에서 최대 500mA까지의 전류를 사용할 수 있다.

사용자 삽입 이미지
USB커넥터는 그림에서 보듯이 4핀으로 되어 있는데 양 끝쪽 두 핀(1-Vcc, 4-GND)만 연결해주면 된다.

2. PS/2 (키보드, 마우스 포트)를 이용하는 방법

사용자 삽입 이미지

PS/2는 USB 이전에 마우스와 키보드를 연결하는 포트이다. 최근 대부분의 경우 USB를 많이 사용하지만 그래도 거의 모든 데스크탑에는 아직도 PS/2포트가 달려있다. 이 포트에서는 최대 275mA까지 전류를 사용할 수 있다. 다만 주의할것은 키보드나 마우스와 같이 연결하게 되기 때문에 키보드/마우스가 사용하는 전력을 생각해야 하기 때문에 너무 최대치까지 사용하면 안된다. 여기서는 아래 그림에서 볼 수 있듯이 3번핀을 GND, 4번핀을 Vcc에 연결해주면 된다.
사용자 삽입 이미지

Posted by nautes

처음에 클리앙에 올렸던 글인데 조금 다듬고 정리해서 다시 올린다.

 

사용자 삽입 이미지


* 첨부한 그래프는 HDD로부터 1GB 파일을 옮기는데 걸리는 시간을 비교한 것이다. 단위는 초이기 때문에 짧을수록 성능이 좋은 것임.

IEEE 1394와 USB, 서로 유사한것 같은데 두개의 차이를 정확히 아는 사람이 많지 않은거같아 나름대로 정리해 보겠다.

현재 시장 상황을 보면 USB의 압도적 승리이다. 물론 그렇다고 IEEE 1394가 없어진건 아니지만 거의 모든 컴퓨터에 USB는 기본 장착되어 있는데 비해 IEEE 1394를 쓰고 싶으면 따로 카드를 구입해야 하는 경우가 많다.

1394가 usb에 비해 덜 사용되는 가장 큰 이유는 가격때문이다. 물론 업체의 프로모션/마케팅 영향도 전혀 없지는 않겠지만.

USB는 master-slave 구조라 usb host controller에서 모든 통신을 관리하는데 비해 1394는 모든 디바이스에 controller가 있어서 각각이 master/slave가 될 수 있다. USB 디바이스는 대부분 클라이언트로만 동작하면 되니까 칩셋의 가격이 저렴할 수 있다.

USB는 기본적으로 컴퓨터(USB host controller)가 없으면 USB 디바이스간 통신이 불가능하지만 1394는 모든 디바이스간 직접 통신이 가능하다.

예를 들어 캠코더와 외장하드를 직접 연결해서 바로 파일전송이 가능하다.

물론 캠코더에 usb host controller를 넣으면 불가능하지는 않지만 그런 경우 가격도 많이 올라가고 1394에 비해 별다른 장점이 없다.

그리고 그 USB포트는 호스트가 되기 때문에 캠코더(호스트)와 하드(클라이언트)는 연결이 돼도 캠코더(호스트)-컴퓨터(호스트)는 연결할 수가 없다. 결국 호스트 포트/클라이언트 포트를 따로 둬야 하는 경우가 발생하는거다. (물론 USB 진영에서도 이런 문제를 해결하기 위해 USB OTG(On The Go)를 만들었지만 아직까지 그렇게 널리 사용되는거 같지는 않다.)

그게 USB로 컴퓨터 2대를 직접 연결해서 파일 전송이 안되는 이유다. 둘 다 USB 호스트이기 때문이다. 하지만 1394를 사용하면 컴퓨터 2대를 직접 연결해서 파일 전송도 얼마든지 가능하다.

XP SP2부터인가는 TCP/IP over 1394를 지원해서 그냥 케이블만 꼽아주면 바로 컴퓨터간 네트웍이 구성된다. 집에서 책상에 있는 pc 2~3대 연결하는 경우라면 사실 fast ethernet 보다 1394 허브 구해서 연결해 주는게 전송속도가 훨씬 빠르다.

또한 1394는 각 디바이스마다 controller를 가지고 있기 때문에 컴퓨터에 부하를 최소화 할 수 있기 때문에 스펙상의 최대 전송률은 USB2.0이 더 빠를지 몰라도 실제 전송률은 1394가 더 빠르다.

참고로 1394b는 800 Mbps 전송이 가능하지만 이것 역시 아직은 많이 사용되지 않아서 일반적으로 1394라고 이야기하면 400 Mbps를 전송할 수 있는 1394a를 말한다. 여기서 비교하는 USB는 USB 2.0 high-speed 전송을 말한다.


PS1. Windows Vista부터는 다시 TCP/IP over 1394 지원을 빼 버렸다고 한다. 이해할 수 없는 놈들 -.-;

PS2. 어느 분이 위에 그림이 Mac 기준인데 intel-based mac에 USB 버그(?)가 있어서 USB 전송속도가 떨어지기 때문에 자료의 신뢰성에 의문을 가졌기에 구글신에게 물어봤다.


Mac OS의 USB protocol stack에 약간의 버그가 있는건 확실한거 같다.

High speed ISOCH transfer에 문제가 있다는데 그건 ISOCHRONOUS(등시성) 전송 모드에서 발생하는 것이다. 등시성 전송은 일정한 속도로 도착해야만 하는 스트리밍이나 리얼타임 데이터 전송에 사용하는 전송 모드이다.

Mass Storage(대용량 저장장치) 클래스는 USB의 4개의 전송모드 중 BULK 모드만 사용하거나 (USB spec. for mass storage devices v1.0) 아니면 CONTROL/BULK/INTERRUPT 모드만 사용 (USB spec. for mass storage devices v1.1)한다.

결론적으로 Mac OS에 있다는 버그는 하드디스크 전송에 있어서는 관계가 없다.

버그가 문제가 될 수 있는 부분이라면 USB 웹캠같은 장치들에서 발생할 가능성이 있을수도 있겠지만....


IEEE Microprocessor Standards Zone

USB Organization

Posted by nautes

인터넷은 정말 무한한 정보의 바다이다. 잘 찾아보면 전 세계에서 다양한 사람들이 하고 있는 재미있는 것들이 넘쳐난다.
그 동안 NDSL을 구입해 놓고도 아직 그 흔한 닥터(?)도 안 샀고 테트리스 팩 하나로 버티고 있으면서 뭔가 embedded system에 활용할 방법을 찾고 있었는데 마침 적당한 인터페이스 보드를 발견했다.

사용자 삽입 이미지

사진에 있는 보드가 NDS의 DS slot에 장착하는 dserial이다. 8051 호환 마이컴과 RS-232, USB client(2.0 Full speed), GPIO, Tilt sensor(Wii mote에서도 사용된 기울기 감지 센서)가 장착되어 있다.

좀 더 상세한 자료와 소프트웨어는 http://www.natrium42.com/wiki/Main_Page 에서 찾아보면 된다. 하드웨어는 완성되었지만 라이브러리는 아직 개발중이라 시리얼 인터페이스와 간단한 IO만 코드가 완성되어 있고 나머지 인터페이스 라이브러리는 아직 개발중인거 같지만 자신이 능력이 있으면 직접 작성해서 사용하면 된다.
라이브러리가 완전해지면 응용할 수 있는 범위는 상당히 넓을거 같다.

현재까지만 가지고도 GPS, Servo motor, MIDI등을 NDS에 연결한 예제를 프로젝트 홈 페이지에서 확인할 수 있다. 보드는 v2.0이 지금 예약주문을 받고 있는데 나도 조만간 하나 구입해서 뭔가 뚝딱거려 볼 예정이다.
Posted by nautes

이전버튼 1 이전버튼