PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Радио/ТВ (http://pccar.ru/forumdisplay.php?f=128)
-   -   HD Radio - USB адаптер (http://pccar.ru/showthread.php?t=17133)

Trantor 29.10.2015 11:57

Цитата:

Сообщение от Gorynch (Сообщение 341765)
Ночью ещё работала ...

А у меня и сейчас работает. если что, можно искать по ключевым словам ut-8801. что приятно, есть защита на 15 кВ, для машины это не нужно, а вот для других применений иногда бывает полезно очень.

Trantor 28.11.2015 19:45

Вложений: 1
получилось вот так. На платке max232 есть контактные площадки под все сигналы, к ногам микросхемы паяться нет необходимости. На плате FTDI адаптера есть отверстия под все нужные сигналы. Джампера и контактный разъем выпаял, все пойдет в термоусадку после проверки.

Trantor 23.01.2016 01:46

Запустил, все заработало, автору спасибо!

Winlin 19.04.2016 19:28

А никто не пробовал сделать переходник из ардуино? (ардуино + МАХ232)

Gorynch 20.04.2016 11:00

На mega32 делал.
Тут основы протокола.

4 pin круглого разъёма от радио можно посадить на землю сразу - это режим Mute (0 - звук есть, 1 - заука нет)

Транзистор включения радио управляется контроллером. По ссылке ввыше есть схема. Вмсесто DTR подключаешь к ножке контоллера: 1 - включено, 0 - выключено.

Для черного радио (Directed) - нужна дополнительная посылка для включения заука (помимо 4-го pin'а).

После сигнала включения нужно подождать 3 секунды. После этого можно отправлять данные. В простеёшем случае можно даже не считывать приходящие ответы.

Отправка конкретной частоты в радио. Если какой-то байт, кроме первого, в отправке равен 0xA4, то он заменяется на 0x1B48

PHP код:

const unsigned char muteOff_blackRadio[ ] = {0xA4,0x08,0x03,0x04,0x00,0x00,0x4B,0x00,0x00,0x00,0xFE};
const 
unsigned char freq1[ ] = {0xA40x100x020x010x000x000x010x000x000x00}; // before current freq
const unsigned char freq2[ ] = {0x000x000x000x000x000x00};    // after current freq
const unsigned char getSignal[ ] = {0xA40x050x010x010x010x000xAC};

const 
uint8_t radio_CS 0xB8;

void HDRadio_sendFreq(uint16_t curFreq) {
    
uint8_t current_CS;    //current CheckSum
    
current_CS radio_CS GetLowByte(curFreq) + GetHighByte(curFreq);
    for (
uint8_t i 0<= 9i++) {
        
Serial_SendBytefreq1[i] );
    }

    if (
GetLowByte(curFreq) == 0xA4) {
        
Serial_SendByte(0x1B);
        
Serial_SendByte(0x48);
    } else {
        
Serial_SendByte(GetLowByte(curFreq));
    }

    if (
GetHighByte(curFreq) == 0xA4) {
        
Serial_SendByte(0x1B);
        
Serial_SendByte(0x48);
    } else {
        
Serial_SendByte(GetHighByte(curFreq));
    }

    for (
uint8_t i 0<= 5i++) {
        
Serial_SendBytefreq2[i] );
    }

    if (
GetLowByte(current_CS) == 0xA4) {
        
Serial_SendByte(0x1B);
        
Serial_SendByte(0x48);
    } else {
        
Serial_SendByte(GetLowByte(current_CS));
    }



Winlin 20.04.2016 12:18

Спс. У меня как раз директед радио, управлял им сначала железным Ком портом потом, при смене материнки, переходником fTDI+MAX232. Теперь вот весь зоопарк (Attiny85 на рулевых кнопках, fTDI+MAX232 на радио) , так же хочу звук на цифру перевести и управлять предусилителем с компа задумал повесить на одну ардуину нано. Но я хочу сохранить возможность работы радио через плагин Икара.
А что то я не понял зачем нам тогда нужна была MAX232, если и FTDI могла через транзистор радио включить (уровни сигналов вроде можно было и стабилитронами ограничить).

Gorynch 20.04.2016 12:56

МАХ232 - только для согласования уровней, на мой взгляд это правильнее и надёжнее. И не сильно дороже.
А вот с одновременным управлением и контроллером, и компом - только если переключать Тх и Rx от радио между ними. Иначе не заработает

Winlin 20.04.2016 13:39

Цитата:

Сообщение от Gorynch (Сообщение 358876)
А вот с одновременным управлением и контроллером, и компом - только если переключать Тх и Rx от радио между ними. Иначе не заработает

Я хочу чтобы андуина прикинулась ком портом (впрочем она и так это делает), а плагин через нее уже работал с ХД радио. Т.е. управлять радио, как и сейчас только с компа, но убрать 3 FDTI из системы и повесить все на андуино.
Вопрос как для плагина сделать "прозрачной" андуино. Вот плагин в ком порт заслал данные андуина должна поймать данные и переслать в радио.

Gorynch 20.04.2016 14:18

С адруиной мало знаком. Если поддерживает прерывания по приходу данных на порт, то сделать на прерывании: данные считали, записали в другой порт. Лучше даже считывать не по одному байту, а посылку целиком. И потом её отправлять также скопом.
Плагину ответ от радио нужен? Если да, то нужно ловить данные и от радио ещё. А это уже сложнее, потому что радио постоянно шлёт RDS данные.
Либо можно в основном цикле программы постоянно проверять наличие данных в порту.

Winlin 21.04.2016 16:38

Тут внезапно выяснил что у меня на ардуино стоит не FT232, а CP2102
Вот интересно, если в опубликованной схеме заменить FT232 на CP2102, будет работать?


Часовой пояс GMT +4, время: 15:58.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Перевод: zCarot