PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Arduino проекты (http://pccar.ru/forumdisplay.php?f=195)
-   -   Управление Alpine Ai-Net на ардуине, сделай сам ;) (http://pccar.ru/showthread.php?t=26615)

YAM1966 13.09.2017 15:46

Управление Alpine Ai-Net на ардуине, сделай сам ;)
 
Вложений: 4
Используется платка arduino-nano без каких либо доработок и навесных элементов.
Вложение 48114
Внешний программатор не нужен, программирование средствами платы по USB с помощью ПО под windows.

Подключение:
Масса к GND
AINET+ к D6
AINET- к D7

Команды:
Команда должна иметь завершающий символ '\r' или '\n'.
Команды можно передавать несколько за один раз разделяя их знаком ';'.
Число символов в одной команде не более 32.
Число символов в строке содержащей несколько команд не более 250
Скорость обмена по USB или UART TTL 115200-8-N-1
  • Вывод пакетов шины:
    lx, где x = 1 вывод принимаемых пакетов, 2 - вывод отправляемых пакетов, 3 - вывод принимаемых и отправляемых пакетов
  • Задержка между выполнением команд:
    dx, где x необходимая задержка в mSec, 0...65535 mSec
  • Вывод версии ПО:
    y, пример ответа: "YAM Ai-Net Version 1.02"
  • Инициализация DSP:
    hx, где x = 0 перевод в слип, 1 включить DSP, 2 разрешить выбор пресетов, 3 отключить mute входов
  • Установка номера входа:
    ix, где x от 0(выключен) 1,2,3 - аналоговые входы, 4,5,6 - цифровые входы
  • Установка пресетов:
    px, где x от 1 до 6
  • Установка или изменение громкости:
    vx, где x = '+' увеличение громкости, '-' уменьшение громкости, 0...35 - установка громкости
  • Установка баланса:
    bx, где x = -15...15
  • Установка фэйдера:
    fx, где x = -15...15
  • Изменение уровня саба:
    sx, где x = -1 уменьшение или 1 увеличение уровня
  • Передача пакетов в шину:
    taabbccdd...., где aa bb cc dd передаваемые данные в HEX виде, при числе данных меньше 10 дополняются нулями, CRC считается автоматически

События:
  • $UP инициализация DSP
  • $CHx выбран вход x = 0...6
  • $VF ошибка команды установки громкости
  • $RX[00112233445566778899AA] принятый пакет по шине
  • $TX[00112233445566778899AA] переданный пакет по шине

Прошивку писал не в оболочке Arduino а в компиляторе IAR, это мне ближе и роднее.
Информацию по пакетам и данным в них брал из темы уважаемого Nik1976.
Во всех найденных документах по протоколу есть одна неточность по интервалу между окончанием пакета и выдачей подтверждения.
Интервал не ~40uS после конца пакета, а 24uS после окончания последнего передаваемого бита или 48uS от его начала.
Процессор atmega328p имеет встроенный компаратор, поэтому никаких внешних элементов для работы не требуется.

Все что нужно для программирования: Вложение 48118
COM3 в файле prog_c.bat заменить на номер виртуального COM порта платы arduino-nano у Вас в системе.
Для программирования, просто подключить платку к компьютеру, поставить драйвера для CH340.
Посмотреть под каким номером он в системе, изменить номер компорта на свой в prog_c.bat и запустить prog_c.bat файл для программирования.

Для инициализации DSP, например H701, в любом терминале необходимо передать команду h1;h2;
Далее уже можно выбирать пресеты, входа, громкость и все остальное.

Работает как совместно с RUX, так и отдельно от него.
Работа проверялась на Alpine PXA-H701
Вложение 48116
Отдельное спасибо Alex_St за предоставленный DSP и kostya740 за RUX.


Разъем для подключения шины можно купить например такой и поработать паяльником.
Вложение 48117

В дальнейшем будет добавлена поддержка управления к моему контроллеру версии 4 для управления громкостью и другими прелестями...

alexfox 13.09.2017 17:40

Цитата:

Сообщение от YAM1966 (Сообщение 392136)
В дальнейшем будет добавлена поддержка управления к моему контроллеру версии 4 для управления громкостью и другими прелестями...

Круто!!!
Если будет работать связка:
iDrive <----> V4 <----> Apline PXA-H800 <----> RUX
то вообще супер!
Могу протестировать потом...

YAM1966 13.09.2017 17:46

Цитата:

Сообщение от alexfox (Сообщение 392140)
Круто!!!
Если будет работать связка:
iDrive <----> V4 <----> Apline PXA-H800 <----> RUX
то вообще супер!
Могу протестировать потом...

Да можно уже тестировать :) из терминала в винде или андроиде...

Alex_St 13.09.2017 17:55

Я погонял данное изделие с 700м процессором.
Вся заявленная функциональность работает замечательно. Только чтобы переключать пресеты - необходимо заранее выполнить команду инициализации. Остальные команды работают и без нее.
Что понравилось - автор реализовал возможность слушать поток и записывать команды. Так можно соснифить и другие команды. Например, управление настройками процессора - задержки, и т.д.
А так же - выполнить любую неизвестную команду для проверки реакции проца.
Из нюансов - если девайс уже запущен на момент старта процессора - проц не включает рукс. Управлять процем можно тогда только по аинету. А если на момент старта процессора девайс не включен, а потом включить девайс - проц видит, что аинета нет, и включает рукс. После старта девайса - процем можно управлять и так и так.

YAM1966 13.09.2017 18:07

Так как ардуина секунд 5 после подачи питания находится в загрузчике, а DSP после подключения АСС уже через 1 сек опрашивает готовность, то практически всегда будет работать одновременно и RUX и управление по шине.

Alex_St 04.10.2017 12:28

Поставил в машину процессор Alpine PXA H701, подключил его по шине AiNet к ардуине, а ардуину к простому контроллеру V4 с новой прошивкой от Юрия.
Все работает, уровень громкости на проце (и не только) теперь можно регулировать с руля. Я счастлив!!!

От процессора к ардуине достаточно провести 2 провода - AiNet+ и AiNet-. Я использовал обычную витую пару. Причем одна пара пошла на AiNet, один провод из второй пары - линия ACC для проца, и еще две пары осталось для других целей.
От ардуины к контроллеру V4 идут 4 провода - Tx, Rx, земля и +5В. Они удобно расположены рядышком на одном разъеме контроллера.
Вот и все подключение.
В GUI контроллера надо прописать реакции на кнопки во вкладке UART. Там нужно ввести нужные команды из первого сообщения этой темы. У меня это "v+" и "v-" (без кавычек). Ес-сно, стоит не забыть в нижней паннели программы выбрать какой UART использовать и задать правильную скорость 115200.

Замеченный нюанс:
Однажды процессор выключился. Оказалось, он просто перешел в режим сна. С паннели Rux его разбудить не удалось (а в будущем у меня ее и не будет, т.к. взял ее на попользоваться для настройки проца), поэтому пришлось на одну из кнопок временно прописать команду "h1;h3", которая разбудила проц и разрешила ему включить усилитель и активировать выходы. Если у кого-то процессор перестанет работать - скорее всего он просто устал и прилег поспать.


Юра, спасибо большое за разработку!

YAM1966 04.10.2017 13:45

Можно добавить событие UART при получении "$UP" выдавать реакцию UART "h1;h3"...

denis239tp 27.05.2018 09:00

Здравствуйте. Перечитал все возможные форумы по этой теме, но так и не нашел готового решения. Вот есть ардуина, есть прошивка, а как эту ардуину подключить к процу? Есть ссылка на китайский шнурок, а что с ним делать то? Куда его вставлять в ардуине? Кроме того, как я понял, ардуина к компу по usb подключается, программой терминалом можно команды отправлять. Но это же не удобно. Надо какую-то програмульку, которая в автозагрузке будет запускаться и включать проц, она же будет следить за системной громкостью компа, пересчитывать 100 градаций громкости компа в 36 процессора, и отправлять ему соответствующие команды. Как это реализовать можно? Друзья, помогите пожалуйста, кто понимает это! Я в этих хексах ничего не понимаю. Заранее спасибо!

YAM1966 27.05.2018 10:30

А потратить 5 секунд своего времени на поиск распиновки в интернете - не?
https://a.d-cd.net/f4207bu-960.gif
http://i008.radikal.ru/1506/4b/e790253ecd49.jpg
AINET+ 3 контакт
AINET- 2 контакт

maksim 05.07.2018 21:23

Юрий, подскажите, а для старичка PXA h600 подойдет это решение?


Часовой пояс GMT +4, время: 03:06.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot