Iva01983 0 22 мая, 2007 Опубликовано 22 мая, 2007 (изменено) · Жалоба Здравствуйте... я начинающий в этом деле поэтому прошу помочь, учусь на 4 курсе на инженера... и хочется знать не только закон Ома... поэтому сам собираю инфу и пытаюсь переварить её... В моём устройстве пытаюсь использовать FT245R но пока как-то неочень получается)))))... задача его "загнать" в режим bit bang... и указать по какой "ноге" он должен принимать сигнал по какой передавать... в роли источника сигнала АЦП... Пытаюсь работать в соответствии с D2XX Programmer's Guide... хотелось бы хоть одним глазком увидеть пример работы с этой микросхемкой в Delphi... P.S. я не пользовался раньше форумами... может тупой вопрос задаю... или не туда зашел :smile3046: ... тогда укажите плиз сразу (время тратить нехочу)... Изменено 22 мая, 2007 пользователем Iva01983 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 22 мая, 2007 Опубликовано 22 мая, 2007 · Жалоба Надо использовать 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Iva01983 0 25 мая, 2007 Опубликовано 25 мая, 2007 (изменено) · Жалоба Спасибо за инфу но это у меня уже было с первой проблемой разобрался... оказывается DLL который я скатал был очень старый... поэтому были проблемы с регистрацией функций))) Теперь возникла новая, я работаю с FT245RL... как ей указать через какие ноги bitbang будет работать ??? FT_STATUS FT_SetBitMode (FT_HANDLE ftHandle, UCHAR ucMask, UCHAR ucMode) я так понимаю то эта функция для задания bitbang но тут вроде указывается только устройство к которому обращаешся, считываешь или пишешь, и какой режим используешь... а где ноги то указывать с какими работаешь??? Объясните пожалуйста (я-> :smile3009: <-FT245R, пока она побеждает))))) .... Может через ЕЕPROM? только пожалуйста поподробнее я пытался с ней поработать но незнаю как адрес EEPROM задать)))... P.S. Будет совсем супер если пример будет на Delphi)))... По Си примеров много в инете... Заранее всем спасибо :a14: ... Изменено 25 мая, 2007 пользователем Iva01983 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Warlord 0 28 мая, 2007 Опубликовано 28 мая, 2007 · Жалоба Читай 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 0 28 мая, 2007 Опубликовано 28 мая, 2007 · Жалоба Я это читал)... насколько я понимаю тут просто указывается вводим или выводим информацию, а какой контакт не указываем... может я неверно толкую что там написано... английский не изучал к сожалению... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Warlord 0 29 мая, 2007 Опубликовано 29 мая, 2007 · Жалоба Рекомендую срочно изучить англиЦкий язык, разработчик без него как рыба об лед... :) Шина данных у чипа D7-D0, "контакт" так и называется D0, D1,... D7. Его номер зависит от типа корпуса. ucMask - это байт - 8 бит, т.е. 0 бит отвечает за пин D0, 1 бит за D1, ... 7 бит за D7. Соотвесно, при вызове функции указываешь ucMask=0x81 это будет означать, что нулевой (D0) и последний, седьмой (D7) пины будут выходами, а все остальные шесть - входами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Iva01983 0 5 сентября, 2007 Опубликовано 5 сентября, 2007 · Жалоба т.е. записав ucMask=0x81, D0 и D7 будут выходами в режиме битбанг остальные входами... и можно брать например D0 и D1 для работы в этом режиме??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Warlord 0 6 сентября, 2007 Опубликовано 6 сентября, 2007 · Жалоба т.е. записав ucMask=0x81, D0 и D7 будут выходами в режиме битбанг остальные входами... и можно брать например D0 и D1 для работы в этом режиме??? Можно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Iva01983 0 6 сентября, 2007 Опубликовано 6 сентября, 2007 (изменено) · Жалоба Спасибо огромное) щас постараюсь всё воплотить в жизнь :) Изменено 6 сентября, 2007 пользователем Iva01983 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться