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

FT245R работает со сбоями

Сейчас просмотрел документацию на драйвера FTDI.

Можно же работать не через COM порт, а через D2XX интерфейс и попробовать воспользоваться функцией FT_ResetPort (FT_ResetDevice,FT_CyclePort) для выхода из ошибочного состояния.

 

Можно попробовать, но я пока рассчитывал только на работу с VCP :)

 

Что значит откуда?

 

Из какого источника? В хелпе я что-то не нашёл кодов ошибок :(

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


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

Из какого источника? В хелпе я что-то не нашёл кодов ошибок :(

 

Из документации производителя OS http://msdn.microsoft.com/en-us/library/ms681382(VS.85).aspx

 

Можно попробовать, но я пока рассчитывал только на работу с VCP :)

 

Если делаете USB-DMX под серию и выбрали AVR - посмотрите в сторону AT90USB162, получится и надежней и дешевле.

Мы сделали мультипротокольный (DMX тоже поддерживает) USB-RS485 на C8051F326, драйвер свой, проблем с наводками нет.

Лежит у меня на столе, заканчиваю документацию на ПО.

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


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

Если делаете USB-DMX под серию и выбрали AVR - посмотрите в сторону AT90USB162, получится и надежней и дешевле.

Мы сделали мультипротокольный (DMX тоже поддерживает) USB-RS485 на C8051F326, драйвер свой, проблем с наводками нет.

Лежит у меня на столе, заканчиваю документацию на ПО.

 

Хм...

Как я понял, этот путь существенно более сложный и длительный?

Т. е., драйвер надо писать, знать как с USB работать со стороны МК и ПК...

Это получается наподобие как у Агурова?

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


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

Хм...

Как я понял, этот путь существенно более сложный и длительный?

Это вам кажется - затраченное время на стартапе с лихвой окупается в дальнейшем.

 

Т. е., драйвер надо писать, знать как с USB работать со стороны МК и ПК...

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

А как без знаний!!!????

 

Это получается наподобие как у Агурова?

По поводу Агурова - ответил в соседней ветке.

Вы же изучаете работу конкретного чипа по его документации (data sheet) от производителя, а не по книжкам.

Изменено пользователем Седой

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


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

Попробуйте использовать драйвер D2XX. Гораздо прощще, там вообще думать не надо. Работаю с ним, проблемм с зависаниями и потерей данных нет вообще. Щас вот 5 метров кабель юзал. Правда у меня все заземлено.

Если он засыпает при помехе, возможно есть сбой в логике управления микрухой. У вас опторазвязка на HCPL-2630?

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


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

Эти драйвера при помехах виснут так же, это у Вас помех не было серьезных.

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


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

Решил набросать блок-схему соединений...

Т. е., имеем три блока: персональный компьютер (ПК), USB-DMX конвертор (разделён на две оптически развязанные части) и прожектор.

 

ПК шлёт с помощью VCP пакеты 62 байта в конвертор. Конвертор принимает пакеты и тут же их отсылает обратно.

По прерыванию от таймера реализовано формирование DMX-пакета для прожектора.

Формируются все 512 каналов.

 

Следует отметить.

Экран USB кабеля соединён с общей цепью конвертора.

Сбои в основном происходят при подключении и отключении сетевой вилки прожектора.

 

Это вам кажется - затраченное время на стартапе с лихвой окупается в дальнейшем.

 

Каковы преимущества данного варианта?

 

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

А как без знаний!!!????

 

Из состава ОС или где-то скачать для данного типа микроконтроллеров?

 

Попробуйте использовать драйвер D2XX. Гораздо прощще, там вообще думать не надо. Работаю с ним, проблемм с зависаниями и потерей данных нет вообще. Щас вот 5 метров кабель юзал. Правда у меня все заземлено.

Если он засыпает при помехе, возможно есть сбой в логике управления микрухой. У вас опторазвязка на HCPL-2630?

 

Развязка на ней :)

Т. е., развязка конвертора и объекта управления (смотри схему).

Ну сбоя в логике нет, я думаю...

post-24061-1234467535_thumb.jpg

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

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


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

Каковы преимущества данного варианта?

Меньше возможность уткнуться в чужую ошибку.

 

Из состава ОС или где-то скачать для данного типа микроконтроллеров?

 

В вашем случае я бы использовал winusb от Microsoft.

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


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

Питание VCC1 - это на контроллер и FT245R? Просто немного не понятно. Можно попробовать проверить питание на осцилографе - VCC1 относительно GND1 при передёргивании питания прожектора. Мож там питание на время пропадает, или наоборот импульс питания выходит за пределы входного для TMA0505 (у него входное 5В +/-10%)? Питание приходит по 485 кабелю? Какая длина кабеля? Вообще попробуйте запитать отдельно схемку на УСБ с контроллером. На будущее - если питание идёт по линии 485 лучше применять DC/DC с более широким входным напряжением.

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


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

А если это у меня не предусмотрено? ;)

В суспенд ФТДИ переходит если пропускается 3 маркера SOF от хоста. Другими словами - нет никаких вестей от хоста в течении 3х милисекунд. Никаких специальных команд перехода в суспенд не существует. В реальности это означает, что хост просто решил, что ваш девайс выдернут из него.

Как я понял, сбои возникают только при подсоединённом кабеле DMX к устройству! Несмотря на развязку!

Т. е., помеха идёт по кабелю в конвертор и как-то проходит через развязку или через DC-DC конвертор, попадая на USB.

Именно так. Сингфазная помеха проходит через все ваши преграды и воспринимается хостом как сигнал отключения устройства. Поэтому и всяческие заземления экрана помогают (а могут и навредить).

Я уже отвечал абсолютно на такой-же вопрос на этом-же форуме в этом-же разделе. Лень писать заново (и смотреть как называется состояние в USB, вызываемое сингфазной помехой). Поищите. Там WESTxxx (xxx - цифры) вопрос задавал.

Но хаять шину USB за это я бы не стал. Тут вопрос скорее к ФТДИ. Вот мои самодельные девайсы в таких условиях самостоятельно восстанавливают связь с хостом.

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


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

В суспенд ФТДИ переходит если пропускается 3 маркера SOF от хоста. Другими словами - нет никаких вестей от хоста в течении 3х милисекунд. Никаких специальных команд перехода в суспенд не существует. В реальности это означает, что хост просто решил, что ваш девайс выдернут из него.

Это вы где прочитали? Или опытным путем обнаружили?

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


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

Это вы где прочитали? Или опытным путем обнаружили?

Про это написано в стандарте USB. Кажется 7я глава - usb.org посмотрите. У меня и на русском есть, только перевод не очень. Я уже здесь выкладывал.

 

Ещё хочу заметить, что вывести девайс из суспенда со стороны компьютера с помощью всяческих програмных уловок, как здесь предлагалось, невозможно. Хотя м.б. и возможно, но это нужно хостом управлять, а кто вас туда пустит?

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


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

Ещё хочу заметить, что вывести девайс из суспенда со стороны компьютера с помощью всяческих програмных уловок, как здесь предлагалось, невозможно. Хотя м.б. и возможно, но это нужно хостом управлять, а кто вас туда пустит?

 

Вот кстати из реального suspend вывести как раз можно, как и ввести. А то что описали вы - это хаб обнаруживает ошибку и просто отключает порт, а не производит selective suspend. Я как раз и указал псевдокоманду запроса перевода в suspend порта хаба - SetPortFeature(PORT_SUSPEND).

 

К хосту, кстати, доступ из UserMode тоже есть - пример из DDK usbview.

Изменено пользователем Седой

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


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

Питание 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 задействованы только информационные линии.

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


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

Вот кстати из реального suspend вывести как раз можно, как и ввести. А то что описали вы - это хаб обнаруживает ошибку и просто отключает порт, а не производит selective suspend. Я как раз и указал псевдокоманду запроса перевода в suspend порта хаба - SetPortFeature(PORT_SUSPEND).

Согласен. Ошибся в терминах. Это для девайса суспенд получается. А для хоста там не ошибка получается, а просто хост думает, что девайс из порта вытащили. На то, что линии перекошены из-за резистора 1,5 кОм он внимания не обращает - SOF слать перестаёт. И никаких попыток связь восстановить не предпринимает. Я имел ввиду, что програмно заставить его девайс поискать не удастся.

Это примерно тот-же глюк, как если компьютер в слип кнопкой ввести, а потом разбудить. В этом случае все USB девайсы кроме мыши и клавы (для них сделали исключение) пропадут. И поможет только их перетыкание.

К хосту, кстати, доступ из UserMode тоже есть - пример из DDK usbview.

Так там вроде только читать можно. Хотя спорить не буду - давным-давно с этим разбирался.

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


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

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

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

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

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

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

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

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

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

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