Jump to content

    

Принять данные через COM порт и сохранить в файл

45 minutes ago, Arlleex said:

После выделенной строки количество данных изменилось в 2 раза в BULK-пакетах, и, кроме того, изменился шаг опроса устройств на шине USB - через 2мс стал опрашивать...

А содержимое?

К сожалению, захват идет на уровне URB, поэтому самое интересное - непосредственно пакеты на шине - таким способом не увидеть.

Share this post


Link to post
Share on other sites
1 час назад, aaarrr сказал:

К сожалению, захват идет на уровне URB, поэтому самое интересное - непосредственно пакеты на шине - таким способом не увидеть.

USBTrace показывает и содержимое блоков. Насколько помню...

Share this post


Link to post
Share on other sites
22 hours ago, jcxz said:

И ТС всех обманул: поток у него не 2 Мб/сек, а всего лишь 2048/.015 = 136533 КБ/сек.

Ну, и к чему эти обвинения?

Внимательно прочитайте моё первое сообщение и не пишите ерунды!

МК примерно за 5 мс получает 2048 байт от источника и далее отправляет по uart на скорости ровно 2000000 бод.

 

зы:

я уже писал что это всё временно. 

Хотел, пока жду плату, попробовать отправить данные на комп по uart.

Ну не получилось и ладно.

Share this post


Link to post
Share on other sites

Промаркировал пакеты, отправляемые с МК. Смотрю в файле, когда где произойдет ошибка, и вычисляю смещение в сниффере. Сниффер показывает, что данные действительно пропали (пара байт не пришло):

image.png.f98b942a29d033c013e24ae6b555a704.png

Вот идут последовательности 0x85, 0x86... Должны идти дальше 0x87, 0x88, а их тупо нет! Куда подевались? =(

Как видно, между всеми транзакциями 1мс, т.е. хост-контроллер их даже обслужил... FT232 что ли не выдала их...

Share this post


Link to post
Share on other sites
58 минут назад, zombi сказал:

Внимательно прочитайте моё первое сообщение и не пишите ерунды!

МК примерно за 5 мс получает 2048 байт от источника и далее отправляет по uart на скорости ровно 2000000 бод.

Может не будем передёргивать? Цитата:

В 05.11.2018 в 19:58, zombi сказал:

Данные идут пачками по 2048 байт каждые 15 ms.

Общая длина всей посылки 512MB.

Ерунду здесь пока что пишете только Вы.

Share this post


Link to post
Share on other sites
37 minutes ago, Arlleex said:

Как видно, между всеми транзакциями 1мс, т.е. хост-контроллер их даже обслужил... FT232 что ли не выдала их...

Не тратьте  время.
Винда в принципе не может передать 100 мегов в одном направлении без сбоев даже между внутренними виртуальными портами. 

 

Share this post


Link to post
Share on other sites
24 minutes ago, jcxz said:

Ерунду здесь пока что пишете только Вы.

А, так Вы тролите здесь. Тогда понятно всё.

Потрудитесь процитировать моё первое сообщение в этой теме полностью!

И еще раз внимательно прочитайте его.

 

Share this post


Link to post
Share on other sites
6 минут назад, zombi сказал:

И еще раз внимательно прочитайте его.

И что мы там должны увидеть? Как 15 мс лёгким движением руки превращаются в 5?  ;)

Как из того вашего первого сообщения можно вычислить скорость потока данных? Не скорость интерфейса, а скорость потока данных? Очевидно так: 2048/0.015 Б/сек.

Share this post


Link to post
Share on other sites
29 minutes ago, AlexandrY said:

Не тратьте  время.
Винда в принципе не может передать 100 мегов в одном направлении без сбоев даже между внутренними виртуальными портами. 

 

В общем, да... Очень жаль =(

Share this post


Link to post
Share on other sites
46 минут назад, Arlleex сказал:

В общем, да... Очень жаль =(

Вы пробуете только с FT232? Может стоит попробовать с другими USB-UART чипами, в которых буфер побольше? Сколько например в CP2102?

Share this post


Link to post
Share on other sites
2 hours ago, Arlleex said:

Вот идут последовательности 0x85, 0x86... Должны идти дальше 0x87, 0x88, а их тупо нет! Куда подевались? =(

Вот в следующем пакете и посмотреть бы статусы.

 

1 hour ago, AlexandrY said:

Винда в принципе не может передать 100 мегов в одном направлении без сбоев даже между внутренними виртуальными портами. 

Думаю, на PCI адаптере с нормальным FIFO справится.

Share this post


Link to post
Share on other sites
5 minutes ago, jcxz said:

Вы пробуете только с FT232? Может стоит попробовать с другими USB-UART чипами, в которых буфер побольше? Сколько например в CP2102?

Где-то вроде даже есть она у меня. Попробую на выходных теперь уже, наверное.

 

1 minute ago, aaarrr said:

Вот в следующем пакете и посмотреть бы статусы.

Завтра могу скинуть содержимое следующего пакета. Честно говоря, я мало что могу сказать по статусам, поэтому приведу на общее обозрение пока что...

Share this post


Link to post
Share on other sites
34 минуты назад, aaarrr сказал:

Думаю, на PCI адаптере с нормальным FIFO справится.

У меня тут на компе такая PCI-мультипортовка есть   ;)

Но пока я её пользую только на 921600 бод.

Если верить мануалу, то она умеет максимальный baudrate == 15625000. Но вот засада - нет нуль-модемного кабеля! Завтра принесу такой кабель (если не забуду) и проверю.

Кстати - в свойствах её дров есть фишка "Remap Baud Rates", которая позволяет переназначать скорости на другие значения. Например: 15625000 можно назначить на 110 бод. Так что все терминалки должны с ней работать, даже если в них прописано максимум 115200.   :)

Share this post


Link to post
Share on other sites
1 minute ago, jcxz said:

Если верить мануалу, то она умеет максимальный baudrate == 15625000

Для RS232 очень смелая цифра. Что же у них за драйверы?

Share this post


Link to post
Share on other sites
18 minutes ago, jcxz said:

Кстати - в свойствах её дров есть фишка "Remap Baud Rates", которая позволяет переназначать скорости на другие значения. Например: 15625000 можно назначить на 110 бод. Так что все терминалки должны с ней работать, даже если в них прописано максимум 115200.   :)

А у меня не в свойствах дров, а в файле конфигурации .inf в папке с дровами для FTDI =) Я 2000000 заремапил вместо 300. Только не совсем понимаю, как оно работает (вообще система отображения на ПК). Вот я, допустим, заполняю структуру DCB, выставляю там скорость, допустим, 115200. Захожу в диспетчер устройств, выбираю свой преобразователь порта, захожу в свойства драйвера - вижу там:

image.png.595453c76141d7e8cb4a62383b73a87b.png

На что влияют эти настройки? Полагаю, это значения по умолчанию?

Я почему спрашиваю - вот я сделал ремап скорости 2000000 вместо 300. Но в своей программе в структуру DCB все равно пишу 2000000. Без ремапа в файле конфигурации драйвера такой фокус не работает. То есть, как мне кажется, при подключении к USB драйвер обменивается таблицей установленных скоростей, а дальше, когда заполняется структура DCB-параметров порта, FT232 делает автоподбор скорости исходя из этой таблицы. Или не так?

image.png.595453c76141d7e8cb4a62383b73a87b.png

Edited by Arlleex

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now