Не прошло и пол года, как решил добить тему с эмулятором чейнжера. Еще с первой версии напрягала надпись TR 1 CD 1 на дисплее, хотя можно сделать что-то более интересное. В итоге за несколько вечеров доделал программную и аппаратную часть.

Программная часть. В плане вывода информации дисплей имеет довольно скудные возможности: 8 символов + знакогенератор только с поддержкой латиницы, ограничены доп. символы типа точка, запятая и т.д. Пришлось реализовать функцию транслитерации, чтобы названия на кириллице хоть как-то выводились(сразу вспомнилось, как когда-то писали смс транслитом…). Далее, для отслеживания режима работы дисплея используем сниффер шины и определяем, что выводится в данный момент, чтобы заменять только надпись TR 1 CD 1. Во всех остальных режимах выводится штатная информация(громкость, настройка звука, радио, если включено и т.д.). Ну и само собой бегущая строка, так как на 8 символах особо не разгонишься. Как известно, наш дисплей подключается к магнитоле по шине I2C + еще один сигнал прерывания. Скорость около 10кГц. Бери да подключай использую периферию esp32. Но тут ждал один нюанс. При формировании старт условия на шине периферия очень быстро переключала в 0 SDA вслед за SCL и дисплей ни в какую не хотел воспринимать это безобразие как старт условие. Пришлось сделать софт эмуляцию и задать уже нужные тайминги. Ну и далее передача.
Аппаратная часть. На шине уровни 5В, и хотя много где пишут, что esp32 имеет толерантные к 5В входы, я подтверждения этому в даташите не нашел, а это значит, что будем согласовывать уровни. На первый взгляд все казалось просто — схема согласования на полевом транзисторе и будет счастье. Но как оказалось, уровень 0 на шине в режиме, когда магнитола выступала в роли мастера варьируется в районе 0,5-0,8. Вроде не сильно большая подставка, но этого было достаточно, чтобы сниффер работал не корректно и нестабильно. Сильно наворачивать схему не хотелось, потому просто добавил схему сдвига уровня с использованием диода и завел на пустующие ножки. Получилось, что на вход используются одни ножки, на выход — другие. Все стало работать стабильно и надежно. Можно перенести диод в схему согласования уровней доработав ее с соответствующим изменением в коде. Переделывать не стал, так как надо было разобрать часть схемы на макетке, быстрее было допаять недостающее. В итоге схема вылилась во что-то такое:

Прошивка, как и раньше, будет доступна по ссылке(как доберусь до компа, все равно раньше никто не соберёт). Распиновка разъема для подключения одноименных сигналов тут.






Комментарии 13
Повторил, но трабл с подключением к магнитоле 2-го сценика.(RENRDW233-70) Она походу новее и при включении на пару секунд появляется надпись /NO-CD/ и вылетает. и вроде как пакетами обмениваются но только секунду …
Это же уже update list? С ним не проверял. И в нем не уверен, что есть spdif вход, там вроде аналоговый уже.
Спасибо.
Здравствуйте.
Подскажите пожалуйста, что выводится на дисплей в замен надписи TR1 CD1, и что если будет выводится на дисплее если начать переключать треки RT2…99?
Возможно ли добавление других функции в ESP32, например как : вольтметр (когда на дисплей ничего не выводится, т.е. магнитола находится в выключенном состоянии или вовсе отсутствует) и температуру от цифрового датчика (DS18B20 или что то аналогичное)?
В данный момент выводиться название трека. Русские транслитерацией.
Просто вывод без магнитолы где-то в параллельной теме у человека есть, вольтметр.
Там на ардуино нано сделано. github.com/kt819a/TLVoltmeter . Основа есть, а дальше хоть температуру добавляй.
Надо брать сценик2 или лагуну2. Там же can, сниферов готовых для can и софта готового тоже хватает! Там хоть есть с чем поиграться и что улучшить, машины же на самом деле современнее и напичканнее) Не хотелось так писать, но на самом деле уже засиделись на этих драндулетах старых)
Про драндулеты ты прав, машины уже старые что физически, что морально. Но если уже смотреть замену, то уже не третье поколение сразу.
Если применительно к дисплею, то на втором сценике хоть его и переделали под can и update list магнитолу, но функционала не добавилось особо. 8 символов + 3 мелких цифры как и у нас это все, край, в лучшем случае 2 строки. Был бы графический — было бы ещё интереснее. Можно и на нашу переставить магнитолу update list и дисплей, перепиновав разъёмы. Но получишь только aux, который лично мне ни разу не нужен. Да и нет их с такой передней мордой, только через рамку.
Да и этот проект не стоит рассматривать серьезно. Может и выглядит это все страшно и сложно, но делалось это все как проект выходного дня, в свободное время. Больше, если честно, просто чтобы получить навык работы с esp32, чуть больше углубиться в работу с freertos)
Ты думаешь, хоть кто-нибудь что-нибудь понял из написанного? )))
Считай, поговорил сам с собой.
Минимум пару человек может не до конца поняли, но смогут повторить. По крайней мере я надеюсь, что смогут и это писанина не зря) Вольтметр человек с консультациями смог же сделать, тут не сильно сложнее, ведь основная работа сделана.
Чтобы повторить, достаточно:
вот схема, вот печатка, вот прошивка… И всё.
А про scl, sda, прерывания, сдвиг уровня, сниффер шины, и так далее — я готов поспорить, что никто особо не понял. Может поверхностно пару человек и понимают, о чём речь (я один из них). И не более.
Это я ещё сократил в 2 раза) сначала понесло и расписал подробно) в итоге оставил только основные нюансы, с которыми столкнется тот, кто будет делать что-то похожее сам с 0. Если вдруг найдётся такой человек. Прошлую не совсем интересную конструкцию за 5 лет повторили всего 2 человека с драйва. И те молчат) Эта конструкция намного проще и дешевле. На данный момент 3 человека собрались повторить, заказали комплектующие. Посмотрим, сколько в итоге сделают)
Если сделаешь, например, блок управления подогревом ОЖ на каком-нибудь МК (не на дурино и esp) — я с удовольствием повторю.
Я уже несколько лет не могу начать изучение pic, уже давно MPLAB скачан, и вроде понимание какое-то есть, да и там только 32 команды выучить. Но времени постоянно нет. Постоянно нужно делать что-нибудь другое.
А esp32 не МК? Да и ту же ардуиноподобную плату никто не запрещает программировать без использования среды ардуино, можно даже в том же mplabx. Сам крайне редко использую ардуино, обычно когда кому-то помогаю сделать проект и человек просит. Да и на самом деле нет ничего плохого в использовании модулей ардуино и среды разработки, в случаях макетирования сокращает время прилично.
С блоком управления ож… Если бы он мне нужен был или знакомый какой просил — сделал бы, но у меня штатный + eberspacher. Так проблем не вижу. Хоть на microchip, хоть на atmel/stm/esp)