Вверх ↑
Этот топик читают: merc, Гость
Ответов: 197
Рейтинг: 2
#1: 2021-03-12 11:06:34 ЛС | профиль | цитата
Здравствуйте. Подскажите пожалуйста. Мне требуется работать с Com портом который образован через usb переходник посредством например чипа FTDI ft232b/
стандартный перечислитель портов не видит ком порты которые образованы через переходник usb-com. Но даже если в ручную указывать номер порта в компоненте ComEx то порт не открывается все равно! Какие есть реализации данной задачи?
а в диспетчере есть

Add(MainForm,9156558,280,42)
{
Width=844
Height=601
link(onCreate,13207394:doEvent1,[(366,62)(366,97)])
}
Add(EnumCOM,4795209,497,49)
{
link(onEnumPorts,15281610:doAdd,[])
}
Add(DoData,7626273,602,77)
{
Data=Integer(0)
link(onEventData,15281610:doSelect,[])
}
Add(Math,7993414,693,112)
{
Op2=1
ResultType=0
link(Op1,15281610:Index,[])
}
Add(ComboBox,15281610,679,49)
{
Left=5
Top=10
Width=80
Height=21
DropDownCount=15
Point(Index)
Point(doSelect)
}
Add(LineBreak,1002821,560,77)
{
link(Out,7626273:doData,[])
Primary=[2221205,-42,21]
}
Add(LineBreak,3178765,651,112)
{
link(Out,7993414:doOperation,[])
Primary=[10397666,-133,0]
}
Add(COMEX,7354486,693,280)
{
Point(doDTR)
Point(doRTS)
Point(onDCD)
Point(onError)
Point(onOpen)
Point(onClose)
link(Port,3611942:Var,[(699,264)(755,264)])
link(onError,10589740:doCompare,[])
link(onOpen,2305953:doOn,[(755,321)(755,394)])
link(onClose,2305953:doOff,[(755,328)(755,387)])
}
Add(Hub,13207394,420,91)
{
OutCount=5
link(onEvent1,4795209:doEnumPorts,[(466,97)(466,55)])
link(onEvent2,2221205:In,[])
link(onEvent3,10397666:In,[(492,111)(492,118)])
link(onEvent4,11118367:In,[(476,118)(476,132)])
link(onEvent5,9350924:In,[(458,125)(458,167)])
}
Add(LineBreak,7563082,574,259)
{
link(Out,2350881:doEvent1,[(617,265)(617,286)])
Primary=[9350924,-112,-98]
}
Add(Message,8647661,840,280)
{
Message="не возможно открыть Com порт"
Caption="Com Port"
Icon=4
}
Add(If_else,10589740,777,308)
{
Op2=Integer(0)
link(onTrue,8647661:doMessage,[(825,314)(825,286)])
link(onFalse,3717567:doMessage,[(825,321)(825,328)])
}
Add(Message,3717567,840,322)
{
Message="Не возможно закрыть Com порт"
Caption="Com Port"
Icon=4
}
Add(LED,2305953,785,374)
{
Left=355
Top=15
Blick=1
ColorOn=16776960
ColorOff=8421504
}
Add(Button,2037861,567,280)
{
Left=170
Top=40
Caption="открыть"
link(onClick,2350881:doEvent2,[(615,286)(615,293)])
}
Add(Hub,2350881,630,280)
{
InCount=2
OutCount=1
link(onEvent1,7354486:doOpen,[])
}
Add(Button,14552562,573,317)
{
Left=230
Top=40
Caption="закрыть"
link(onClick,7354486:doClose,[(649,323)(649,293)])
}
Add(CheckBox,9636282,658,168)
{
Left=5
Top=40
Width=160
Caption="Указать в ручную"
}
Add(GetIndexData,3611942,749,217)
{
link(Data1,7993414:Result,[(755,181)(699,181)])
link(Data2,16210134:Text,[(762,201)(818,201)])
}
Add(Edit,16210134,812,105)
{
Left=5
Top=75
Width=75
Text="3"
DataType=2
}
Add(DoData,13113386,658,217)
{
link(onEventData,3611942:doIndex,[])
link(Data,9636282:Checked,[])
}
Add(LineBreak,11811197,616,217)
{
link(Out,13113386:doData,[])
Primary=[11118367,-98,-91]
}


В данном случает мне нужно ждать сигнал DCD c порта com3

Редактировалось 7 раз(а), последний 2021-03-12 12:41:05
карма: 0

0
Ответов: 4629
Рейтинг: 749
#2: 2021-03-12 11:58:39 ЛС | профиль | цитата
В файлах

HiAsm\Elements\Delphi\code\hiCOMEX.pas
HiAsm\Elements\Delphi\code\hiEnumCOM.pas

есть такой фрагмент: '\\.\Com'. Попробуй в обеих файлах замени его на '\\.\COM' и проверь.
карма: 26

0
Ответов: 197
Рейтинг: 2
#3: 2021-03-12 12:44:29 ЛС | профиль | цитата
В нумераторе com3 не повился, но в ручном режиме порт com3 стал открывать. Правильность работы после открытия порта Com3 нужно проверить на железе.Проверю скажу!

--- Добавлено в 2021-03-12 12:59:10

проверил,Сигнал с микросхемы не видит.

Редактировалось 2 раз(а), последний 2021-03-12 12:59:10
карма: 0

0
Ответов: 197
Рейтинг: 2
#4: 2021-03-12 15:16:54 ЛС | профиль | цитата
причем через обычный Com порт схема работает, сигналы приходят уходят.

--- Добавлено в 2021-03-12 15:42:40

zhorik5 писал(а):
В нумераторе com3 не повился, но в ручном режиме порт com3 стал открывать

хотя он стал открывать любой номер даже тот которого нет в системе! я думаю это не правильно например номер 44

--- Добавлено в 2021-03-12 15:48:58

подождите.... я ошибся.

Редактировалось 3 раз(а), последний 2021-03-12 15:48:58
карма: 0

0
Ответов: 197
Рейтинг: 2
#5: 2021-03-12 16:18:53 ЛС | профиль | цитата
в первом посте схема содержит ошибки! при попытки их устранить появлюятся вот такие сообщения

--- Добавлено в 2021-03-12 16:19:23

щас с нуля перерисую

Редактировалось 1 раз(а), последний 2021-03-12 16:19:23
карма: 0

0
Ответов: 4629
Рейтинг: 749
#6: 2021-03-12 16:37:07 ЛС | профиль | цитата
Просто учитывай что тот, у кого нет устройства для COM-порта и кто не делал для него программ, не может тестировать это в реальном режиме. Только смотреть на код компонентов и гуглить.
карма: 26

0
Ответов: 197
Рейтинг: 2
#7: 2021-03-12 17:07:40 ЛС | профиль | цитата
Вроде исправил схему.
Сделал изменения
Netspirit писал(а):
HiAsm\Elements\Delphi\code\hiCOMEX.pas
HiAsm\Elements\Delphi\code\hiEnumCOM.pas

есть такой фрагмент: '\\.\Com'. Попробуй в обеих файлах замени его на '\\.\COM' и проверь.


ничего не изменилось. порт com3 не открывается и не видится нумератором!
Add(MainForm,9156558,105,231)
{
Width=466
Height=132
link(onCreate,13207394:doEvent1,[])
}
Add(EnumCOM,4795209,392,98)
{
link(onEnumPorts,15281610:doAdd,[])
}
Add(DoData,7626273,476,126)
{
Data=Integer(0)
link(onEventData,15281610:doSelect,[])
}
Add(ComboBox,15281610,581,98)
{
Left=5
Top=10
Width=80
Height=21
DropDownCount=15
Point(Index)
Point(doSelect)
}
Add(COMEX,7354486,595,427)
{
Point(doDTR)
Point(doRTS)
Point(onDCD)
Point(onError)
Point(onOpen)
Point(onClose)
link(Port,6674499:Var1,[(601,313)])
link(onError,10589740:doCompare,[])
link(onOpen,2305953:doOn,[(657,468)(657,541)])
link(onClose,2305953:doOff,[(657,475)(657,534)])
}
Add(Hub,13207394,168,245)
{
OutCount=5
link(onEvent1,4795209:doEnumPorts,[(208,251)(208,104)])
link(onEvent2,7626273:doData,[(232,258)(232,132)])
link(onEvent3,10900218:doEvent1,[(300,265)(300,167)])
link(onEvent4,2350881:doEvent1,[(301,272)(301,419)])
}
Add(Message,8647661,742,427)
{
Message="не возможно открыть Com порт"
Caption="Com Port"
Icon=4
}
Add(If_else,10589740,679,455)
{
Op2=Integer(0)
link(onTrue,8647661:doMessage,[(727,461)(727,433)])
link(onFalse,3717567:doMessage,[(727,468)(727,475)])
}
Add(Message,3717567,742,469)
{
Message="Не возможно закрыть Com порт"
Caption="Com Port"
Icon=4
}
Add(LED,2305953,687,521)
{
Left=355
Top=15
Blick=1
ColorOn=16776960
ColorOff=8421504
}
Add(Button,2037861,357,420)
{
Left=170
Top=40
Caption="открыть"
link(onClick,2350881:doEvent2,[])
}
Add(Hub,2350881,420,413)
{
InCount=2
OutCount=4
link(onEvent1,10900218:doEvent2,[(497,419)(497,174)])
link(onEvent2,13113386:doData,[(532,426)(532,272)])
link(onEvent3,7354486:doOpen,[])
link(onEvent4,15508444:doText,[(455,440)(455,475)])
}
Add(Button,14552562,531,464)
{
Left=230
Top=40
Caption="закрыть"
link(onClick,7354486:doClose,[(579,470)(579,440)])
}
Add(CheckBox,9636282,595,217)
{
Left=5
Top=40
Width=160
Caption="Указать порт в ручную"
}
Add(GetIndexData,3611942,651,266)
{
link(Data1,7708773:GetData,[])
link(Data2,16210134:Text,[(664,250)(706,250)])
}
Add(Edit,16210134,700,161)
{
Left=5
Top=75
Width=75
Text="3"
DataType=2
}
Add(DoData,13113386,595,266)
{
link(onEventData,3611942:doIndex,[])
link(Data,9636282:Checked,[])
}
Add(Label,15508444,476,469)
{
Left=385
Top=20
Width=65
Height=20
link(Text,10771095:Var,[])
}
Add(GetDataEx,6674499,630,308)
{
Angle=1
link(Data,3611942:Var,[(657,313)])
}
Add(LineBreak,16425952,630,336)
{
Type=1
link(Data,6674499:Var2,[])
Primary=[10771095,-154,112]
}
Add(Delete,7374699,588,161)
{
Count=3
link(onDelete,7708773:doData,[])
link(Str,15281610:String,[])
}
Add(EventFromData,7708773,651,161)
{
}
Add(Hub,10900218,560,161)
{
InCount=2
OutCount=1
link(onEvent1,7374699:doDelete,[])
}


Редактировалось 2 раз(а), последний 2021-03-13 00:09:15
карма: 0

0
Ответов: 4629
Рейтинг: 749
#8: 2021-03-12 17:16:28 ЛС | профиль | цитата
Там может быть какая-то неподходящая комбинация параметров, например, скорость соединения. Посмотри в документации на устройство какая ему нужна (или в свойствах в "Диспетчере устройств").
Попробуй в файле HiAsm\Elements\Delphi\code\hiCOMEX.pas строку 140 замени на это и скажи какой код выдаёт.
  if hFile = INVALID_HANDLE_VALUE then
begin
_debug(GetLastError());
exit;
end;
zhorik5 писал(а):
порт com3 не открывается и не видится нумератором!
Может порт кем-то уже открыт? На всякий случай убери связь от создания формы до ComEx.doOpen

Редактировалось 1 раз(а), последний 2021-03-12 17:18:37
карма: 26

1
Голосовали:zhorik5
Ответов: 197
Рейтинг: 2
#9: 2021-03-12 17:19:07 ЛС | профиль | цитата
сообщение integer-debug "5"

--- Добавлено в 2021-03-12 17:31:03

Netspirit писал(а):
Может порт кем-то уже открыт?

думал об этом но мало вероятно что открыт.
убрал связь до ComEx.doOpen и сообщение по прежнему integer-debug "5"

--- Добавлено в 2021-03-12 17:33:31

дабы исключить открытый порт com3/ изменил его на com18/ результат тот же

--- Добавлено в 2021-03-12 17:37:28

zhorik5 писал(а):
Netspirit

у тебя есть любой программатор?, почти у всех usb com переходдник внутри используется. сможешь сам затестить проблему

Редактировалось 4 раз(а), последний 2021-03-12 17:37:28
карма: 0

0
Ответов: 4629
Рейтинг: 749
#10: 2021-03-12 17:45:49 ЛС | профиль | цитата
Есть программатор для Arduino, есть мобильный телефон, подключаемый как модем. Потестить не могу. Могут и в ОС быть какие-то особенности (у меня XP).
Код ошибки - "в доступе отказано". Попробуй запустить программу от имени администратора.

Редактировалось 1 раз(а), последний 2021-03-12 17:47:36
карма: 26

0
Ответов: 197
Рейтинг: 2
#11: 2021-03-12 17:52:16 ЛС | профиль | цитата
Netspirit писал(а):
Попробуй запустить программу от имени администратора

результат тот же.

--- Добавлено в 2021-03-12 17:53:16

ща найду ардуинку подкину

--- Добавлено в 2021-03-12 18:03:21

ооооо а нумератор ардуинку увидел. И даже порт открывается.

--- Добавлено в 2021-03-12 18:04:49

ардуинка у нас получается на микросхеме ch340. а та которую не видит нумератор на микросхеме FTDI ft232b

--- Добавлено в 2021-03-12 18:10:40

Ладно, попробую использовать ch340. Datasheet почитаю. Прошу прощения что не проверил разные варианты.

Редактировалось 4 раз(а), последний 2021-03-12 18:10:40
карма: 0

0
Ответов: 787
Рейтинг: 168
#12: 2021-03-12 18:17:10 ЛС | профиль | цитата
zhorik5, достал свой старый китайский NoMame переходник (Что внутри не знаю).
Всё прекрасно работает (EnumCOM, COMEX). Порт открывается.
USB-COM.JPG
карма: 15

1
Голосовали:zhorik5
Ответов: 197
Рейтинг: 2
#13: 2021-03-12 18:28:41 ЛС | профиль | цитата
Gunta, ну загляни пожалуйста что внутри?

--- Добавлено в 2021-03-12 18:31:19

Gunta писал(а):
достал свой старый китайский NoMame переходник

Это просто usb-com переходник или какое-то готовое устройство?

Редактировалось 1 раз(а), последний 2021-03-12 18:31:19
карма: 0

0
Ответов: 787
Рейтинг: 168
#14: 2021-03-12 18:41:10 ЛС | профиль | цитата
zhorik5 писал(а):
ну загляни пожалуйста что внутри?

Если я правильно рассмотрел то, в моем переходнике стоит FT231X0.
ft231X0.jpg

--- Добавлено в 2021-03-12 18:46:31

zhorik5 писал(а):
Это просто usb-com переходник

Да, обычный USB-COM. Использую по работе иногда.

Редактировалось 1 раз(а), последний 2021-03-12 18:46:31
карма: 15

0
Ответов: 197
Рейтинг: 2
#15: 2021-03-13 00:06:45 ЛС | профиль | цитата
Спасибо огромное братцы.
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)