[BACK]
Bit-Bang���[�h�̎g����
2003.09.09�@�uBit-Bang���[�h���g�����߂̏����Ə����v�̌�������B�o�[�W�����\�L�̓���B
2003.07.08�@�u����3�FLCD����v��lj�
2003.05.08�@�u����1�F�ėpI/O�|�[�g�Ƃ��Ďg���v�ɁA�_�E�����[�h�\�ȃ\�[�X�ꎮ��lj�
2003.05.06�@���͂���C��
2003.05.03�@���͂���C��
2003.04.30�@�V�K�쐬
�͂��߂�
�N�ł���y��USB�f�o�C�X����邱�Ƃ��ł���FTDI�Ђ�FT8U232/245AM�ł����A�ŋ߂͎��o�[�W�����ɂ�����FT8U232/245BM������ł���悤�ɂȂ��Ă��܂����B
AM����BM�ɂȂ��āA�������̉��ǂƐV�@�\���lj�����Ă��܂����A���̒���Bit-Bang���[�h�Ƃ��������C�ɂȂ�@�\������܂��B
����Bit-Bang���[�h�A�c�O�Ȃ���g�����Ɋւ��鎑�����F���Ȃ̂ł��B
���̃y�[�W�ł́A�������s����Œ��ׂ�Bit-Bang���[�h�̎g�����ɂ��ĉ�����Ă��܂��B
BM�V���[�Y�̓���
�܂��͊ȒP�ɁABM�V���[�Y�̓����Ŏ�Ȃ��̂�������܂��B
- Bit-Bang���[�h�̃T�|�[�g
-
����������@�\�ł��B�ڍׂ͌�قǁB
- �O�t�����i�_��������
-
AM�V���[�Y�Ɣ�ׂāA����ɕK�v�ȊO�t�����i���������܂����B
���ɁA���Z�b�g��H���s�v�ɂȂ����̂͂��肪�����Ƃ���ł��B
EEPROM�A���̒�R�ƃR���f���T�݂̂ō\�����邱�Ƃ��ł��܂��B(��FT8U245BM���H�})
- �ʓd��I/O�ɑΉ�
-
AM�V���[�Y�ł́A�O���Ƃ̐M�����x����5V�P��ł������ABM�V���[�Y�ł�I/O�[�q�̓d�������肷��VCCIO�[�q���lj����ꂽ���Ƃɂ��A�C�ӂ̓d�����g�����Ƃ��o����悤�ɂȂ�܂����B
Bit-Bang���[�h�Ƃ́H
Bit-Bang���[�h�Ƃ́AFT8U232/245BM�̃f�[�^�[�q��8bit�̑o����I/O�|�[�g�Ƃ��Ďg�������o���郂�[�h�̂��Ƃł��B
���̃��[�h�̗L���E�����̐�ւ��y�ѓ��o�͂̐ݒ�́A��p��API�ł���FT_SetBitMode�ɂčs���܂��B
Bit-Bang���[�h���L���ɂȂ��Ă���ԁAFT_SetBaudRate�ɂĂ��炩���ߐݒ肳�ꂽ�����ɏ]���A�f�[�^�[�q����̓��o�͂��s���܂��B
���̋@�\�𗘗p���āA�ėp��I/O�|�[�g�Ƃ��Ďg������AFPGA�̃R���t�B�O���[�V�������s�����Ƃ��o���܂��B
Bit-Bang���[�h���g�����߂̏����Ə���
���������ƂɁA�n�[�h��g��ł����g����I�ƌ����킯�ł͂���܂���B���O�̏������K�v�ł��B
- Bit-Bang���[�h���g����̂̓_�C���N�g�h���C�o�̂�
-
FTDI��������h���C�o�ɂ́A�u�_�C���N�g�h���C�o�v�Ɓu���zCOM�|�[�g�h���C�o�v��2��ނ�����܂����A���zCOM�|�[�g�h���C�o���g���Ă���ꍇ��Bit-Bang���[�h�͎g���܂���B
Bit-Bang���[�h�Ɉڍs���邽�߂ɂ́A�_�C���N�g�h���C�o�̒���API���ĂȂ���Ȃ�܂���A���̂��ߕK�R�I�Ƀ_�C���N�g�h���C�o���K�v�ƂȂ�̂ł��B
- �V���A���C�U���g����BM�V���[�Y�̋@�\��L���ɂ���
-
����́A�n�}��ǂ���ł��B
������Ԃ�FT8U232/245BM�́A���̂܂܂ł�AM�V���[�Y�܂ł̋@�\�����g���܂���B
���[�U���蓮��BM�V���[�Y�̋@�\��L���ɂ�����K�v������܂��B
BM�V���[�Y�̋@�\��L���ɂ���ɂ́AFTDI�̒��郆�[�e�B���e�B�\�t�g(�V���A���C�U)���g�����@�ƁA�_�C���N�g�h���C�oAPI���g���A�O�t��EEPROM�̐ݒ��ύX������@��2��ނ�����܂��B
���́A����Ă��邱�Ƃ͓����ŁA��������[�U����API���Ă��EEPROM�����������邩�A���[�e�B���e�B�\�t�g���g���ď��������邩�̈Ⴂ�ł�������܂���B
���}�́A�V���A���C�U(FTD2XXST.EXE)���g����BM�V���[�Y�̋@�\��L���ɂ��Ă���Ƃ���ł��B
�V���A���C�U�́AFTDI�̃T�C�g����_�E�����[�h�o���܂��B
�����J����Ă���_�C���N�g�h���C�o(1.05.04)�ł́A�O�t��EEPROM�����A���Ȃ킿�ݒ肷�鎖����Bit-Bang���[�h���g���܂����B�Â��h���C�o(1.04.01)�ł͊O�t��EEPROM���K�v�ł��B(2003/09/09 ����)
- �O�t��EEPROM���K�{
-
AM�V���[�Y�܂ł́A�O�t����EEPROM�����ł��g�p�o���܂������ABM�V���[�Y�̋@�\���g���ɂ͊O�t��EEPROM���K�v�ł��B
EEPROM�������ꍇ�́AAM�V���[�Y�܂ł̋@�\�����g�����Ƃ��o���܂���B
���̐����͌��ł��B��L�u�V���A���C�U���g����BM�V���[�Y�̋@�\��L���ɂ���v���Q�Ƃ��ĉ������B(2003/09/09 ����)
��̓I�Ȏg���� (��������)
�܂��́A�����������ɂ��Ẳ���ł��B
���Ԃ�����܂��B
- 1. FT_Open�Ńf�o�C�X���I�[�v��
-
�܂��̓I�[�v������B�����Bit-Bang�łȂ��Ă������ł��B
- 2. FT_SetBaudRate�œ��o�͊Ԋu��ݒ�
-
Bit-Bang���L���ɂȂ��Ă���Ԃ́AFT_SetBaudRate�Őݒ肵�����ԊԊu�œ��o�͂��s���܂��B
9600�Ǝw�肵����1/9600=104us�����œ��o�͂��s����̂ł͂Ȃ��A�w��l�~16�ƂȂ�܂��B���Ȃ킿�A9600�Ǝw�肵���ꍇ�A1/(9600�~16)=6.51us�����ƂȂ�܂��B
�c���̂悤�Ȏ���FTDI�̎����ɏ����Ă���̂ł����A
���ۂɑ������Ƃ���A�w��l�~4�t�߂��ӂ�������܂��B
�W���O�̎������w�肵�����ꍇ�́AFT_SetDiviser���g���܂��B
- 3. FT_SetBitMode��Bit-Bang���[�h��L���ɂ���
-
FT_SetBitMode�ɂāABit-Bang���[�h�̗L���E�����A�ǂ̃r�b�g����͂ɂ��邩�A�o�͂ɂ��邩��ݒ肵�܂��B
��2���������o�͐ݒ�(�Y������r�b�g��0�Ȃ���́A1�Ȃ�o��)�A��3������Bit-Bang���[�h�̗L��(=1)�E����(=0)�ݒ�ł��B
Bit-Bang���[�h���L���ɂȂ�ƁAFT8U232/245BM��킸�A���͐ݒ�̒[�q�̓n�C�E�C���s�[�_���X�A�o�͐ݒ�̒[�q�͒��O��FT_Write�o�͒l(�d����������0x00)�ɂȂ�܂��B
�����āAFT_SetBaudRate�ɂĐݒ肳�ꂽ�����œ��o�͒[�q���T���v�����O����A�[�q��Ԃ���M�o�b�t�@�ɒ����i�[�A���M�o�b�t�@�̃f�[�^�����o�͒[�q��蒀���o�͂���܂��B���M�o�b�t�@����̏ꍇ�́A���O�̑��M�f�[�^���o�͂��ꑱ���܂��B
��1) Bit-Bang���[�h����
FT_SetBitMode(handle, 0x00, 0);
��2) Bit-Bang���[�h�L���ED0�`D7����͂ɐݒ�
FT_SetBitMode(handle, 0x00, 1);
��3) Bit-Bang���[�h�L���ED0�`D3����́AD4�`D7���o�͂ɐݒ�
FT_SetBitMode(handle, 0xf0, 1);
��̓I�Ȏg���� (�ǂݏ�����)
���ۂɓǂݏ������镔���̉���ł��B
������FT_GetBitMode���g���ӏ��ȊO�́A�]����AM�V���[�Y�ł̃f�[�^����M���@�Ɠ��l�ł��B
- �o�͂�FT_Write��
-
�o�͐ݒ肳�ꂽ�[�q�Ƀf�[�^���o�͂���ɂ́AFT_Write���g���đ��M�o�b�t�@�ɏo�̓f�[�^��ݒ肵�܂��B
���M�o�b�t�@�ɒ~����ꂽ�f�[�^�́AFT_SetBaudRate�ɂ��ݒ肳�ꂽ�����ŏo�͐ݒ肳�ꂽ�[�q���o�͂���܂��B
- ���o�͒[�q��"���̎��_��"�̏�Ԏ擾��FT_GetBitMode��
-
FT_GetBitMode���g���ƁA���o�͒[�q�̂��̎��_�ł̏�Ԃ��擾���邱�Ƃ��o���܂��B
�������AUSB�̎d�l��ł��傤��? ����Ȃ�̎��Ԃ��|����̂ŁA�[�q��Ԃ̃|�[�����O���ɂ͕s�����ł��B
�����l�ł́A1���API�Ăяo���ɂ���4ms�|����܂����B
- �A���������o�͒[�q�̏�Ԏ擾��FT_Read��
-
���o�͒[�q�̏�Ԏ擾��A�����čs���ꍇ�́AFT_Read���g���A��M�o�b�t�@����ꊇ���ăf�[�^���擾���܂��B
��M�o�b�t�@����ꂳ���Ȃ����߂ɁA��M�f�[�^�̎擾�͕ʃX���b�h�ɂ��������ǂ��ł��傤�B
����1�F�ėpI/O�|�[�g�Ƃ��Ďg��
�ł��ȒP�ȗ�Ƃ��āA�X�C�b�`�̓��͂����̂܂�LED�֏o�͂����������܂��B
FT8U245BM�̃f�[�^�[�q�ɃX�C�b�`��LED��t���������̊ȒP�ȉ�H�ł��B
FT8U245BM��Ɛڑ�����̂́A�E���̉�H�}�̂Ƃ���AD0�`D7�AGND�A�v���A�b�v�p��VCC(+5V)�݂̂ł��B����瑼�̐M�������o�Ă��܂����A�ڑ�����K�v�͂���܂���B
FT8U245BM��̕����́A�A�v���P�[�V�����m�[�g�̊�{��H����ɔėp�Ŏg����悤�ɂ������̂ł��B��̓I�ɂ͂��̂悤�ȉ�H�ɂȂ�܂��B(��FT8U245BM���H�})
�ʐ^�̕������i������������A��ʉ��ʂ��t�������肵�܂����A�Ƃ肠�����C�ɂ��Ȃ��ʼn������B
(�� Visual C++6.0�p�T���v���v���O�����E�\�[�X�ꎮ / 104KBytes)
�\�[�X���X�g�͍Œ���K�v�ȕ������������Ă��܂��B���ۂ͂���ɃG���[������������܂��B
BYTE bInData; // ���̓f�[�^
BYTE bOutData; // �o�̓f�[�^
DWORD dwWritten; // �������o�C�g��
FT_HANDLE hFt; // �f�o�C�X�̃n���h��
// �f�o�C�X(1�Ԗ�)���I�[�v��
FT_Open(0, &hFt);
// Bit-Bang���[�h�L���ED0�`D3����́AD4�`D7���o�͂ɐݒ�
FT_SetBitMode(fTt, 0xf0, 1);
while(1)
{
// �X�C�b�`�̏�Ԃ��擾
FT_GetBitMode(fTt, &bInData);
// �擾������Ԃ�4bit���炷
bOutData = bInData << 4;
// �X�C�b�`�̏�Ԃ��o��
FT_Write(hFt, &bOutData, 1, &dwWritten);
}
����2�FAVR�}�C�R���v���O���}
ATMEL�Ђ̃����`�b�v�}�C�R���ł���AVR�}�C�R���ɁA�v���O�������������ނ��߂̃��C�^�삵�܂����B
AVR�}�C�R����ISP�[�q(RESET,MISO,MOSI,SCK)���AFT8U245BM�̃f�[�^�[�q�ɉߓd���ی�p��R����Đڑ����Ă��邾���Ƃ����P���ȍ\���ł��B
�f�[�^�̎�M����FT_Read���g���A�����ɓǂݏo�����ƂŁA����AVR�v���O���}�ɔ�ב��F�Ȃ��ǂݏ������x�������ł��܂����B
����AVR�v���O���}�͍쐬�r���Ȃ̂ŁA��������ʃy�[�W�ɂďЉ�܂��B
����3�FLCD����
HD44780�݊��̃L�����N�^LCD���W���[���𐧌䂵�Ă݂܂����B
AVR�}�C�R���v���O���}�Ɠ������A�قƂ�ǔz���݂̂Ŏ����o���܂��B
�ڍׂ��������ցB
Bit-Bang���[�h�̕ςȃN�Z�H
�����ł́ABit-Bang���[�h�ׂċC�Â����_��������Ă��܂��B
�e�X�g�Ɏg�p�����h���C�o�̃o�[�W�����́A1.05.04�ł��B
- �{�[���[�g�ݒ�l�́~16�ɂȂ�Ȃ��H
-
FTDI�̒��鎑���ɂ́ABit-Bang���[�h���̓]�����x�̓{�[���[�g�ݒ�l�~16�Ə�����Ă��܂����A���ۂɑ��肵���Ƃ���~4���炢�ł����B�������A�ȉ��̌��ʂ́AWindows 98��XP�ɂāA�{�[���[�g�ݒ�l��600�A1024�o�C�g�̃f�[�^��FT_Write�����s���I���܂łɊ|���������Ԃ��W�v�������̂ł��B
Windows 98SE�ł̓{�[���[�g�ݒ�l�̖�4�{�AWindows XP����4�{�ł����A���Ȃ�ӂ�������邱�Ƃ�������܂��B
���ʂ�XP�ł����AWindows 2000�ł��قړ��l�̌X���ƂȂ�܂����B
Windows 98SE
�@ | ����(sec) | bytes/sec |
1��� | 0.419 | 2,444 |
2��� | 0.419 | 2,444 |
3��� | 0.419 | 2,444 |
4��� | 0.419 | 2,444 |
5��� | 0.419 | 2,444 |
���ϒl | 0.419 | 2,444 |
|
Windows XP
�@ | ����(sec) | bytes/sec |
1��� | 0.359 | 2,786 |
2��� | 0.361 | 2,770 |
3��� | 0.365 | 2,740 |
4��� | 0.353 | 2,833 |
5��� | 0.368 | 2,717 |
���ϒl | 0.361 | 2,769 |
|
- �����]���͖����H
-
FT_SetBitMode�Ŏw�肷��{�[���[�g��傫������ƁA���̕����������Ƀf�[�^��]���ł��܂����A��M�f�[�^����肱�ڂ��Ƃ���ȍ~�̃f�[�^��M���o���Ȃ��Ȃ錻�ۂ��������܂����B��x�����Ȃ��Ă��܂��ƁAFT8U���̓d�����ē������Ȃ���Ε������܂���B(FT_ResetDevice�ł̃\�t�g�E�F�A���Z�b�g��A�ăI�[�v���ł��s��)
PIII-600�{Windows XP�̏ꍇ���ƁA�ݒ�l57,600(�~4��230,000bytes/s)�ʂ����E�ł����B��M�X���b�h�̃v���C�I���e�B���グ��Α������P����܂����B
�ɒ[�Ȃ͂Ȃ��A���L�̂悤�ȃR�[�h�ł��_���Ȃ̂ł��B��ł��B
HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE);
DWORD dwReceived;
DWORD dwRead;
BYTE bBuf[256];
FT_SetBaudRate(handle, �傫�Ȓl);
FT_SetEventNotification(handle, &hEvent, FT_EVENT_RXCHAR);
FT_SetBitMode(handle, 0x00, 1);
WaitForSingleObject(handle, hEvent, INFINITE);
FT_GetQueueStatus(handle, &dwRead);
FT_Read(handle, bBuf, min(sizeof(bBuf), dwRead), &dwReceived);
- �e�ݒ�l�̓f�o�C�X�̓d�����܂ŗL��
-
�ȉ��̏�Ԃ́A�f�o�C�X�̓d���������Ă��邠�����A���O�Ɏw�肳�ꂽ�l���ێ������悤�ł��B
�����̏�Ԃ́A�\�t�g�E�F�A���Z�b�g(FT_ResetDevice)��A�L���[�̃N���A(FT_Purge)���s���Ă��ێ�����܂��B
(���m�F�ł����A�d���ē����ȊO�Ƀn�[�h�E�F�A���Z�b�g�ł�����������邩������܂���)
- Bit-Bang���[�h�̗L���E�����ݒ�(FT_Se��BitMode�Ŏw��)
- FT_Write�ɂĒ��O�ɏo�͂��ꂽ�l(�d����������0x00)
���ɂ��ێ������l�����肻���ł����A�܂����m�F�ł��B
�L�p�ȃ����N
FT8U�V���[�Y�����p�����Ō������Ȃ������N�W�ł��B
- Future Technology Devices
-
FT8U�V���[�Y�̐������B
�e��f�[�^�V�[�g�A�h���C�o�A���[�e�B���e�B�͂����œ��肵�܂��傤�B
- ������� �A�C�E�s�C�E�A�C
-
FT8U232/245BM�͂�����ōw�����܂����B
�����������Ă��������AWeb�Œ�������Η���or���X���ɂ͓͂��܂��B
- �L����� �q���[�}���f�[�^
-
USB�R�[�i�[�ł́AFT8U�V���[�Y�̓�������J���܂Ŕ��ɒ��J�ɉ������Ă���̂ŁA��ǂ��������߂��܂��B
�u�������Ă���USB���W���[������~�����I�v�Ƃ����l��USB-004���Ƃ��������B
- ������� �����{��Տ��s
-
FT8U�V���[�YAPI���t�@�����X�̖M��ł�����܂��B
FT8U232/245AM�̃��W���[�������C�Ɉ���!?
[BACK]