Кстати, забыл сказать, что процедура чтения бита в самом начале выключает прерывания - через cli(). Так что по идее, ресурсов хватать должно?
Кстати, забыл сказать, что процедура чтения бита в самом начале выключает прерывания - через cli(). Так что по идее, ресурсов хватать должно?
Возможно я и ошибаюсь, так как к сожалению я плохо знаком с архитектурой AT32U4
А конкретно с реализацией USB в этом чипе
Последний раз редактировалось Chip; 17.10.2013 в 16:00.
Господа, возможно никто уже ничего и не помнит по этой теме. Но вот спаял сей агрегат. Ардуино отдельно по телнету отзывается и работает. Как только подключаешь к схеме ничего не работает. А точнее когда путти подсоединяется он вместо AVCLan выводит надпись AV и зависает. Методом тыка было обнаружено что если отсоединить GND от Arduino на 29 ноге от GND на плате со стороны цифровых сигналов то все начинает работать, но голову не видит. А в голове при нажатии кнопки Map говорит "System not connected" с землей или без
Машина - gs430 2005 год.
Кстати я использую MAX485 вместо ST485. Может это является главной проблемой?
Последний раз редактировалось Tualatin; 25.01.2014 в 22:30.
Ребят, если кто читает еще эту тему, подскажите куда смотреть:
собрал схему на PCA82, после танцев с бубном вроде читаю из шины нормально (есть небольшие пропуски), а вот отправить сообщение в шину не могу, т.е. broadcast сообщение вроде отправляются без ошибок в логе (хотя голова на них и не реагирует), а вот direct сразу же ошибка S1...8, но чаще S1, S2... Пересобрал схему заново, все то же самое ...
Prius 20 (Америка, дорестайл), схемка №2 на PCA82, Arduino Nano v3
Господа ))) Эта ветка больше похожа на почтовый ящик в фильме "Игры разума" в который он оставлял шифровки но никто их не забирал ))) Мое сообщение про MAX485 никому не сдалось, ну и ладно )))
Руки чуток подправил и спаял на PCA82C251 в смд исоплнении. Разводку сделал свою. Она страшная, зато самая первая и вроде бы даже рабочая.
Итог таков: голова реагирует на нажатие кнопок МАП, НАВИ, МЕНЮ. Активируется GVIF вход. Сейчас пытаюсь вывести картинку нормальную через GVIF-адаптер. Проблема в том, что после подключения AVC-LAN адаптера не работает CD-ченджер, голова как будто бы зависает и ничего не играет, можно переключиться в этот момент на радио, оно работает. После отключения и перезапуска головы ченджер работает как раньше. Так должно быть или я где-то налажал? Надеюсь кто-нибудь с этим уже сталкивался.
Хм. Надо эту теорию проверить. Ну в общем пока что так и пользуюсь. Сиди ченджер при включенном авц-лане не работает. Причем когда заводишь машину винда загружается и регулятор громкости не работает пока не переключишься на радио и назад..
А еще я так и не понял как перехватить клавиши на магнитоле и руле ((( фильтровал че-то... но так и не нашел... или не понял.
Это конфликт логических адресов ченджера в адаптере и штатного ченджера. Всего в системе может быть зарегистрированно два ченджера с адресами 0x43 и 0x63. Попробуйте поменять в файле AVCLanNavi.cpp все строки 0x63 на 0x43.
Чтобы проще было перехватить кнопки на руле, нужно понимать, что происходит в шине при их нажатии. Сами коды кнопок не передаются. Передаются команды головы при нажатии этих кнопок.
Например:
при нажатии кнопки громкости, будут выдаваться команды с текущим уровнем громкости или команда усилку (если он внешний) изменить громкость.
При нажатии кнопки mode, голова будет выдавать по несколько команд: остановить воспроизведение текущему устройству, начать играть следующему устройству.
при нажатии конопки листания треков, голова будет выдать команды только если устройство может листать треки (например если активирован видеовход, голова на эти кнопки реагировать не будет).
Почитайте про структуру команд вот здесь http://www.softservice.com.pl/corolla/avc/avclan.php
На практике я перехватывал только листание треков (но это может дать целых 4 команды - две листание треков и две перемотки) и нажатие 3х кнопок управления штатной навигацией (правда они на голове были)
Вот примеры команд с приведенного сайта
листание треков
const u08 next_track[] = { 0x4, 0x00, 0x25, 0x63, 0x94 };
const u08 prev_track[] = { 0x4, 0x00, 0x25, 0x63, 0x95 };
переключение дисков, тут прошивка адаптера должна сказать, что в эмулируемом ченджере несколько дисков и правильно отрабатывать переключение дисков. На вашей прошивке это не релализовано, насколько я помню)
const u08 next_cd[] = { 0x4, 0x00, 0x25, 0x63, 0x90 };
const u08 prev_cd[] = { 0x4, 0x00, 0x25, 0x63, 0x91 };
перемотка
const u08 fast_forward[]= { 0x4, 0x00, 0x25, 0x63, 0x98 };
const u08 fast_back[] = { 0x4, 0x00, 0x25, 0x63, 0x99 };
Большущее спасибо ak1976!!! Замена адреса ченджера помогло.... Теперь все работает идеально. Не нужно тыркаться при включении на радио и обратно на сиди. Наконец есть просто второй сиди ченджер. Нет подвисонов при переключении между климой, аудио и инфо. Осталось только запилить мне сохранение в еепром последнее состояние включения азфм. А то каждый раз при включении приходится нажимать на Мап кнопку. У меня на нее завязано включение азфм.
Ну и перехват кнопок я еще буду обдумывать. Очень уж хочется переключать песни с руля.
Спасибо еще раз!
Доброго времени суток
Собрал схему по AVCLAN_PCA82C250 for Arduino
Схема работает нормально, выдает номер головы – 190, реагирует на регулятор громкости, и т.д
Хотелось бы чтобы она работала от штатного магнитофона и реагировала на нажатие кнопки DISK непосредственно на магнитофоне. Т.е. хотелось бы, чтобы она работала так, как схема на сайте
http://www.softservice.com.pl/corolla/avc/simpleaux.php . Эта схема работает, но периодически зависает по непонятной причине и хочется ее переделать на Arduino.
Может есть кто пробовал переделать прошивку так, чтобы она эмулировала CD чейнджер так, чтобы активировать Aux Input?
Помогите пожалуйста, если есть такой опыт.
Прилагаю фото головы и Log файл.
![]()
Последний раз редактировалось tgagik; 16.03.2015 в 19:50.
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)