Показано с 1 по 10 из 11

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Новичок
    Регистрация
    28.09.2013
    Сообщений
    16
    Вес репутации
    133

    Вопрос Arduino эмулятор CD changer для магнитол Крайслер

    Проблемма:
    Штатная магнитола не имеет линейного входа, который очень нужен...У магнитолы имеется возможность подключения CD чейнжера(только своего), при подключении чейнджера у магнитолы активируется линейный вход через который подается аналоговый аудио сигнал от чейнджера в магнитолу. Управление чейнджером(перемотка, пауза и т.п.) осуществляется по шине данных J1850, но управление мне не нужно, мне достаточно активировать вход...

    Как работает:
    При подключении к магнитоле, "родного" чейнджера, в меню появляется пункт CD Changer.
    CD Changer и магнитола соединяются 10 пиновым кабелем:
    Цитата Сообщение от Распиновка
    Pin Layout Code Description
    1 CDC R CD-Changer Audio Input Right (вход правого канала)
    2 S-GND Shield Ground (экран земля левого/правого канала)
    3 GND Ground
    4 J1850 PCI Bus (шина данных)
    5 CDC ACC CD-Changer Ignition Switch Output (run-acc)
    6 CDC L CD-Changer Audio Input Left (вход левого канала)
    7 GND Ground
    8 NC No Connection
    9 RDW ???
    10 CDC BATT CD-Changer B+ Output
    Магнитола узнает о наличии чейнджера по шине данных (J1850 VPW PCI Bus). Грубо говоря подключенный CD чейнджер, по шине данных "передает" свой "позывной", "услышав" который магнитола активирует режим работы с CD чейнджером...
    Все команды CD чейнджеру также передаются но шине данных, но в моем конкретном случае управление: перемотки паузы и т.п. не требуются необходима только активация режима CD чейнджер, при котором активируется и звуковой вход магнитолы (пины 1,2,6), по которым я и планирую подать звук в магнитолу...
    Сразу отвечу на вопрос: Почему просто не заменить магнитолу?
    >Потому что родная магнитола(производства: infinity) идеально вписываясь в интерьер, хорошо звучит, но имеет специфический формфактор 1,5 Din переделка естественно возможна, но страдает эстетика...
    >Руки чешутся поиграться с Arduino

    CD эмулятор на ATttiny26 уже разработан и успешно работает НО! Только у рукастых друзей паяльника, к сожалению спаянный мной эмулятор не заработал, видимо руки не доточил...
    Случайно узнав о чуде Arduino и подумал, а ведь эта НЕДОРОГАЯ малышка ЗАВОДСКОГО производства должна с легкостью справится с данной задачей... Учитывая, что есть все исходники, даташиты, остается грамотно адаптировать для ARDUINO..

    Поэтому обращаюсь к специалистам! Правильно ли я сделал вывод о "легкости" адаптации "CD эмулятора на ATttiny26" в Arduino? И если да, то прошу помощи в адаптации и выборе необходимых компонентов(как я понимаю одна из сложностей это питание платы Arduino)...

    Вот принципиальная схема, и макет печатной платы работающего эмулятора
    hardware.pdf

    А вот прошивка с исходниками, надеюсь специалисту не составит труда разобраться....
    Firmware.zip

    Описание протокола...
    Frame header 0x8D CD Changer control frame
    Data byte 1 0x0F Poll to CD changer
    Date byte 2 0x00 Actual Radio mode0x01 = Radio off0x10 = Internal CD drive
    0x20 = Mode MW or LW
    0x21 = Mode FM
    0x24 = Mode CD changer
    CRC

    The following frame is the poll response if changer is in idle mode or changing disc/track:
    Frame header 0x8D CD Changer control frame
    Data byte 1 0x93 Response to frame 8D 0F - Pong from CD changer when in idle status
    Data byte 2 0x01 Actual disc, range 0-0xFF, Hex coded0-9 = numbers 0-9A = ':'
    B = ';'
    C = '<'
    D = '='
    E = '>'
    F = '?'
    Data byte 3 0x01 Actual track, range 0-0xFF, Hex coded0-9 = numbers 0-9A = ':'
    B = ';'
    C = '<'
    D = '='
    E = '>'
    F = '?'
    Data byte 4 0x80 Display control0x02 = Blinking "SCAN" text0x04 = "RND" activated
    0x30 = "NO MAG" text
    0x60 = "NO DISC" text
    0x70 = "-:-" steady
    0x80 = Disc number + radio clock
    0x90 = Disc number + track number + radio clock
    0xA0 = Disc number + track number + "00:00"
    0xB0 = Disc number + track number + song play time
    CRC

    The following frame is the poll response if changer is playing a track:
    Frame header 0x8D CD Changer control frame
    Data byte 1 0x94 Response to frame 8D 0F - Pong from CD changer while playing
    Data byte 2 0x00 Actual minutes of play time, range 0-99, BDC codedIf byte is 0x9x the time is displayed like "-0:00", remaing time
    Data byte 2 0x00 Actual seconds of play time, range 0-99, BCD coded
    CRC

    This frame must be send before the first 0x8D 0x94... frame, otherwise time update is not possible:
    Frame header 0x8D CD Changer control frame
    Data byte 1 0xE1 Command to activate time displayRequired before 8D 94Otherwise play time update not possible
    Data byte 2 0x01 ???
    Data byte 3 0x10 ???
    CRC

    The following frame will be send from radio to the changer, if a changer related button was pressed:
    Frame header 0x3D CD Changer control frame, button press
    Data byte 1 0x12 ???
    Data byte 2 0x810x830x84 ??? With "TUNE" and "SEEK" button??? With "DISC" button??? With "RND" button
    Data byte 3 0x26 Key ID0x23 = Button "TUNE FF" pressed0x24 = Button "TUNE RW" pressed
    0x25 = Button "TUNE" released
    0x26 = Button "SEEK UP" pressed
    0x27 = Button "SEEK DOWN" pressed
    0x35 = Button "RND" pressed
    0xF1 = Button "DISC UP" pressed
    0xF2 = Button "DISC DOWN" pressed


    Ссылка сайт автора разработки
    Последний раз редактировалось Drawde; 30.09.2013 в 16:10.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •