k155la3 27 10 апреля, 2020 Опубликовано 10 апреля, 2020 · Жалоба 15 minutes ago, MiD said: Какое ПО лучше использовать для отправки пакетов ? ТУТ выбирайте любой. Я пользую первый в списке. Вам понадобится работа с макросами, чтобы пакет уходил "слитно", без пауз. Но и это может не сработать, если контролируются таймауты на задержку ответа. Хотя для этого этапа уже лучше переходить на свою (C, pas . . .) утилиту + PC с двумя портами. Это на порядок упростит анализ протокола и начало работы с шиной вашего "девайса". (Можно периодически переключать свой софт из режима "моста" на полное или частичное управление, отключая COM-порт с родным "мастером" и передавая свои пакеты управления.) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vguard 2 10 апреля, 2020 Опубликовано 10 апреля, 2020 · Жалоба Имхо, выложенного Вами с ошибками объема данных для анализа недостаточно. Если хотите раскрутить протокол, объем измерений должен быть на порядок больше. Длительности 5 секунд, в которой всего 9 пакетов (80 30 9F ...) недостаточно, нужно хотя бы пол минуты для начала. Естественно не путать дампы. Как работают кнопки тоже не понятно. Позволяют ли кнопки длительное нажатие, при котором скорость (наклон) дорожки изменяется. Или одно нажатие приводит к одному шагу изменения скорости (наклона) дорожки, вне зависимости от длительности нажатия. Допустим в протоколе передается код нажатой кнопки (а это может быть и не так), тогда Вам нужно нажать кнопку и держать в течение всего измерения, а не давить кнопку несколько раз. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 10 апреля, 2020 Опубликовано 10 апреля, 2020 · Жалоба 1 hour ago, MiD said: А я могу отправлять пакеты подключившись парралельно Да, можно. Другой вопрос, что если два передатчика одновременно включатся, данные на шине побьются. Но это довольно штатная ситуация, сгореть ничего не должно Как на коленке решить эту проблему, не знаю - нужно писать софтинку, отслеживать "тишину". Да и вообще, как в данном конкретном случае организован доступ к шине, я не разобрался. Тайминги в снятом логе почему-то постоянно плавают... 44 minutes ago, k155la3 said: ТУТ выбирайте любой. Я пользую первый в списке. Bray terminal, хоть и достаточно удобен в плане интерфейса, с ком-портом работает через ж., т.е. побайтово. Грузит процессор и теряет символы при приёме на больших объемах, вставляет произвольные паузы при отправке. Я com port toolkit использовал, когда надо было пачку байт без пауз отправить. Ну или действительно сразу на каком-нибудь питоне ваять. 50 minutes ago, k155la3 said: утилиту + PC с двумя портами Сомневаюсь, что эта конструкция уменьшит количество коллизий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 10 апреля, 2020 Опубликовано 10 апреля, 2020 · Жалоба 9 minutes ago, esaulenka said: Сомневаюсь, что эта конструкция уменьшит количество коллизий. ну, тут "как пойдет". Если на шине один мастер - то коллизии исключаются (ответы периферии только по запросу). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiD 0 11 апреля, 2020 Опубликовано 11 апреля, 2020 · Жалоба 19 hours ago, vguard said: Имхо, выложенного Вами с ошибками объема данных для анализа недостаточно. Если хотите раскрутить протокол, объем измерений должен быть на порядок больше. Длительности 5 секунд, в которой всего 9 пакетов (80 30 9F ...) недостаточно, нужно хотя бы пол минуты для начала. Естественно не путать дампы. Как работают кнопки тоже не понятно. Позволяют ли кнопки длительное нажатие, при котором скорость (наклон) дорожки изменяется. Или одно нажатие приводит к одному шагу изменения скорости (наклона) дорожки, вне зависимости от длительности нажатия. Допустим в протоколе передается код нажатой кнопки (а это может быть и не так), тогда Вам нужно нажать кнопку и держать в течение всего измерения, а не давить кнопку несколько раз. Я понял, сделаю разный набор больших дата сетов. и Результаты прогоню через макрос в Экселе. Кнопки именно так и работают ( Есть еще кнопки фикс скорость 12 км\ч или наклон 5% их не трогаю пока) 19 hours ago, esaulenka said: Ну или действительно сразу на каком-нибудь питоне ваять. Я накидал для арудуино чередование 2-х коротких пакетов, так как это делает дорожка, но тут несколько базовых вопросов появилось: 1. В ардуино я делаю через серийный порт и получается, что у меня только 1 канал, а не как RS485 два с инверсией. Тут вопрос, что лучше сделать, купить переходник для RS485 (не USB, а с контактами помонтаж\пайку) и отправлять через него. Или лучше использовать любые два пина и попробовать эмулировать RS485, отправля два инвертированных пакета на два разных пина? 2. Данные с дорожки, которые я анализировал были с учетом "Most Significant Bit sent", a то что отправляет Арудино - "Least Significant Bit Sent". Тут, несмотря на то, что я почитал инет - плаваю. Если я правильно понял, то нужно сдвинуть регистр отправляемых данных, но результата пока не достинг. Там сложная для меня теория и просто >>1 не прокатывает. Может кто-то делал? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 11 апреля, 2020 Опубликовано 11 апреля, 2020 · Жалоба 40 minutes ago, MiD said: Я понял, сделаю разный набор больших дата сетов. и Результаты прогоню через макрос в Экселе. Подключитесь только нормально, на блоке кнопок между контроллером и драйвером. И помех не будет, и гадать, кто что передаёт, не надо. 43 minutes ago, MiD said: купить переходник для RS485 Да, однозначно. Программно, в принципе, сделать можно, но а) нетривиально б) защит никаких нет. 46 minutes ago, MiD said: отправляет Арудино - "Least Significant Bit Sent" Вы что-то путаете. UART всегда и везде отправляет первым старший бит. Я не очень хорошо знаком с ардуино-библиотеками, но вряд-ли кто-то реализовывал переворот порядка бит "младшим вперёд". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiD 0 11 апреля, 2020 Опубликовано 11 апреля, 2020 · Жалоба 11 hours ago, esaulenka said: Подключитесь только нормально, на блоке кнопок между контроллером и драйвером. И помех не будет, и гадать, кто что передаёт, не надо. Если я правильно понял то речь идет об основном контроллере и драйвером это Max... Честно говоря я слабо представлю что смогу куда-то тут подпояться до MAX Даже к его ножкам вряд ли. ( на фото часть переферии поотключал чтобы провода не мешали. Шлейфы наверху и внизу - это к блокам кнопок. ДЛя экрана отдельная плата. RS485 заказал, доставка только в среду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 11 апреля, 2020 Опубликовано 11 апреля, 2020 · Жалоба 22 minutes ago, MiD said: Честно говоря я слабо представлю что смогу куда-то тут подпояться до MAX Вообще-то тут полная халява - интерфейс на отдельной плате с огромными контактными площадками. Надо только разобраться, как они подключены. По картинке плохо понятно, нужен мультиметр. Ну или к MAX'у, к 1,3 и 4 ногам. Они достаточно большие и рядом есть пятачки (для ремонтников, видимо). PS Horizon Adventure 4 Plus стоит сотню килорублей. Жесть какая... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doka 4 11 апреля, 2020 Опубликовано 11 апреля, 2020 · Жалоба +1 к тому, что нужны "длинные" логи чтобы уменьшить их размер стоит понизить частоту семплирования (для адекватной декодировки UART достаточно будет 4...8х к скорости интерфейса). такое впечатление, что контрольная плата является централизованным модулем управления, а исполнительная часть на приводах просто выполняет "мгновенные команды", т.е. нет высокоуровневой команды "сделать наклон 15гр", но есть низкоуровневые команды "поднять/наклонить полотно на 1 единицу дискрета" и контрольная плата сама высчитывает число и время за которые должна выдать всю пачку на исполнительный модуль - для проверки этой догадки и нужны длинные (по несколько минут) логи. ЗЫЖ из логов надо будет вырезать некий heartbeat СMD - выше было указано, что при обрыве связи девайс переходит в нерабочий режим до восстановления связи и перезагрузки Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiD 0 12 апреля, 2020 Опубликовано 12 апреля, 2020 · Жалоба 13 hours ago, esaulenka said: Вообще-то тут полная халява - интерфейс на отдельной плате с огромными контактными площадками. Надо только разобраться, как они подключены. По картинке плохо понятно, нужен мультиметр. Ну или к MAX'у, к 1,3 и 4 ногам. Они достаточно большие и рядом есть пятачки (для ремонтников, видимо). PS Horizon Adventure 4 Plus стоит сотню килорублей. Жесть какая... на MAX не решился припаиваться, у меня очень базовый навык пайки :( Подключился к входным контактам платы передачи данных. В атаче дамп, сюдя по всему без помех. Я думаю в такой конфигарации сделать все большие дампы с разнными сценариями. From_Board_Nothing60s.logicdata 12 hours ago, Doka said: ЗЫЖ из логов надо будет вырезать некий heartbeat СMD - выше было указано, что при обрыве связи девайс переходит в нерабочий режим до восстановления связи и перезагрузки Да, это повырежу на результирующих файлах в Excel. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 12 апреля, 2020 Опубликовано 12 апреля, 2020 · Жалоба On 4/11/2020 at 11:37 AM, esaulenka said: UART всегда и везде отправляет первым старший бит. Я вот тут фигню сказал, а меня никто не поправил. Правильно - в UART первым уходит младший бит. Предлагаю анализатор настроить так же. Подсчёт CRC, правда, будет по-другому. Как соберёте данные, попробую подобрать алгоритм. 1 hour ago, MiD said: В атаче дамп, сюдя по всему без помех. Да, стало гораздо лучше. Channel3 - DE. Когда там единичка, пульт занимает линию, когда ноль - слушает. Channel5 - приемник, данные с нижней платы Channel7 - передатчик, данные с пульта. Идея с передачей данных с третьего устройства, скорее всего, потерпит неудачу - пульт отпускает DE очень редко, вероятность коллизий очень высокая. Можно попробовать пульт вовсе оторвать и "проиграть" в шину последовательность байт с 7-го канала (по возможности, выдерживая паузы). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiD 0 13 апреля, 2020 Опубликовано 13 апреля, 2020 · Жалоба Я, сегодня сломал весь мозг себе. Начал делать дампы, и один из каналов больше не отображается (тот, что был Channel5). Самое интересное, я не трогал ничего со вчерашнего дня там. Перепроверил все провода, спайки, контакты - все сто раз перевоткнул. Нет и всё. А еще понял, что при разных конфигурациях подключния проводов выдает разную картинку на анализаторе. Но "красивый вариант" только такой. В итоге остался DE как я вижу и данные с пульта. Может есть идеи что могло не так пойти или где я туплю. А второй момент, если во вчерашнем дампе пакеты на Channel7 чередовались один за другим, то сегодня они идут пачками по 8 пакетов одного вида 8 пакетов другого. Мне кажется что-то опять у меня с подключением не так. DefaultStartSpeed_NoButtons.logicdata Treadmill_DefaultSpeed_NoButtons.xlsx Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vguard 2 13 апреля, 2020 Опубликовано 13 апреля, 2020 (изменено) · Жалоба Дорожка то работает? Может передатчик механической (приводной) части сдох, и не пересылаются ответы по RS485. Этим объясняется и то, что пакеты пересылаются по 8 раз повторно. Центральный контроллер не получает ответ от приводов и повторяет запрос 8 раз. Приводная часть кстати может работать, потому что ее микроконтроллер не знает что передатчик сдох. Подключитесь снова к шине RS485 и посмотрите там трафик. Если даже такое произошло, то лечится заменой микросхемы драйвера RS485. Изменено 13 апреля, 2020 пользователем vguard Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiD 0 13 апреля, 2020 Опубликовано 13 апреля, 2020 · Жалоба Дорожка работала и работает сейчас. Я вернулся к нормальным измерениям. Как именно я сам до конца не понял. Там контактов больше, чем у меня ножек на анализаторе и, видимо, методом перебора, я достиг дзена. Точно высянил, что 12вольт тоже нужно подать на анализатор с платы иначе чушь получается. В итоге, как мне кажется я нашел закономерность, но появилось предположение-вопрос. Я измерял состояния дорожки на разных скоростях без нажатия кнопок. Всегда менялся один пакет из 3-х. Затем я менял высоту наклона дорожки без нажатия кнопок. Всегда менялся другой пакет из 3-х. Отсюда я сделал выводы какой пакет отвечает за скорость, а какой за наклон. Что делает "Короткий" пакет, пока не ясно. Возможно он как раз и есть "пульс" Я сделал замеры и изменил скорость единовременным нажатием. В логе небыло видно никаких аномалий. Просто начиная с этого места пакет скорости стал другим, соотвевующем пакету именно этой скорости. Отсюда вопрос. Либо дорожка постоянно шлет на мотор скорость, с какой тот должен работать и нажатие кнопки просто меняет ее и продолжает слать. Либо всё-таки я анализировал не команды от пульта, а ответ о состоянии от силового блока внизу. Пару дампов на всякий случай приложу. Speed08-09OneButtonPress.logicdata Speed09_NoButtons.logicdata Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vguard 2 14 апреля, 2020 Опубликовано 14 апреля, 2020 (изменено) · Жалоба Ваши рассуждения верны. Пульт шлет скорость и наклон, для чего еще шлет пакет F9/9F Вам до лампочки, просто шлите его также. Соответственно для решения задачи Вам нужно примерно с теми же паузами между пакетами слать 3 пакета: 00 FF F1 02 00 (скорость) CRC 00 FF F6 02 00 (наклон) CRC 00 FF F9 00 90 - запрос непонятно чего, скорее всего защита от применения пульта с другими дорожками, потому что в ответе 6-й байт формируется явно по какому-то хитрому алгоритму. Почему-то относительно ранее присылаемых логов у Вас байты в новых логах развернулись (старший бит стал младшим и наоборот). Но это не принципиально байты развернете как нужно без проблем. Изменено 14 апреля, 2020 пользователем vguard Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться