Avc lan toyota распиновка

Опубликовано: 27.04.2024

Каждое устройство аудиовизуальной системы, подключенное к AVC-LAN (шине передачи данных), передает сигналы по данной шине.

При возникновении короткого замыкания на +B или массу в шине AVC-LAN аудиовизуальная система не сможет функционировать надлежащим образом из-за невозможности обмена данными.

для моделей с 9 динамиками

B00708VE21

*a Компонентный стереоусилитель в сборе
*b Радиоприемник с дисплеем в сборе
*c Линия передачи данных AVC-LAN

для моделей с переключателем управления охладителем в сборе

B00708VE22

*a Переключатель управления охладителем
*b Радиоприемник с дисплеем
*c Линия передачи данных AVC-LAN

ПРЕДОСТЕРЕЖЕНИЕ / ПРИМЕЧАНИЕ / УКАЗАНИЕ

Радиоприемник с дисплеем в сборе является ведущим устройством.

В зависимости от замененных деталей или операций, которые были выполнены при проверке или обслуживании автомобиля, может потребоваться инициализация, регистрация или калибровка. См. раздел "Меры предосторожности при работе с аудиовизуальной системой".

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

Может быть сохранен DTC нарушения обмена данными.

Работа радиоприемника с дисплеем в сборе может быть нарушена.

Выберите модель для проверки.

Результат Перейти к
для моделей с 9 динамиками А
для моделей с переключателем управления охладителем в сборе B

ПРОВЕРЬТЕ РАДИОПРИЕМНИК С ДИСПЛЕЕМ В СБОРЕ Нажмите здесь

ПРОВЕРЬТЕ РАДИОПРИЕМНИК С ДИСПЛЕЕМ В СБОРЕ

Снимите радиоприемник с дисплеем в сборе.

B0070GHC01

Устройство с неподсоединенным жгутом проводов

(Радиоприемник с дисплеем в сборе)

Измерьте сопротивление в соответствии со значениями, приведенными в таблице ниже.

Контакты для подключения диагностического прибора Условие Заданные условия
K3-5 (TX1+) - K3-6 (TX1-) Всегда 60–80 Ом
Следующий шаг
OK
NG

ЗАМЕНИТЕ РАДИОПРИЕМНИК С ДИСПЛЕЕМ В СБОРЕ Нажмите здесь

ПРОВЕРЬТЕ ЖГУТ ПРОВОДОВ И РАЗЪЕМ (ЦЕПЬ AVC-LAN)

Отсоедините разъем K3 радиоприемника с дисплеем в сборе.

Отсоедините разъем K10 компонентного стереоусилителя.

Измерьте сопротивление в соответствии со значениями, приведенными в таблице ниже.

Подключение диагностического прибора Условие Заданные условия
K10-8 (TX+) - K3-5 (TX1+) Всегда Менее 1 Ом
K10-7 (TX-) - K3-6 (TX1-) Всегда Менее 1 Ом
K10-8 (TX+) или K3-5 (TX1+) - масса Всегда 10 кОм или более
K10-7 (TX-) или K3-6 (TX1-) - масса Всегда 10 кОм или более
Следующий шаг
OK
NG

ОТРЕМОНТИРУЙТЕ ИЛИ ЗАМЕНИТЕ ЖГУТ ПРОВОДОВ ИЛИ РАЗЪЕМ

ПРОВЕРЬТЕ НЕИСПРАВНЫЕ ДЕТАЛИ

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

Проверьте все подчиненные устройства.

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

OK
Нормальная работа ведущего устройства восстановилась.
Результат
Следующий шаг
OK
NG

ЗАМЕНИТЕ НЕИСПРАВНЫЕ ДЕТАЛИ

ЗАМЕНИТЕ РАДИОПРИЕМНИК С ДИСПЛЕЕМ В СБОРЕ Нажмите здесь

ПРОВЕРЬТЕ РАДИОПРИЕМНИК С ДИСПЛЕЕМ В СБОРЕ

Снимите радиоприемник с дисплеем в сборе.

B0070GHC01

Устройство с неподсоединенным жгутом проводов

(Радиоприемник с дисплеем в сборе)

Измерьте сопротивление в соответствии со значениями, приведенными в таблице ниже.

Контакты для подключения диагностического прибора Условие Заданные условия
K3-5 (TX1+) - K3-6 (TX1-) Всегда 60–80 Ом
Следующий шаг
OK
NG

ЗАМЕНИТЕ РАДИОПРИЕМНИК С ДИСПЛЕЕМ В СБОРЕ Нажмите здесь

ПРОВЕРЬТЕ ЖГУТ ПРОВОДОВ И РАЗЪЕМ (ЦЕПЬ AVC-LAN)

Отсоедините разъем K3 радиоприемника с дисплеем в сборе.

Отсоедините разъем Z1 переключателя управления охладителем в сборе.

Измерьте сопротивление в соответствии со значениями, приведенными в таблице ниже.

Подключение диагностического прибора Условие Заданные условия
Z1-7 (TX+) - K3-5 (TX1+) Всегда Менее 1 Ом
Z1-8 (TX-) - K3-6 (TX1-) Всегда Менее 1 Ом
Z1-7 (TX+) или K3-5 (TX1+) - масса Всегда 10 кОм или более
Z1-8 (TX-) или K3-6 (TX1-) - масса Всегда 10 кОм или более
Перейти к
OK
NG

ОТРЕМОНТИРУЙТЕ ИЛИ ЗАМЕНИТЕ ЖГУТ ПРОВОДОВ ИЛИ РАЗЪЕМ

ПРОВЕРЬТЕ НЕИСПРАВНЫЕ ДЕТАЛИ

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

Проверьте все подчиненные устройства.

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

производитель Panasonic/Matshushita, номер Toyota 86120-48430/48500, код CQ-ET8361X, номер лицевой панели A56832
Toyota Highlander Club: 6-CD магнитола 2004

Основной разъем 20pin:


вот разъем обычной однодисковой магнитолы


У этой магнитолы есть отдельный штатный усилитель 86100-0W050/0W040


Расположен под нишей домкрата.
Расположение компонентов на схеме
Электрическая схема

т.к. провода к динамикам идут от усилителя, при замене головного устройства приходится согласовывать новое головное устройство с усилителем или "обходить" усилитель (т.е. не использовать его).
Для этого есть комплекты METRA для интеграции с усилителем
В некоторых случаях, для уменьшения шумов рекомендуется применение ground loop isolator.
распиновка основного 20-pin разъема:




1: ACC
2: ILL+
3: AMP
4: -
5: TX+ (Transmission+)
6: -
7: MUTE
8: FR
9: FL
10: GND (SLD)
11: ACC
12: ILL-
13: ANT+
14: -
15: TX- (Transmission-)
16: FADE
17: BEEP
18: RR
19: RL
20: GND (ground to chasis)

разъем cd-чейнджера 12-pin:


1: SG
2: R+
3: R-
4: L+
5: L-
6: MUTE
7: GND
8: -
9: TX+
10: TX-
11: ACC
12: +12V

Многофункциональный разъем. 20 пин:


1: IVI+
2: IVI-
3: -
4: CMP+
5: CMP-
6: SWG
7: SW1 (кнопки Seek+/-, Vol+/-)
8: SW2 (кнопка Mode)
9: TX1+ (AVC-LAN)
10: TX1- (AVC-LAN)
11: -
12: -
13: -
Rear Seat Entertainment
14: SLD/GND
15: RSR+
16: RSR-
17: RSL+
18: RSL-
19: RMU
20: ADM/illumination cancel


Шаг fm-тюнера в магнитоле переделке не поддается из-за отсутствия европейских аналогов магнитолы. В магнитоле установлен процессор NEC D784939AGF151, который не поддерживает чтение ПЗУ (можно только записать)
даташит на процессор (п.28.2.2)
Таким образом для попытки переделки шага на европейский нужна прошивка ПЗУ, которая имеется, скорее всего, только у американских дилеров.

Штатная магнитола Toyota 86120-33700 (Устанавливалась в Toyota Camry ACV30)

Штатная магнитола Toyota 86120-33700 (Устанавливалась в Toyota Camry ACV30) Штатная магнитола Toyota 86120-33700
Штатная магнитола Toyota 86120-33700

На тыльной стороне магнитолы имеется несколько различных разъемов.

Распиновка магнитолы Toyota

Распиновка магнитолы Toyota

Разъем CN701 служит для подключения питания магнитолы, подключения акустики (перед, зад), управления автоматической или активной радио антенны, вход для сигнала габаритов (подсветки).

Распиновка автомагнитолы Toyota

Для эмуляции чейнджера будем использовать Arduino mini и следующую схему подключения:

Схема подключения Arduino к шине данных AVC-LAN

Схема подключения Arduino к шине данных AVC-LAN

Код для эмулятор на моей странице GitHub. Код я использовал готовый, только как выяснилось он расчитан на микроконтроллер работающий на частоте 8 МГц, а у меня Arduino mini с кварцем на 16 Мгц. В коде я подправил тайминги, изменил прескаллер таймера, точности подсчета времени импульсов вполне хватает для уверенного распознавания и управления по протоколу AVC LAN.

Аудио выход нашего ИЗ имеет Небалансный (несимметричный, линейный) сигнал, он передаётся по двум проводникам: один проводник — информационный, другой — земля. Это обязательное и достаточное условие для протекания электрического тока по замкнутой цепи. Данный способ передачи сигналов отличается исключительной простотой реализации, однако не способен противостоять помехам на физическом уровне.

А аудио вход на магнитоле балансный.

Балансный сигнал использует для передачи три проводника: два информационных (прямой и инверсный) и одну землю. Электрический импеданс информационных проводников по отношению к земле сбалансирован (то есть равен), что нашло отражение в названии. Сигналы по двум информационным проводникам балансной линии передаются в противофазе с равной амплитудой относительно земли.

Приёмник балансного сигнала вычитает из прямого сигнала инверсный, в результате помехи, синфазно наведённые на такую линию, вычитаются, а полезный сигнал увеличивается по амплитуде в два раза. Существенное отличие балансной линии от обычной дифференциальной пары — в обязательном наличии земляного проводника и соблюдении равных импедансов пар «плюс—земля» и «минус—земля», что, во-первых, сохраняет равные амплитуды прямого и инверсного сигнала на всём протяжении линии и на входе приёмника, во-вторых, позволяет применять дополнительные методы контроля и исправлений искажений сигнала.

Для согласования аудио выхода ИЗ с входом магнитолы потребуется вот такая или подобная схема построенная на операционных усилителях.

В этот раз изготавливать и ждать платы из Китая не захотелось. Изготовил платы для усилителя методом пленочного фоторезиста и травлением в хлорном железе.

Собрал Arduino и усилитель в один корпус:

Устройство в сборе

Устройство в сборе

Так как штатного разъема CN702 нету, подпаялся к нему и вывел на проводе, около 0.5 метра разъем DB9. Это так же и для удобства модернизации устройства, не придется каждый раз снимать магнитолу чтобы его подключить. В качестве модернизации можно предложить использования Bluetooth модуля, придется немного доработать прошивку и можно будет управлять аудиопроигрывателем подключенным по Bluetooth непосредственно с магнитолы или кнопок на рулевом колесе. Так же можно передавать номер проигрываемого трека, время и текст на дисплей магнитолы.

Устройство в сборе

Устройство в сборе

Распиновка автомагнитолы Тойота практически ничем не отличается от схемы подключения остальных автомагнитол. На автомагнитолы Тойота распиновка представляет собой схему, состоящую из двух рядов разъемов.
В нашей статье будет рассказано, как подключать аппараты Тойота, что для этого нужно знать и как устанавливать автомагнитолы своими руками.

Несколько схем подключения

Распиновка разъемов toyota автомагнитол

Считается, что основной ошибкой при подключении автомагнитол Тойота является протягивание плюсового провода от прикуривателя. Это никоим образом не даст эффекта, так как упадет мощность головного аппарата в несколько раз (в этом несложно убедиться, если обратить внимание на мигающую подсветку во время работы аппарата на большой громкости).
Помимо этого, подключение автомагнитол Тойота через прикуриватель не устранит звуковые искажения, которые начнут появляться заметно раньше. С другой стороны, в некоторых случаях и такой вариант может рассматриваться, как пригодный для осуществления.
Идеальным вариантом подключения автомагнитол Тойота, впрочем как и всех остальных, является проведение основного питания от АКБ. Использовать желательно качественный провод (экономить на кабеле ни в коем случае не рекомендуется) и обязательно предохранитель, который надо поставить как можно ближе к аккумулятору.

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

Разъемы автомагнитол

Кроме этого, распиновка остальных проводов:

  • Ч* – минусовой провод. Подключают, как правило, на кузов автомобиля, обеспечивая массу. Все же, рекомендуется специалистами соединить его с аккумулятором;
  • С – провод, который отвечает за усилитель или активную антенну.

Помимо этого, автомагнитола еще наделена акустическими проводами (они идут на задние и передние динамики):

  • Б, С-й – провода на фронтальную акустику;
  • З, Ф – провода на тыловую акустику.

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

Подключение по схеме 1

Разъёмы для автомагнитол

Разъёмы для автомагнитол

  • Провода питания соединяем между собой;
  • Подключаем их к АКБ.

Данная схема хороша тем, что осуществить ее просто. С другой стороны, она подходит только для автомагнитол с небольшим потреблением электроэнергии. Если по данной схеме подключить мощный аппарат, то всего за 2-3 дня в режиме сна автомагнитола полностью разрядит аккумулятор.

Схема подключения 2

Вот эта схема подойдет для любой мощной автомагнитолы:

  • Провода питания соединяем между собой;
  • Подключаем их к АКБ;
  • Ставим дополнительно кнопку (она отвечает за включение и отключение аппарата).

Такая схема подразумевает ручное управление магнитолой, зато не собьются ни за что настройки и аккумулятор не сядет за пару дней.

Схема подключения 3

Разъем для автомагнитолы

Разъем для автомагнитолы

Индивидуальная схема, подразумевающая следующее:

  • Основной провод питания (желтый) подключаем к 12 В;
  • Дополнительный (красный) подключаем к габаритным огням (через реле, обмотка которого связывается с лампочкой пепельницы).

Данная схема дает следующие преимущества:

  • Аппарат включается одновременно с «габаритками» автоматически;
  • Водитель никогда не забудет отключить габаритные огни и свет фар;
  • Во время остановки можно будет без включения зажигания слушать музыку;
  • Если поменять обычные лампочки «габариток» на светодиодные, потребление электроэнергии будет очень низким.

Существует еще множество схем подключения автомагнитол Тойота, таких как подключение через ACC или через сигнализацию. Как правило, они не так распространены и подойдут не для всех. В частности, подключение через ACC (замок) неудобен тем, что без ключа в замке аппарат функционировать не будет.

Подключение камеры согласно распиновке

Зная распиновку автомагнитолы, можно осуществить спокойно своими руками подключение камеры заднего вида. На примере популярного «тойотовского» аппарата Ca-Fi узнаем, как это сделать. Сам процесс делится на две части: собственно установка аппарата с подключением и соединение камеры заднего обзора.

Примечание. Установка и подключение монитора не отличается от инсталляции заводского головного устройства. Надо будет лишь поменять местами разъемы и все.

А вот подключение камеры может для некоторых вызвать затруднения.
Вот что нужно знать:

  • Камера заднего вида на Тойота Прадо питается от 5В;
  • Для ее подключения потребуется разъем от заводского монитора, который после установки новой магнитолы, остается свободным;
  • Этот самый разъем 14-контактный. Но нам потребуется всего лишь два провода видео сигнала и сигнал задней передачи;
  • Помимо этого, надо будет преобразовать напряжение с 12В на 5В.

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

Схема подключения камеры имеет свою распиновку. Вот как она выглядит.

Распиновка разъемов автомагнитол toyota

Распиновка разъемов автомагнитол toyota

Схема расположена так, как будто на нее смотришь со стороны проводов. Фото в верхнем левом углу помещено для наглядности.
Итак, чтобы соединить камеру с автомагнитолой Тойота, надо в первую очередь связать вместе сигнал задней передачи и провод Reverse на Ca-Fi. Кроме того, надо будет поставить преобразователь и сделать тюльпан для передачи видеоданных.

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

На фото ниже показано, как сращивать провода с помощью скотчлока.

Скотчлок и провода

Скотчлок и провода

Далее осуществляем следующее:

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

Таким образом, зная распиновку автомагнитол Тойота можно осуществлять подключение по любой из выбранных схем. В процессе работ крайне полезно посмотреть видео обзор.
Пошаговая инструкция из других источников также будет в помощь. Цена самостоятельной установки автомагнитолы заметно отличается от стоимости услуг специалистов, которая в несколько раз выше.


А началось все с того, что у меня появился Prius.

И первое, что бросилось в глаза — проблемы с обновлением навигации. Следующее — весьма скудные, но местами необходимые возможности устройства с названием «Многофункциональный дисплей» (в простонародье — голова). И это на фоне огромного количества китайских радио с Android на борту, и множеством приятностей. Но их установка на штатное место подразумевает лишение таких «плюшек», как диаграмма распределения энергии и управление климатом.

Родилась идея как-то соединить Android магнитолу с автомобилем более плотно, чем предлагают братья-китайцы. Об этом и статья.

Исходная ситуация

Итак. На борту имеется около 7-дюймовый дисплей с резистивным тач-скрином, соединенный с прочей электроникой линиями TX+ и TX-. И таких пар от головы идет аж 3. В схеме это чудо поименовано AVC-LAN, и выглядит следующим образом:


Часть 1: Осматриваемся внутри

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

Убрав все лишнее, получим примерно следующую блок-схему устройств:


Размышления

Была мысль просто заменить блок навигации на что-нибудь андроидное, однако она угасла, когда я глубже разобрался, как они общаются с головой. Помимо AVC-LAN эти модули соединены так же линией GVIF (Gigabit Video InterFace), причем этот самый фэйс у производителей конвертеров может случайно треснуть, если еще и я куплю преобразователь видеосигнала в GVIF за более, чем 100 долл. «Жить без лица — быть может трудно, но..» — прозвучало в голове на мотив известной песни, и решение мне не понравилось.

Встречались в сети решения с установкой китайской магнитолы вместо радиоресивера. Это меня не устроило тем, что два дисплея — необоснованная избыточность. Имхо.

Решение

Родилось следующее решение: заменить целиком голову, и доработать андроид-магнитолу, подружив ее с Prius-ом, для чего:

  1. Разработать аппаратный конвертер USB <-> AVC-LAN
  2. Разработать firmware к нему, чтобы он подключался, как USB-HID.
  3. Сделать его composite, чтобы одна из функций детектировалась, как обычная аппаратная клавиатура (с целью использовать в качестве нативного управления с кнопок на панели)
  4. Разработать Android-приложение с функционалом, аналогичным (или превосходящим) родной, приусовский
  5. Согласовать работу задней камеры
  6. Решить задачи по механической части (установка на штатное место)

Выглядеть это все должно следующим образом:


В качестве аппаратной основы было решено использовать обучающую плату на SM32F103:


заказанную с AliExpress за $2.05.

Чем она мне нравится:

  • Аппаратный модуль USB(Device) на борту у процессора
  • Адекватный USB-стек от производителя (в отличие от Freescale-овского, не к ночи будь помянут).
  • Свободные порты GPIO, которые можно использовать для подключения штатных кнопок по бокам монитора. Возможно, это позволит скрыть под панелью аппаратные кнопки магнитолы. Я пока не знаю, какой она будет
  • И на нее можно навесить конвертер AVC-LAN в логические уровни

В любом случае, статей планируется несколько, в разных хабах. Проект получается уж сильно FullStack — от аппаратного подключения до андроид-приложения.

Часть 2: USB, HID, дескрипторы, и все, чтобы получить пилотный прототип

Первым этапом я хотел получить связку устройства и телефона, причем чтобы устройство могло передать пакет на телефон, а тот — отобразить его в приложении.
Как говорил Гагарин: Поехали!

USB HID Composite device на STM32

За что я решил взяться — это адаптировать пример от ST моим задачам, и получить USB устройство, которое опознается хостом, как составное из клавиатуры и «чего-то еще» — RAW HID Device. Первое, как я уже говорил, предназначено для нативного управления андроидом, второе — для прямого обмена AVC-LAN пакетами с программой на устройстве.

Взяв за основу CubeMX от STM, и прочитав много статей о том, как можно реализовать кастомный HID, я обнаружил в сети одну неприятную вещь: практически нет или весьма скудно рассмотрен вопрос создания составных устройств.

USB, Composite, HID

Буквально несколько слов на эту тему. Предполагается, что Вы более или менее знакомы со стандартом USB. Если нет — лучше сначала ознакомится и поэкспериментировать с примерами из CubeMX.

Стек USB от STM и пример реализации мыши. Там у нас настроены какие-то дескрипторы и функциональная конечная точка. Это помимо пары 0x00 и 0x80 для управления устройством целиком.

Для реализации моего проекта требуется, чтобы конечная точка клавиатуры была двунаправленной (не знаю, зачем — пригодится) и еще пара конечных точек, которые будут использованы для обмена данными со второй — RAW — функцией. Добавляем их.

Делаем точку двунаправленной, добавляя в дескриптор точку OUT:

При правке дескриптора следите за индексами и размерами.
(2c5cf968121f0d8fa43a6755c09e15ef3a317791):

И добавляем еще пару точек:

Это был дескриптор конфигурации. Теперь хост будет уверен, что у нас есть некое составное HID-устройство, и во все эти точки можно слать данные. Но это пока не так.
Для того, чтобы это стало правдой:

1. В нашем контроллере есть специально выделенный кусочек памяти, который тактируется вместе с модулями CAN и USB. Учитывая, что модуль USB самостоятельно занимается процессом приема/передачи пакета данных, нужно задать ему буферы в этом кусочке памяти для каждой отдельно взятой конечной точки:

Адреса буферов произвольные, лишь бы не пересекались.

Почему-то стек от ST написан из расчета, что в устройстве будет не более одной двунаправленной конечной точки, потому чуть дорабатываем стек:

Передача

Процедуру USBD_HID_SendReport переименовываем в USBD_HID_SendReportEP, добавляя еще один параметр — номер конечной точки. Процедуру со старым именем оставляем для обратной совместимости, но в теле вызываем USBD_HID_SendReportEP с константой в виде конечной точки. Решение пока не самое эстетичное, но для эксперимента сойдет, и даже если и останется — конкретному проекту это жить мешать не будет.

Теперь для отправки данных все готово, остается лишь в нужный момент вызвать эту функцию.

Финализация

Порядка ради ищем по проекту и вызываем USBD_LL_CloseEP еще раз, но для вновь созданных конечных точек.

Прием

Для того, чтобы конечные точки морально настроились на работу, нужно вызвать для них USBD_LL_PrepareReceive. Рекомендую читателю пробежаться поиском по проекту на предмет этой строки, и адаптировать эти вызовы под свои нужды.

У меня в коде получилась вот такая вот некрасивая каракатица:

Т.е. я исходил из того, что номера конечных точек идут подряд. Это плохо, имхо. Не делайте так. Впрочем, и как ST тоже не делайте.

Дальше остается только сходить в файл usbd_hid.c, а конкретно в функцию USBD_HID_DataOut, и позаботится о том, чтобы вызов обработчика принятых данных соответствовал вашим личным представлениям о прекрасном. У меня получилось тоже не очень, поэтому код и описание получатся длинными и непонятными. Проще сделать самому.

Репорт

Все, в этом месте мы получили композитное устройство, которое способно обмениваться данными через две двунаправленные точки. Последним штрихом «затыкаем» любопытство драйверу HID, описывая такой вот дескриптор репорта:


Этот репорт говорит HID-драйверу: тут будут какие-то 31 байт данных. Не нужно разбираться, что за они — просто отдай их открывшей это устройство программе. В физическом репорте нулевой байт будет равен индексу репорта (REPORT_ID (2)). Соответственно, всего придет 32 байта.

Читайте также: