PDA

Просмотр полной версии : Ардуино подключить к магнитоле


rerur
10.01.2014, 14:54
Поставлена задача управлять магнитолой с планшета с помощью Arduino nano. Вдохновили успешные реализации на данном форуме.
Все делается мной впервые, поэтому нужна помощь в тупиковой ситуации.

Имеется простая штатная магнитола реализованная на чипе TEF6902A http://www.nxp.com/documents/data_sheet/TEF6902A.pdf
Шина I2C на магнитоле подтянута 10кОм к 3.3В
Напряжения на SDA и SCL 2.2В в спокойном состоянии, при нажатии на кнопки магнитолы появляются импульсы до 3.3В Почему так происходит? Вроде уровни должны падать при передаче.
Подключил Ардуину. В режиме сниффера ничего не читает.
Запускал разные скетчи. Например поиск адресов подключенных устройств заканчивается зависанием. Иногда происходят самопроизвольные действия магнитолы, передается какая-то каша.

В каком направлении смотреть? Какое напряжение должно быть на шине I2C в данном случае?
Сам думаю, что нужно где-то поттянуть. Подскажите.

Vladget
10.01.2014, 16:04
Могу ошибиться конечно, но мне так кажется что на соседнем форуме как то больше любителей "ардуины"

s.m.
10.01.2014, 17:03
Запускал разные скетчи. Например поиск адресов подключенных устройств заканчивается зависанием. Иногда происходят самопроизвольные действия магнитолы, передается какая-то каша.


Магнитола была включена при этом или выключена? А вообще не нужен поиск адресов - адрес микрухи зашит в нее намертво и есть в даташите, как и полный протокол управления. Что нужно делать в магнитоле c Ардуины?
Если не нужно управление локальное с самой магнитолы - ее проц лучше отключить, сняв с него питание.
Но если проц жив, поставить в сниффере адрес нужного получателя и тупо снять протокол, так гораздо легче разбираться.

s.m.
10.01.2014, 17:07
Подключил Ардуину. В режиме сниффера ничего не читает.
Запускал разные скетчи.

Здесь (http://pccar.ru/showpost.php?p=259435&postcount=6) были?

rerur
10.01.2014, 19:18
Магнитола была включена при этом или выключена? А вообще не нужен поиск адресов - адрес микрухи зашит в нее намертво и есть в даташите, как и полный протокол управления. Что нужно делать в магнитоле c Ардуины?
Если не нужно управление локальное с самой магнитолы - ее проц лучше отключить, сняв с него питание.
Но если проц жив, поставить в сниффере адрес нужного получателя и тупо снять протокол, так гораздо легче разбираться.

Поиск адресов работает (проверял с другим устройством), но стоит физически подсоединить к шине магнитолу, даже выключенную, в мониторе порта все зависает на начальном этапе вывода текста.

По даташиту (http://www.nxp.com/documents/data_sheet/TEF6902A.pdf), я адрес узнал, но он не читался. Там два варианта адреса. Выбрал свой вариант - посмотрел на плату контакт адреса не заземлен значит адрес 61. Когда попробовал второй вариант 60, начало что ловиться. Беда в том, что все это не стабильно, какие-то куски доходят обрывками. Может внезапно измениться звук, частота радио, или вообще выключиться.

Оба сниффера работают в логическом плане, что-то же они отлавливают при определенных неведомых условиях.

Отсоединил морду, напряжение на шине немного увеличилось. По ощущением положительных попыток стало больше. Еще когда магнитола нагреется, вообще ничего не ловится.

lti1
10.01.2014, 19:29
А логические уровни 3,3 и 5в согласовали?
модуль согласование логических уровней 3,3 и 5в (http://alex-exe.ru/radio/microcontrollers/module-co-ordination-logical-level/)
Вместо BSS138 можно использовать BS170.

rerur
10.01.2014, 19:55
А логические уровни 3,3 и 5в согласовали?
модуль согласование логических уровней 3,3 и 5в (http://alex-exe.ru/radio/microcontrollers/module-co-ordination-logical-level/)
Вместо BSS138 можно использовать BS170.

Чувствую, что надо что-то согласовать. Но вроде в моем варианте нет 5В
Как тогда?

lti1
10.01.2014, 20:04
Чувствую, что надо что-то согласовать. Но вроде в моем варианте нет 5В
Как тогда?
Arduino nano 5 вольт, а на магнитоле у Вас 3.3 вольта.
Шина I2C на магнитоле подтянута 10кОм к 3.3В

rerur
10.01.2014, 20:12
Спасибо, буду дальше копать.
Почему-то думал что на ардуино 3.3В

lti1
10.01.2014, 20:33
Вот еще ссылка (http://binerry.de/post/27067411903/i2c-level-shifter-i2c-bridge) на схему согласования уровней, она сложнее, но я именно по ней согласовывал arduino и pioneer по тому как ее раньше нашел, чем ту что выше указал.
В Вашем случае и по первой и по второй схеме резистор в 10 кОм на стороне 3.3 вольта не нужен, он уже стоит в магнитоле.

Вот эту тему (http://compcar.ru/forum/showthread.php?t=5831) еще почитайте.

rerur
16.01.2014, 18:55
Согласование уровней не помогло. Использовал разные схемы, но лучше не было. Перепробовав разные способы подключения, добился относительно стабильного чтения шины меняя очередность подачи питания. Чип оказался толерантен 5В, но не настолько, чтобы все было гладко. Прочитать удалось только инфу касающуюся только тюнера, а мне нужно еще громкость,тембр и переключение входов. Причем во время чтения, все что касается не тюнера не регулируется, т.е. на морде магнитолы информация о действиях отображается а в реальности не происходит. В общем для моего проекта данная магнитола стала гиморойной, что в последствии подтвердилось. Однажды из-за не внимательности 3,3В замкнул на землю, причем на довольно длительное время. Ничего не вспыхивало и не пахло, я даже не сразу и заметил. Ардуине ничего, а магнитола уже не хочет работать. Включается, звука нет. На экране, при нажатии кнопок которые касаются тюнера ничего не происходит. При регулировки звуковых характеристик графика на экране есть, а звука нет. При выборе CD диск крутится, композиции листаются, на экране все отбражается, но звука нет. Единственный звук издается, это системный "пук" если выбрать CD, а там нет диска. Чип еще стал сильно нагреваться, чего раньше не было.
Магнитолу специально покупал для опытов, но все таки хочется починить.

Что могло сгореть в данном случае?

rerur
16.01.2014, 19:20
А пока снял с машины вторую магнитолу, и продолжаю свои опыты.
Проблема с ней в том, что нет в открытом доступе даташита на микросхему SAF7730 которая в магнитоле всем управляет. По сравнению прошлой магнитолой, шина отлично читается. Только здесь в спокойном состоянии идет постоянный траффик из 10 одинаковых байт. Какое их предназначение непонятно. Продолжаю разбираться.
На всякий случай спрошу, если вдруг не получится, какую посоветуете недорогую магнитолу с I2С шиной, где точно нет будет проблем с согласованием уровней.

Vladget
16.01.2014, 19:32
Вот делов то! Ну скачай схему глянь где коротнул и посмотри что там вполне возможно там стоит стабилитрон малюсенький

ancc
16.01.2014, 21:05
помню тоже изучал магнитолу с шиной I2C, сначала спалил процессор и усилитель)) Но ниче, потом разобрался.
К шине магнитолы подключаться только через преобразователь уровня.
Вот тут можно глянуть, мож чего-то полезное будет.
http://pccar.ru/showpost.php?p=141171&postcount=148

rerur
16.01.2014, 22:29
Вот делов то! Ну скачай схему глянь где коротнул и посмотри что там вполне возможно там стоит стабилитрон малюсенький

Схемы в свободном доступе нет. Питание подается, шина i2c молчит. Замер подтягивающего резистора вместо 10кОм показывает 1,75кОм. Где-то пробито, но я не спец по эти делам. По моему мнению накрылась микросхема, не знаю еще кварц может сгореть?

помню тоже изучал магнитолу с шиной I2C, сначала спалил процессор и усилитель)) Но ниче, потом разобрался.
К шине магнитолы подключаться только через преобразователь уровня.
Вот тут можно глянуть, мож чего-то полезное будет.
http://pccar.ru/showpost.php?p=141171&postcount=148

Посмотрел ваш проект. Буду изучать, некоторые идеи понравились.
Еще я не могу понять для чего отключать процессор. Чтобы не потреблял питания, или чтобы не вносил помехи, когда управление идет с компа?

ancc
16.01.2014, 23:14
Еще я не могу понять для чего отключать процессор. Чтобы не потреблял питания, или чтобы не вносил помехи, когда управление идет с компа?

чтобы он не лез на шину, пока мастером является ардуино.