Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CDC драйвер виртуального COM порта под Window XP - Windows 7, 32 и 64 бит
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Pasha 111
Установил себе Windows 7 64 бит и не смог поставить драйвер из sam-ba_2.9_cdc_xp_vista.zip - atm6124_cdc.inf
Искал по форуму и интернету минут 30, в итоге решил изменить существующий, чтобы везде работал. Вот мой вариант драйвера

atm6124_cdc_win2k-win7_x86-x64.inf
Код
;---------------------------------------------------------------------------------------
; Windows USB CDC Driver Setup File for ATMEL AT91SAM products
; Improved by Pavel K, pasha_nik@mail.ru
;---------------------------------------------------------------------------------------

[Version]
Signature=        "$Windows NT$"; Windows 200 and later versions
Class=            Ports; This is a serial port driver
ClassGuid=        {4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=        %DriverProvider%
DriverVer=        09/25/2009,1.0.0.0; Driver version 1.0.0.0 published on 25 September 2009

[Manufacturer]
%DriverProvider%=    DeviceList, NT, NTia64, NTamd64

[DestinationDirs]
DefaultDestDir=        12; Default install directory is \drivers or \IOSubSys

[DeviceList.NT]
%DeviceDescription%=    DriverInstall,USB\VID_03EB&PID_6124

[DeviceList.NTia64]
%DeviceDescription%=    DriverInstall,USB\VID_03EB&PID_6124

[DeviceList.NTamd64]
%DeviceDescription%=    DriverInstall,USB\VID_03EB&PID_6124

;---------------------------------------------------------------------------------------
; 32 bit section for Windows 2000/2003/XP/Vista/7
;---------------------------------------------------------------------------------------

[DriverInstall.NT]
include=        mdmcpq.inf
CopyFiles=        DriverInstall.NT.Files
AddReg=            DriverInstall.NT.AddReg

[DriverInstall.NT.Files]
usbser.sys,,,0x20

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

[DriverInstall.NT.Services]
AddService=usbser,0x00000002,usbser_sys_service

;---------------------------------------------------------------------------------------
; 64 bit section for Intel Itanium based systems
;---------------------------------------------------------------------------------------

[DriverInstall.NTia64]
include=        mdmcpq.inf
CopyFiles=        DriverInstall.NTia64.Files
AddReg=            DriverInstall.NTia64.AddReg

[DriverInstall.NTia64.Files]
usbser.sys,,,0x20

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

[DriverInstall.NTia64.Services]
AddService=usbser,0x00000002,usbser_sys_service


;---------------------------------------------------------------------------------------
; 64 bit section for AMD64 and Intel EM64T based systems
;---------------------------------------------------------------------------------------

[DriverInstall.NTamd64]
include=        mdmcpq.inf
CopyFiles=        DriverInstall.NTamd64.Files
AddReg=            DriverInstall.NTamd64.AddReg

[DriverInstall.NTamd64.Files]
usbser.sys,,,0x20

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

[DriverInstall.NTamd64.Services]
AddService=        usbser,0x00000002,usbser_sys_service

;---------------------------------------------------------------------------------------
; usbser.sys service
;---------------------------------------------------------------------------------------

[usbser_sys_service]
DisplayName=        %ServiceDescription%
ServiceType=        1; SERVICE_KERNEL_DRIVER, Service kernel driver
StartType=        3; SERVICE_DEMAND_START, Driver is started by the PnP manager
ErrorControl=        1; SERVICE_ERROR_NORMAL, Warn about errors
ServiceBinary=        %12%\usbser.sys
LoadOrderGroup =    Base

;---------------------------------------------------------------------------------------
; strings
;---------------------------------------------------------------------------------------

[Strings]
DriverProvider=        "Microsoft"
DeviceDescription=    "Виртуальный COM порт (AT91SAM)"
ServiceDescription=    "USB To Serial Driver"

;---------------------------------------------------------------------------------------


Проверил - ставится и работает. Буду рад, если кому-то понадобится.
VAI
Спасибо, сейчас попробуем.
Gorobey
Спасибо ОГРОМНОЕ !
Только вот че-то делаю не так. У меня пишет - "Не удается найти указанный файл" хотя файл туда закинул
windows 7 RTM 32bit Black Edition
Chameleon
Windows 7 64-bit. Сообщает, что драйвер найден, но ошибка 10 - Невозможно запустить устройство. На двух компьютерах. Никто не сталкивался?
Pasha 111
Gorobey
Бывают иногда глюки, что файл usbser.sys нужно указать вручную в c:\windows\system32\drivers

Chameleon
Нет, не сталкивался, у меня на нескольких компах с вин7 всё нормально работает.
Chameleon
Разобрался. Все работает. Мой косяк был. Я в дескрипторах указал размер буфера конечной точки 64 байта как 0x64 (0x64 = 100). У Windows XP это не вызывало никаких вопросов, работало и так. Windows 7 не хочет так работать. Начальная инициализация зависала на этапе SET_CONFIGURATION. После указания верного размера конечной точки (0x40 = 64) все заработало.
newsip
Добрый день
Помогите чайнику....не могу найти драйвера для AT91SAM7SE256, windows 7 определяет устройство как GPS camera и ни в какую не хочет определять как atm6124.Sys ATMEL AT91xxxxx. Драйвер описаный выше ставится и определяет устройство как COM порт

; Installation inf for the ATMEL AT91xxxxx Test Board
;
; © Copyright 2004 ATMEL
;

[Version]
Signature="$CHICAGO$"
Class=USB
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
provider=%ATMEL%
DriverVer=04/08/2004

[SourceDisksNames]
1="atm6124 Installation Disk",,,

[SourceDisksFiles]
atm6124.sys = 1
atm6124.inf = 1

[Manufacturer]
%ATMEL%=ATMEL

[ATMEL]
%USB\VID_045E&PID_930A.DeviceDesc%=atm6124.Dev, USB\VID_03EB&PID_6124

;[PreCopySection]
;HKR,,NoSetupUI,,1

[DestinationDirs]
atm6124.Files.Ext = 10,System32\Drivers
atm6124.Files.Inf = 10,INF

[atm6124.Dev]
CopyFiles=atm6124.Files.Ext, atm6124.Files.Inf
AddReg=atm6124.AddReg

[atm6124.Dev.NT]
CopyFiles=atm6124.Files.Ext, atm6124.Files.Inf
AddReg=atm6124.AddReg

[atm6124.Dev.NT.Services]
Addservice = atm6124, 0x00000004, atm6124.AddService

[atm6124.AddService]
DisplayName = %atm6124.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\System32\Drivers\atm6124.sys
LoadOrderGroup = Base

[atm6124.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,atm6124.sys
HKLM,"System\Currentcontrolset\Services\atm6124\Parameters","MaximumTransferSize",0x10001,4096
HKLM,"System\Currentcontrolset\Services\atm6124\Parameters","DebugLevel",0x10001,2


[atm6124.Files.Ext]
atm6124.sys

[atm6124.Files.Inf]
atm6124.Inf


;---------------------------------------------------------------;

[Strings]
ATMEL="ATMEL, Inc."
MfgName="ATMEL"
USB\VID_045E&PID_930A.DeviceDesc="atm6124.Sys ATMEL AT91xxxxx Test Board"
atm6124.SvcDesc="atm6124.Sys ATMEL USB SAMBA Driver"

это драйвер из программы Atmel
Подскажите что тут не так
спасибо
prottoss
Цитата(Pasha 111 @ Sep 25 2009, 06:22) *
Проверил - ставится и работает. Буду рад, если кому-то понадобится.
Уважаемый Pasha 111. У меня сейчас аналогичная проблема для моего девайса
http://prottoss.com/projects/ucGoZilla/ucGoZilla.htm

Тут на днях получил на работе новый бук с установленной Windows 7 Proffessional 64-бит. Камень - Intel Core i5 M580. Естественно, решил испытать железяку. Со старым inf ни в какую. Подправил inf-файл для своего девайса в соответствии с Вашими рекомнедациями. Стало лучше. Но о стабильности речи пока не идет.
Пробую пока с AVRStudio.
1. Перезагрузил ноут.
2. Запустил AVRStudio. Коннект - вуаля! Все работает-читает-шьет без сбоев.
3. Закрыл AVRStudio.
4. Запустил AVRStudio по новой. Коннект - облом.
5. Ладно. Переподключаю устройство. Пытаюсь по новой подконнектится - безполезно!
6. Перезагруз... - читаем пункт первый

Интересно, что inf приняла почти без ругательств... Или мож уже новая версия laughing.gif Сказала что драйвер не подписан, но установку продолжила. В диспетчере устройств, ктсати, показывает, что драйвер подписан.
Мож кто че подскажет куда копать... Не думаю, что что то с программатором - 32-бит системы работают без проблем.
Спасибо.
sergeeff
Цитата(prottoss @ Apr 2 2011, 23:47) *
Мож кто че подскажет куда копать... Не думаю, что что то с программатором - 32-бит системы работают без проблем.


cat файл формируется утилитой inf2cat.exe из DDK, и затем подписывается. Вы что-то поменяли в inf, таким образом ему cat, строго говоря, не соответствует, но подписанным остается.
prottoss
Цитата(sergeeff @ Apr 3 2011, 06:37) *
cat файл формируется утилитой inf2cat.exe из DDK, и затем подписывается. Вы что-то поменяли в inf, таким образом ему cat, строго говоря, не соответствует, но подписанным остается.
Хорошо. Драйвер получился не подписанным. Но ОС его приняла и установила для устройства. Так? Значит драйвер обязан корректно работать с моим устройством, и проблемы с inf-файлом уже пройдены. Или нет?
sergeeff

Цитата
Значит драйвер обязан корректно работать с моим устройством...


Что там кто обязан, это все бабушка надвое сказала. В последнем WDK 7.1.0 usb-ный пример, ни в какую не посылает ничего моему устройству. А драйвер, модифицированный из XP DDK откомпилировался и работает как надо и в 32- и в 64-битных вариантах.

Там во многих примерах отмечается "только для иллюстрации... Не рекомендуем для применения в коммерческих проектах". Что-то мутное все это.
prottoss
Цитата(sergeeff @ Apr 3 2011, 19:17) *
...Что-то мутное все это.
То что мутное, это точно. А ведь задумано для того, чтобы облегчить жизнь разработчикам rolleyes.gif
sergeeff
Цитата(prottoss @ Apr 3 2011, 15:22) *
То что мутное, это точно. А ведь задумано для того, чтобы облегчить жизнь разработчикам rolleyes.gif


С этим категорически не соглашусь. Тут набрел на какой-то американский форум. Мужик задает конкретный вопрос про драйвер принтера. Ему в ответ, буквально такое: "Мы тут, крутые американские программисты, смотрим, что ты откуда-то из арабского мира. Смеешь нам задавать вопросы и тем самым отбирать у нас наш хлеб. Ни фига тебе объяснять не будем".

Мне давно кажется, что все, что есть в DDK/WDK то ли отписка, то ли заманка. И крутые фирмы, типа HP, имеют доступ к информации совершенно другого уровня.
prottoss
Цитата(sergeeff @ Apr 3 2011, 23:44) *
С этим категорически не соглашусь...
Не буду спорить sm.gif Меня интересуют сейчас более земные проблемы sm.gif

Выяснил. К устройству, так же как и в 32-бит системах приходит три запроса - 20, 21, 22.
Это SET_LINE_CODING, GET_LINE_CODING, и SET_CONTROL_LINE_STATE. На все запросы устройство корректно отвечает. По крайней мере в 32-бит системах ошибок на ответы сниффером я не вижу. Плохо, что пока для 64-бит семерки я не могу найти сниффер и не могу увидеть есть ли системные ошибки или еще что то, мешающее коммуникации...

Факт что, AVRStudio не всегда может открыть порт. Но иногда это получается... Возможно, что в inf-файле что то еще нужно указывать... На свое устройство что то грешить пока не хочетсяsm.gif
Прилагаю inf-файл. Может что то очевидное не вижу.
Dir
Цитата(sergeeff @ Apr 3 2011, 18:44) *
С этим категорически не соглашусь. Тут набрел на какой-то американский форум. Мужик задает конкретный вопрос про драйвер принтера. Ему в ответ, буквально такое: "Мы тут, крутые американские программисты, смотрим, что ты откуда-то из арабского мира. Смеешь нам задавать вопросы и тем самым отбирать у нас наш хлеб. Ни фига тебе объяснять не будем".

Мне давно кажется, что все, что есть в DDK/WDK то ли отписка, то ли заманка. И крутые фирмы, типа HP, имеют доступ к информации совершенно другого уровня.


Странные вещи ты глаголеш. Что-то не верится. Потому что:
1) в Америке своих программистов в "крутых" фирмах не так и много. В основном приезжие и как раз из Китая, Индии, России, Украины... Ну, индусы могли бы такое теоретически выдать, к "муслимам" у них отношение сложное. Но американцы... Ж:0

2) Американцы (коренные) далеко не самые крутые программисты сейчас. Можешь сам полюбоваться рейтингами стран. С ихнего же сайта!
http://www.topcoder.com/stat?c=country_avg_rating

3) Никакого сверхъестественного инструментария в распоряжении американских программистов нет. Говорю вполне ответственно потому как хорошо знаком с нашими программистами из Google, Facebook (Калифорния), IBM (NY).
sergeeff
Могу поделится наблюдением. Процесс enumeration достаточно капризный и требует, чтобы устройство довольно быстро отрабатывало запросы. С другой стороны справлялось с тем, что windows, кое-что может "бросить" на пол дороге (не дочитав ответа, кинуть следующий запрос, например).

Внимательно посмотри на приоритетность прерываний и не слишком ли долго обрабатываются прерывания от других источников.
prottoss
Цитата(sergeeff @ Apr 4 2011, 00:29) *
Могу поделится наблюдением. Процесс enumeration достаточно капризный и требует, чтобы устройство довольно быстро отрабатывало запросы. С другой стороны справлялось с тем, что windows, кое-что может "бросить" на пол дороге (не дочитав ответа, кинуть следующий запрос, например).

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

Кстати, кто нить знает сниффер для 64-бит ОС? Я пользовался всегда SnoopyPro v.0.22 но на 64-бит семерке он работать не хочет sad.gif
sergeeff
Цитата(prottoss @ Apr 3 2011, 20:46) *
Это все учтено. На 32-бит системах вопросов не возникает никогда. Прерываний, кроме как от USB (и то, если это setup-запросы) вообще нет.

Кстати, кто нить знает сниффер для 64-бит ОС? Я пользовался всегда SnoopyPro v.0.22 но на 64-бит семерке он работать не хочет sad.gif



Есть USBTrace (http://www.sysnucleus.com/) он под 64-bit тоже. 15 дней demo.
prottoss
Цитата(sergeeff @ Apr 4 2011, 01:23) *
Есть USBTrace (http://www.sysnucleus.com/) он под 64-bit тоже. 15 дней demo.
Спасибо. Постараюсь за 15 дней успеть sm.gif
prottoss
Интересная получается ситуевина...

В WinXP-32 запрос SET_LINE_CODING отрабатывается нормально. Принимает от устройства пакет нулевой длины (ACK).
Ну и далее, еще через несколько контрольных запросов, обмен данными с приложением.

В Win7-64 запрос SET_LINE_CODING. 30 секунд ожидания. Затем драйвер сообщает статус STATUS_CANCELLED. За тем несколько контрольных запросов и сообщение STATUS_IO_TIMEOUT. Все, приложение закрыло порт.

Все. Разобрался. Баг был все таки в моем девайсе похоже... После приема запроса SET_LINE_CODING необходимо посылать уведомление (Notification) SERIAL_STATE. Причем до того, как посылаем ACK через контрольную точку.
Все спасибо, особенно sergeeff за сниффер cheers.gif . Прикольная, однако, штучка.
halfdoom
Цитата(sergeeff @ Apr 3 2011, 19:44) *
Тут набрел на какой-то американский форум. Мужик задает конкретный вопрос про драйвер принтера. Ему в ответ, буквально такое: "Мы тут, крутые американские программисты, смотрим, что ты откуда-то из арабского мира. Смеешь нам задавать вопросы и тем самым отбирать у нас наш хлеб. Ни фига тебе объяснять не будем".


Ссылочку не дадите - почитать ради интереса?
sergeeff
Цитата(halfdoom @ Apr 4 2011, 09:28) *
Ссылочку не дадите - почитать ради интереса?

Вряд ли вспомню, где на такое наткнулся. Но был сильно удивлен.
prottoss
Цитата(Pasha 111 @ Sep 25 2009, 06:22) *
Вот мой вариант драйвера
Интересно, пробовали ли коннектится к голому МК через SAM-BA на компьютере с не-INTEL чипсетом?
sonycman
Не пойму, а зачем ставить драйвер для стандартного класса?
Разве винда не имеет встроенных дров для CDC или MSC классов?
athlon64
Цитата(Pasha 111 @ Sep 25 2009, 05:22) *
.

Использую Ваш драйвер, работает верно.
Windows 7 64bit
Но почему то SAM_BA CDC запускается долго (около 3-4 минут). В чём может быть причина?
danila777
всем доброго дня!
Я в программировании не "Асс", видимо поэтому сталкнулся с такой проблемой:
-нужно на компьютер установить такой драйвер: at90usbxxx_cdc. Иcпользуется для программирования чипа Atmel.
с Windows XP все работает замечательно. но когда подключаю этот программатор к Windows 7, в диспетчере устройств пишет- неизвестное устройство и соответственно драйвер at90usbxxx_cdc комп не воспринимает...
понимаю, что его можно как то переделать, но как..... для меня это большой вопрос....
подскажите, как мне это сделать?

к сожаления свой файлик не могу прикрепить, форум не даёт. но если кому понадобиться-могу выслать на почту.
Xenia
Цитата(danila777 @ Mar 22 2013, 00:08) *
с Windows XP все работает замечательно. но когда подключаю этот программатор к Windows 7, в диспетчере устройств пишет- неизвестное устройство и соответственно драйвер at90usbxxx_cdc комп не воспринимает...


Возьмите драйвер из более свежего application с сайта IAR.
Windows 7 без включения MsPorts.dll CDC-драйверы не ест, а Windows XP ела.
danila777
Цитата(Xenia @ Mar 22 2013, 00:54) *
Возьмите драйвер из более свежего application с сайта IAR.
Windows 7 без включения MsPorts.dll CDC-драйверы не ест, а Windows XP ела.

добрый день!
спасибо за помощь.
я зашел на сайт IAR.com, но дальше не понял, что скачать....
http://www.iar.com/Service-Center/Downloads/
вы не могли бы пояснить?
Xenia
Цитата(danila777 @ Mar 25 2013, 08:47) *
я зашел на сайт IAR.com, но дальше не понял, что скачать....
http://www.iar.com/Service-Center/Downloads/
вы не могли бы пояснить?


Мне проще прислать sm.gif - пришпандорила в аттачмент:
danila777
Цитата(Xenia @ Mar 25 2013, 12:37) *
Мне проще прислать sm.gif - пришпандорила в аттачмент:


может это важно, попробую обьяснить.
при помощи специального программатора, называется Блиц сп1 я хочу запрограммировать чип под названием Atmel. на виндовс ХР установил драйвера для работы этого программатора с ноутбуком. все работало. но потом ноут вышел из строя и пришлось пользоваться ноутом с виндовс 7. на 7ку драйвер at90usbxxx_cdc не встал. поэтому постучался сюда)))
AVR32_Virtual_Com_Port к сожалению тоже не встает. пробовал и через правую клавишу и через диспетчер.
обращался к производителю, но он к сожалению не может дать вразумительного ответа, что нужно сделать с 7кой. говорит : -унас ХР, все работает....
SavageForest
Цитата(danila777 @ Mar 25 2013, 22:30) *
... на виндовс ХР установил драйвера для работы этого программатора с ноутбуком. все работало. но потом ноут вышел из строя и пришлось пользоваться ноутом с виндовс 7. на 7ку драйвер at90usbxxx_cdc не встал....

если еще не поздно, то попробую разъяснить ситуацию:
в 7-ке (вообще после 2008 винды) реализована новая (в замен использовавшейся ранее "альтернативной") защита по установке всяческих драйверов. теперь требуется электронная подпись драйвера сертификатом доверенной организации или самими мелкомягкими. писать об этом можно много и долго.

есть пара способов поставить-таки данный драйвер без лишних финансовых манипуляций:
1. найти/попросить_у_производителя/сделать_самому подписанный драйвер, которому система будет доверять. это довольно долго и муторно, т.к. сертификаты/подпись_драйвера платные (требуют проверки на совместимость и т.п.).
2. перевести систему с тестовый режим и отключив проверку подлинности сертификатов скормить драйвер системе. на мой взгляд это намного проще в вашем конкретном случае.

ЗЫ: это в том случае если разрядность системы совпадает, если нет, то вероятно придется править INF файл, добавив в него секции для 64-битных систем.
ЗЗЫ: в аттач прилагаю ЕХЕшник позволяющий перевести систему в тестовый режим и обратно безо всяких заморочек. (возможно в нете есть что посвежее, но я пользовался этим при подобной проблеме).
SavageForest
вот собственно ссылка на обновление с сайта мелкомягких. еле нашел.
на всякий случай прилепил архивчик перепакованный в зип (cab не прилепляется).
Win7x64 съела драйвер не поперхнувшись и без usbser.sys в каталоге.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.