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