+1! Заинтриговал и убежал... И что теперь делать? Придётся ждать :)
Вид для печати
+1! Заинтриговал и убежал... И что теперь делать? Придётся ждать :)
Тоже очень интересно :)
Продолжаем разговор...
В итоге я нашел 3 ошибки.
1. В прошлый раз с новой схемой драйвера у меня периодически зависал контроллер, происходило это потому, что в режиме передачи 1 вывод ST485 переходит в Z состояние, при этом на входе Arduino состояние не определено. Включил режим входа Arduino через подтягивающий резистор. Т.е. теперь там всегда 1 пока ST485 не выставит на нем 0.
Вчера в очередной раз взял осциллограф попользоваться и нашел еще две ошибки:
2. При этой схеме выходной сигнал инвертируется. Поправил в прошивке.
3. Ну и еще поменял чтение сигнала ACK от головы. После передачи части сообщения нужно принять от головы подтверждение, что она все приняла правильно. Делается это следующим образом в шину выставляется 1 длительностью 20 мкс, потом ставиться 0 и слушается шина, если голова приняла все правильно, она удерживает 1 в шине еще 12 мкс. Вот как это выглядит в живую:
Вложение 6016
Уровни 1 у драйвера и головы разные, поэтому хорошо видно этот переход. Так вот я ставил 0 освобождал шину и сразу проверял наличие 1. Похоже, что ST485 не сразу на выводе 1 уровень выставляет при переключении, поэтому были ошибки. Теперь я ставлю в шину 0, переключаю драйвер на чтение, жду 1 мк и только после этого проверяю наличие 1.
После всех этих правок удалось передать сообщение голове. Итоговая схема выглядит так:
Вложение 6017
стабилитроны остались после экспериментов, наверное и без них будет работать. Уровень 0 в шине от драйвера теперь практически 0 В. Уровень 1 около 400 мВ (точнее разница сигналов TX+/-), что больше чем у головы, но все работает. Точного значения R6 сейчас не скажу, у меня там стоит подстроечный резистор на 5 кОм. Пытался им понизить уровень 1. Сколько в итоге получилось сегодня померю.
На днях проверю работу драйвера на всех доступных мне головах. Соберу новую схему на нормальной плате (на эту уже смотреть страшно, один подстроечники, перемычки, разрезанные дорожки). Ну и начну писать прошивку дальше. Для начала эмуляцию CD-ченджера.
Отлично !!!
Рассказываю по порядку. Развел я и собрал новую схему, но она не заработала. Прием был неустойчивый и отправка не работала. Этот факт сильно уменьшил мой энтузиазм. Интересно, что мой друг собрал такую же схему. У него на приусе прием работал нормально, а отправка тоже не работала. В общем как-то не очень с повторяемостью результатов получилось. Мы даже начали думать над другим вариантом схемы. Разобрали вот такой адаптер CD чейнджера JVC для toyota. Он тоже эмулирует чейнджер для тойоты. Но там оказался драйвер на микросхеме HA12187, которую не достать в России. Пытались опять сопротивление резисторов подбирать, много чего было. Итог таков: вчера мне принесли осциллограф (как все-таки удобнее работать с хорошим инструментом) и получилось запустить схему. Я выкинул из схемы стабилитроны и сразу наладился прием сообщений. Потом увеличил пороговое время, по которому определяется 0 пришел или 1. Оказалось что 1 приходят немного шире, чем описано в документации. Точнее шире получается за счет фронтов сигнала.
Забыл дома файлики с итоговой схемой. Вечером выложу схему и прошивку.
Никто повторить ее не хочет? Чтобы протестировать работу драйвера и уже дальше заниматься прошивкой.
P.S. Сняли лог с приуса, можно будет пробовать сделать эмуляцию навигации.
Про стабилитроны писал в самом начале :)
Ибо в аналоговой цепи они как генератор шума будут
Да писал, но и с ними вроде работало в прошлый раз. Кстати, в схеме адаптер CD чейнджера JVC для toyota, для защиты от повышенного напряжения, используется не стабилитроны, а по два диода на каждый канал подключенные на землю и +5В.
Итак как и обещал выкладываю схему.
Вложение 6664
В схему добавлен ключ для управления AZ-FM
Вот схема и разведенная печатная плата в формате Eagle
Вложение 6663
Прошивка
Вложение 6665
Прошивку распаковываем в каталог arduino-0016. Если до уже были какие-то версии прошивки нужно удалить объектные файлы
C:\arduino-0016\hardware\libraries\AVCLanDrv\AVCLanDrv.o
C:\arduino-0016\hardware\libraries\BuffSerial\BuffSerial.o
Проверить работу можно любым терминалом, подключившись к com-порту на скорости 250000. Я использую для этого putty
Данную схему уже можно использовать как драйвер тачскрина, кнопок на голове и на руле.
для этого устанавливаем и настраиваем драйвер
Вложение 6666
Подробности по настройке драйвера, а так же программа калибровки тачскрина здесь
В новой версии добавлена возможность писать лог сообщений от головы.
Для теста отправки сообщения голове в терминале жмем кнопку S (в верхнем регистре).
Может кто-нибудь собрать схему и проверить ее работу, чтобы со спокойной совестью двигаться дальше.
Выкладываю лог с приуса 11 и подлюченной навигацией. Так же на нем есть адаптер JVC - Toyota. Так что эмуляцию чейнджера можно тоже посмотреть
Вложение 6707
Здравствуйте!
Парни! Огромное спасибо за Ваши наработки!
Приобрел carduino nano - пытаюсь собрать приведенную схему - не могу разобраться какие разъемы задействованы на carduino (
зеленым цветом на рисунке (Digital J3) 8,9,10,11 это D8 D9 D10 D11 на плате???
и А5-А4 (J4 Power) - замыкаем на массу?
Для того чтоб исключить ключ для управления AZ-FM - просто убрать ту часть схемы между разъемом 8(D8) и 6(Vin) ??? т.к. звук у меня подается через Вега Абсолют тв-тюнер.
Подойдет ли как аналог ST485 ADM483EARZ-REEL ?
Да, (Digital J3) 8,9,10,11 это D8 D9 D10 D11 на carduino nano.
А5-А4 никуда замыкать не надо, через разъем J4 на схему подается питание. Т.е. нужно использовать разъемы GND и +5V carduino nano.
Если управление AZ-FM не нужно можно выкинуть резисторы R7-9, транзисторы Q2-3 и разъем JP1
Есть подозрение, что ADM483 не подойдет. Слишком уж большое у него время реакции на изменение сигнала, 1 мкс. Минимальная длительность импульса в AVCLan 2 мкс, поэтому возможно ADM483 будет вносить большие искажения. Как аналоги можно взять MAX485, ADM485
Спасибо вроде понял, сегодня попробую собрать. С ST(MAX) 485 - проблема найти у нас (
В общем, вот что получилось.
Схему спаял, подключил к Tx- Tx+ на блоке навигации, голова кстати 16033.
Какое то время даже работало ) потом перестало.
Теперь по порядку.
Поставил драйвер. Прописал в ini для avclan-mini-driver, нужный ком порт.
После подключения схемы запустил avclan-mini-driver
Схема реагировала на нажатия кнопок на голове, записью в лог и морганием светодиода.
вот последний лог:
Потом все прекратилось, схема перестала реагировать.Код:10.01.2010 13:39:21 AVCLan
10.01.2010 13:39:21 R6
10.01.2010 13:41:07 AVCLan
10.01.2010 13:41:07 R3
10.01.2010 13:41:27 R3
10.01.2010 13:41:48 R2
10.01.2010 13:44:50 R6
10.01.2010 13:44:58 R2
10.01.2010 13:46:46 AVCLan
10.01.2010 13:46:46 < b 021 000 00
10.01.2010 13:46:46 < b 000 000 00
10.01.2010 13:46:46 R2
Не знал что думать, может статика, в машине коврики....
Хотя сама Carduino - работала, моргала при подключении USB.... На ноуте eeepc701 который в авто, не было ни терминал клиента ни Arduino IDE.
Подключил уже дома к ПК - зашел терминалом, реакции 0 - залил прошивку повторно, вроде отклик пошел, кстати у меня в терминале выводится всего два символа AV - как понимаю должно выводится AVCLan ?
Нужно ли конфигурировать как либо COM порт? в дипечере устройств - скорость, четность, и.т.д. ? либо саму терминальную программу?
Загрузил в Carduino из примеров ASCIITable - выводит строки как надо, полностью... Еще: при подключении задаем bSerial.begin(250000); а почему не 256000? - зависит от микросхемы?
и еще момент, на схеме у ST485 перепутана нумерация на выводах 7 и 6 решил что опечатка и припаял по порядку.
На схеме все правильно. менять выводы не нужно.
Про причины выбора этой скорости я писал вот тут, для нормальной работы нужно указывать 250000 или кратное число. Эту же скорость нужно указывать в терминальной программе. Гипертерминал не умеет работать с такой скоростью, поэтому я использовал putty.
По поводу прекращения работы, трудно чего-либо сказать удаленно. Может отвалилось чего. Для начала нужно собрать правильно схему, перезалить прошивку и терминальной программой подключиться на скорости 250000.
ak1976 Заработало! :cool:
Перепаял заново схему и заменил микросхему на ADM1485AN
Вот лог сообщений головы 16033 Вложение 7236
Есть реакция нажатия на тач - активное окно Total Commandera - переходит в режим редактирования имени файла (у меня F2), хотя возможно это даблклик, отрабатывает...
А как понять из лога что это сообщение именно нажатие кнопки? т.к. на одно нажатие проходит несколько сообщений...
120 - это головаКод:19.01.2010 7:42:19 < b 120 1FF 0F7431F110FF1010131014000F000302
19.01.2010 7:42:21 < b 120 FFF 03120146
19.01.2010 7:42:22 < b 178 1FF 055831F10230
19.01.2010 7:42:22 < b 120 FFF 0401015F00
178 - нави
Сейчас штудирую топик по AVCLan-mini - Но пока не понятно многое )
понимай по направлению, кто кому... догадайся ЧТО. часть комманд, это кнопка, а часть - уже реакция на нее.
Ну кажется немного проясняется, нажал на кнопку, что то запустилось в голове, вернуло ответ (он тоже в логах...)- в общем нужно логи изучать детально....
Не нашел у себя в логах сообщения 00 25 74 90 - Управление громкостью... Хотя крутилку крутил и не один раз...
Прошу не пинать за шквал вопросов....
В логах обнаружил устройство 280 - что это может быть - CD ченджер?
19.01.2010 7:35:13 < d 280 120 06000112300900
19.01.2010 7:36:48 < d 120 280 0500255C8002
19.01.2010 7:36:48 < d 280 120 06005C12500A01
19.01.2010 7:36:48 < d 120 280 0600125C428A01
19.01.2010 7:36:48 < d 280 120 06005C12520A01
19.01.2010 7:36:48 < d 280 120 05005C296001
Можно ли командой включить камеру заднего вида? Камера встроенная, включается на задней передаче.
Первое сообщение это голова сообщает всем об текущем уровне громкости, балансе, тембреЦитата:
Сообщение от ethx
Второе голова сообщает всем что она жива (точнее это какое-то служебное сообщение которое голова рассылает регулярно всем.
последние два я не знаю, но это точно не нажатие кнопок.
При нажатии кнопок голова будет слать сообщение конкретному устройству, т.е. если кнопки от навигации то навигации, если управления звуком, то устройству которое сейчас воспроизводит звук.
Я в одной из веток выкладывал мой файл avclan.ini где как раз описаны все кнопки от головы 16030. На 16033 я думаю они такие же.
Такого сообщения и не должно быть, голова же не будет сама себе сообщение посылать "поменяй громкость". Если покрутить ручку громкости она только всем посылает сообщение о текущей громкости видаЦитата:
Сообщение от ethx
А вот если послать одно из сообщений головеКод:VOLUME vv=0-FF
0 120 1FF F F 74 31 F1 90 vv 10 10 10 10 10 0 0 0 3 0
То можно самому поменять громкость, баланс, тембр и т.дКод:00 25 74 95 dd - treb (высокие частоты) dd=0B -15
00 25 74 94 dd - mid (средние частоты) dd=0B -15
00 25 74 93 dd - bass (низкие частоты) dd=0B -15
00 25 74 92 dd - баланс перед-зад , dd = 09-17
00 25 74 91 dd - баланс лево-право, dd = 09-17
00 25 74 90 dd - громкость, dd =00-99, 99 - минимальная громкость
00 25 74 90 15 03 громкость + (последняя цифра задает шаг)
00 25 74 90 19 03 громкость -
280 это камера заднего хода. Вообще коды устройств и некоторые виды сообщений можно посмотреть здесь .Цитата:
Сообщение от ethx
Как включить камеру заднего хода я к сожалению не знаю. Я пытался командами вида
Для камеры они не работают.Код:00 25 60 80 - переключиться на радио
00 25 62 80 - переключиться на CD
60 и 62 это логические адреса радио и CD (63 чейнджер).
Вот здесь лежит в проект в котором эмулируется камера. Можно попробовать поискать в прошивке команды для работы с камерой. Может там и переключение на камеру есть.
Если получиться переключиться напиши, пожалуйста, как.
ak1976 Спасибо огромное за проделанную работу!
Все работает, принцип понял.
Действительно, в режиме включенной нави - работают всего три кнопки на голове - те что предназначены для нави, качелька не работает, вернее работает в режиме CD
Кроме этого заметил, такую фичу ) - Если бы была включена нави, то она выводит экран с выбором кнопок, выбор языка, и вот эти кнопки работают, т.е. я нажимаю на экран, в пустое место, голова пикает, и иной раз даже что то гутарит )))
Попробую завтра вытащить диск из навигашки...
Еще, не удалось назначить запуск foobar из папки по умолчанию C:\Program Files...
брал путь в кавычки и в двойные, и одинарные.... не хочет.. блокнот, и прочее - из папки виндовс запускается без проблем. Не успел посмотреть еще исходники,... сам на Delphi пишу очень давно. Так что думаю все решаемо )
За схему большое спасибо!
Спаял прошлой ночью устройство, подключил к голове от Prius NHW11 (у меня есть запасная, так что отлаживаю дома на столе), вроде работает. Использовал MAX485.
Хочу сэмулировать блок навигации (для подключения CarPC через RGBs). Тачскрин на голове отломан, это несколько усложняет процесс.
Просьба к тем, у кого есть блок навигации (или коммерческий AVC-LAN) и возможность снять дамп - сделать это с комментариями (в какой момент была нажата кнопка навигации и т.п.). По ТВ-тюнеру, CD-ченджеру тоже интересно (их у меня также в машине нет).
Вот здесь я выкладывал лог от 11 приуса с родной навигацией. Несколько дней друг ездил, снимал.
Адрес навигации 178. В принципе можно для начала реализовать регистрацию навигации, а потом жать на кнопки, смотреть чего шлет голова и искать в логе что нужно отвечать на эти посылки.
Мне тоже интересен вопрос эмуляции навигации (да и CD-чейджер я так и не дописал для новой схемы). Со временем только сейчас туго, но готов оказывать содействие.
Что-то роюсь-роюсь в этом логе, не найду никак регистрацию навигации. То ли мне не везет и эти места на помехи пришлись, то ли сниффер позже включался, чем навигация стартует. В-общем, пока я в поиске :(
Кнопки со своей машины отснифферил (помехи в логе немного присутствуют), все нажатия эмулируются без проблем.
Адаптер у меня прекрасно работает на скорости 500000 (завтра в машине попробую, может, помех меньше станет).
Сначала включи адаптер и снифер , только потом голову
Это я в курсе.
У меня навигации в машине нет, только по логу копаюсь. А там, подозреваю, не зафиксирована регистрация навигации.
Или я ее не понял...
Спасибо. Регистрирует, видимо - посылаю нажатие кнопки навигации - не выдает больше сообщение о недоступности устройства. Но стал сыпаться неразобранный адаптером мусор - типа R5 R5 R5 R5 R5 R5 R5 R5 R5 R5. В общем, идем дальше :)
ps. Ложная тревога :(
Голова просто перестает обрабатывать отправленные ей 'нажатия'. Драйвер сыплет сообщениями типа 'R5'. Разбираюсь.
Куда автор подевался??? Продвижения какие есть??? Надо навигаху сэмулировать как-то, а то моя 20-ка ни хотит ргб давать. Или всё-таки надо копить деньги на комерческий адаптер??? Плохо в си не шарю, так бы помог народу чем смог...
помоги - начни шарить
Я никуда не делся. На работе сейчас просто напряг. Свободного времени почти не остается. В начале апреля в отпуск иду, постараюсь продвинуть данную тему.
Аналогично. Знаю, что и как буду делать, но вот когда?..
Отлично, подождём, а пока подключу я штатную нави со своего старого приуса на новый, сниму лог активации, заодно проверю снифер на кардуине.
Мой способ не для машин на гарантии :)
Открываем монитор, ищем все видеомультиплексоры, перерезаем дорожки к управляющим сигналам ключей, выводим на внешний разъем (сделано на столе, работает).
Разъем - к Arduino. Получаем управление видеосигналами (всеми, как видео, так и RGB) полностью с Arduino. Делаем программно перехват кнопок с консоли машины (для переключения источников видеосигналов), для камеры заднего вида подключаем на Arduino провод с лампы заднего хода как управляющий сигнал.
Если нужно вернуть все на место - ставим на наш разъем заглушку, восстанавливающую прежние соединения.
Тупо, конечно, но работает. Недостатки очевидны, но и плюсы есть (например, видеовход, работающий независимо от расходомера; не нужно постоянно голове напоминать, что навигация есть).
Ясно. Этот способ не только не для машин на гарантии, но и не для широкого применения. Головы разные, повторять будет сложно.
Сейчас у меня идут последнии испытания Бета версии адаптера CD-CH & NAVI емулятора на основе (atmega32, adm485) под стандартный RS232. Вот думаю, куда выкладывать, сюда(но оно не на Carduino), в ветку AVC-LAN-MINI(но оно уже не мини), или создать новый топик? Как решите, так и будет.
переделать на Arduino и выложить здесь :-)
Выкладывай здесь, его же можно и в кардуину залить .
Все Внимания, выложи тут, коль не шутишь )))