Используется платка
arduino-nano без каких либо доработок и навесных элементов.
Внешний программатор не нужен, программирование средствами платы по 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 имеет встроенный компаратор, поэтому никаких внешних элементов для работы не требуется.
Все что нужно для программирования:
ainet_v1_02.zip
COM3 в файле prog_c.bat заменить на номер виртуального COM порта платы arduino-nano у Вас в системе.
Для программирования, просто подключить платку к компьютеру, поставить драйвера для CH340.
Посмотреть под каким номером он в системе, изменить номер компорта на свой в prog_c.bat и запустить prog_c.bat файл для программирования.
Для инициализации DSP, например H701, в любом терминале необходимо передать команду h1;h2;
Далее уже можно выбирать пресеты, входа, громкость и все остальное.
Работает как совместно с RUX, так и отдельно от него.
Работа проверялась на Alpine PXA-H701
Отдельное спасибо
Alex_St за предоставленный DSP и
kostya740 за RUX.
Разъем для подключения шины можно купить например
такой и поработать паяльником.
В дальнейшем будет добавлена поддержка управления к моему
контроллеру версии 4 для управления громкостью и другими прелестями...