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

Седой

Свой
  • Постов

    247
  • Зарегистрирован

  • Посещение

Весь контент Седой


  1. LPC2929 (2LIN + 2UART + 2CAN ARM968) . Брал в mt-system. Цена около 200р. Сейчас работаем с ним. Или из LPC17XX. Но это не automotive, к сожалению (хотя LPC29xx вроде бы для этого и делались). Из доступных и автомобильного температурного диапазона посмотрите в сторону Silabs C8051F52X-53X(LIN+UART+SPI) + С8051F50X-58X(LIN+CAN+(2)UART+SPI) - http://www.silabs.com/products/mcu/automot...es/default.aspx хоть и придеться ставить несколько контроллеров, но обвязки практически никакой не нужно, в том числе и кварцев, да и по площади немного займет места. CAN и LIN сделаны в них довольно благородно. Есть в электроснабе.
  2. Да, если серьезно заинтересованы, то могу выложить продолжение проекта http://projects.caxapa.ru/?ID=45 Он сильно видоизменился. 1. Появился CoInstaller драйвера. 2. Программа загрузки интегрирована в CoInstaller и теперь можно обновлять firmware из Диспетчера устройств. Вам всего лишь нужно будет реализовать собственно загрузчик в устройстве в соответствии со спецификацией USB класса DFU1.1 3. Появилось API c низко и высокоуровневыми функциями DFU, а также также для работы с DFU файлами. И если не устраивает встроенная программа загрузки, то можете написать свою, а встроенную отключить. API интегрировано в CoInstaller dll драйвера.
  3. Зачем изобретать велосипед, см. Device Class Specification for Device Firmware Upgrade http://www.usb.org/developers/devclass_docs/DFU_1.1.pdf
  4. Вы сделали программный вызов функции стандартного Class Installer, что соответствует последовательности пунктов меню устройства в Диспетчере устройств Отключить и Задействовать - это не способ перевода устройства в режим загрузчика. Пользователь имеет полное право выбирать эти пункты меню и ... ваше устройство перешло в режим upgrade. Вы предусмотрели выход из такой ситуации?
  5. Перезалил http://rapidshare.com/files/246984211/all15765.zip pass: 15765 Положил
  6. Все части 2004-2005 год http://rapidshare.com/files/244872319/all15765.zip.html pass: 15765
  7. Просто для данной задачи "целый контроллер" будет и дешевле и надежней, да и несколько каналов сделать можно простым "ногодрыжеством".
  8. Вопрос. Лучшее средство от головной боли? Ответ. АПСТЕНУ!! Так и здесь, выкинуть мост - поставить МК.
  9. Именно с собственными драйверами использовать композитное устройство очень удобно. Зачем различный функционал запихивать в одно коробку, наоборот лучше разделить.
  10. MassStorage можно сделать и на одном EP0 и вообще по любому интерфейсу, драйвер только написать надо. Я имел ввиду следующее - если необходимо сделать именно составное устройство, а доступных endpoints не хватает, то можно использовать control endpoint. EP0 доступна всегда, а как вы организуете обмен данными, зависит от вашей фантазии. Но фразу о переносе Interrupt In на EP0 не понял - это как?
  11. Странно, а мы ставим (DLW21Hxxx) проблем нет. Может все-таки правильно подбирать номинал нужно.
  12. Найдено, и давно. Например, SP332 -> http://www.sipex.com/Common/Content/Produc...&ParentID=1
  13. Более одной конфигурации Windows поддерживает начиная c Vista. Естественно, может быть активна только одна конфигурация. Если не хватает EP, используйте EP0 (Control Endpoint).
  14. ИМХО.Чтобы потом не было мучительно больно, с разводкой нужно "париться" всегда, на любой плате.
  15. Но зависать-то зачем - сделал remove device и всё.
  16. Драйвер Microsoft делал (но 3 сек не учел) Вызовом Class Intstallera - вполне правильный и легальный способ и рекомендуемый Microsoft, кстати недели две назад на форуме Microsoft спрашивали: почему IOCTL_USB_HUB_CYCLE_PORT не работает из UserMode - драйверописатель из Microsoft от ответа ушел - предложил вышеуказанный способ.
  17. Озвучу свое видение проблемы по итогам обсуждения и собственного опыта: 1. Одной из причин "непонятного поведения" программ, работающих с USB устройствами (не только на основе FTDI) является перевод порта хаба, к которому подключено устройство в disable state, при этом устройство остается подключенным. 2. Алгоритм работы стека используемых USB драйверов не производит выхода из такой ситуации, что приводит к "зависанию" программы. 3. Возможно алгоритм так и должен работать, так как предполагает, что такая ситуация является ненормальной и следует избавляться от причин, ee вызвавших. 4. Вероятность появления ненормальной ситуации не равна 0. Как можно видоизменить работу алгоритма: Драйвер устройства: 1. Драйвер устройства должен читать статус порта (IOCTL_INTERNAL_USB_GET_PORT_STATUS) 2. При появлении ситуации disable port направить запрос IOCTL_INTERNAL_USB_ENABLE_PORT 3. Если IOCTL_INTERNAL_USB_ENABLE_PORT вернет ошибку, то произвести IOCTL_INTERNAL_USB_RESET_PORT. Firmware устройства: Должно уметь различать USB_RESET, полученные в состояниях Configured и Powered, и правильно их обрабатывать. PS. Судя по документации WDK и тексту заголовочных файлов действия, производимые драйвером, можно сделать и из UserMode, обращаясь к драйверу хаба и/или хоста. Но это нужно проверять. PS2. Да, кстати, забыл дать ссылку на предлагаемый алгоритм http://download.microsoft.com/download/5/b...SBdrv-tips2.ppt обратите внимание на Recommended URB error recovery steps
  18. USB 2.0 11.2.5 EOF1 and EOF2 Timing Points ...At the EOF2 point, any port that has upstream connectivity will be disabled as a babbler....
  19. Кроме как в конце фрейма, перед стартом следующего, что приводит к disable порт.
  20. При чем тут 3 перепосылки, я говорю об ошибках Babble and Loss of Activity
  21. Ну точно FTDI накосячил. Попробуйте. Они документируют функции FT_CyclePort, FT_ResetPort, FT_ResetDevice. Про FT_CyclePort так и пишут: "The effect of this function is the same as disconnecting then reconnecting the device from USB. Possible use of this function is situations where a fatal error has occurred and it is difficult, or not possible, to recover without unplugging and replugging the USB cable. ... " PS to n_bogoyavlensky. Отредактируйте своё сообщение - в качестве цитаты привели не моё высказывание.
  22. На самом деле можно любой - USB Serial Convertor является родительским устройством для устройства последовательного порта, а требование перезагрузиться - привет от разработчиков драйверов FTDI. По вашей версии должен произойти detach - но устройство в списке - значит произошел attach + последующая реэнумерация устройства + работает SOF. Но SOF нет, вывод - версия не верна. Скорее всего произошла следующая ситуация: из-за ошибки на линии хаб сделал disable порта, к которому подключено устройство - статус порта можно прочитать из драйвера и сделать определенные действия по выходу из такой ситуации -действия не произведены.
×
×
  • Создать...