Через некоторое время последовательная связь через RS-232 прекращается, данные не передаются, почему? - PullRequest
1 голос
/ 07 января 2020

Я пытаюсь установить связь между специальной платой (подробности ниже) и моим ноутбуком с протоколом RS-232 через преобразователи USB в TTL ( таблица данных ). Я использую GtkTerm (версия 1.0) на своем ноутбуке. На борту я использую minicom (версия 2.7).

Я могу отправлять данные в начале без ошибок, также на GtkTerm я могу отправлять необработанные файлы, которые можно отслеживать через minicom на борту. Через некоторое время я не могу передать данные или получить какой-либо ответ от миникома совета. Я пытался общаться через Minicom на обоих устройствах, проблема все еще существует.

Я работаю со встроенной платой, которая является специальным продуктом. На нем установлен микропроцессор Texas Instruments AM4376BZDN80 ( datasheet ). Ubuntu работает на этой плате. Детали для uname -a: Linux *companyname* 4.14.40-51464-gaf2366a-dirty #13 PREEMPT Mon Dec 2 09:43:55 +03 2019 armv7l GNU/Linux.

Я работаю с ноутбуком с Ubuntu 19.10 и детали для uname -a: Linux Lenovo 5.3.0-24-generic #26-Ubuntu SMP Thu Nov 14 01:33:18 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux.

Подробная информация о драйвере, который я использую для Преобразователь USB в TTL.

Модуль ядра: modinfo ftdi_sio:

filename:       /lib/modules/5.3.0-24-generic/kernel/drivers/usb/serial/ftdi_sio.ko
license:        GPL
description:    USB FTDI Serial Converters Driver
author:         Greg Kroah-Hartman <greg@kroah.com>, Bill Ryder <bryder@sgi.com>, Kuba Ober <kuba@mareimbrium.org>, Andreas Mohr, Johan Hovold <jhovold@gmail.com>
srcversion:     973CCF3AD54611DBC628693
alias:          usb:v0920p7500d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0403p8348d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v22B7p150Dd*dc*dsc*dp*ic*isc*ip*in01*
alias:          usb:v1C40p0477d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1E8Ep6001d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v04B4pF900d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v04B4p009Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0451pC32Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0A5Cp6422d*dc*dsc*dp*ic*isc*ip*in*
...
alias:          usb:v0403pD9A8d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1901p0015d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v058Bp0043d*dc*dsc*dp*ic*isc*ip*in01*
alias:          usb:v058Bp0028d*dc*dsc*dp*ic*isc*ip*in01*
alias:          usb:v0403pCB08d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05D1p8004d*dc*dsc*dp*ic*isc*ip*in*
...
alias:          usb:v0C6Cp04B2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1514p2008d*dc*dsc*dp*ic*isc*ip*in02*
alias:          usb:v04D8p000Ad*dc*dsc*dp*icFFiscFFip00in*
alias:          usb:v0456pF001d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0456pF000d*dc*dsc*dp*ic*isc*ip*in*
...
alias:          usb:v0403p9F80d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0403pFFA8d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0403pFF00d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0403pF60Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0403pF608d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0403pF7C0d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0403p0000d*dc*dsc*dp*ic*isc*ip*in*
depends:        usbserial
retpoline:      Y
intree:         Y
name:           ftdi_sio
vermagic:       5.3.0-24-generic SMP mod_unload 
sig_id:         PKCS#7
signer:         Build time autogenerated kernel key
sig_key:        37:BE:2D  ...  97:58:77:1C:1B
sig_hashalgo:   sha512
signature:      4A:E1:50:53:10:61:08:46:4C:95:07:E7:AE:2A:22:D0:12:A1:42:DD:
        09:77:73:96:6E:4A:BB:26:F4:EA:6B:DB:DB:7E:07:EA:A0:DF:E0:FF:
        B3:96:11:B3:E4:33:9D:29:52:56:37:E1:1A:08:49:AE:EF:E4:30:3D:
...
        78:C9:E9:84:85:23:7D:4C:64:20:8D:48:3F:C1:01:72:E1:36:14:D5:
        77:C5:25:E2:4A:A5:84:1D:75:D3:2D:4B:F7:9E:94:DF:10:0F:13:54:
        17:F1:3C:62:F0:3F:AD:57:26:CC:59:44:B8:71:53:B7:F4:56:32:A2:
        21:C9:B8:F9:5E:63:9D:5F:A8:B6:51:F8:F6:DA:FB:97:6B:94:5D:76:
        AF:50:EA:33:00:23:88:7B:BE:34:4F:E0:D0:C7:C0:0C:0C:34:44:51:
        B8:E4:EC:E0:7B:36:DD:79:88:F8:E9:15
parm:           ndi_latency_timer:NDI device latency timer override (int)


Сейчас я тестирую последовательную консоль со скоростью передачи 115200 8N1 с отключенным управление потоком. В будущем я буду использовать более высокую скорость передачи, почти 500000, в программе C, которая передает данные. Поэтому я ищу решение, не зависящее от скорости передачи.

Интересно, есть ли специальные настройки для размера буфера или времени ожидания? Я думаю, что это может быть из-за буфера, но на minicom нет настройки, связанной с буфером. Как я могу узнать об ограничении буфера? Я ищу эквивалентные настройки в <termios.h>. Я использую код из этого поста . Я попытался связаться с двумя C программами, и все же через некоторое время передача данных не происходит.

PS: Дайте мне знать, если у меня есть ошибки с Engli sh в этом тексте. Не стесняйтесь спрашивать дополнительную информацию, но я не могу предоставить более подробную информацию о плате, потому что она не является общедоступным c устройством.

РЕДАКТИРОВАТЬ:

Я отключил оба кабеля и повторил процедуру на этот раз мне пришлось передать немного больше данных, чтобы получить ту же ситуацию. Я также удалил USB Hub и напрямую подключил конвертер к ноутбуку.

dmesg на своем ноутбуке

[751114.353945] mce: CPU4: Package temperature/speed normal
[751114.353946] mce: CPU2: Package temperature/speed normal
[751114.353947] mce: CPU0: Package temperature/speed normal
[751114.353948] mce: CPU6: Package temperature/speed normal
[751114.353991] mce: CPU1: Package temperature/speed normal
[751114.353992] mce: CPU5: Package temperature/speed normal
[751114.353993] mce: CPU7: Package temperature/speed normal
[751114.353993] mce: CPU3: Package temperature/speed normal
[752203.675249] usb 1-2: clear tt 1 (9231) error -71
[752203.675361] usb 1-2: USB disconnect, device number 35
[752203.675363] usb 1-2.4: USB disconnect, device number 36
[752203.675542] usb 1-2: clear tt 1 (9231) error -71
[752203.675798] ftdi_sio ttyUSB1: FTDI USB Serial Device converter now disconnected from ttyUSB1
[752203.675824] ftdi_sio 1-2.4:1.0: device disconnected
[752206.940824] usb 1-2: new high-speed USB device number 37 using xhci_hcd
[752207.089000] usb 1-2: New USB device found, idVendor=214b, idProduct=7000, bcdDevice= 1.00
[752207.089002] usb 1-2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[752207.089004] usb 1-2: Product: USB2.0 HUB
[752207.089731] hub 1-2:1.0: USB hub found
[752207.089748] hub 1-2:1.0: 4 ports detected
[752238.960329] usb 1-2: USB disconnect, device number 37
[752245.180955] usb 1-2: new full-speed USB device number 38 using xhci_hcd
[752245.334394] usb 1-2: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00
[752245.334397] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[752245.334400] usb 1-2: Product: FT232R USB UART
[752245.334401] usb 1-2: Manufacturer: FTDI
[752245.334403] usb 1-2: SerialNumber: A50285BI
[752245.337563] ftdi_sio 1-2:1.0: FTDI USB Serial Device converter detected
[752245.337602] usb 1-2: Detected FT232RL
[752245.337920] usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB1

dmesg на борту (AM437x)

[17845.257286] usb 1-1.2: USB disconnect, device number 4
[17845.270578] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[17845.284742] ftdi_sio 1-1.2:1.0: device disconnected
[17852.021023] usb 1-1.2: new full-speed USB device number 5 using xhci-hcd
[17852.122251] usb 1-1.2: New USB device found, idVendor=0403, idProduct=6001
[17852.129248] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[17852.137259] usb 1-1.2: Product: FT232R USB UART
[17852.142209] usb 1-1.2: Manufacturer: FTDI
[17852.146573] usb 1-1.2: SerialNumber: A50285BI
[17852.162378] ftdi_sio 1-1.2:1.0: FTDI USB Serial Device converter detected
[17852.177916] usb 1-1.2: Detected FT232RL
[17852.187030] usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUSB0
[17928.632376] ftdi_sio ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[17929.969381] ftdi_sio ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[17988.165093] ftdi_sio ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[18032.176046] ftdi_sio ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32

Я также узнал Заявление ниже в dmesg.

[12191.865894] ftdi_sio ttyUSB0: failed to get modem status: -32 
...