Ты RX с ТХ местами не попутал?
Осциллографом не смотрел?
Схема подключения драйвера 100% рабочая , на коммерческих адаптерах по этой схеме сделано.
Ты RX с ТХ местами не попутал?
Осциллографом не смотрел?
Схема подключения драйвера 100% рабочая , на коммерческих адаптерах по этой схеме сделано.
Последний раз редактировалось Chip; 18.06.2009 в 20:53.
Не перепутал. Но сейчас на всякий случай RX c TX я местами поменял и TX+, TX- попробовал все комбинации.
Можешь у себя код для arduino проверить, чтобы знать, что он рабочий и искать проблему в драйвере шины? Осциллографа у меня нет
А я пока осциллограф буду искать.
Прошивку сделаю, сегодня сделал настраиваемый режим read only, а также фильтрацию лога по адресам уже в адаптере. Т.к. все сообщения он передать не успевает, нужно лишнее выбрасывать. Пришлось буфер вернуть обратно до 240 байт иначе, похоже он трет другие переменные в памяти. Непонятно как этот вопрос контролировать - хватает программе доступного 1кб памяти или нет.
По расходу здесь на форуме уже выясняли какие значения чего значат. Даже плагин для центрифуги написали.
Попробовал код на Ардуино все работает, правда я без драйвера тестил , подал переменку на 8 Пин и в терминалке поскакали 10101010101010101010101
Последний раз редактировалось Chip; 19.06.2009 в 03:21.
по схеме драйвера - лучше использовать микросхему ST485 , есть еще тонкость , сигнал на-с микросхему по сравнению с схемой на кане инверсный .
Микросхему поменяем, хоть не зря панельку на плату поставил. Про входной сигнал я догадался, в программе написано:
про то что на вход может влиять уровень выходного сигнала как-то не подумал сразу.Код:// инвертируем сигнал #define INPUT_IS_SET (bit_is_clear(DATAIN_PIN, DATAIN)) #define INPUT_IS_CLEAR (bit_is_set(DATAIN_PIN, DATAIN))
Сейчас проверил, поменял инициализацию входа на:
нолики с единичками забегали. Спасибо за подсказкуКод:// AVCLan TX+/TX- write line OUTPUT DATAOUT_DDR |= 1<<DATAOUT; DATAOUT_PORT &= ~(1<<DATAOUT);
Собрал данный девайс, заработал сразу на моём приусе, тока с бутлоадером туговато, шью каждый раз как надо понипрогом. Пробовал через юсб на фт232, тож работает. Но как - то со штатной навигашкой не охота юзать комп , как бы победить активацию РГБ. Моё предложение - надо осваивать паралельный порт посредством фт245, скорость будет хорошая. Ну и бутлоадер под это дело найти, а там глядишь и комерческие дрова подойдут.
А бутлоадер из первого поста или из этого? Рабочий последний.
Активацию RGB победить можно только эмулирую навигацию. Т.е. нужно снимать лог и повторять команды и ответы на них. Тема нужная, мне и самому не очень хочется навигацию возить, на ее место как раз компьютер хорошо поместился. Да и друг у меня сейчас CarPC собирает на приусе. У него вообще навигации нет. В общем нужно осваивать.
С ft245 вопрос спорный, учитывая что 1 бит в AVCLan передается 40 мкс, общая скорость передачи всего 25кбит/с. Вроде как скорости com-порта предостаточно, правда пока принимается сообщение, в порт ничего не шлется и остаются короткие промежутки между посылками. Но судя по даташиту даже ATmega8 на 16МГц лучше всего работает с портом на скорости 1Мбит/с, плюс буферизация на самом контроллере, да и большие скорости нужны только, чтобы считать полный лог на шине к которой подключены много устройств. После регистрации всех устройст трафик в шине падает и достаточно небольших скоростей com-порта.
Еще плюс com-порта, что в случае реализации адаптера на Arduino нужно сделать только драйвер на одной микросхеме. Вполне доступно, в отличии от пайки ft245 c шагом ног в 0,8 мм.
В любом случае проект открытый и можно легко добавить в него и такую функцию, достаточно поправить файл com232.c
В выходные сидел вспоминал-изучал басик ))
Вот что получилось, так сказать черновой вариант
Сегодняшняя поездка на работу
Последний раз редактировалось LeonVS; 22.06.2009 в 13:46.
Просто у меня клавиши на руле ловятся как команды от навигации... следовательно чтоб эмитировать допустим их нажатие надо посылать команду от нави...
Чтоб эмитировать клавишу включения электро мобиля команда должна быть уже от другой системы, в общем не удобно... Может в прошивке сделать чтоб отправка шла того что приходит на комп порт целиком, без добавления адреса получателя?
Все-таки не совсем корректно посылать команды от чужого адреса. Нужно проверить вообще возможно ли такое (поменяв ID чейнджера в адаптере).
Возможно лучше будет посылать эти же команды от имени чейнджера. У меня получалось включать, радио, сд, менять громкость.
Подозреваю что в случае изменения громкости кнопками на руле от нави идет команда типа
d 178 110 050025749C03
Если отправить с терминала команду 0025749C03 громкость так же увеличится.
Возможно и другие команды будут восприниматься от имени чейджера.
В текущую прошивку уже ничего не помещается (последние добавления даже пришлось удалить, чтобы она заработала). Я нашел в чем причина, но нужно достаточно много переписать в прошивке. Я хочу сделать общий код у адаптера и у платы для arduino. Так будет легче добавлять новые возможности. В адаптере нужно будет только кварц перепаять на 16МГц. Думаю на этой неделе закончить библиотеку для arduino, в ней сразу будет заложена возможность отправлять команды от разных адресов.
Есть вопрос, куда подключен адаптер на твоем приусе? Я так понял, что у приуса несколько входов tx+/tx- на голове и мониторе. С другом пробовали подключаться к двум из них и почему-то в шине были не все команды, а только широковещательные команды от головы. Т.е. кнопки не удалось считать, команды от тача.
Последний раз редактировалось ak1976; 30.06.2009 в 19:20.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)