Hi all,
кто-нибудь программировал устройства на базе микросхем FTDI ?
У меня вот тут на столе один такой самопальный девайс и надо написать program, который будет с ним работать.
Проблема в том, что девайс не всегда обнаруживается Виндой, а обнаружить его из программы и подавно не удается ;(
program Project2;
{$APPTYPE CONSOLE}uses
Types;
function FT_ListDevices(var arg1,arg2: DWORD; Flags: DWORD): Longword; stdcall external'ftd2xx.dll';
var
n,m: DWORD;
begin
n := 1;
if FT_ListDevices(n,m,$80000000) = 0 then
WriteLn('n = ',n)
else
WriteLn('Error');
end.
Здравствуйте, cr lf, Вы писали:
CL>Hi all, CL>кто-нибудь программировал устройства на базе микросхем FTDI ?
Да, как-то пробегал рядом Забавный дивайс
Не буду настаивать на решении, но как мне вспоминается, бился с такой же проблемой.
Если мне не изменяет склероз, то на самом деле они на вход ждут указатель.
Это как раз пробелма в поставляемом файле для Delphi, тама нужно было приводить указатель
к DWORD. А я себе переписал все заново (перевод с файла .h).
я бы изменил код так:
program Project2;
{$APPTYPE CONSOLE}uses
Types;
const
FT_LIST_NUMBER_ONLY = $80000000;
FT_LIST_BY_INDEX = $40000000;
FT_LIST_ALL = $20000000;
function FT_ListDevices(arg1,arg2: Pointer; Flags: DWORD): Longword; stdcall external'ftd2xx.dll';
var
DevCount: Integer;
begin
n := 1;
if FT_ListDevices(@DevCount, nil, FT_LIST_NUMBER_ONLY) = 0 then
WriteLn('Count = ', DevCount)
else
WriteLn('No FTDI devices found :( ');
end.
CL>>Hi all, CL>>кто-нибудь программировал устройства на базе микросхем FTDI ? S>Да, как-то пробегал рядом Забавный дивайс
Кстати, а что это был за девайс ?
S>Не буду настаивать на решении, но как мне вспоминается, бился с такой же проблемой. S>Если мне не изменяет склероз, то на самом деле они на вход ждут указатель. S>Это как раз пробелма в поставляемом файле для Delphi, тама нужно было приводить указатель S>к DWORD.
Насчет указателя — правда ваша.
S>А я себе переписал все заново (перевод с файла .h). S>я бы изменил код так: S>Попробуйте, может поможет.
А все равно не работает
Здравствуйте, cr lf, Вы писали: CL>Кстати, а что это был за девайс ?
То был жуткий девайс, о котором не стоит вспоминать Но тама была мелкосхема FT245BM.
Я вроде слышал, что это уже преданья старины глубокой
CL>А все равно не работает
Печально У меня точно так и работала, только я передавал туда указатель на Integer,
хотя не думаю что это принципиально
Я вот не вижу в Вашем коде проблем, другое дело я мог что-нить просмотреть из-за языковой неграмотности
А чем мотивируется неработоспособность? тем что num=0?
У меня все работало именно так, как Вы и написали, тока линковал длл статически.
Да и в моих документациях все так же и описано.
Может, в новых версиях драйверов что-то поменялось...
Пока что я бессилен вам помочь
Здравствуйте, Shurf, Вы писали:
S>Здравствуйте, cr lf, Вы писали: CL>>Кстати, а что это был за девайс ? S>То был жуткий девайс, о котором не стоит вспоминать Но тама была мелкосхема FT245BM. S>Я вроде слышал, что это уже преданья старины глубокой
У меня тоже FT245BM
S>Я вот не вижу в Вашем коде проблем, другое дело я мог что-нить просмотреть из-за языковой неграмотности S>А чем мотивируется неработоспособность? тем что num=0? S>У меня все работало именно так, как Вы и написали, тока линковал длл статически. S>Да и в моих документациях все так же и описано. S>Может, в новых версиях драйверов что-то поменялось... S>Пока что я бессилен вам помочь
Увы мне, увы
Я тоже в коде проблем не вижу
А неработоспособность в том, что num=0 и в том, что
MessageBox(NULL, "Устройство не открыто", "Ошибка", MB_OK);
Но главная проблема в том, что и Windows видит этот девайс только иногда
А чаще всего сообщает, что устройство не опознано
Здравствуйте, cr lf, Вы писали:
CL>Здравствуйте, Shurf, Вы писали:
S>>Здравствуйте, cr lf, Вы писали: CL>>>Кстати, а что это был за девайс ? S>>То был жуткий девайс, о котором не стоит вспоминать Но тама была мелкосхема FT245BM. S>>Я вроде слышал, что это уже преданья старины глубокой CL>У меня тоже FT245BM
S>>Я вот не вижу в Вашем коде проблем, другое дело я мог что-нить просмотреть из-за языковой неграмотности S>>А чем мотивируется неработоспособность? тем что num=0? S>>У меня все работало именно так, как Вы и написали, тока линковал длл статически. S>>Да и в моих документациях все так же и описано. S>>Может, в новых версиях драйверов что-то поменялось... S>>Пока что я бессилен вам помочь CL>Увы мне, увы CL>Я тоже в коде проблем не вижу CL>А неработоспособность в том, что num=0 и в том, что CL>
CL>MessageBox(NULL, "Устройство не открыто", "Ошибка", MB_OK);
CL>
CL>Но главная проблема в том, что и Windows видит этот девайс только иногда CL>А чаще всего сообщает, что устройство не опознано
Ну тада давайте попробуем плясать от печки
Есть неки дивайс на FT245BM. Он в составе неизвестного устройства? Или это что-то самопаянное? Или это
типа Developer Kit (когда они сами все напаяли, такая платка с ножками, где уже есть EEPROM и кварц,
я забыл как называется сий продукт) ?.
Далее. Эта микросхема должна нормально определяться при некой конфигурации замкнутых ног. В необходимости
подключения EEPROM я не уверен, но лучше чтобы была
Все ли контакты нормальные? Если виндовз не видет устройство, то значит контактов нет.
Если говорит, что устройство неопознано : два варианта —
нумер раз заключается в том, что устройство прошито с левыми VID и PID. Тогда нужно подправить inf файл из драйвера
и переустановить его с этими значениями;
нумер два возможен, если драйвера были поставлены на устройство со своим VID и PID, а потом сломалась EEPROM
Без него вроде устанавливается стандартные VID и PID FTDI. Их значения я сейчас не подскажу.
Т.е. первым делом я советую поковыряться в железяке для уверенности что там везде есть контакт.
Вторым делом проверить соответствие идентификаторов устройства и драйвера.
Третим делом скачать (если еще не скачано) утиль для прошивки (MProg уазывается, у меня версия 2.8, но это
давно было) и посмотреть, что она расскажет.
Если она рассказывает что-то не то, что надо, то можно перепрошить если есть чем
Ну а потом, когда все ихни программы будут с некой степенью уверенности определять наличие устройства-
компилятор в зубы и ваять
Может, будет нелишним привести тут описание приключений устройства до тех пор как она попала к Вам в руки,
может тама что кроется...
Если будет не очень получаться, я дома могу по сусекам поскрести и отковырять программу, которую я в свое время ваял.
Удачи!
Re[6]: FTDI
От:
Аноним
Дата:
07.05.07 09:56
Оценка:
S>Ну тада давайте попробуем плясать от печки
от самой печки. Если устройство не видеться виндой(причём периодически), то косяк в устройстве, а не в винде. В инете много тем с проблемой обнаружения FTDI, после засыпания компа, либо при проблемах питания микрухи(помехи).
Советую обратиться на сайт официального постовщика этих микрух в Россию. Там был форум и обратная связь... и там все проблемы и возможные решения описаны. К сожалению не помню кто там их завозит, т.к. давно не обращались к этой микрухе.