насчет CD-CH1, наверное, его у меня не было раньше. кинул клич басоводам, вроде нету ни у кого.
насчет CD-CH1, наверное, его у меня не было раньше. кинул клич басоводам, вроде нету ни у кого.
ak1976, приветствую.
возможно нашел твою проблему с регистрацией, по крайней мере, у меня нечто такое вылезло.
такая проблема: контроллер регистрируется в системе как ченжер, но потом в обмене данными не участвует. голова шлет для него данные, а через три минуты его отключает. при старте он у меня тоже не всегда регистрируется, похоже, он просто шлет запрос на регистрацию до того как голова готова его обработать. перетыкание питания сильно помогает, регистрируется и включается на лету. так что может просто добавить таймер, по которому повторять процедуру регистрации, раз уж нет записи протокола обмена ченжера.
А можешь глянуть на какие сообщения контроллер не отвечает.
В первоначальной версии прошивки делалось 5 попыток регистрации через 300 мс. По идее за 1,5 секунды голова уже должна включиться, но при этом не учитывалось состояние шины и команда могла послаться когда другое устройство посылало в шину сообщение.
В новой версии прошивки, я переместил регистрацию в основной цикл программы и теперь при регистрации контролируется состояние шины. Делается 10 попыток. Правда они идут подряд и вполне может быть, что они могут пройти пержде чем загрузиться голова. Хочу разобраться как так программируется таймер, чтобы и здесь сделать попытки регистрации через 300мс.
да, по моем, он вообще ни на какие не отвечает.
ща, схожу в машину за логами, забыл сразу забрать
300мс думаю многовато будет, там обмен значительно реже, раз секунд в 5, как бы не 10
в архиве 4 файла - 2 оригинала и 2 отфильтрованных, касательно адреса 360 и подозрений на его передачу, типа таких:
> 63 31 F3 00 3F 00 00 00 00 02
> 63 31 F3 00 3F 00 01 00 01 02
> 63 31 F3 00 3D 00 01 00 01 02
> 63 31 F3 00 39 00 01 00 01 02
> 63 31 F3 00 31 00 01 00 01 02
> 63 31 F3 00 21 00 01 00 01 02
> 63 31 F3 00 01 00 01 00 01 02
те что шли подряд, в смежных строках, те что перемежались с другими данными, те с разрывами строк
Последний раз редактировалось uzzzer; 18.05.2009 в 22:50.
Это команды посылаемые контроллером после инициализации, на сколько я понял, в них описываются параметры чейджера, т.е. сколько дисков. треков и т.д.
Еще в логах видно, что голова (и не только она одна) часто посылает контролеру команды вида
Судя по этому тексту - это голова опрашивает параметры (типа кол-ва дисков) у чейнджера и нужно отвечать ей разновидностью вышеприведенных команд.Код:< d 120 360 04003163E0 < d 120 360 04003163E2
Есть вариант реализации этого на сайте http://flux242.blogspot.com/ исходники прошивки changer001.zip
в ней как раз описаны запросы
и ответы на нихКод:const rom byte stat_req1[] = { 0x4, 0x00, 0x31, 0x63, 0xE2 }; const rom byte stat_req2[] = { 0x4, 0x00, 0x25, 0x63, 0xE2 }; const rom byte stat_req3[] = { 0x4, 0x00, 0x31, 0x63, 0xE0 }; const rom byte stat_req4[] = { 0x4, 0x00, 0x58, 0x63, 0xE0 }; const rom byte stat_req5[] = { 0x4, 0x00, 0x58, 0x63, 0xE2 }; const rom byte stat_req6[] = { 0x4, 0x00, 0x58, 0x63, 0xE4 }; const rom byte stat_req7[] = { 0x4, 0x00, 0x31, 0x63, 0xE4 };
вот только не знаю насколько это необходимо для работы контроллера. В принципе все равно сколько там дисков голова находит. Главное, чтобы она команду на проигрывание давала.Код:const rom byte CMD_STAT_ANSW1[] = {0x1, 0x06, 0x00, 0x63, 0x31, 0xF2, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0x00, 0x80 }; const rom byte CMD_STAT_ANSW2[] = {0x1, 0x06, 0x00, 0x63, 0x25, 0xF2, 0x00, 0x30, 0x00, 0x09, 0x00, 0x06, 0x00, 0x80 }; const rom byte CMD_STAT_ANSW3[] = {0x1, 0x06, 0x00, 0x63, 0x31, 0xF0, 0x06, 0x00 }; const rom byte CMD_STAT_ANSW4[] = {0x1, 0x06, 0x00, 0x63, 0x58, 0xF0, 0x01, 0x11, 0x10, 0x80, 0x01 }; const rom byte CMD_STAT_ANSW5[] = {0x1, 0x06, 0x00, 0x63, 0x58, 0xF2, 0x00, 0x30, 0x00, 0x09, 0x00, 0x06, 0x00, 0x80 }; const rom byte CMD_STAT_ANSW6[] = {0x1, 0x06, 0x00, 0x63, 0x58, 0xF4, 0x06, 0x00 }; const rom byte CMD_STAT_ANSW7[] = {0x1, 0x06, 0x00, 0x63, 0x31, 0xF4, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x02 };
вытащил исходники, по диагонали пробежался.
проблема в том, что голова что-то шлет ченжеру, а он разговор не поддерживает. надо чтоб хоть че-то отвечал. типа, есть у него диск.
а есть ссылка на среду разработки? правильной версии?
ты вообще не спишь, что ли
Я использую AVR Studio, у меня версия 4.14, но это вроде не принципиально.
Еще к ней нужен WinAVR обязательно версии 20040720
То что у него есть диск, контроллер говорит при инициализации. Единственно, может голова это не всегда успевает услышать.
Я сплю, но мало
Последние изменения:
Поборол у себя бутлоадер. Скачас с сайта и собрал свежую версию прошивки, а также программу для закачки. Все чудесным образом заработало. На всякий случай выкладываю все здесь
AVCLan-mini-bootloader.rar
Поправил прошивку, в предыдущей версии забыл поставить загрузку конфига из eeprom, поэтому не адреса не запоминались после перезагрузки контроллера. А так смена адреса головы и чейджера работает. Проверил на тестовой голове. Только адрес нужно посылать в формате
S0120H - для головы
S0360G - для чейнджера
в предыдущем посте про смену адреса я ведущий ноль пропустил, поэтому поменять адрес и не получилось.
avclan-mini-hex.rar
Мне пообщали принести настоящий чейджер, возможно получиться прочитать, что должен отвечать чейджер голове в разных ситуациях.
Поправил терминал. Теперь из него можно менять адрес головы и чейджера, посылать произвольные команды контроллеру (именно котроллеру, а не в шину как раньше. Команды в шину обрамлялись дополнительными символами и допустим поменять адрес головы из старого терминала нельзя было)
Ну и добавил возможнось отключаться от com-порта, чтобы временно не принимать он контроллера сообщения.
AVCLan-mini-terminal.rar
ну ты монстр. а у тебя контроллер хоть что-нибудь отвечает голове?
а то я слегка пробежался по коду, ниче такого сразу не нашел. но, правда очень слегда пробежался, не могу сесть позаниматься в эти дни
а, контроллер-то мож и отвечает, только в сом-порт ниче не пишет, я и не вижу
и насчет отваливания через три минуты, у тебя так или все время работает?
Последний раз редактировалось uzzzer; 23.05.2009 в 20:23.
Доброго времени суток...
А что надо отвечать чейнджеру на эти команды:
1 160 360 F 04 00 25 63 E0
1 190 360 F 04 00 25 63 E2
1 190 360 F 04 00 25 63 E4
1 160 360 F 04 00 12 01 03
и что за это команды ??
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)