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

TX и RX биты по USB

28.02.2012, 14:35. Показов 11188. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru