Jump to content

    

Yuricsson

Участник
  • Content Count

    9
  • Joined

  • Last visited

Community Reputation

0 Обычный
  1. Спасибо! Ещё по собранной информации понял, что идентификация устройства как high-speed происходит на этапе pull-up на d+, там некий протокол задействован, не вдавался в подробности. А информация в дескрипторе в поле bcdUSB скорее нужна для отсекания лишних заведомо неподдерживаемых запросов. В общем, прописал везде в своих устройствах 0x0200, и всё вроде нормально работает.
  2. Понимаю, что не по спецификации живу, но: насколько я буду неправ, если в устройстве, в котором установлена микросхема philips pdiusbd12 (поддерживает спецификацию usb 1.1), пропишу в дескрипторе bcdUSB == 0x0200? Почему это хочу: хочу, чтобы устройство отдавало UsbOsStringDescriptor, который запрашивается только начиная с версии 0x0200. По сути usb2.0 устройства используют hi-speed режим только с набором особенных дескрипторов. Если у меня останется набор обычных full-speed дескрипторов, насколько я пойду на сделку с собственной совестью? На other_speed_descriptor и всякие квалифаеры честно обязуюсь stall pid. Может кто-нибудь аргументировано отговорить меня от предательства основ профессии или, наоборот, склонить к бессовестному обману операционной системы?
  3. В общем, нашёл проблему - всё-таки неверно передавался Extended OS Feature Descriptor. Сейчас всё работает, данные передаются, команды командуются. Если у кого проблемы - могу что-нибудь посоветовать. Ура!
  4. Нашёл эту тему в поиске, вопрос есть. Есть серия устройств на контроллерах MSP430, под которые всегда был собственный универсальный драйвер. Сейчас рассматриваю переход на WinUsb в связи постоянным усложнением подписи/регистрации драйверов. Кто знает, что будет дальше... Прописал дескрипторы, всё как ни странно заработало за исключением одного НО: к устройству не привязывается DeviceInterfaceGUID, который я честно передаю (в два захода, как и написано в доке) в Extended Properties OS Feature Descriptor. Я даже дескриптор этот честно из мануала пробовал копировать, но всё равно он не прикручивается. При этом никаких ошибок при установке не возникает, "WinUsb запущен", как сообщается в свойствах устройства. Кто-нибудь сталкивался с таким безобразием? Устройство usb 2.0, порты 3.0, windows 8.1, ноут asus n56vb2 Спасибо заранее!
  5. Здравствуйте, тоже занялся этим модулем. Интересует работа со стороны Windows 8 без донглов. Есть такой опыт? Я столкнулся с проблемой нахождения DevicePath, чтобы файл можно было открыть. Не могу получить интерфейс через SetupDiEnumDeviceInterfaces, чтобы прочитать его детали. Если есть кусочки работающего кода или примеры целиком, был бы очень рад взглянуть.... Если не секрет, конечно.
  6. Цели... Я так понимаю, что с RS-485 мне придется самому придумывать фреймы, арбитраж, контрольные суммы и кучу нюансов. Хотелось бы всего этого избежать. Меньше жил в кабелях. Длина сети в пределах одного помещения. Ну как-то к CAN пришел в размышлениях... Пока что экспериментальные образцы работают на rs232, но мне надоело - сейчас активно придумываются новые функции устройств, и приходится каждый раз все переделывать и передумывать буквально заново. И еще с rs-232 пришлось dip-переключатель ставить, чтобы только одно устройство нагружало линию. С CAN таких проблем, как мне кажется, будет меньше.
  7. Спасибо за разъяснение. Я уже полдня сижу даташиты изучаю - тоже вычитал, что трансивер нормально ест 3.3 вольтовые уровни, а вот по поводу MCP2515 все сомневался. Теперь понятно. По поводу гальваноразвязки - насколько это необходимо? У меня вся сеть будет питаться по USB от одного главного устройства. Внешних источников питание пока не предусматривается. Потребление в сумме не больше легальных 500 мА. Если, на крайний случай, появится что-то с внешним источником питания, можно ведь только это нечто и развязать? IMHO... Напоследок: я вообще в правильном направлении двигаюсь? :)
  8. Да, несколько сумбурно получилось... Попробую поподробнее. В MSP430 нет can-модуля. В качестве can-контроллера я хочу использовать MCP2515, запитав его от 3.3 вольт. А в качестве трансивера либо MCP2551, либо PCA82C250 - вроде они идентичны. Трансивер питается только от 5 вольт. Вопрос в следующем - корректно ли так сделать? Единственно, что неясно, как 5-вольтовый уровень от трансивера воспримется контроллером MCP2515. Вроде бы входы должны быть толерантны к напряжению, большему чем рабочее...
  9. Здрасьте всем! Нашел этот форум, хочу вопрос сразу задать. Кто-нибудь делал can-сеть, используя микроконтроллеры на 3.3 вольта? У меня случай следующий: все устройства работают на MSP430 контроллерах. К компу подключается главное устройство через usb (philips pdiusbd12), а все остальные устройства хочу подключить через can. Была попытка вначале реализовать подключение на rs232 с использованием max3323 (позволяет мультиадресную шину построить), но уж больно тяжело протокол реализуется. Нужны горячие подключения/отключения, раздача адресов и все прочие радости. Насколько я понял из прочитанного, можно использовать MCP2515 на 3.3 вольта и MCP2551 от usb-шных 5 вольт. Так ли это? Не будет конфликтов по уровням? Микроконтроллеры заменить не получится... Протокол скорее всего буду делать свой, потому что всё, что будет в эту сеть включаться, будет только моё - различные по функциям устройства. Вопрос пока только в правильном подключении. Дальше, возможно, будет еще куча вопросов. :-) Спасибо за любые советы!