Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Адаптер для подключения штатных кнопок рестайла к магнитоле
Hyundai Getz Club Россия > Обмен опытом > Car audio
Страницы: 1, 2, 3, 4, 5, 6, 7
Brokly
Вовка Остальным поможет съекономить денег на адаптере и возможно решит проблему недостатка проводов в улитке.
efko Есть несколько моментов , позже отпишусь. Только вот проблема в том, что я не понимаю как помочь в отладке. Для этого нужен макетный девайс и магнитола на столе, а у мне счаз не до этого sad.gif.
ALL Ну есть же среди нас люди которые дружат с электроникой, давайте , присоединяйтесь. Сделаем полезное дело !
efko
Вовка, это самодельный адаптер кнопок к магнитолам Pioneer c резистивным протоколом. Нужен для полноценной реализации функций (в т.ч shift)
По сути аналог фирменного переходника, только дешевле. И с возможностью любой переделки :smile:
Вовка
Brokly
efko
Ну тока Пионеры??? :sad: А чо так?
efko
Вовка, прикрутить другой протокол на выход не такая уж и проблема. Главное этот до ума довести. когда то писал такую штуку для кнопок мазды6. Там был частотный протокол, забавно было переключать штатную магнитолу ноутом)
Цитата
Только вот проблема в том, что я не понимаю как помочь в отладке. Для этого нужен макетный девайс и магнитола на столе, а у мне счаз не до этого

Отлаживаю пока только в симуляторе на компе. Вроде работает нормально. Макетку спаяю на днях, только кнопок нет :sad: Придется тыкать резисторами.
demitra
efko
Для такого благово дела кнопки дам для тестов! ;-) Созвонимся)
ALEKSANDR
Я чего то не пойму. Вы тут велосипед изобретаете ?
Давно ведь выяснили при каком сопротивлении - какая команда выполняется на пионере. К магнитоле Пионер отлично подходит пульт от Сони. Или вы придумываете что то ещё более генеальное ?
dervish00
ALEKSANDR
Саш, из ДВУХ проводков идущих от руля до магнитолы, народ пытается сделать ТРИ (как в упомянутом тобой пульте от Соньки), чтобы была возможность реализовать все команды, которые доступны по резистивному потоколу.
efko
Brokly
Готов помочь всем, чем могу. Самое главное, как только будет схема, то сразу же попробую ее собрать и протестить на живом авто
Вовка
dervish00
а каковы ф-ции штатных пультов?
какие ф-ции реализованы после расширения?
МосБарбос
Собрал и настроил на столе комплект двух пультов для Сони в варианте с ШИФТОМ и массой на валу. Для имитации сопротивления на валу руля в провод массы устанавливал потенциометр на 150 Ом, с имитацией "дребезга" контактов. Аппарат уверенно выполнял все команды с шифтом и без во всем диапозоне потенциометра. Думаю, процессор Соньки предполагает наличие "дребезга" в контактах джойстика... В ближайшее время установлю весь деваис на авто и по результатам отпишусь.
dervish00
Вовка
Штатные пульты напрямую не работают, т.к. номиналы резисторов не совпадают с необходимыми номиналами на Пионерах и Соньках. Для Алпайна это не актуально, т.к. у них можно настраивать и, соответственно, ты можешь назначить на кнопках пультов те функции, которые захочешь. Чтобы использовать пульты на пионерах и соньках необходимо либо перепаивать резисторы, либо использовать адаптер (например, пионеровский).
efko и Brokly хотят сделать СВОЙ адаптер, который можно настроить и получить максимально большое кол-во функций
Brokly
efko
Вот номиналы резисторов http://photofile.ru/photo/brokly/2820028/xlarge/55763329.jpg
Вот распайка миниджека для втыкания в магнитолу http://photofile.ru/photo/brokly/2820028/xlarge/55763325.jpg

Насчет подключения. Смотри у тебя цап читает напряжение с делителя 5в-пульт. Берем и вместо 5вольт подключаем к пульту сигнал приходящий в руль с кнопки клаксона. Под рулем берем тот же провод (идущий на кнопку клаксона) и подключаем его через делитель (тоже посчитать нужно) к ноге проца ARef, подтянув этот сигнал конденсатором, например 0.01 мкф. Ногу цапа то же подтягиваем таким же конденсатором. Таким образом от пультов нужно задействовать всего один провод. При этом помехи в бортовой сети сами компенсируются и пульты не нужно "вешать" на стабильные 5В. Главное, что бы напряжение на ногах проца не превышало 5В. На ноге ARef этого добиваемся делителем, считая, что сопротивление клаксона незначительно , а максимальное напряжение бортовой сети 15 В - например получим делитель КЛАКСОН - 10к - 5к - GND, точку соединения 10к-5к к ARef, паралельно 5к ту самую емкость. Второй делитель КЛАКСОН - Пульт - 25к - земля, тут провод из точки Пульт- уходит через улитку к резистору 25 к, который уже стоит на плате адаптера. Вот отсюда и берем сигнал для измерения. Если он 0, то кнопка не нажата.

Еще набросал тут схему в замен цифрового потенциометра - 8 транзисторов (или один корпус скажем 8 элементов не, с ОК) и 20 резисторов. На 128 шагов и управление подключением, вообще еще нужно шифтом рулить... по идее может хватить и 64 шага, нужно попробывать. Позже схему покажу, пока цейтнот sad.gif

dervish00 Боюсь на живом авто тестить будет гиморно, поскольку все тестирование будет заключаться в отладке прошивки sad.gif
ALEKSANDR
Цитата(dervish00)
ALEKSANDR
Саш, из ДВУХ проводков идущих от руля до магнитолы, народ пытается сделать ТРИ (как в упомянутом тобой пульте от Соньки), чтобы была возможность реализовать все команды, которые доступны по резистивному потоколу.
efko
Brokly
Готов помочь всем, чем могу. Самое главное, как только будет схема, то сразу же попробую ее собрать и протестить на живом авто

А разме "массу" нельзя использовать ?
Александр23
ALEKSANDR
Посмотри хотя бы последние 15 страниц, и поймешь, почему народ бьется над проблемой. :smile:
Вовка
А для Панаслоника чо-нить мона придумать?
ЗЫ
Наскока я понял там тока ИК пульт (((
Александр23
Вовка
Вход для проводного пульта есть?
Вовка
Цитата(Вовка)
Наскока я понял там тока ИК пульт (((
Александр23
Вовка
Значит, ключевое слово "тока"? Тогда колхозить два пульта (ИК и родной) и светить из-под руля или из потолочного плафона.
Вовка
Я для этого и создал тему соседнюю, тоб пасмареть какую магнитолу под пульты купить :roll:
Александр23
Вовка
Пионер проверен как минимум на пяти машинах. При покупке адаптера не требуется даже переходник. Большинство ф-й есть.
Brokly
Вовка В принципе этот проэкт легко потянет и ик диод в качестве бонуса smile.gif То есть одна маленькая платка может быть универсальной, отличаясь только прошивками. Стоимость простейшего програматора для этой поделки около 150 рублей smile.gif Самое главное , что бы народ дотянул эту фигню до конца.... Обычно с этим большие проблемы.
efko
Brokly, спасибо за советы! Идея интересная!
Но пока не хотелось бы подключать сюда клаксон, слишком длинный провод, наловит чего нибудь обязательно! В принципе, проблемы нет, в прошивке задал "вилку" входных напряжений для кнопки и программное подавление дребезга. Определяет уверенно, по крайней мере в эмуляторе. Кнопки будут подключены при помощи двух проводов к адаптеру (насколько я понял - они в улитке имеются). Лучше будет поставить простейший RC фильтр по входу.

Также в целях уменьшения габаритов устройства не хотелось бы использовать потенциометр на рассыпухе, слишком габаритное это все получится. Да и ног на него не напасешься :smile: В дальнейшем хотел перенести проект на тини. На мой взгляд лучше поставить готовый, пусть и за 250р. меньше гемора, лучше повторяемость, меньше размеры и лучшая точность.
Но в качестве эксперимента готов попробовать любые идеи.
Пока связка получается следующая
ATmega8 + DS, питание что нибудь из 7805. Располагать адаптер планирую не в руле.

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

demitra, спасибо за предложение!)) Ради общего дела так сказать. Хотя у тебя алпайн вроде)

Вовка, ик тоже можно вывести) Но это потом если только. Пока интересует только пионер.[/b]
Вовка
Блииинн.. Вы такииие умные :roll: :roll: :roll:
Уже захотелось продать панаслоник и купить пионер)))))
Brokly
efko Ты как напряжение меряешь ? Я про дребезг не понял. Если делать несколько измерений, то дребезг сам собой накрывается.... АЦП же меряет не моментально... Насчет рассыпухи, не заморачивайся. Если использовать чипрезисторы места не на много больше получится, а доступность народу в разы поднимется. Ну и про ноги, фиг ли их жалеть то у восьмой меги их вагон, а тиник не лучшее решение, у него ацп только одна ножка, а в дальнейшем может понадобиться чтение нескольких блоков кнопок. Да еще можно сделать выходы для подключения релюх, например для управления каким нибудь хендсфри. Кстати в руле этот адаптер установить не получится... Управление магнитолой 3 !!!! контакта, причем земля не может быть через рулевой вал.
efko
Brokly, как раз и делаю несколько измерений.
Код прерывания ADC, задержка между измерениями 1 мс.

Код
interrupt [ADC_INT] void adc_isr(void){



result=ADCW*5-ADCW/10; //умножаем чтобы получить мВ и немного учитываем погрешности

delay_ms(1);

ADCSRA=0b11011111;

}


код функции скана кнопки

Код
while(result<(U_VOL_P+100)&result>(U_VOL_P-100)){

        i++;

        if(i>time_long){                                    //условие длительного нажатия

                printf("VolumeUP_dlit ");  

                printf("%i %i mV",i,result);

                send_data(0xFF00+(255*R_VOL_P/R_POT));                    //передаем необходимое значение в потенциометр

                putchar(0x0D);

                i=0;

                delay_ms(time_delay);

                }}

      

        

        if(i>500&i<time_short){                                  //условие короткого нажатия

                printf("VolumeUP ");

                printf("%i ",i);

                send_data((255*R_VOL_P/R_POT));

                putchar(0x0D);

                i=0;

               }


U_VOL_P - напряжение кнопки VOL+, мВ
time_short, time_long - временные коэффициенты.
i-обычный счетчик

Сделано через while, чтобы короткое нажатие не срабатывало раньше длинного. Т.е сначала проверяется условие длинного нажатия.

А на выход можно чего угодно. В принципе 128 разрядов должно хватить. Еще не придумал как реализовать кратковременное подключение вых сопротивления адаптера.

Пока запись в регистры DS реализована так:
Код
void send_data(unsigned int data)  //функция передачи значения сопротивления в потенциометр

        {

        unsigned char j;

        unsigned int mask=1, result=0;

        #asm ("cli");

        out_port.RST=1;

        delay_us(1);

        out_port.DQ=0;

        out_port.CLK=0;  //передаем бит b0 = 0

        delay_us(1);

        out_port.CLK=1;

        delay_us(7);

        out_port.CLK=0;

        delay_us(1);

        

        for(j=0;j<16;j++)

                {

                result=data&mask;    

                if(result) {delay_us(1);out_port.DQ=1;} else {delay_us(1);out_port.DQ=0;}

                mask=mask*2;

                delay_us(1);

                out_port.CLK=1;

                delay_us(7);

                out_port.CLK=0;

                delay_us(1);

                }    

        out_port.DQ=0;

        delay_us(1);

        out_port.RST=0;

        #asm ("sei");

        }


Цитата
Кстати в руле этот адаптер установить не получится... Управление магнитолой 3 !!!! контакта, причем земля не может быть через рулевой вал.

Извиняюсь, туплю совсем:smile:
Александр23
efko
Торопишься просто. :smile:
dervish00
efko
сорри :oops: , а не должен ли этот код
Код
        #asm ("sei");

выглядеть так:
Код
        #asm ("sti");
efko
dervish00, нет. Вы путаете прерывания и семафоры. В архитектуре АВР отсутствует понятие семафора, ибо однозадачная это штука. Видел правда ОС на них, там что то похожее на многозадачность реализовывали.

Дословно "sei" означает Set Enable Interrupt - включить бит прерывания, разрешить прерывание, "cli" - Clear Interrupt - запретить прерывание.
Применительно к моей программе - запрет прерываний на время передачи бит в регистры цифрового потенциометра, иначе передача может прерваться для новой выборки АЦП.

Код программы полностью рабочий, правда неоптимальный пока) совсем неэкономлю ресурсы :smile:

Brokly, полностью согласен с вами по поводу тиньки.
PS. Прошивка готова, больше флудить по поводу прошивки не буду. Теперь нужно железо и кнопки, чем и займусь после выходных. Иначе слишком много слов, а толку никакого :smile:
dervish00
efko
сорри еще раз и за ОФФ тоже, но в обычном ассемблере для процессоров 8086 и выше команда CLI устанавливает флаг прерываний (IF) в 0 (тем самым запрещая прерывания), а команда STI устанавливает этот флаг в 1, разрешая прерывания. Именно поэтому я написал предыдущий пост. Наверное, все дело в другой архитектуре...
Brokly
dervish00 CLI у Атмела вообще сброс регистра в ноль... Меня немного напрягает вызов задержки из прерываний... Не совсем понятно зачем это нужно, например в прерывании от АЦП...
efko
Brokly, есть такое. Знаю,ч то прерывание должно длиться минимальное время. Поправлю.
Вовка
Я вот читаю, читаю... Не могу найти - есть какие нить провода идущие от руля до торпедо? Или жгут нада покупать?
Почему спрашиваю - хочу вывести кнопку O/D на руль, поэтому нада 2 провода идущие к отсутсвующиму пульту...
Александр23
Вовка
В руле есть разъем сигнала, там 3 свободных контакта на улитку, на выходе улитки разъем , с него можешь брать проход в руль. Кстати, на выключатель идут 3 провода, или ты хочешь релюху поставить, тогда одного провода хватит.
Вовка
Александр23
Нет... я просто возьму 2 провода со штатной кнопки O/D и продлю до руля))
Александр23
Хочешь отказаться от индикации?
Вовка
Цитата(Александр23)
Хочешь отказаться от индикации?

Если ты про лампу O/D - Нет, насколько я понял по конструкции - кнопка тупо разрывает провод.. Какая разница, где она находится? ;-)
Но это уже другая тема :roll:
Александр23
Вовка
Не тупо, она перекидывает (+) с коробки на лампу.
efko
Brokly, заказал вот это AD8402AN50
http://www.promelec.ru/pdf/ad8400_2_3_c.pdf
вписывается по параметрам. Стоит 150 руб. + Atmega8 ~60 руб и всякая мелочь рублей на 100)
Где тут 2000 руб спрятались, не понимаю :smile:

Специально для Вовки, с помощью адаптера можно вывести сигнал и на кнопку o/d. Т.е на пути руль - кнопки - контроллер ничего не меняется, просто добавляется еще один выход с платы на кнопку и вносятся изменения в прошивку. Считаю что эта штука стоит того чтобы ее доделали.
Или я не прав?
efko
Забыл добавить. Очень неудобно без правки.
Brokly, в AD8402 есть очень интересный вход SHDN, который "отрывает" электрически верхнюю ногу потенциометра, а средний вывод потенциометра закорачивает на нижний. Как раз то что нужно для реализации эмуляции кратковременного подключения сопротивления кнопки! И для нажатия шифта.

Open circuits all resistor A-terminals, connects W to B,
turns off SDO output transistor.


Как придет, начну отлаживать на макетке. А пока жду предложений по добавлению функционала.
Brokly
efko Смотри внимательнее, шифт это просто отдельный провод smile.gif И все же цифровой потенциометр - дорого и труднодоставаемо.... sad.gif
efko
Сделал плату, детальки приедут в пятницу. Решил не заморачиваться с макеткой,а делать сразу нормально.
В общем, дополнительно вывел два разъема на реле (открытый коллектор) для нажатия всяких не связанных с магнитолой вещей и RS232 для отладки, чтоб посмотреть можно было, чего там в адаптере делается :smile: И еще ног осталось для ИК и чего душе угодно) Размеры платы 67x43 мм. Можно еще уменьшить если применить мегу8 в смд корпусе.



Александр23
efko
Давненько я не брал в руки шашек! :smile: Вы маньяки в хорошем смысле слова. Я не смог себя заставить переделывать пульты, купил готовый адаптер. А тут есть люди, которые находят время на это. Уважаю!
Вовка
Вы главное скажите когда это всё можно купить? :roll: :roll: :roll:
efko
Александр23, спасибо! Честно говоря, приятно слышать!
Вовка, как отладим, так и можно будет! :smile:
Brokly
efko
Зачем так спешишь !? Начинали как проект решающий проблему недостающих проводов, а кончили.... Ну зачем внешний кварц ?! Да еще я так понимаю это 20 Мгц, ну раз конденсаторов нет ? Зачем такие размеры не детские ? Можно было просто в термоусадку закатать... А теперь что копрус придумывать ? На релюхи нужно было ULN2003 ставить. Зачем такой мощный стабилизатор (ну корпус зачем такой) ? Где кирамика в цепях питания - ЭТО ЖЕ АВТО !!!! Ресет к питанию не подтянут, будет перегружаться спонтанно .... Вощем это работать не сможет sad.gif
efko
Brokly, спасибо за критику.
Но вы все-таки невнимательно смотрели на плату, подтяжка ресета есть (1 нога), конденсаторы 0,1 по питанию 0805 стоят, в том числе и LC фильтр на AREF, внешнего кварца нет, то что на плате, пятачки для проводов, удобнее было использовать именно эту библиотечку, поэтому без кондеров. Работает это хозяйство на 8 Мгц.Со стабом все проще - проста такой был в запасах :smile:

Цитата
На релюхи нужно было ULN2003 ставить.

Зачем она там? 7 каналов, DIP16? Если можно поставить два транзистора с гораздо меньшими габаритами и аналогичными параметрами.
Плата - это не конечное устройство, это прототип.
В термоусадку в любом случае не влезет, тем более если резюк делать россыпью. Тут либо габариты, либо функционал и универсальность. Мега в дипе вообще слон :smile: В любом случае, размеры меньше 30x40 не получаются.
Brokly
efko Влезет в термоусадку, только зачем дипы то, можно же поверхностный монтаж smile.gif
МосБарбос
Brokly
Ну если слабое звено - адаптер, то зачем изобретать велосипед?! Ради одного недостающего провода ШИФТа? Ну какие еще нужны аргументы? Шифт прекрасно работает через массу вала! Без каких либо адаптеров... АЦП аппарата прекрасно отрабатывает все проблемы контактов. Сомневаешься - велком, покажу в натуре! :smile:
Brokly
МосБарбос Ты не понимаешь принципа работы !!! Шифт - не кнопка, это сигнал. Который замыкается на землю при , например, длинном нажатии. Ты правда думаешь что в коробочке именуемой адаптером ничего нет ?! :grin: ОДИН недостающий шифт это отсутствие ПОЛОВИНЫ функций пульта :grin:
Brokly
МосБарбос Когда наступишь на грабли неправильных функций не забудь отписаться smile.gif
МосБарбос
Brokly
Шифт- это отдельный провод, который при соединении с массой меняет назначения некоторых кнопок (SEEK). По крайней мере в Сони это именно так. И не надо инсенуаций! :smile: Я ж не предлагаю отказаться от ШИФТа, просто нет необходимости его иммулировать, он и в натуре (через вал на массу) неплохо работает. А все Ваши проблемы скорей всего в "кривом" ПО вашего адаптера ИМХО. :grin:
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.