본문 바로가기

메이커활동/HW&SW

FT245BM 을 사용해 만든 간단한 USB through Led On/Off Program

인터넷에서 공개된 있어서 기본 소스가 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.)]