Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Help как работать с FT245RL
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
Iva01983
help.gif Здравствуйте... я начинающий в этом деле поэтому прошу помочь, учусь на 4 курсе на инженера... и хочется знать не только закон Ома... поэтому сам собираю инфу и пытаюсь переварить её... В моём устройстве пытаюсь использовать FT245R но пока как-то неочень получается)))))... задача его "загнать" в режим bit bang... и указать по какой "ноге" он должен принимать сигнал по какой передавать... в роли источника сигнала АЦП...
Пытаюсь работать в соответствии с D2XX Programmer's Guide... хотелось бы хоть одним глазком увидеть пример работы с этой микросхемкой в Delphi...
P.S. я не пользовался раньше форумами... может тупой вопрос задаю... или не туда зашел smile3046.gif ... тогда укажите плиз сразу (время тратить нехочу)...
KRS
Надо использовать FTDI через direct driver, все функции описаны в D2XXPG33.pdf (может уже и свежее есть)
у 245R есть 2 бит банг режима IMHO Synchronous Bit Bang намного удобнее!
Инициализация примерно так (делал для SPI мастер )
Freq - требуемая частота SPI
Код
bool Open(unsigned Freq)
{
    DWORD Num;
    DWORD Tmp;
    DWORD Baud;
    unsigned i;
    hFtdi = 0;
    if (FT_Open(0,&hFtdi)!=FT_OK) {
        hFtdi=0;
        if (FT_Open(1,&hFtdi)!=FT_OK) {
            hFtdi=0;
            return false;
        }
    }
    FT_SetUSBParameters(hFtdi,5120,5120);
    if (FT_SetLatencyTimer(hFtdi,2)!=FT_OK) {
        Close();
        return false;
    }
    if (FT_SetBitMode(hFtdi,(1<<MOSI_PIN) | (1<<SCK_PIN),4)!=FT_OK) {
        Close();
        return false;
    }

    Baud=Freq/8;
    if (FT_SetBaudRate(hFtdi,Baud)!=FT_OK) {
        Close();
        return false;
    }
    Tmp=0;
    if (FT_Write(hFtdi,&Tmp,1,&Num)!=FT_OK) return false;
    Sleep(10);
    FT_Purge(hFtdi,FT_PURGE_RX | FT_PURGE_TX);
    Sleep(10);
    FT_Purge(hFtdi,FT_PURGE_RX | FT_PURGE_TX);
    return true;
}



Цитата(Iva01983 @ May 22 2007, 17:45) *
Пытаюсь работать в соответствии с D2XX Programmer's Guide... хотелось бы хоть одним глазком увидеть пример работы с этой микросхемкой в Delphi...

Здесь есть примеры
http://www.ftdichip.com/Projects/CodeExamples/Delphi.htm
Iva01983
Спасибо за инфу но это у меня уже было с первой проблемой разобрался... оказывается DLL который я скатал был очень старый... поэтому были проблемы с регистрацией функций)))
Теперь возникла новая, я работаю с FT245RL... как ей указать через какие ноги bitbang будет работать wacko.gif ???
FT_STATUS FT_SetBitMode (FT_HANDLE ftHandle, UCHAR ucMask, UCHAR ucMode) я так понимаю то эта функция для задания bitbang но тут вроде указывается только устройство к которому обращаешся, считываешь или пишешь, и какой режим используешь... а где ноги то указывать с какими работаешь??? Объясните пожалуйста (я-> smile3009.gif <-FT245R, пока она побеждает))))) ....
Может через ЕЕPROM? только пожалуйста поподробнее я пытался с ней поработать но незнаю как адрес EEPROM задать)))...
P.S. Будет совсем супер если пример будет на Delphi)))... По Си примеров много в инете...
Заранее всем спасибо a14.gif ...
Warlord
Читай D2XX Programmer's Guide внимательнее. Там в описании функции FT_SetBitMode черным по белому написано:

ucMask - Required value for bit mode mask. This sets up which bits are inputs and outputs. A bit value of 0 sets the corresponding pin
to an input, a bit value of 1 sets the corresponding pin to an
output.
Iva01983
Я это читал)... насколько я понимаю тут просто указывается вводим или выводим информацию, а какой контакт не указываем... может я неверно толкую что там написано... английский не изучал к сожалению...
Warlord
Рекомендую срочно изучить англиЦкий язык, разработчик без него как рыба об лед... smile.gif Шина данных у чипа D7-D0, "контакт" так и называется D0, D1,... D7. Его номер зависит от типа корпуса. ucMask - это байт - 8 бит, т.е. 0 бит отвечает за пин D0, 1 бит за D1, ... 7 бит за D7. Соотвесно, при вызове функции указываешь ucMask=0x81 это будет означать, что нулевой (D0) и последний, седьмой (D7) пины будут выходами, а все остальные шесть - входами.
Iva01983
т.е. записав ucMask=0x81, D0 и D7 будут выходами в режиме битбанг остальные входами... и можно брать например D0 и D1 для работы в этом режиме???
Warlord
Цитата(Iva01983 @ Sep 5 2007, 12:44) *
т.е. записав ucMask=0x81, D0 и D7 будут выходами в режиме битбанг остальные входами... и можно брать например D0 и D1 для работы в этом режиме???

Можно.
Iva01983
Спасибо огромное) щас постараюсь всё воплотить в жизнь smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.