Перейти к содержанию
    

А кто как тепло отводит?

 

(Если это офф-топ прошу прощения, можете не отвечать)

Никак :) Греется себе и греется, но ведь работет-же без сбоев часами :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день.

 

Есть трабл.

 

Черт не в ту ветку написал. Это ядро FX2. CY7C68013. Извиняйте. Если не прав, то перенесите плиз.

 

Есть куча одинаковых компов, на одних и тех же мамах и процах, и видеокартах. В общем кроме винтов в них все одинаково. Потому как организация.

 

Так вот на одной машине при подключении Кипреса к порту 1 (не к порту 0) одного и того же хоста.

Это ядро (скажу сразу что загружаю свою прогу в ОЗУ, т.е. не использую ЕЕПРОМ и вообще его на борту нет), а таких плат более 50 и все ведут себя на этой машине одинаково, определяется как:

DVB-T BDA USB receiver

IdVendor 0x15F4

IdProduct 0x0130

 

Когда переключаю на порт 0 этого же хоста, то все нормуль Кипрес но-ЕЕПРОМ.

Cypress Semiconductor

idVendor: 0x04B4

idProduct: 0x8613

 

Винда Windows XP SP2. Есть вопрос что это???

Самое смешное, что с чипом ничего не делаем. Проги в нем нет. Пустой. Но на одном порту он Кипрес на другом DVB. Провод один и тот же. Просто сказка какая-то.

Подскажите люди. Кто в Санкт-Петербурге могу как-нибудь попробовать продемонстрировать.

Изменено пользователем AndreyS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

перводится Digital Video Broadcasting) цифровое видео- :)

Может в этом что-то быть? BDA похоже на "прямого доступа" судя по лингве.

Дык может у тебя просто совпали Виды и Пиды с каким-либо устройством, которое имеется в базе винды....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

перводится Digital Video Broadcasting) цифровое видео- :)

Может в этом что-то быть? BDA похоже на "прямого доступа" судя по лингве.

Дык может у тебя просто совпали Виды и Пиды с каким-либо устройством, которое имеется в базе винды....

 

Так я ж цитировал. В железке при включении ничего нет. Я просто перетыкаю ее из одного порта в другой на одном и том же хосте. Но на одном она определяется как FX2, а на другом как DVB (ерундой в общем). Думал может бит где переворачивается. Так вид и пид так разнятся, что прям ужас. Не врубаюсь в чем прикол. Флешка в этом порту определяется нормально. Смотрю все это в usbview. Надо будет просканить пакеты. Что там вообще прется на этом порту. А то я вообще ничего не понимаю. Как такое может быть? :huh: :cranky:

 

Есть еще одна машинка (но на ней уже другая мама и проц P4) так на этой маме USB устройство то определяется, то нет. Причем это единственная машина с таким глюком. Т.е. на такой же машине с пнем 4 нормально работает. Причем питается все устройство от собственного БП. А определяется или нет выглядит так. Винда то может поставить дрова, то нет. Т.е. то считывает Вид и Пид, то нет. Ну с этой машиной проще. Потому как на ней вообще винда глючная, не только с этим устройством траблы. Надо попробовать пепреставить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В железке при включении ничего нет. Я просто перетыкаю ее из одного порта в другой на одном и том же хосте. Но на одном она определяется как FX2, а на другом как DVB (ерундой в общем).

...

Есть еще одна машинка (но на ней уже другая мама и проц P4) так на этой маме USB устройство то определяется, то нет. Причем это единственная машина с таким глюком.

Очень похоже на аппаратные проблемы... У тебя входные цепи корректно сделаны, дорожки не слишком длинные? Генерация кварца устойчивая? Длительность сброса правильная?

 

Ну с этой машиной проще. Потому как на ней вообще винда глючная, не только с этим устройством траблы. Надо попробовать пепреставить.
IMHO, Винда тут совсем ни при чем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Очень похоже на аппаратные проблемы... У тебя входные цепи корректно сделаны, дорожки не слишком длинные? Генерация кварца устойчивая? Длительность сброса правильная?

 

Объясните пожалуйста, как аппаратная часть последовательного порта (диф пара), предположим плохо разведена, может работать на одном и том же порту как Кипресс, а на другом как DVB???? Это не парралельный порт. Я бы еще поверил в это, если бы устройство каждый раз определялось по разному. НО это стабильное определение как DVB наводит на мысль о корректной работе винды. Может что на машине в винде еще стоит чего я не знаю. Операционки то на всех машинах XP, но у каждого со своими надстройками и дровам.

 

 

IMHO, Винда тут совсем ни при чем.

 

Хммм. Посмотрим.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Очень похоже на аппаратные проблемы... У тебя входные цепи корректно сделаны, дорожки не слишком длинные? Генерация кварца устойчивая? Длительность сброса правильная?

 

Объясните пожалуйста, как аппаратная часть последовательного порта (диф пара), предположим плохо разведена, может работать на одном и том же порту как Кипресс, а на другом как DVB???? Это не парралельный порт. Я бы еще поверил в это, если бы устройство каждый раз определялось по разному. НО это стабильное определение как DVB наводит на мысль о корректной работе винды. Может что на машине в винде еще стоит чего я не знаю. Операционки то на всех машинах XP, но у каждого со своими надстройками и дровам.

 

 

IMHO, Винда тут совсем ни при чем.

 

Хммм. Посмотрим.

А может просто было когда-то подключено устройство, собранное на FX2??? Ведь FX2 может грузится на лету при подключении, а там стоит драйвер со скриптом, который при обнаружении FX2 грузит в него прошиву и рестартует FX2, поэтому и VID с DID меняются...

ЗЫ это только предположение...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А может просто было когда-то подключено устройство, собранное на FX2??? Ведь FX2 может грузится на лету при подключении, а там стоит драйвер со скриптом, который при обнаружении FX2 грузит в него прошиву и рестартует FX2, поэтому и VID с DID меняются...

ЗЫ это только предположение...

 

Это хороше предположение. Об этом я не подумал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А может просто было когда-то подключено устройство, собранное на FX2??? Ведь FX2 может грузится на лету при подключении, а там стоит драйвер со скриптом, который при обнаружении FX2 грузит в него прошиву и рестартует FX2, поэтому и VID с DID меняются...

ЗЫ это только предположение...

Темное дело... По идее, в этом случае не зависело бы от гнезда USB. Ведь VID/PID те же самые.

 

Объясните пожалуйста, как аппаратная часть последовательного порта (диф пара), предположим плохо разведена, может работать на одном и том же порту как Кипресс, а на другом как DVB????
Тут еще может сказываться, какой именно USB на данном порту. У меня, к примеру, четыре 82801EB USB и только один 82801EB USB2. Может это как-то сказывается?... У меня FX2 всегда появляется на порту USB2, куда бы я его не втыкал. Но что интересно, при первом втыкании в другой порт Винда заново запрашивает установку драйвера. Тоже непонятно...

 

Ну и, в конце концов, можно попробовать для этого странного устройства DVB сделать апдейт драйвера, чтобы "отцепить" этот посторонний драйвер (если он как-то пролез в систему) и назначить нужный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А может просто было когда-то подключено устройство, собранное на FX2??? Ведь FX2 может грузится на лету при подключении, а там стоит драйвер со скриптом, который при обнаружении FX2 грузит в него прошиву и рестартует FX2, поэтому и VID с DID меняются...

ЗЫ это только предположение...

Темное дело... По идее, в этом случае не зависело бы от гнезда USB. Ведь VID/PID те же самые.

 

Согласен, что дело темное, но оно относится к тому же самому, что при первтыкании из порта в порт Винда просит снова поставить дрова. Вот в этот момент может и происходит подмена. Т.е ка и у вас на наших машинах при перестановки из порта в порт винда частенько просит драйвер. Происходит не всегда, но бывает, подсовываем INF каталог и все ок.

 

Объясните пожалуйста, как аппаратная часть последовательного порта (диф пара), предположим плохо разведена, может работать на одном и том же порту как Кипресс, а на другом как DVB????
Тут еще может сказываться, какой именно USB на данном порту. У меня, к примеру, четыре 82801EB USB и только один 82801EB USB2. Может это как-то сказывается?... У меня FX2 всегда появляется на порту USB2, куда бы я его не втыкал. Но что интересно, при первом втыкании в другой порт Винда заново запрашивает установку драйвера. Тоже непонятно...

 

Ну и, в конце концов, можно попробовать для этого странного устройства DVB сделать апдейт драйвера, чтобы "отцепить" этот посторонний драйвер (если он как-то пролез в систему) и назначить нужный.

 

Через виндовый диспетчер сменить конечно же не дает. Только если самому инфик сделать на основе Кипрессовского. Тупа перетирать драйверок в системной папке нет большого желания. Но в общем путь понятен. А вот с перетыканием у нас схожие проблеммы. Правда мы пользуем ezusb.sys с другим драйвером не пробовали, но на сколько я понял вы именно со вторым драйвером в последнее время

работаете и проблемма осталась.

 

На маме с П4 хост FW82801EB От 2002 L3450240 вот на нем то определяется, то нет. В любом порту. Может у этого хоста нагрузочная способность маленькая. Просто странно как-то на новых платах с П4 все работате нормально и на старых машинах с USB1 И PCI картах от VIA все работает нормуль (ну кроме как с перевключением из порта в порт иногда просит снова драйверок поставить), а вот на этой тачке (мама от MSI с П4), она такая единственная, работает через раз. Мы работаем на USB1, до 2.0 не разгонял.

 

Есть железяка на FTDI так с перевключением из порта в порт с ней таже лажа. Т.е. иногда просит драйверок. Так что это какая-то закономерность связанная с виндой. Правда при этом еще и виртуальный порт меняет собака на любой (то 18 то 10 то 4) хотя в системе свободных начиная с 3-го.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день еще раз.

 

Snoopy кое в чем помог. На машине где на одном из портов железка детектится как DVB увидил смену драйвера. Т.е как и предположил уважаемый -Al- железка задетектилась как кипрес и тут же в нее была перезалита прошивка и сброшено. После этого устройство задетектилось уже как DVB. Теперь осталось выдрать эту гадость и осознать как это произошло.

 

Могли бы подсказать как мне засечь, что именно заливает прошивку DVB в ядро??

 

Извиняюсь. :wub: Засек и удалил.

 

Обидно, но USB monitor от HHD Software на той машинке нормально не сканит, не все пакеты ловит. Смог поймать только Дисконнект устройства в системе и все. Сам процесс инициализации почему то не поймал.

Изменено пользователем AndreyS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день.

 

На FX2 есть большая небходимость отключить поддержку USB2.0. Как это сделать? В Device Descriptor значение USB Specification Version заставит хост не переходить на High?

 

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возвращаясь к SX2 (а то что-то народ все про FX2...)

Дорос до осознания того, что нужно пользоваться самодельным дескриптором, ибо то что по умолчанию уже не удовлетворяет....

Задача: ep6 (она же 0x86) сделать изохронной...

Пытаюсь начать с малого - добиться того, чтобы просто грузить целиком дескриптор, приведенный в datasheet. Получается пока не очень.

Гружу дескриптор не из флеш, а из внешнего мастера.

Питание - ок

прерывание READY - ок

Запись регистров -ок

Запись команды B0 - ок

Запись общей длины дескриптора (посчитал по сумме длин секций дефолтового - 0хА0) - ок

...и запись дескриптора тоже вроде проходит, но вот после того как все записал не происходит прерывания ENUMOK... :( Собственно говоря вообще никакого прерывания не происходит...

 

Windows выкидывает тряпку "One of the USB devices attached to this computer has malfunctioned, and Windows dose not recognize it"

 

Ладно...

 

Читаю записанный дескриптор из регистрового файла SX2.

Сравнение файлов показывает, что все секции вплоть до //StringDscr1 совпадают (в смысле считалось то же что записалось), потом три неправильных (всегда одних и тех же) байта, потом вроде как до конца все ок...

Но! Я вычитываю все 500 байт из регистра с дескриптором, и после того как "мой" дескриптор закончился - там еще остается какая-то муть... :(

 

Пробовал после того как записал дескриптор установть бит DISCON в 0 - не помогает.

 

Подскажите, что я не так делаю, а? :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Запись общей длины дескриптора (посчитал по сумме длин секций дефолтового - 0хА0) - ок

...и запись дескриптора тоже вроде проходит, но вот после того как все записал не происходит прерывания ENUMOK... :( Собственно говоря вообще никакого прерывания не происходит...

Windows выкидывает тряпку "One of the USB devices attached to this computer has malfunctioned, and Windows dose not recognize it"

Странно... У меня после записи дескриптора енумерация нормально происходит... Может быть ты неверно размер дескриптора вычисляешь? Я это делаю с помощью оператора sizeof(CustomDescriptor). Собственно, текст моей функции вот такой:

 

void WriteCustomDescriptor(void)

{

word i;

byte b;

prog_char *ptr;

 

PRINT_STRING("Load custom descriptor, len=");

sprintw(sizeof(CustomDescriptor));

crlf();

 

low_level_command_write (0x30 | 0x80); //Write request, bit7 = 1, bit6 = 0

low_level_command_write ((sizeof(CustomDescriptor) & 0x00F0) >> 4); //Write length high nibble of lsb

low_level_command_write ( sizeof(CustomDescriptor) & 0x000F ); //Write length low nibble of lsb

low_level_command_write ((sizeof(CustomDescriptor) & 0xF000) >> 12); //Write length high nibble of msb

low_level_command_write ((sizeof(CustomDescriptor) & 0x0F00) >> 8); //Write length low nibble of msb

ptr = (prog_char *)CustomDescriptor;

for(i = 0;i < sizeof(CustomDescriptor);i++) {

b = pgm_read_byte_near(ptr++);

low_level_command_write ((b & 0xF0) >> 4); //Write data high nibble

low_level_command_write ( b & 0x0F ); //Write data low nibble

}

PRINT_STRING("Loading done\r\n");

}

 

Пояснение: программа для микроконтроллера AVR фирмы Atmel. Функция pgm_read_byte_near служит для доступа к программной памяти (ПЗУ), т.к. у этого микроконтроллера память программ и память данных разделены. CustomDescriptor, соответственно, тоже хранится в ПЗУ. Функция low_level_command_write взята из аппноты. PRINT_STRING - макрос для печати отладочных строк в последовательный порт (к ним же относятся sprintw() и crlf()).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...