루덴스코드 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