[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�쐬


�͂��߂�

FT8U245BM

�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
VACU

���݌��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��

H}

�ł��Ȓ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)

o̓eXg

�\�[�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���}

AVRvO}\tg

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

AVRvO}

����3�FLCD����

LCD

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.4192,444
2���0.4192,444
3���0.4192,444
4���0.4192,444
5���0.4192,444
���ϒl0.4192,444
Windows XP
�@����(sec)bytes/sec
1���0.3592,786
2���0.3612,770
3���0.3652,740
4���0.3532,833
5���0.3682,717
���ϒl0.3612,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�ł�����������邩������܂���)


���ɂ��ێ������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]