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

А FTDI какой *.sys драйвер использует?

И FTDI-айную заюзать можно?

Свой собственный. Заюзать можно, а смысл?

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


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

usbser в XP работает надежно. Есть, конечно, и некоторые косяки - сигнализация не вся поддерживается и USB нельзя передергивать, пока порт открыт.

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


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

Все вроде работает. Но уточню несколько нюансов.

На голой винде при подключении девайса, первого подключения в трее выскакивает надпись "atm6124.Sys ATMEL AT91xxxxx Test Board"

Как-то хочется что бы вскакивало что-то свое, как это сделать не подскажите?

 

И ещё скажите правильно ли я описал INF-файл для работы с usbser.sys?

 

[Version]                                                   
Signature="$Windows NT$"                                   
Class=Ports                                                    
ClassGuid={36FC9E60-C465-11CF-8056-444553540000}       
Provider=%ATMEL%                                             
DriverVer=04/16/2008,1.0.0.0                                

[DestinationDirs]                                        
DefaultDestDir=12       

[Manufacturer] 
%ATMEL%=AtmelMfg
                                        
[AtmelMfg]
%USBtoSerialConverter%=USBtoSer.Install,USB\VID_03EB&PID_6124   

[USBtoSer.Install] 
CopyFiles=FakeModemCopyFileSection
AddReg=USBtoSer.AddReg 

[USBtoSer.AddReg] 
HKR,,DevLoader,,*ntkern 
HKR,,NTMPDriver,,usbser.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"

[USBtoSer.Install.Services]
AddService=usbser,0x00000002,USBtoSer.AddService 

[USBtoSer.AddService]
DisplayName=%USBSer%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\usbser.sys 

[Strings]
ATMEL="My Corp."
USBtoSerialConverter="SUPER-PUPER BOMBA"
USBSer="USB Serial Driver"

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


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

На голой винде при подключении девайса, первого подключения в трее выскакивает надпись "atm6124.Sys ATMEL AT91xxxxx Test Board"

Как-то хочется что бы вскакивало что-то свое, как это сделать не подскажите?

Пропишите индексы строк в device descriptor'е и сами строки.

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


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

Обьясните плз что такое индексы строк, а то я не понял со стандарта? (вродекак написано: Index of string descriptor describing product)

Что в цнлом нужно прописыват в поле imanufacturer, iproduct и iserialnumber?

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


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

Обьясните плз что такое индексы строк, а то я не понял со стандарта? (вродекак написано: Index of string descriptor describing product)

Что в цнлом нужно прописыват в поле imanufacturer, iproduct и iserialnumber?

В этих полях нужно записать номера соответствующих строк, они будут использованы хостом при запросах GET_DESCRIPTOR - STRING.

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

DEVICE DESCRIPTOR:
    0x01,                        // Manufacturer string index
    0x02,                        // Product string index
    0x00,                        // Serial number string index (unused)

unsigned char StringDscr0[] =
{
    0x04,
    STRING_DSCR,
    0x09,                        // LANGID 0x0409 
    0x04                        // English (United States) 
};

unsigned char StringDscr1[] =
{
    0x12,
    STRING_DSCR,
    'A', 0x00,
    'B', 0x00,
    'C', 0x00,
    ' ', 0x00,
    'C', 0x00,
    'o', 0x00,
    'r', 0x00,
    'p', 0x00
};

unsigned char StringDscr2[] =
{
    0x14,
    STRING_DSCR,
    'M', 0x00,
    'y', 0x00,
    ' ', 0x00,
    'd', 0x00,
    'e', 0x00,
    'v', 0x00,
    'i', 0x00,
    'c', 0x00,
    'e', 0x00
};

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


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

Меня как раз смутила надпись "ненулевыми" когда я читал спецификацию. В общем назначить можно любой.

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


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

usbser в XP работает надежно. Есть, конечно, и некоторые косяки - сигнализация не вся поддерживается и USB нельзя передергивать, пока порт открыт.
А можно поподробнее про момент передергивания при открытом порте ? В чем проблема конкретно ?

 

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

То есть неперерывные запрос/ответ(протокол типа модбас) ну и передергиваю кабель много раз,

связь восстанавливается и ничего не падает.

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


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

А можно поподробнее про момент передергивания при открытом порте ? В чем проблема конкретно ?

Если выдернуть кабель, пока открыт порт, то автоматом ничего не восстанавливается (по крайней мере на XP SP2). Если порт

закрыть, то проблем нет. На W2K было еще хуже - устройство отваливалось до следующей перезагрузки.

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


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

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

И можно как-то с помощью самого контроллера UDP определить подключен хост или нет?

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


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

А подскажите как определить что хост отключился от шины?

Что значит отключился, шнурок физически оторвали?

 

Линию UDP_CNX подключил как в даташите, но она почему-то всегда в единице. Внезависимости от того подключен хост или нет. Включен пул-ап или нет. Не подскажите что с этой линией может быть не так?

Если речь идет о линии, попключенной к VBUS через делитель, то с ней ничего не может быть не так. Разве только pull-up внутренний

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

 

И можно как-то с помощью самого контроллера UDP определить подключен хост или нет?

Можно следить за RXSUSP или вручную мониторить UDP_ FRM_NUM.

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


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

Что значит отключился, шнурок физически оторвали?
Точнее сказать отсоединили. В общем когда кабелем соединяется ПК с устройством, то началом соединения можно считать приход пакета SET CONFIGURATION. А вот когда пользователь просто взял и отсоединил кабель. Вот про это я спрашивал :)))

Если речь идет о линии, попключенной к VBUS через делитель, то с ней ничего не может быть не так. Разве только pull-up внутренний

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

aaarrr, я ваш вечный фанат. Да, именно отключив пул-апя добился того что при не подключенном кабеле у меня 0 на этой линии, а при подключенном единица :) Спасибо.

Можно следить за RXSUSP или вручную мониторить UDP_ FRM_NUM.
Да будущее запомню, но раз уж с той линией разобрались, то не понадобиться сейчас.

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


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

Если выдернуть кабель, пока открыт порт, то автоматом ничего не восстанавливается (по крайней мере на XP SP2). Если порт

закрыть, то проблем нет. На W2K было еще хуже - устройство отваливалось до следующей перезагрузки.

Я думал что Вы имеете в виду что ломается что-то более серьезное, а так да,

переоткрытие порта решает вопрос переподсоединения.

 

 

Разве только pull-up внутренний
О, эту знатную фичу я тоже ловил, причем вся мерзость ситуации в том что на одном контроллере

пулап дотягивает до 1 а на другом таком же нет.

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


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

Прошу прощения, если невнимательно шустрил по форуму. Использую драйвер usbser.sys. Как-то нехочется пользователя заставлять искать нужно ком-порт к примеру (COM4), пусть даже и просто выбрать из списка. Не подскажите как программными средствами в винде определить что этот виртуальный ком-порт открыт именно этим устройством?

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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