루덴스코드 Blog

인터넷에서 공개된 있어서 기본 소스가 Visual Basic 으로 되어 있는 것을 사용해서 간단한 Led On/Off & Shifter 프로그램을 만들어 보았다. 내용은 간단하지만 기본적으로 USB 를 사용해서 외부장치를 이용할 수 있게 되었다는 것이 중요하다. 이제 기존의 패리얼포트(예전 구형 프린터 사용 포트)가 없는 노트북에서도 외부에 어떤 장비를 달고 그것을 USB 를 이용해 제어하고, 센서 입력을 받거나 모터 출력을 보낼 수 있게 되었다.

FT245 는 이런 점에서 쉽고 간단한 칩이다. 이것에 MCU를 포함한 새로운 칩들이 출시되었고, 조만간 그런 칩들이 더욱 활개를 칠(?) 것으로 예상된다. 실제로 가격이 있고 없고 별 차이가 없으니 보다 많은 IO 를 가진 칩을 선호할 것이라는 것은 당연한 예상이다.

어쨌거나 간단한 FT245 의 사용법을 익히는 것은 나중에 어떤 식으로 변형되더라도 별 무리없이 사용할 수 있게 될 것이다.

Visual Studio 6.0 에서 작업하였으며 기본 소스는 nexp에서 가져왔다.
[VIA:nexp]

USB 를 사용하기 위한 기본적인 순서는 다음과 같다.

1. 장치를 연다, 초기화 한다.

2. 모드를 설정한다. BitBang, BaudRate

3. 데이타를 쓴다.

4. 장치를 닫는다.



열고 닫는 것은 FT_Open 과 FT_Close 를 사용한다.
모드 설정에는 SetBitMode, 보레이트 설정에는 SetBaudRate, 데이타 쓰기는 WriteByte 를 쓴다. 모두 앞에 FT_ 가 붙어있다.

사용자 삽입 이미지


이렇게 만들어진 프로그램의 모습이다. Init Device 를 클릭하면,

Private Sub Command1_Click()
    If FT_Open(DEVICE_NO, m_DeviceHandle) <> FT_OK Then
        Label1.Caption = "장치 열기 실패"
        Exit Sub
    Else
        Label1.Caption = "장치 열기 성공"
    End If

    If FT_SetBitMode(m_DeviceHandle, &HFF, &H1) <> FT_OK Then
        Label1.Caption = "모드설정 실패"
        Exit Sub
    End If

    FT_SetBaudRate m_DeviceHandle, 57600
End Sub

위와 같이 초기화를 진행한다.

초기화가 성공하면,

사용자 삽입 이미지

장치 열기 성공이라는 메시지가 보여진다.

이제 LED 를 켜고, 끄고, Shift 시킬 수 있다.

Private Sub Command2_Click()
    Dim ret As Long
    'LED Light On
    ret = FT_WriteByte(m_DeviceHandle, &HFF, 1, 0)
End Sub

LED ON

Private Sub Command3_Click()
    Dim ret As Long
    'LED Light Off (0x00)
    ret = FT_WriteByte(m_DeviceHandle, &H0, 1, 0)
End Sub

LED OFF

Private Sub Command4_Click()
    Timer1.Interval = 100
    Timer1.Enabled = True
  
End Sub

LED SHIFT ON

Private Sub Command7_Click()
    Timer1.Enabled = False   
End Sub

LED SHIFT OFF

Private Sub Command6_Click()
    If FT_Close(m_DeviceHandle) <> FT_OK Then
        Label1.Caption = "장치닫기 실패"
        Exit Sub        
    Else
        Label1.Caption = "장치닫기 성공"        
    End If
End Sub

CLOSE DEVICE

Private Sub Command5_Click()
    Dim ret As Long
    Dim data As Byte

    If FT_SetBitMode(m_DeviceHandle, &H0, &H1) <> FT_OK Then
        Label1.Caption = "모드설정 실패"
        Exit Sub
    End If
   
    ret = FT_GetBitMode(m_DeviceHandle, data)    
    Label2.Caption = data    
    ret = FT_SetBitMode(m_DeviceHandle, &HFF, &H1)
End Sub

READ DATA


이런 과정을 거쳐 LED 를 켜고, 끄고, 순차적으로 점멸하도록 만들어보았다. 사실 Visual Basic 은 써보지 않았던 툴이라 익숙하지 않다. 그나마 소스가 이것으로 되어 있기에 이것을 억지로 끼워맞춰가며 프로그램을 해보았다. 다행히 별 문제없이 작동한다. 어떻게 돌아가는지 알았으니 이제 다음엔 Visual C++ 로 작업을 해볼까 한다.




Visual Basic 으로 작성한 FT245 LED 점멸 프로그램이다. 소스는 공개되어 있는 것을 조금 수정했을 뿐이니 공부하기 어렵지 않을 것이다.

[LINK FROM : USB 장치사용 실험시작 – FT245 ]
[LINK THIS : FT245BM 을 사용해 만든 간단한 USB through Led On/Off Program ]
[LINK TO.. :  ]
[LINK ALL. :
USB 를 이용한 제어 실험 - 첫번째, 자료모음 ]
[LINK URL. : http://electoy.tistory.com/134 ]
[MEMO .... : JelicleLim(2008.10.27.)]

Comment +2

USB Convert / Port 장치 PC 연결시 바로 하드웨어 인식이 자동으로 이루어짐

PC 사양 : XP sp3 상태

       

현재 매뉴얼에 있는 대로가 아닌 XP sp3 의 영향으로 USB 연결 후 바로 USB Serial Converter 가 설치되었다. 이것이 제대로 작동하는지 여부를 먼저 살펴보아야 한다.


검사를 위해 브레드보드를 이용, 8개의 데이타라인에 LED를 연결하고 프로그램을 실행시켜 보았다. 대부분의 FT245 를 쓰는 회로는 거의 동일하다. 심지어 외부확장핀까지도 동일하다. 우선 제품을 구입한 회사의 프로그램을 실행시켜보았다. [LINK:M2CV]

인간적으로 너무 심하다. 관련자료도 하나 없이 달랑 보드하나 보내주고는 끝이다. 회사 자료실에도 일반적으로 구할 수 있는 정도의 자료가 전부다. 정작 PC 에서 어떻게 USB 포트를 제어할 수 있는지에 대해서는 전혀 자료가 없다. 물론 FT245 보드가 더 거기서 거기니 직접 FT245 관련 자료를 찾으면 다 알수는 있다. 그럴거면 뭐하려 이 보드를 사나, ...


STEP 1 : Driver 설치

우선 드라이버를 설치해야 한다. 물론 맨 처음 언급한 것처럼 USB로 연결하기만 하면 알아서 USB Serial Converter 라는 것이 설치된다. 별도로 하드웨어 드라이버를 설치하지 않아도 XP sp3 의 경우 별 문제 없이 작동하는 듯 하다.


STEP 2 : 시험용 프로그램

FT245BM_BitBang.exe 프로그램을 실행시켜 보았다. USB 가 연결된 상태에서 다른 외형적 변화는 없지만 연결이 된다는 메시지를 보는 것으로 충분하다. 아마도 별 문제없이 연결은 되는 듯 하다. 이제 다음 단계다. LED 를 붙여서 정말 제대로 되는지를 눈으로 확인해 보는 단계다.


STEP 3 : 보드구성

브레드보드에 LED 와 저항을 연결, 출력신호를 LED 로 확인할 수 있게 한다.

사용자 삽입 이미지


[LINK FROM : USB 를 이용한 제어 실험 - 첫번째, 자료모음]
[LINK TO : FT245BM 을 사용해 만든 간단한 USB through Led On/Off Program]
[LINK ALL : USB 를 이용한 제어 실험 - 첫번째, 자료모음]

USB 장치사용 실험시작 – FT245
http://electoy.tistory.com/133
JelicleLim(2008.10.27)

Comment +0

[START]

USB 를 이용한 기본 실험환경를 만들어 본다.

PC 에서 USB 를 사용해 외부 소형 보드에 연결하고, 보드에 붙어있는 LED 를 켜고 끄는 작업을 진행한다.


[참고사이트]

  1. FTDI 사이트
    1. http://www.ftdichip.com/
    2. USB 사용할 수 있는 칩제조사
    3. Evaluation Board 자료가 있다.
    4. FT245R, FT245BM 에 대한 자료
    5. http://www.ftdichip.com/Drivers/VCP.htm
    6. VCP (Virtual Com Port) Driver URL, D2XX Drivers URL,
  2. DLP Design
    1. http://www.dlpdesign.com/
    2. Visual C++ 사용한 소스코드제공
    3. http://www.dlpdesign.com/usb/usb245.shtml
  3. M2CV (국내회사)
    1. http://www.m2cv.co.kr/
    2. FT245 USB Module
    3. DLP Design 의 DLP-USB232M-G 과 동일
  4. 디바이스마트
    1. http://www.devicemart.co.kr/
    2. FT245 로 검색하면 관련 칩과 모듈이 검색됨

결론 : (잠정적)

회로도와 부품들을 살펴보고 PCB를 제작, 직접 모듈을 제작할 수도 있으나 부품을 구하기가 번거롭고, 제작시 칩형 부품들의 납땜에 에러가 발생할 것이 우려되어 모듈을 직접 구입하여 동작시켜 보기로 한다.


M2CV









DLP Design



FTDI














USB 를 이용한 제어 실험 - 첫번째
http://electoy.tistory.com/132
JelicleLim(2008.10.10)

Comment +0