Перейти к содержанию
    

Help как работать с FT245RL

:help: Здравствуйте... я начинающий в этом деле поэтому прошу помочь, учусь на 4 курсе на инженера... и хочется знать не только закон Ома... поэтому сам собираю инфу и пытаюсь переварить её... В моём устройстве пытаюсь использовать FT245R но пока как-то неочень получается)))))... задача его "загнать" в режим bit bang... и указать по какой "ноге" он должен принимать сигнал по какой передавать... в роли источника сигнала АЦП...

Пытаюсь работать в соответствии с D2XX Programmer's Guide... хотелось бы хоть одним глазком увидеть пример работы с этой микросхемкой в Delphi...

P.S. я не пользовался раньше форумами... может тупой вопрос задаю... или не туда зашел :smile3046: ... тогда укажите плиз сразу (время тратить нехочу)...

Изменено пользователем Iva01983

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Надо использовать 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;
}

 

 

Пытаюсь работать в соответствии с D2XX Programmer's Guide... хотелось бы хоть одним глазком увидеть пример работы с этой микросхемкой в Delphi...

Здесь есть примеры

http://www.ftdichip.com/Projects/CodeExamples/Delphi.htm

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за инфу но это у меня уже было с первой проблемой разобрался... оказывается DLL который я скатал был очень старый... поэтому были проблемы с регистрацией функций)))

Теперь возникла новая, я работаю с FT245RL... как ей указать через какие ноги bitbang будет работать :wacko: ???

FT_STATUS FT_SetBitMode (FT_HANDLE ftHandle, UCHAR ucMask, UCHAR ucMode) я так понимаю то эта функция для задания bitbang но тут вроде указывается только устройство к которому обращаешся, считываешь или пишешь, и какой режим используешь... а где ноги то указывать с какими работаешь??? Объясните пожалуйста (я-> :smile3009: <-FT245R, пока она побеждает))))) ....

Может через ЕЕPROM? только пожалуйста поподробнее я пытался с ней поработать но незнаю как адрес EEPROM задать)))...

P.S. Будет совсем супер если пример будет на Delphi)))... По Си примеров много в инете...

Заранее всем спасибо :a14: ...

Изменено пользователем Iva01983

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Читай 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я это читал)... насколько я понимаю тут просто указывается вводим или выводим информацию, а какой контакт не указываем... может я неверно толкую что там написано... английский не изучал к сожалению...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендую срочно изучить англиЦкий язык, разработчик без него как рыба об лед... :) Шина данных у чипа D7-D0, "контакт" так и называется D0, D1,... D7. Его номер зависит от типа корпуса. ucMask - это байт - 8 бит, т.е. 0 бит отвечает за пин D0, 1 бит за D1, ... 7 бит за D7. Соотвесно, при вызове функции указываешь ucMask=0x81 это будет означать, что нулевой (D0) и последний, седьмой (D7) пины будут выходами, а все остальные шесть - входами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

т.е. записав ucMask=0x81, D0 и D7 будут выходами в режиме битбанг остальные входами... и можно брать например D0 и D1 для работы в этом режиме???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

т.е. записав ucMask=0x81, D0 и D7 будут выходами в режиме битбанг остальные входами... и можно брать например D0 и D1 для работы в этом режиме???

Можно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо огромное) щас постараюсь всё воплотить в жизнь :)

Изменено пользователем Iva01983

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...