:::: MENU ::::
Posts tagged with: serial to USB

중국산 FTDI 보드 개조

Silab기반의 Serial to USB보드는 문제가 있어서 FTDI 기반의 보드를 구매하려다 보니, Sparkfun사의 보드는 18,000원이나 한다. 그래서 디바이스 마트에서 구매한 4,000원 짜리 중국산 보드.   뒷면에 점퍼로 3.3V로 변환이 가능하다고 해서, 당연히 TXD 시그널도 3.3V 라고 생각을 했는데, 5V 레벨이다. ㅠㅠ

그냥 USB로부터 5V 입력을 VDDIO(#4)에 같이 연결하고 3V3OUT(#17)를 출력에 연결을 해놨는데, 칩을 떼고 VDDIO에 연결된 5V패턴을 자르고 3V3OUT을 연결하면 시그널 레벨들도 3.3V가 된다.


CP2104 레퍼런스 회로도

CP2014는 USB to UART bridge 칩이며, 데이터 시트에 보면 다음과 같은 레퍼런스 회로가 있다. REGIN 핀은 레귤레이터 입력핀인데, 이 회로도에서는 여기에 VBUS핀과 같이 연결을 해 놓고 있다. CP2104의 TX, RX가 시스템의 MCU의 RX, TX와 연결이 되어 있는 경우에는  일반적으로는 USB 케이블을 연결하는 순간 VBUS와 REGIN에 전압이 가해지면서CP2104의 TX값이 low로 되면서 시스템 MCU의  RX값이 바뀌게 된다. 따라서 시리얼 입력을  처리하는 루틴이 제대로 동작을 하지 않을 수 있다. 해결책은 REGIN의 입력을 VBUS가 아닌 시스템 전원으로 바꾸면 해결이 된다.


아두이노 Serial to USB 사용하기

원본소스는 Mac에서 \Resource\Java\hardware\arduino\firmware\atmegaxxu2 아래에 있다. arduino-usbdfu 또는 arduino-usbserial 를 사용한다. 이 소스에는 USB 프레임워크인 LUFA(Lightweight USB Framework for AVRs)가 빠져있으므로 http://www.fourwalledcubicle.com/LUFA.php 에서 다운로드한다. 다운로드한 LUFA 폴더를 arduino-usbserial 폴더와 같은 위치에 복사한다.

make 파일에서 다음과 같은 내용을 수정한다.

LUFA_PATH

# Path to the LUFA library

LUFA_PATH = ../

MCU

MCU = at90usb162  #atmega16u2와 pin to pin 호환임

컴파일된 hex파일은 avr isp등으로 write하면 된다.

이렇게 작업한 내용은 https://github.com/jbkim/usbserial