1) убери проверку TXE, просто фигачь без проверки дергай WR только, ничего ты там не заддосишь.
2) выставляй SND пин
roboforum.ruТехнический форум по робототехнике. |
|
|
Madf писал(а):А зачем тебе exe-ник? Он привязан к моему устройству по имени, гибкую систему с выбором устройства - не делал. Как будешь подцепляться?
Madf писал(а):Из картины видно, что МК легко "ддос"-ит FT245 и она перегружена, раз TXE находится всегда не в 0 и принимает всё только по 1 байту (внутренний буфер переполнен), комп не успевает принимать данные. Т.ч. проблема в связке PC+FT245.
Программа "D2XXApp" EXE ZIP
Программа представляет собой пример приложения, выполненного в среде Borland C++ Builder v.5.0 и использующего драйверы D2XX. Она позволяет передавать и принимать данные по USB как в стандартных режимах UART и FIFO, так и в режиме "Bitbang". Вы можете скачать исполняемый модуль этой программы, а также исходные файлы проекта.
Также следует учитывать, что максимальная скорость достигается только в том случае, если данные передаются не по одному байту, а строкой. При побайтовой передаче установленная скорость распространяется только на передачу отдельных бит внутри байта. Длительность интервала времени между передачей отдельных байт в этом случае не поддается управлению и значительно снижает скорость передачи всего массива данных.
Dmitry__ писал(а):Также следует учитывать, что максимальная скорость достигается только в том случае, если данные передаются не по одному байту, а строкой. При побайтовой передаче установленная скорость распространяется только на передачу отдельных бит внутри байта. Длительность интервала времени между передачей отдельных байт в этом случае не поддается управлению и значительно снижает скорость передачи всего массива данных.
http://www.efo.ru/doc/Ftdi/Ftdi.pl?497
FT_SetBaudRate - The rate of data transfer can be controlled by using the FT_SetBaudRate command. The maximum Baud rate is 3MBaud, but to allow time for the data to be setup and held around the WR# strobe the Baud rate should be less than 1MBaud.
Madf писал(а):Вообще большинство документации/ссылки я видел, большинство из них описывают алгоритм завязанные на последовательной передачи и что касаемо чипа 245 - информации очень мало и не факт, что применимо к ней.
'****************
'пример передачи
bRead(0) = &HFF 'что угодно
bRead(1) = &H20 '
bRead(2) = &H0 '
WriteCOM32 256 'послать в порт 256 байт
'****************
'примеры приема:
'Id робота
If Not WaitSerialData(XpsHandle, 0.03) Then GoTo Error_inp
If bRead(0) <> 48 Then GoTo Error_inp
'символ ":"
If Not WaitSerialData(XpsHandle, 0.03) Then GoTo Error_inp
If bRead(0) <> 58 Then GoTo Error_inp
'1-й байт, V Akk
If Not WaitSerialData(XpsHandle, 0.03) Then GoTo Error_inp
LabelRobotData(n) = bRead(0) / 10
'2-й байт
If Not WaitSerialData(XpsHandle, 0.03) Then GoTo Error_inp
LabelRobotFire(n) = bRead(0)
'.......
Error_inp:
LabelRobotData(n) = "Ошибка"
'очистка очереди, чтоб не ушло в блокировку по ошибке
Do
Loop Until WaitSerialData(XpsHandle, 0.03) = False
Madf писал(а):Тут ещё по инету летает такая цифра для 245:
• Transfer Data rate to 1M Byte / Sec - D2XX Drivers
• Transfer Data rate to 300 Kilobyte / Sec - VCP Drivers
Dmitry__ писал(а):Вот еще глянь эту табличку, уж больно скорость по vcp по картинке смахивает с твоей скоростью.
http://www.efo.ru/doc/Ftdi/Ftdi.pl?2394
Madf писал(а):Не понял, что это за код (куда сувать), что допиливать, не проще дать готовый проект в архиве или просто EXE-ник?
Dmitry__ писал(а):Во чего нарыл на эфо:
http://www.efo.ru/doc/Ftdi/Ftdi.pl?778
Программа "D2XXApp" EXE ZIP
Программа представляет собой пример приложения, выполненного в среде Borland C++ Builder v.5.0 и использующего драйверы D2XX. Она позволяет передавать и принимать данные по USB как в стандартных режимах UART и FIFO, так и в режиме "Bitbang". Вы можете скачать исполняемый модуль этой программы, а также исходные файлы проекта.
Madf писал(а):В общем итог таков, как и везде говорилось, хочешь скорости юзай: D2xx + шустрый МК.
Open App.Path & "\" & "log.txt" For Output As #1
Duhas писал(а):ммм, а хмегой с помощью DMA гнать не ? через event system кидаться байтом в порт по готовности со стороны 245..
Чего-то здесь не так, 10-ти мгц. пикина может шевелить ft245 с частотой 1 мгц, а у тебя мега под 30 мгц
Напиши затычку на авр: дергать rx/tx по соотв. приемным сигналам, лучше на асм, параллельные данные не трогай. Так ты проверишь скорость работы программы на стороне компа. Если добьешься 8 мбит/с то тогда только ковыряй программу на авр.
Подправь свой D2xx.exe, чтоб писал лог в папку из которой запускают файл (чтоб ошибку убрать). Я попробую еще раз поковырять. Папка по умолчанию в vb: App.Path или CurDir, типа:
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3