Перейти к содержанию
    

Как прослушать сразу 2 сигнала (RxD и TxD)

А есть ли где адаптер и софтина, чтобы кроме протокола записывали задержку между стоп битом TX и стартовым битом ответа по RX? Где то сбоит задержка прием- передача и портится последний-первый байт обмена. Но постоянно держать на линии осциллограф слишком накладно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 минут назад, khach сказал:

А есть ли где адаптер и софтина, чтобы кроме протокола записывали задержку между стоп битом TX и стартовым битом ответа по RX? Где то сбоит задержка прием- передача и портится последний-первый байт обмена.

Это же элементарно делается в самой программе. Зачем что-то внешнее?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/12/2021 at 7:05 PM, turnon said:

Использую для этих целей 74HC08N,

Кстати, лично у меня работает даже без подачи питания на 74HC08. Случайно отключил питание и вижу дальше обмен дынными.
Подключены только 4 вывода (GND, 1А, 1В и 1Y). Видимо фантомного питания достаточно.

Изменено пользователем Павел_Б

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 hours ago, jcxz said:

Это же элементарно делается в самой программе. Зачем что-то внешнее?

Не делается- во первых драйвер винды не позволяет получить точное время приема пакета в тиках проца, или нужен спец драйвер типа как от wireshark-a, во вторых все равно время будет конца приема а не начала. Простейший логический анализатор конечно это ловит, но для этого нужен отдельный комп и он все равно пропускает такие события ( не все регистрирует). По уму тут нужно прерывание по старт биту и считывать таймер по прерыванию и писать его в лог в заголовок к пакету данных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

27 минут назад, khach сказал:

Простейший логический анализатор конечно это ловит, но для этого нужен отдельный комп и он все равно пропускает такие события ( не все регистрирует).

Это звучит прямо как откровение. Зачем ему отдельный комп? Почему он должен что-то пропускать, если он тупо пишет в комп байты (по одному биту на входной канал) с частотой 24 МГц, а вся обработка идет уже в компе над сохраненными данными?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, khach сказал:

Простейший логический анализатор конечно это ловит, но для этого нужен отдельный комп и он все равно пропускает такие события

Чаво???? Ну я еще могу понять когда речь об анализе USB, но USART на 115200 он полностью ловит не пропуская ничего даже с пониженным до 1МГц семплированием чего большинство компов 10 летней давности даже не заметят. Оригинал,  имеющий на борту буфер, вполне справляется с анализом USB 2.0 на компах 5 летней давности без каких-то заметных пропусков.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 hours ago, artemkad said:

Вам че, 10 баксов жалко на простейший логический анализатор?

 

Однозначно классный вариант. Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, artemkad said:

Чаво???? Ну я еще могу понять когда речь об анализе USB, но USART на 115200 он полностью ловит не пропуская ничего даже с пониженным до 1МГц семплированием

Ловить, в смысле оцифровать, может он и ловит, Cypress там данные льет по DMA, но софт ситуации с перекрытием прием- передача теряет. Т,е в логе обмена ошибка есть, а софт анализатора ее не зафиксировал. Тем более что такое событие бывает раз в пол-часа или реже. Осциллограф с триггером RS232 тоже не очень помагает, т.к гробится start condition и осцилл тупо не запускает развертку. LA1016 пробовали, но там тоже проблема с триггерами для таких событий, или мы не умеем триггера настраивать. Повторяю- надо поймать ситуацию когда передача слейва налезла на хвост передачи мастера. Интерфейс RS485 двунаправленный. Почему так происходит- пока ХЗ, будем копать фирмварь и мастера и слейва.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, khach сказал:

но софт ситуации с перекрытием прием- передача теряет.

Никогда не наблюдал что-бы теряло. Я несколько лет работал на этой дешевке и взял более оригинальную версию только когда понадобилось работать с двумя CAN-ами одновременно. Работает абсолютно честно.

4 часа назад, khach сказал:

Т,е в логе обмена ошибка есть, а софт анализатора ее не зафиксировал.

Дык может проблему не там ищите?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, khach сказал:

Повторяю- надо поймать ситуацию когда передача слейва налезла на хвост передачи мастера. Интерфейс RS485 двунаправленный.

Ну, теоретически, если наблюдать ситуацию одновременно со стороны передатчика мастера и слейва возможна крайне трудноуловимая ситуация когда слейв начинает передачу до завершения стоп-бита мастера. Т.е. поймать-то её поймаешь, но найти в потоке будет сложно потому как логику простого триггера  тут не настроишь... Хотя, там вроде можно смотреть на вход управления передатчиком если им корректно управляется уже после завершения отправки байта(а не освобождения  буфера UART)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 minutes ago, artemkad said:

возможна крайне трудноуловимая ситуация когда слейв начинает передачу до завершения стоп-бита мастера.

Угу, кто то начинает "орать" в шину невовремя и при этом неизвестно кто- слейвой на шине несколько десятков. Самое обидное, что в протоколе предусмотрено в пакете указывать адрес "орущего" но эта часть как раз и интерферирует с хвостом передачи мастера. Если бы предусмотрели при описании протокола адрес дублировать в конце пакета перед КС то давно бы поймали виновника без всяких анализаторов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, khach сказал:

Угу, кто то начинает "орать" в шину невовремя и при этом неизвестно кто- слейвой на шине несколько десятков.

Слейвы свои или кто-то другой пишет их программы? Если свои, то можно или записать в лог или просто выдать индикацию того, что переданное не равно принятому.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, khach сказал:

Угу, кто то начинает "орать" в шину невовремя и при этом неизвестно кто- слейвой на шине несколько десятков.

Что то вы путаетесь в показаниях... То пишете:

15 часов назад, khach сказал:

Не делается- во первых драйвер винды не позволяет получить точное время приема пакета в тиках проца, или нужен спец драйвер типа как от wireshark-a, во вторых все равно время будет конца приема а не начала.

то уже "слэйвов несколько десятков" и неизвестно кто выходит на передачу.

Или у вас "слэйвы" - это компы с виндой? И их несколько десятков???  :shok:

Если это всё-таки собственные устройства с вашей программой, то ещё раз возвращаемся к:

Что мешает так сделать? И причём тут wireshark?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...