Помогите с протоколом GT350s

Автор IvTerCom, 30 Июль 2024 в 12:51

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

IvTerCom

Приветствую!

Друзья, помогите с протоколом самоката GT350s -- на плате дисплея сгорел МК (HC89F0531), поэтому снять дамп возможным не представляется.

Я пробовал протокол от S3 GT, S1, остальные протоколы из соседней темы -- контроллер колеса не отвечает. Сам контроллер, вероятнее всего исправен -- внутри мигает светодиод, все напряжения в норме, ничего не греется. Контроллер колеса собран на МК GD32F330CBT6 (полагаю, что это клон STM). Требуется любая информация про протоколу обмена между платой дисплея и контроллером мотор-колеса.

Спасибо!

vlad-2015

Если при включении зажигания первый байт от контроллера МК:
0x3C - kugoo_s2   
0x28 - kugoo_s3   
0x55 - kugoo_s3b   
0x02 - kugoo_m4   


Kugoo S2 10S6P (12470 км)
У меня нет решения. Но я восхищен красотой проблемы.

IvTerCom

Так, а какова последовательность запуска?

Дисплей должен что-то отправить контроллеру мк, или при подачи питания контроллер мк просыпается и первым отправляет пакет? Дело в том, что у меня на линии UART при подачи питания тишина, нет никаких данных.

vlad-2015

- кнопка включения на плате дисплея замыкает "зажигание" и контроллер дисплей удерживает "зажигание".
- контроллер МК отправляет первый пакет
- Контроллер дисплея начинает отправлять пакеты с заданным интервалом.
- контроллер МК отвечает на пакеты дисплея.
Kugoo S2 10S6P (12470 км)
У меня нет решения. Но я восхищен красотой проблемы.

IvTerCom

Понял, спасибо. Выходит, у меня проблемы с контроллером мк. Скорость передачи там 9600?

vlad-2015

Да, 9600 бод. Можно отправить пакет в контроллер, при достижении нужного размера пакета, контроллер обычно отвечает.
Kugoo S2 10S6P (12470 км)
У меня нет решения. Но я восхищен красотой проблемы.

IvTerCom

Очень интересно. Вообще ни на что не отвечает -- никакой активности. Всё проверил -- технически, похоже, и правда контроллер исправен. Эту теорию подтверждает и то, что контроллер реагирует на понижение питания до уровня отсечки 29в -- отмигивает светодиодом 8 сигналов, также, при отключении мотор-колеса отмигивает 4 сигнала.

Вообще, какой протокол используется в этой связке дисплея и контроллера мк, S3 GT или это неизвестно? В интернете не удалось найти никакой информации.

IvTerCom

#7
Купил на известном сайте изрядно убитую плату дисплея, частично удалось восстановить -- плата не включается, но при нажатии на любую кнопку начинает отправлять следующие данные:


2C 0D 0D 00 DE 37 DE 37 80 71 0F 70 2C 0E 0D 00 CB 24 CB 24 6D 5E FC EC 2C 0F 0D 00 1C 75 1C 75 BE AF 4D 24
2C C5 0E 00 27 80 27 80 C9 BA 58 28 2C C6 0E 00 F8 51 F8 51 9A 8B 29 E0 2C C7 0E 00 1D 76 1D 76 BF B0 4E E4
2C E5 05 00 BE 17 BE 17 60 51 EF 60 2C E6 05 00 CB 24 CB 24 6D 5E FC BC 2C E7 05 00 1C 75 1C 75 BE AF 4D F4
2C 0D 08 00 B5 0E B5 0E 57 48 E6 4C 2C 0E 08 00 0E 67 0E 67 B0 A1 3F BC 2C 0F 08 00 CB 24 CB 24 6D 5E FC E8
2C B5 0D 00 D6 2F D6 2F 64 69 07 CC 2C B6 0D 00 23 7C 23 7C B1 B6 54 E8 2C B7 0D 00 D4 2D D4 2D 62 67 05 C0
2C 0E 0B 00 CD 26 CD 26 83 60 FE 0C 2C 0F 0B 00 16 6F 16 6F A4 A9 47 E4 2C 10 0B 00 CB 24 CB 24 59 5E FC D8
2C 48 04 00 F0 49 F0 49 7E 83 21 0C 2C 49 04 00 2D 86 2D 86 BB C0 5E B8 2C 4A 04 00 F6 4F F6 4F 84 89 27 38


Заметно, что пакеты начинаются с 2C и имеют длину 12 байт.

На каждый пакет данных следующего содержимого:
2C 48 04 00 F0 49 F0 49 7E 83 21 0C
Контроллер мк отвечает одним из вариантов:

1C 22 00 00 24 A4 88 25 24 24 24 1F
1C 24 00 00 2A AA 8E 2B 2A 2A 2A 4B
1C 26 00 00 20 A0 84 21 20 20 20 07
1C 28 00 00 26 A6 8A 27 26 26 26 33
1C 2B 00 00 59 D9 BD 5A 59 59 59 9B
1C 2D 00 00 5F DF C3 60 5F 5F 5F C7


На протоколы из соседней темы не похоже, что же это может быть за протокол?

Sonar

Цитата: IvTerCom от 30 Июль 2024 в 21:24На протоколы из соседней темы не похоже, что же это может быть за протокол?
Видимо очередная китайская "разработка" :) А двигатель то, хоть, пытается крутиться?
Kugoo S2 blue, 36v, 20,8A/h, 2WD, 1,9kW max, Prog disp v3.8, Prog drive v1.9, odo: 30434km.
Все материалы по альтернативным контроллерам для Kugoo S2/S3: http://213.21.12.200/kugoo_project/
Тема на форуме по этим контроллерам https://electrotransport.ru/index.php?topic=61126.0

vlad-2015

Обычный протокол, как у S2, но с нумерацией пакетов.  :bored:
Kugoo S2 10S6P (12470 км)
У меня нет решения. Но я восхищен красотой проблемы.

IvTerCom

Цитата: Sonar от 30 Июль 2024 в 22:58Видимо очередная китайская "разработка" :) А двигатель то, хоть, пытается крутиться?
Да уж, этих китайцев не понять.  :-\  Нет, колесо не крутит.

Цитата: vlad-2015 от 31 Июль 2024 в 09:18Обычный протокол, как у S2, но с нумерацией пакетов.  :bored:
Я в теме по созданию прошивки посмотрел протокол S2/S3 и сравнил -- по-моему, ничего общего. Длина пакетов разная, ид пакетов разные, данные, вероятно, разные. Ещё не понимаю, почему на один и тот же пакет контроллер мк отвечает разными пакетами. Ну, счётчик пакетов понятно (точнее, непонятно зачем он нужен вообще, счётчик "моточасов"?), остальные данные тоже отличаются, похоже на штамп времени или что-то подобное.

К счётчику пакетов также есть вопрос. Сколько байт занимает значение, если 2 байта, то максимум 65535 пакетов и после этой цифры что будет? Сбросится счётчик или значение занимает, скажем 3 байта? В общем, я ничего пока не понимаю, но жутко интересно! :-)

Sonar

Цитата: IvTerCom от 31 Июль 2024 в 13:07точнее, непонятно зачем он нужен вообще, счётчик "моточасов"?
Если не ошибаюсь - таким образом можно отслеживать потерю пакетов.
Kugoo S2 blue, 36v, 20,8A/h, 2WD, 1,9kW max, Prog disp v3.8, Prog drive v1.9, odo: 30434km.
Все материалы по альтернативным контроллерам для Kugoo S2/S3: http://213.21.12.200/kugoo_project/
Тема на форуме по этим контроллерам https://electrotransport.ru/index.php?topic=61126.0

vlad-2015

Цитата: IvTerCom от 31 Июль 2024 в 13:07Сколько байт занимает значение
Занимает 1 байт и обнуляется при переполнении. С большой вероятностью его можно игнорировать.
P.S. Я так понял не все курки подключены?
Kugoo S2 10S6P (12470 км)
У меня нет решения. Но я восхищен красотой проблемы.

IvTerCom

Цитата: Sonar от 31 Июль 2024 в 13:44Если не ошибаюсь - таким образом можно отслеживать потерю пакетов.
Интересно, это вполне возможно. Я об этом не подумал.

Цитата: vlad-2015 от 31 Июль 2024 в 13:49Занимает 1 байт и обнуляется при переполнении. С большой вероятностью его можно игнорировать.
P.S. Я так понял не все курки подключены?
Оригинальная плата от этого самоката окончательно мертва, я из двух собрал одну полуживую. Она тоже не работает полностью -- на экран ничего не выводит и при нажатии на любую кнопку сыпет в линию данные, что я выше писал. Рабочую плату найти невозможно. Поэтому я написал прошивку для другой платы дисплея, от какого-то другого самоката (плата зелёная, с bluetooth и со светодиодным экраном на МК Nuvoton), там требуются небольшие модификации, но в целом -- сойдёт. Поэтому я могу любые данные отправить по UART.

IvTerCom

Что-то никак не могу вникнуть. Судя по другим протоколам, обычно, последний байт -- контрольная сумма. Здесь явно не так, потому что есть несколько пакетов от дисплея к контроллеру мк с разным содержимым и одинаковыми последними байтами, например:
2C 0E 0B 00 CD 26 CD 26 83 60 FE 0C
2C 48 04 00 F0 49 F0 49 7E 83 21 0C
2C E6 05 00 CB 24 CB 24 6D 5E FC BC
2C 0E 08 00 0E 67 0E 67 B0 A1 3F BC

С курками на оригинальной плате проверить не могу -- она не реагирует на курки.

Есть у кого-нибудь идеи? :bn:

vlad-2015

Цитата: IvTerCom от 31 Июль 2024 в 16:34последний байт -- контрольная сумма. Здесь явно не так
Выше писал, как у S2.
Если тыкнуть носом, то for (i=0; i<11; i++) *(uint8_t*)(TX_data+11)+=TX_data[i];
Kugoo S2 10S6P (12470 км)
У меня нет решения. Но я восхищен красотой проблемы.

IvTerCom

О, спасибо! Я просто сравнил данные и сделал вывод, что протоколы разные.  :bn: