|
|
  |
FT245R работает со сбоями |
|
|
|
Feb 10 2009, 20:03
|
Профессионал
    
Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061

|
Цитата(Седой @ Feb 10 2009, 20:08)  Сейчас просмотрел документацию на драйвера FTDI. Можно же работать не через COM порт, а через D2XX интерфейс и попробовать воспользоваться функцией FT_ResetPort (FT_ResetDevice,FT_CyclePort) для выхода из ошибочного состояния. Можно попробовать, но я пока рассчитывал только на работу с VCP  Цитата(Седой @ Feb 10 2009, 17:08)  Что значит откуда? Из какого источника? В хелпе я что-то не нашёл кодов ошибок
--------------------
Благодарю заранее!
|
|
|
|
|
Feb 11 2009, 13:25
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 21-02-05
Из: Урал
Пользователь №: 2 806

|
Цитата(n_bogoyavlensky @ Feb 11 2009, 01:03)  Из какого источника? В хелпе я что-то не нашёл кодов ошибок  Из документации производителя OS http://msdn.microsoft.com/en-us/library/ms681382(VS.85).aspxЦитата(n_bogoyavlensky @ Feb 11 2009, 01:03)  Можно попробовать, но я пока рассчитывал только на работу с VCP  Если делаете USB-DMX под серию и выбрали AVR - посмотрите в сторону AT90USB162, получится и надежней и дешевле. Мы сделали мультипротокольный (DMX тоже поддерживает) USB-RS485 на C8051F326, драйвер свой, проблем с наводками нет. Лежит у меня на столе, заканчиваю документацию на ПО.
|
|
|
|
|
Feb 11 2009, 14:30
|
Профессионал
    
Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061

|
Цитата Если делаете USB-DMX под серию и выбрали AVR - посмотрите в сторону AT90USB162, получится и надежней и дешевле. Мы сделали мультипротокольный (DMX тоже поддерживает) USB-RS485 на C8051F326, драйвер свой, проблем с наводками нет. Лежит у меня на столе, заканчиваю документацию на ПО. Хм... Как я понял, этот путь существенно более сложный и длительный? Т. е., драйвер надо писать, знать как с USB работать со стороны МК и ПК... Это получается наподобие как у Агурова?
--------------------
Благодарю заранее!
|
|
|
|
|
Feb 11 2009, 15:06
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 21-02-05
Из: Урал
Пользователь №: 2 806

|
Цитата(n_bogoyavlensky @ Feb 11 2009, 19:30)  Хм... Как я понял, этот путь существенно более сложный и длительный? Это вам кажется - затраченное время на стартапе с лихвой окупается в дальнейшем. Цитата(n_bogoyavlensky @ Feb 11 2009, 19:30)  Т. е., драйвер надо писать, знать как с USB работать со стороны МК и ПК... Драйвер можно не писать, воспользоваться готовым, если устраивают его возможности. А как без знаний!!!???? Цитата(n_bogoyavlensky @ Feb 11 2009, 19:30)  Это получается наподобие как у Агурова? По поводу Агурова - ответил в соседней ветке. Вы же изучаете работу конкретного чипа по его документации (data sheet) от производителя, а не по книжкам.
Сообщение отредактировал Седой - Feb 11 2009, 15:10
|
|
|
|
|
Feb 12 2009, 19:51
|
Профессионал
    
Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061

|
Решил набросать блок-схему соединений... Т. е., имеем три блока: персональный компьютер (ПК), USB-DMX конвертор (разделён на две оптически развязанные части) и прожектор. ПК шлёт с помощью VCP пакеты 62 байта в конвертор. Конвертор принимает пакеты и тут же их отсылает обратно. По прерыванию от таймера реализовано формирование DMX-пакета для прожектора. Формируются все 512 каналов. Следует отметить. Экран USB кабеля соединён с общей цепью конвертора. Сбои в основном происходят при подключении и отключении сетевой вилки прожектора. Цитата Это вам кажется - затраченное время на стартапе с лихвой окупается в дальнейшем. Каковы преимущества данного варианта? Цитата Драйвер можно не писать, воспользоваться готовым, если устраивают его возможности. А как без знаний!!!???? Из состава ОС или где-то скачать для данного типа микроконтроллеров? Цитата(stoker @ Feb 11 2009, 21:36)  Попробуйте использовать драйвер D2XX. Гораздо прощще, там вообще думать не надо. Работаю с ним, проблемм с зависаниями и потерей данных нет вообще. Щас вот 5 метров кабель юзал. Правда у меня все заземлено. Если он засыпает при помехе, возможно есть сбой в логике управления микрухой. У вас опторазвязка на HCPL-2630? Развязка на ней  Т. е., развязка конвертора и объекта управления (смотри схему). Ну сбоя в логике нет, я думаю...
Сообщение отредактировал n_bogoyavlensky - Feb 12 2009, 19:46
Эскизы прикрепленных изображений
--------------------
Благодарю заранее!
|
|
|
|
|
Feb 12 2009, 20:08
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 21-02-05
Из: Урал
Пользователь №: 2 806

|
Цитата(n_bogoyavlensky @ Feb 13 2009, 00:51)  Каковы преимущества данного варианта? Меньше возможность уткнуться в чужую ошибку. Цитата(n_bogoyavlensky @ Feb 13 2009, 00:51)  Из состава ОС или где-то скачать для данного типа микроконтроллеров? В вашем случае я бы использовал winusb от Microsoft.
|
|
|
|
|
Feb 13 2009, 15:09
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(n_bogoyavlensky @ Feb 10 2009, 16:59)  А если это у меня не предусмотрено?  В суспенд ФТДИ переходит если пропускается 3 маркера SOF от хоста. Другими словами - нет никаких вестей от хоста в течении 3х милисекунд. Никаких специальных команд перехода в суспенд не существует. В реальности это означает, что хост просто решил, что ваш девайс выдернут из него. Цитата(n_bogoyavlensky @ Feb 10 2009, 16:59)  Как я понял, сбои возникают только при подсоединённом кабеле DMX к устройству! Несмотря на развязку! Т. е., помеха идёт по кабелю в конвертор и как-то проходит через развязку или через DC-DC конвертор, попадая на USB. Именно так. Сингфазная помеха проходит через все ваши преграды и воспринимается хостом как сигнал отключения устройства. Поэтому и всяческие заземления экрана помогают (а могут и навредить). Я уже отвечал абсолютно на такой-же вопрос на этом-же форуме в этом-же разделе. Лень писать заново (и смотреть как называется состояние в USB, вызываемое сингфазной помехой). Поищите. Там WESTxxx (xxx - цифры) вопрос задавал. Но хаять шину USB за это я бы не стал. Тут вопрос скорее к ФТДИ. Вот мои самодельные девайсы в таких условиях самостоятельно восстанавливают связь с хостом.
|
|
|
|
|
Feb 13 2009, 16:17
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(stoker @ Feb 13 2009, 18:58)  Это вы где прочитали? Или опытным путем обнаружили? Про это написано в стандарте USB. Кажется 7я глава - usb.org посмотрите. У меня и на русском есть, только перевод не очень. Я уже здесь выкладывал. Ещё хочу заметить, что вывести девайс из суспенда со стороны компьютера с помощью всяческих програмных уловок, как здесь предлагалось, невозможно. Хотя м.б. и возможно, но это нужно хостом управлять, а кто вас туда пустит?
|
|
|
|
|
Feb 13 2009, 17:39
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 21-02-05
Из: Урал
Пользователь №: 2 806

|
Цитата(galjoen @ Feb 13 2009, 21:17)  Ещё хочу заметить, что вывести девайс из суспенда со стороны компьютера с помощью всяческих програмных уловок, как здесь предлагалось, невозможно. Хотя м.б. и возможно, но это нужно хостом управлять, а кто вас туда пустит? Вот кстати из реального suspend вывести как раз можно, как и ввести. А то что описали вы - это хаб обнаруживает ошибку и просто отключает порт, а не производит selective suspend. Я как раз и указал псевдокоманду запроса перевода в suspend порта хаба - SetPortFeature(PORT_SUSPEND). К хосту, кстати, доступ из UserMode тоже есть - пример из DDK usbview.
Сообщение отредактировал Седой - Feb 13 2009, 17:52
|
|
|
|
|
Feb 13 2009, 18:11
|
Профессионал
    
Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061

|
Цитата(stoker @ Feb 13 2009, 13:12)  Питание VCC1 - это на контроллер и FT245R? Просто немного не понятно. Старался сделать как можно понятнее  Да, VCC1, GND1 - цепи питания FT245, ATmega88, HCPL2630 (наполовину) и TMA0505S (входное напряжение). Экран USB-кабеля соединён с GND1. Цитата Можно попробовать проверить питание на осцилографе - VCC1 относительно GND1 при передёргивании питания прожектора. Мож там питание на время пропадает, или наоборот импульс питания выходит за пределы входного для TMA0505 (у него входное 5В +/-10%)? Проверим. Но что может быть с питанием при передёргивании сетевой вилки? Цитата Питание приходит по 485 кабелю? Питание чего? Левая часть конвертора питается от USB, правая тоже от USB, только через DC-DC TMA0505S - цепи питания VCC2, GND2. Цитата Какая длина кабеля? Вообще попробуйте запитать отдельно схемку на УСБ с контроллером. Т. е., запитать всю левую часть от отдельного источника питания, а не от USB, т. е. "self power" для FT? Цитата На будущее - если питание идёт по линии 485 лучше применять DC/DC с более широким входным напряжением. Спасибо за совет. Но в кабеле RS-485 задействованы только информационные линии.
--------------------
Благодарю заранее!
|
|
|
|
|
Feb 13 2009, 18:24
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(Седой @ Feb 13 2009, 20:39)  Вот кстати из реального suspend вывести как раз можно, как и ввести. А то что описали вы - это хаб обнаруживает ошибку и просто отключает порт, а не производит selective suspend. Я как раз и указал псевдокоманду запроса перевода в suspend порта хаба - SetPortFeature(PORT_SUSPEND). Согласен. Ошибся в терминах. Это для девайса суспенд получается. А для хоста там не ошибка получается, а просто хост думает, что девайс из порта вытащили. На то, что линии перекошены из-за резистора 1,5 кОм он внимания не обращает - SOF слать перестаёт. И никаких попыток связь восстановить не предпринимает. Я имел ввиду, что програмно заставить его девайс поискать не удастся. Это примерно тот-же глюк, как если компьютер в слип кнопкой ввести, а потом разбудить. В этом случае все USB девайсы кроме мыши и клавы (для них сделали исключение) пропадут. И поможет только их перетыкание. Цитата(Седой @ Feb 13 2009, 20:39)  К хосту, кстати, доступ из UserMode тоже есть - пример из DDK usbview. Так там вроде только читать можно. Хотя спорить не буду - давным-давно с этим разбирался.
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|