Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/60: Рейтинг темы: голосов - 60, средняя оценка - 4.68
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492

TX и RX биты по USB

28.02.2012, 14:35. Показов 11260. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Спаял микроконтроллер и для него пишу программу, характеристики микросхемы обнаруживает, только вот с передачей и приемом информации не как не разберусь.
Хотя бы какой не будь примитив, нажав на бутон и и передана информация.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.02.2012, 14:35
Ответы с готовыми решениями:

В каждом байте числа обнулить 0-ой и 7-ой биты и сделать единичными 3-ий и 4-ый биты
Надо: Прочитать беззнаковое целое число из стандартного потока ввода и в каждом байте числа обнулить нулевой и седьмой биты и сделать...

Ввести целое число A. Инвертировать все биты с 4 по 8, включая эти биты. Вывести результат
нужна помощь в битовых операциях.Ввести целое число A. Инвертировать все биты с 4 по 8, включая эти биты. Вывести результат.

... В четных байтах числа в двоичной системе переместить нулевые биты в старшие биты, а в нечетных байтах – в младшие ...
Доброго времени суток всем, столкнулся с проблемой по С++,требуется написать программу: которая получает 1)случайное целое типа int,...

23
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
28.02.2012, 18:45
Это вам не СОМ порт. Попробуйте прочитать или вот
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
28.02.2012, 19:07  [ТС]
Kabak, В действительности причем здесь COM порт, я что давал намек на COM порт?
Мы находимся в теме подписка С++Builder и вопрос по Builderu6С++, повторюсь (нажав на бутон и и передана информация.)
0
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
28.02.2012, 19:25
Garic я пробежался по ссылкам от Kabak и скажу что пока вам напишут пример можно там почитать много интересного, будет легче потом разобраться что и как.
Ваша ошибка в том что вы не показываете ваш код от которого можно оттолкнуться и чтото придумать...
влюбом случае человек вам помогает безвозмездно, а вы вместо спасиба...
1
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
28.02.2012, 19:30  [ТС]
Samrisbe, Ойлрайт
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
void __fastcall TForm1::Button2Click(TObject *Sender)
{
//.....................................
FT_STATUS ftStatus = FT_Open(0, &ftHandle);
if(ftStatus != FT_OK) {
// FT_Open failed
return;
}
//....................................
/*FT_STATUS ftStatus = FT_Open(0, &ftHandle);
if (ftStatus != FT_OK) {
// FT_Open FAILED!
} */
//.....Example....................................
ftData.Signature1 = 0x00000000;
ftData.Signature2 = 0xffffffff;
ftData.Manufacturer = ManufacturerBuf;
ftData.ManufacturerId = ManufacturerIdBuf;
ftData.Description = DescriptionBuf;
ftData.SerialNumber = SerialNumberBuf;
ftStatus = FT_EE_Read(ftHandle, &ftData);
if (ftStatus == FT_OK) {
// FT_EE_Read OK, data is available in ftData
//Form1->StatusBar1->Panels->Items[2]->Text = ftData.SerialNumber;
//Form1->StatusBar1->Panels->Items[3]->Text = ftData.Description;
Label3->Caption = ftData.SerialNumber;
Label4->Caption = ftData.Description;
Label5->Caption = ftData.ManufacturerId;
Label6->Caption = ftData.Manufacturer;
Label7->Caption = ftData.Signature1;
Label8->Caption = ftData.Signature2;
 
//Label1->Caption =  ftDevice;
}
else {
// FT_EE_Read FAILED!
 
}
FT_GetStatus(ftHandle,&RxBytes,&TxBytes,&EventDWord);
if (RxBytes > 0) {
ftStatus = FT_Read(ftHandle,RxBuffer,RxBytes,&BytesReceived);
FT_PROGRAM_DATA ftData = {
0x00000000, // Header - must be 0x00000000
0xFFFFFFFF, // Header - must be 0xffffffff
0x00000000, // Header - FT_PROGRAM_DATA version - set by dll
0x0403, // VID
0x6001, // PID
"FTDI", // Manufacturer
"FT", // Manufacturer ID
"USB HS Serial Converter", // Description
"FT000001", // Serial Number
44, // MaxPower
1, // PnP
0, // SelfPowered
1, // RemoteWakeup
1, // non-zero if Rev4 chip, zero otherwise
0, // non-zero if in endpoint is isochronous
0, // non-zero if out endpoint is isochronous
0, // non-zero if pull down enabled
1, // non-zero if serial number to be used
0, // non-zero if chip uses USBVersion
0x0110 // BCD (0x0200 => USB2)
};
FT_HANDLE ftHandle;
if (ftStatus == FT_OK) {
// FT_Read OK
}
else {
// FT_Read Failed
}
}
FT_Close(ftHandle);
}
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
28.02.2012, 22:03
Garic_, Агуров П. Последовательные интерфейсы.
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
28.02.2012, 22:16
Вот на это странице есть пример кода для Visual Studio C++. Он работает и при компиляции на С++ Builder 6.0. при лёгкой модификации руками. Там ещё указано что необходимо для успешной компиляции.

А ваше устройство распознаёт Windows ? Вы написали для него драйвер ? Для успешной передачи данных в ваше устройство нужен драйвер. т.е. Windows должен распознать его и подключить либо свой драйвер либо ваш/производителя. В интернете есть книга, на которую я дал ссылку. Почитайте, пожалуйста её. Достаточно в google вбить строку "Интерфейс USB. Практика использования и программирования"
2
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
28.02.2012, 22:42  [ТС]
Kabak,
А ваше устройство распознаёт Windows
с этим уже нормально, Windows распознает устройство.
Микросхема FT232BL в этом случае, висит в паре с внешней микросхемой памяти типа EEPROM — 93C46, которая хранит многие служебные параметры настройки контроллера FT232BL и другую вспомогательную информацию. И ее перезаписал пр-кой EditEEPROM.exe
Builderе написанная программа уже определяет характеристики микросхемы.
Нужна если правильно выразился функции, по отсылки и приему информации.

здесь EXEшник
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
28.02.2012, 23:26
Здорово. Насколько я понимаю в микросхемах, FT232BL - это чип на котором создают USB - COM конверторы. Собственно, вы хотите в СОМ порт передать на базе вашего чипа или в сам чип FT232BL ?
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
28.02.2012, 23:41  [ТС]
Kabak, скачал ссылки сишный код, хотел компильнуть столетней Microsoft Visual Studio оказалось отсутствие mfs42D.DLL

Добавлено через 10 минут
Kabak,
FT232BL - это чип на котором создают USB - COM конверторы.
Не обязательно, возможностей много, выводы TX и RX c FT232BL можно использовать совместно с прошитыми к примеру Атмегами и делать чудеса, управлять моделями, домом, мед. диагностика и т.д. и все сидя за компом.
А зачем мне это надо, увлекся робототехникой, все таки радиоэлектроникой увлекаюсь почти 30лет
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
28.02.2012, 23:44
Т.е. Вы хотите использовать выводы TX/RX микросхемы по их прямому назначению - как COM порт. Правильно я понял ?
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
29.02.2012, 01:15  [ТС]
Kabak, TX/RX есть в COM, есть в USB, есть на выходе микросхемы FT232BL это 25 и 24 ножки вот про них и ведется речь.

Добавлено через 14 минут
COM(256000 бит/сек.) и USB (10 -11 Мбит/c). имеют разные частоты, а USB2.0 480 Мбит/с / 8 = 60 МБайт/с. А на горизонте уже появляются изделия с новым интерфейсом USB 3.0, имеющий скорость передачи данных до 4,8 Гбит/с.

Добавлено через 23 минуты
Kabak,
их прямому назначению - как COM порт. Правильно я понял ?
Извини на вопросительный не обратил.
Постараюсь ответить так, Понтий Пилат спрашивает у Иисуса: ты Царь? Иисус ответил: сам сказал.
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
29.02.2012, 01:26
Спасибо за информацию по скоростям, она сейчас не имеет отношения к теме. и для информации, USB 3.0 - не на горизонте, а давно внедрён в промышленных масштабах.

В USB, насколько мне известно, есть +5V, D+, D-, GND. Вы никогда не сформируете на этих ногах нужную вам последовательность , потому что у вас нет доступа к аппаратной части USB интерфейса. Передачей информации по этим линиям управляет HOST контроллер USB вашего компьютера.

По теме:
Простейший СОМ порт - это TXD,RXD,GND

В вашем случае, ноги микросхемы TXD - pin 25 и RXD - pin 24 имеют только одну функцию, а не несколько, как в микроконтроллерах, например, от Microchip, а именно, - используются как COM порт по прямому назначению и никак иначе.

Вот я и спрашиваю, вы хотите сформировать некую последовательность импульсов на ноге TXD и прочитать ответ на ноге RXD ?
1
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
29.02.2012, 02:23  [ТС]
USB 3.0 - не на горизонте, а давно внедрён в промышленных масштабах.
Правильно в промышленных, но не у меня
есть +5V, D+, D-, GND. Вы никогда не сформируете на этих ногах
+5V,GND на этих точно нет, а D+, D-, хочешь сказать что это фантастика(сформировать последовательность
Простейший СОМ порт - это TXD,RXD,GND
http://www.123avr.com/z4.htm
ноги микросхемы TXD - pin 25 и RXD - pin 24 имеют только одну функцию, а не несколько
не совсем так, есть у нее и еще ноги TXD(25) RXD(24) RTS#(23) CTS#(22) DTR#(21) DSR#(20) DCD#(19) RI#(18) даташит могу збросить
вы хотите сформировать некую последовательность импульсов на ноге TXD и прочитать ответ на ноге RXD ?
Наконец то мы поняли друг друга
Вложения
Тип файла: rar ft232bl.rar (383.1 Кб, 112 просмотров)
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
29.02.2012, 10:32
Дело в том, что если ваше устройство USB->COM распознал Windows и установил для него соответствующий драйвер ( драйвера от производителя вашего чипа ), оно должно сформировать COM порт. и нет никакой проблемы обратиться к этому порту по имени и сформировать что необходимо на TXD(25)

Например инициализация:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
HANDLE MyCOMPORT;
DCB *dcb;
COMMTIMEOUTS ct;
OVERLAPPED overlapped;
// В функцию передаётся имя порта "COM1"  или "COM16"
int ComPortInit(char* Comport){
 
dcb=(DCB*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(DCB));
dcb->DCBlength=sizeof(DCB);
 
    MyCOMPORT=CreateFile(Comport,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
 
   if(UPSport==INVALID_HANDLE_VALUE) {
      HeapFree(GetProcessHeap(),0,dcb);
        return(0);
   }
   else{
   if (BuildCommDCB("baud=2400 parity=N data=8 stop=1",dcb)==0){
 
      HeapFree(GetProcessHeap(),0,dcb);
        return(0);
    }
   dcb->fNull=true;
   ct.ReadIntervalTimeout=600;
   ct.ReadTotalTimeoutMultiplier=22;
   ct.ReadTotalTimeoutConstant=60;
   ct.WriteTotalTimeoutMultiplier=0;
   ct.WriteTotalTimeoutConstant=0;
   SetCommTimeouts(MyCOMPORT,&ct);
   SetCommState(MyCOMPORT,dcb);
 
   HeapFree(GetProcessHeap(),0,dcb);
   return(1);
   }
}
и дальше просто пишем в файл или читаем через WriteFile/ReadFile
2
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
29.02.2012, 16:15  [ТС]
Kabak,
Дело в том, что если ваше устройство USB->COM распознал Windows
Я писал ранее что
с этим уже нормально, Windows распознает устройство.
под этим я имел ввиду через USB но не COM - может я в этом вопросе не до понимаю?
Решил проверить обнаружение у себя COM портов таким способом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 PageControl1->ActivePageIndex = 0;
 handle = open("OutCom.ini", O_CREAT | O_TRUNC | O_BINARY | O_WRONLY, S_IREAD | S_IWRITE);
 String portname;
 for (int i=1; i<=256; i++)
 {
 portname = "COM" + IntToStr(i);
 COMport = CreateFile(portname.c_str(),GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
 if(COMport != INVALID_HANDLE_VALUE)
  {
    Form1->ComboBox5->Items->Add("COM" + IntToStr(i));
    CloseHandle(COMport);               //çàêðûòü ïîðò
    COMport=0;              //îáíóëèòü ïåðåìåííóþ äëÿ äåñêðèïòîðà ïîðòà
  }
 }
И выяснилось что с включенным или отключенным устройством обнаруживает только COM3 и все.
Но ведь в диспетчере устройств обнаруживает устройство в двух местах 1.Контроллеры USB-как USB Serial Converter и во 2.-м месте Порты (COM и LPT) как USB Serial Port.

пробую другим способом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//Äîáàâëÿåì â ïðèëîæåíèå â îáëàñòü îáðàáîò÷èêà ñîáûòèÿ ñîçäàíèÿ ôîðìû ñëåäóþùåå::
  //...............................
 
// Îïðåäåëÿåì ÷èñëî ïîäêëþ÷åííûõ óñòðîéñòâ
FT_STATUS ftStatus = FT_ListDevices(&numDevs,NULL,FT_LIST_NUMBER_ONLY);
Form1->StatusBar1->Panels->Items[3]->Text = ftStatus;
if (ftStatus == FT_OK)
{
// FT_ListDevices OK, number of devices connected is in numDevs
itoa(numDevs, string, 16); // Ïðåîáðàçîâàíèå ôîðìàòà
Form1->StatusBar1->Panels->Items[0]->Text = string;
}
В StatusBar1 показывает что определило количество устройств, именно мое устройство. А В ЭТОМ СЛУЧАЕ РАБОТАЕТ.
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
29.02.2012, 16:34
Ваше устройство будет видно в Device manager (диспетчере устройств) в Windows. и там будет написано по какому именно имени к нему можно обратиться, COM1 или COM3. Не очень понятно, почему вы пытаетесь достучаться до ножки TXD микросхемы по USB, если проще это сделать через COM3, если устройство определилось и Windows пишет что устройство работает нормально?

Через COM3 и работайте с TXD и RXD ногами микросхемы, если Windows пишет что устройство работает нормально.
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
29.02.2012, 16:56  [ТС]
Kabak, И выяснилось что с включенным или отключенным устройством обнаруживает только COM3 и все. повторюсь( или отключенным) это значит что COM3 это другое не мое устройство.
2.-м месте Порты (COM и LPT) как Serial Port(COM16)-в диспетчере. А программа не видит ни какого COM16
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
29.02.2012, 17:07
Значит драйвер для вашего устройства не работает или не установлен / установлен не правильно
1
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
29.02.2012, 19:54  [ТС]
Kabak, 2.08.23 build by: WinDDK последний версий драва подкинул, с этим в порядке.
эмуляция СОМ-порта через шину USB, тут виртуальная фишка
http://src-code.net/emulyaciya... shinu-usb/

Добавлено через 34 минуты
Все спасибо заработало, дело в новых дровах
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.02.2012, 19:54
Помогаю со студенческими работами здесь

Преобразование числа в биты, а затем биты в числа (hex)
Преобразование числа в биты, а затем биты в числа (hex). Заранее спасибо!

Поменять 1, 4 и 7 биты регистра DH на 5, 4 и 1 биты регистра CL соответственно
Ребята! Понимаю, что может быть пишу ерунду! Только вышла из декретного отпуска, и по правде говоря хреноватенько что-то помню! Нужно...

Выполнить путём сдвига вправо все биты, значение которых равно нулю и влево все биты, значение которых равно единице
Выполнить путём сдвига вправо все биты, значение которых равно нулю и влево все биты, значение которых равно единице. Как это сделать...

Переводить команды USB WIFI Адаптера через компьютер по USB-USB для устройства
name: как передавать сигнал от требующего установку драйверов USB WIFI Адаптера через компьютер по USB-USB папа-папа кабелю для устройства...

USB 2.0 определяется как USB 3.0, не работает USB-свисток, геймпад не подключается
Не работает беспроводной геймпад speedlink torid sl-6576. Подключаю блютуз свисток к пк, запускаю геймпад, а он не определяется. При...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru