реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> AT91SAM7 + USB
piz2383
сообщение Jul 24 2009, 10:01
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 26-06-09
Пользователь №: 50 675



Прочитал на днях книгу Агурова, вроде бы разобрался со всем что там написано. Я понимаю, что её нужно сжечь, но у меня к сожалению мало ещё опыта в изучении спецификаций. Спецификацию по USB я скачал, очень тяжело для меня ещё. Надеюсь что для начала и книга подойдет.
Но суть вопроса не в этом. Хочу посмотреть на какие-то готовые и главное рабочие примеры работы с USB для AT91SAM7.
Желательно что бы проект реализовывал фреймворк с функция write и read. Для начала меня этого будет достаточно что бы дойти до понимания.
Так пожалуйста поделитесь ссылками на примеры проектиков, которые точно работают, чо бы я в них смог разобраться для моего старта в мире USB =)
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 24 2009, 10:36
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Можно взять атмеловские примеры, правда их придется относительно долго дорабатывать напильником и вычищать глюки.

А лучше попробуйте самостоятельно написать свой фреймворк, начиная с Chapter 9 - это всего несколько сотен строк, зато будете в дальнейшем чувствовать себя уверенно.
Go to the top of the page
 
+Quote Post
piz2383
сообщение Jul 24 2009, 14:12
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 26-06-09
Пользователь №: 50 675



А с BasicUSB кто-то работал? Рабочий проект?
Go to the top of the page
 
+Quote Post
piz2383
сообщение Jul 24 2009, 15:43
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 26-06-09
Пользователь №: 50 675



Спрашиваю потому что пока запустить не получается. Так хочу узнать толи у меня не получается. Толи проект такой.

И ещё вопросик. С помощью HID-устройства можно организовать двунаправленный обмен? Или это только для передачи от устройства к хосту?
Go to the top of the page
 
+Quote Post
rezident
сообщение Jul 24 2009, 16:36
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(piz2383 @ Jul 24 2009, 21:43) *
С помощью HID-устройства можно организовать двунаправленный обмен?
Можно. В спецификациях USB все описано. HID Related Specifications
Go to the top of the page
 
+Quote Post
piz2383
сообщение Jul 25 2009, 12:15
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 26-06-09
Пользователь №: 50 675



Цитата(aaarrr @ Jul 24 2009, 13:36) *
А лучше попробуйте самостоятельно написать свой фреймворк, начиная с Chapter 9 - это всего несколько сотен строк, зато будете в дальнейшем чувствовать себя уверенно.

А про какой "Chapter 9" вы имели ввиду?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 25 2009, 17:31
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Это глава 9 спецификации USB.
На самом деле, начать очень просто - подключаете свое устройство к компьютеру, получаете от него GET_DESCRIPTOR(DEVICE) и пытаетесь ответить. И так по всему процессу энумерации, листая параллельно спецификацию и даташит. Дескрипторы для начала можно взять из какого-нибудь примера.
Зато потом сможете сказать, что умеете работать с USB. От готовых примеров толку как от использования FT232.
Go to the top of the page
 
+Quote Post
piz2383
сообщение Aug 3 2009, 14:29
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 26-06-09
Пользователь №: 50 675



Вопрос конкретно топику не касаеться. Но что бы отдельной темы для маленького вопроса не создавать спрошу здесь.
В общем разбираюсь я с USB. Отлаживаю я с помощью SAM-ICE. До этого постоянно юзал j-link.
В общем отладчик в случайный момент времени во время прошивки или во время длительного дебага, может вылететь с сообщением (см вложеный файл). Из-за чего может вылетать данное сообщение? Чья это может быть проблема отладчика или платы? К сожалению попробовать на другом отладчике временно не могу.
Всем заранее спасибо за советы и предложения.

Сообщение отредактировал piz2383 - Aug 3 2009, 14:36
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
head_sk
сообщение Aug 5 2009, 05:35
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 3-07-09
Пользователь №: 50 897



Конечно телепатически не предугадаешь, но ИМХО проблема из-за "китайского" программатора.
Go to the top of the page
 
+Quote Post
fresh2
сообщение Aug 6 2009, 07:17
Сообщение #10





Группа: Участник
Сообщений: 7
Регистрация: 14-05-09
Пользователь №: 49 074



Еще один маленький вопрос по той же теме. Есть две платы: одна- тестовая AT91SAM7S-EK от Amtel с контоллером SAM7S256, а вторая моя, на моей плате стоит тот же микроконтроллер, та же обвязка для USB, тот же кварц, отличия только в распиновке VBUS и DPULLUP. Я брал готовые примеры для тестовой платы для IAR 5.x, на тестовой плате они более или менее работают: компьютер определяет тип усторойства подключенного ну типа HID это или MASSSTORAGE или просто USB-устройсвто,когда я прошиваю свою плату и подключаю, он даже этого не делает пишет что усторойство не определено и в деспетчере задач высвечивается неизвестное USB устройство, альнейшее выполнее программы прекращается. Не подскажите врианты почему такое может быть?
Go to the top of the page
 
+Quote Post
Corvus
сообщение Aug 6 2009, 09:31
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 24-04-08
Из: Зеленоград
Пользователь №: 37 056



Вероятно, в этом
Цитата(fresh2 @ Aug 6 2009, 11:17) *
отличия только в распиновке DPULLUP.


Сообщение отредактировал Corvus - Aug 6 2009, 09:33
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 6 2009, 11:15
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(fresh2 @ Aug 6 2009, 11:17) *
Не подскажите врианты почему такое может быть?

Судя по тому, что подключение определяется, pull-up все-таки присутствует. Другое дело, что могут быть перепутаны линии D+ и D-, например. Так как телепаты разошлись в отпуск, было бы неплохо указать, какие именно модификации сделаны в схеме, или выложить саму схему целиком.
Go to the top of the page
 
+Quote Post
piz2383
сообщение Aug 10 2009, 14:36
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 26-06-09
Пользователь №: 50 675



Работаю со стандартным атмеловским драйвером atm6124.sys.
Реализовал CDC-устройство. Вроде все работает, но периодически при подключении устройства "винда" просто перегружается (как буд-то ресет нажали). Вопрос: это мне уже винду необходимо переустановить или же я допускаю какие-то ошибки в работе, если да, то какие?
Заранее спасибо.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 10 2009, 15:27
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(piz2383 @ Aug 10 2009, 18:36) *
Вопрос: это мне уже винду необходимо переустановить или же я допускаю какие-то ошибки в работе, если да, то какие?

Винда так себя ведет при ошибках в передаваемых ей дескрипторах. atm6124.sys сам по себе достаточно глючен, воспользуйтесь лучше usbser.sys
Go to the top of the page
 
+Quote Post
piz2383
сообщение Aug 10 2009, 16:21
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 26-06-09
Пользователь №: 50 675



А FTDI какой *.sys драйвер использует?
И FTDI-айную заюзать можно?

Сообщение отредактировал piz2383 - Aug 10 2009, 16:25
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 10 2009, 17:27
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(piz2383 @ Aug 10 2009, 20:21) *
А FTDI какой *.sys драйвер использует?
И FTDI-айную заюзать можно?

Свой собственный. Заюзать можно, а смысл?
Go to the top of the page
 
+Quote Post
piz2383
сообщение Aug 10 2009, 17:37
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 26-06-09
Пользователь №: 50 675



Да мне главное что бы надежно работало.,.. Попробую usbser.sys
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 10 2009, 17:45
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



usbser в XP работает надежно. Есть, конечно, и некоторые косяки - сигнализация не вся поддерживается и USB нельзя передергивать, пока порт открыт.
Go to the top of the page
 
+Quote Post
piz2383
сообщение Aug 12 2009, 20:01
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 26-06-09
Пользователь №: 50 675



Все вроде работает. Но уточню несколько нюансов.
На голой винде при подключении девайса, первого подключения в трее выскакивает надпись "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"
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 12 2009, 20:25
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(piz2383 @ Aug 13 2009, 00:01) *
На голой винде при подключении девайса, первого подключения в трее выскакивает надпись "atm6124.Sys ATMEL AT91xxxxx Test Board"
Как-то хочется что бы вскакивало что-то свое, как это сделать не подскажите?

Пропишите индексы строк в device descriptor'е и сами строки.
Go to the top of the page
 
+Quote Post
piz2383
сообщение Aug 13 2009, 11:56
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 26-06-09
Пользователь №: 50 675



Обьясните плз что такое индексы строк, а то я не понял со стандарта? (вродекак написано: Index of string descriptor describing product)
Что в цнлом нужно прописыват в поле imanufacturer, iproduct и iserialnumber?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 13 2009, 12:28
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(piz2383 @ Aug 13 2009, 15:56) *
Обьясните плз что такое индексы строк, а то я не понял со стандарта? (вродекак написано: 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
};
Go to the top of the page
 
+Quote Post
piz2383
сообщение Aug 13 2009, 19:40
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 26-06-09
Пользователь №: 50 675



Меня как раз смутила надпись "ненулевыми" когда я читал спецификацию. В общем назначить можно любой.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Aug 14 2009, 19:21
Сообщение #24


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(aaarrr @ Aug 10 2009, 21:45) *
usbser в XP работает надежно. Есть, конечно, и некоторые косяки - сигнализация не вся поддерживается и USB нельзя передергивать, пока порт открыт.
А можно поподробнее про момент передергивания при открытом порте ? В чем проблема конкретно ?

Дело в том что я тестировал на передергивание при передаче, и у меня ни разу не было проблем с этим.
То есть неперерывные запрос/ответ(протокол типа модбас) ну и передергиваю кабель много раз,
связь восстанавливается и ничего не падает.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 14 2009, 20:36
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(singlskv @ Aug 14 2009, 23:21) *
А можно поподробнее про момент передергивания при открытом порте ? В чем проблема конкретно ?

Если выдернуть кабель, пока открыт порт, то автоматом ничего не восстанавливается (по крайней мере на XP SP2). Если порт
закрыть, то проблем нет. На W2K было еще хуже - устройство отваливалось до следующей перезагрузки.
Go to the top of the page
 
+Quote Post
piz2383
сообщение Aug 15 2009, 14:29
Сообщение #26


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 26-06-09
Пользователь №: 50 675



А подскажите как определить что хост отключился от шины? Линию UDP_CNX подключил как в даташите, но она почему-то всегда в единице. Внезависимости от того подключен хост или нет. Включен пул-ап или нет. Не подскажите что с этой линией может быть не так?
И можно как-то с помощью самого контроллера UDP определить подключен хост или нет?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 15 2009, 20:26
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(piz2383 @ Aug 15 2009, 18:29) *
А подскажите как определить что хост отключился от шины?

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

Цитата(piz2383 @ Aug 15 2009, 18:29) *
Линию UDP_CNX подключил как в даташите, но она почему-то всегда в единице. Внезависимости от того подключен хост или нет. Включен пул-ап или нет. Не подскажите что с этой линией может быть не так?

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

Цитата(piz2383 @ Aug 15 2009, 18:29) *
И можно как-то с помощью самого контроллера UDP определить подключен хост или нет?

Можно следить за RXSUSP или вручную мониторить UDP_ FRM_NUM.
Go to the top of the page
 
+Quote Post
piz2383
сообщение Aug 15 2009, 22:22
Сообщение #28


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 26-06-09
Пользователь №: 50 675



Цитата(aaarrr @ Aug 15 2009, 23:26) *
Что значит отключился, шнурок физически оторвали?
Точнее сказать отсоединили. В общем когда кабелем соединяется ПК с устройством, то началом соединения можно считать приход пакета SET CONFIGURATION. А вот когда пользователь просто взял и отсоединил кабель. Вот про это я спрашивал smile.gif))
Цитата(aaarrr @ Aug 15 2009, 23:26) *
Если речь идет о линии, попключенной к VBUS через делитель, то с ней ничего не может быть не так. Разве только pull-up внутренний
может перетянуть ее в единицу, если его не отключить. Других вариантов я не вижу.
aaarrr, я ваш вечный фанат. Да, именно отключив пул-апя добился того что при не подключенном кабеле у меня 0 на этой линии, а при подключенном единица smile.gif Спасибо.
Цитата(aaarrr @ Aug 15 2009, 23:26) *
Можно следить за RXSUSP или вручную мониторить UDP_ FRM_NUM.
Да будущее запомню, но раз уж с той линией разобрались, то не понадобиться сейчас.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Aug 16 2009, 00:21
Сообщение #29


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(aaarrr @ Aug 15 2009, 00:36) *
Если выдернуть кабель, пока открыт порт, то автоматом ничего не восстанавливается (по крайней мере на XP SP2). Если порт
закрыть, то проблем нет. На W2K было еще хуже - устройство отваливалось до следующей перезагрузки.
Я думал что Вы имеете в виду что ломается что-то более серьезное, а так да,
переоткрытие порта решает вопрос переподсоединения.


Цитата(aaarrr @ Aug 16 2009, 00:26) *
Разве только pull-up внутренний
О, эту знатную фичу я тоже ловил, причем вся мерзость ситуации в том что на одном контроллере
пулап дотягивает до 1 а на другом таком же нет.
Go to the top of the page
 
+Quote Post
head_sk
сообщение Aug 19 2009, 08:18
Сообщение #30


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 3-07-09
Пользователь №: 50 897



Прошу прощения, если невнимательно шустрил по форуму. Использую драйвер usbser.sys. Как-то нехочется пользователя заставлять искать нужно ком-порт к примеру (COM4), пусть даже и просто выбрать из списка. Не подскажите как программными средствами в винде определить что этот виртуальный ком-порт открыт именно этим устройством?
Go to the top of the page
 
+Quote Post
Flexz
сообщение Aug 19 2009, 08:44
Сообщение #31


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 9-10-08
Из: Московская обл.
Пользователь №: 40 797



Можно перебрать все компорты, кидая туда тестовый запрос и смотреть откуда придет ответ, так часто делают.
Мне же больше понравился вариант - вообще отказаться от usbser и пр. и использовать libusb.
Go to the top of the page
 
+Quote Post
head_sk
сообщение Aug 19 2009, 09:12
Сообщение #32


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 3-07-09
Пользователь №: 50 897



Цитата(Flexz @ Aug 19 2009, 11:44) *
Можно перебрать все компорты, кидая туда тестовый запрос и смотреть откуда придет ответ, так часто делают.
Этим можно нарушить работу остальных устройств
Go to the top of the page
 
+Quote Post
Flexz
сообщение Aug 19 2009, 09:54
Сообщение #33


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 9-10-08
Из: Московская обл.
Пользователь №: 40 797



А у вас много девайсов на компортах висит? я вот только с блютусом и переходниками usb-rs-XXX в последнее время встречаюсь, да еще старые программаторы.
Но если хотите что б все красиво было, то прямая дорога в WMI, скачайте утилитку WMI Code Creator (она бесплатная) и в неймспейсе root\WMI ищите инфу по последовательным портам. Утилька сама поможет сгенерить код на C#
Go to the top of the page
 
+Quote Post
head_sk
сообщение Aug 19 2009, 10:01
Сообщение #34


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 3-07-09
Пользователь №: 50 897



Цитата(Flexz @ Aug 19 2009, 12:54) *
А у вас много девайсов на компортах висит? я вот только с блютусом и переходниками usb-rs-XXX в последнее время встречаюсь, да еще старые программаторы.
У меня нет, а у заказчиков много.
Поразбираюсь с libusb. Кто с ней работал? Какие отзывы? Работа стабильная? "Синие экраны" не наблюдаются? И ещё один важный ньюанс: совместимость с Windows Vista и Windows 7?

Сообщение отредактировал head_sk - Aug 19 2009, 10:18
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 19 2009, 12:46
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(head_sk @ Aug 19 2009, 12:18) *
Не подскажите как программными средствами в винде определить что этот виртуальный ком-порт открыт именно этим устройством?

Смотрите в реестре список и ищете в нем USBSER:
HKLM\HARDWARE\DEVICEMAP\SERIALCOMM
Go to the top of the page
 
+Quote Post
head_sk
сообщение Aug 20 2009, 15:43
Сообщение #36


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 3-07-09
Пользователь №: 50 897



А есть ли какой-то благоразумный выход, что устройство с USB коммерческое выпустить хочется, а VID покупать нет? Подскажите что стоит делать в таком случае?
Go to the top of the page
 
+Quote Post
rezident
сообщение Aug 20 2009, 15:55
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(head_sk @ Aug 20 2009, 21:43) *
Подскажите что стоит делать в таком случае?
Договориться и купить один или несколько PID у того, кто уже имеет собственный VID. Еще совсем недавно в Европе (ЕС) такое вовсю практиковалось. Естественно, что продавать свой продукт придется под маркой владельца VID. Потому, что официально перепродажа их запрещена соглашениями. Некоторые производители МК предоставляют свои VID/PID. Недавно интересовался, например, Microchip на основании заявки предоставляет свой VID и какой-то PID для выпуска установочной (пробной) партии устройств на МК (со встроенным USB) этой фирмы общим количеством не более 10 000 шт. См. по ссылке.
Go to the top of the page
 
+Quote Post
head_sk
сообщение Aug 20 2009, 18:01
Сообщение #38


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 3-07-09
Пользователь №: 50 897



А я слышал на этом форуме что многие VID выбирают что-то типа FFFF. Неужели нет номеров которым можно пользоваться всем? Пусть девайсы пересекуться, ничего страшного.
Go to the top of the page
 
+Quote Post
piz2383
сообщение Aug 20 2009, 20:36
Сообщение #39


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 26-06-09
Пользователь №: 50 675



Здравствуйте. Не подскажите в чем может быть загвоздка? Писал программу для драйвера от атмела. Функция отправки хосту работала идеально.
Поменял драйвер на usbser.sys. Теперь первая отправка работает хорошо. А вот вторая уже не отправляется. Вот код отправки.

Код
unsigned int USB_Write(unsigned char* buffer, unsigned int size)
{
  /***/ while((AT91C_BASE_UDP->UDP_CSR[2]&AT91C_UDP_TXPKTRDY) == AT91C_UDP_TXPKTRDY);
  
  while (size--)
    AT91C_BASE_UDP->UDP_FDR[2] = *buffer++;
  
  UDP_EP_SetFlag(AT91C_BASE_UDP, 2, AT91C_UDP_TXPKTRDY)
    

  return xSemaphoreTake(TXSemaphore, 5);
}


Во время второй отправки не срабатывает прерывание AT91C_UDP_TXCOMP. А во время третьей отправки код зависает на строчке с пометкой /***/
В чем может быть проблема? Что в коде не так? Почему с атмеловским драйвером работает а с usbser нет?
Go to the top of the page
 
+Quote Post
rezident
сообщение Aug 21 2009, 10:33
Сообщение #40


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(head_sk @ Aug 21 2009, 00:01) *
А я слышал на этом форуме что многие VID выбирают что-то типа FFFF. Неужели нет номеров которым можно пользоваться всем?
Для отладки вы можете пользоваться любыми вам подходящими VID/PID (естественно которые не совпадают с уже имеющимися в вашей системе), а вот для производства готового устройства - нет. Не думаете же вы, что консорциумы типа USB-IF полные лохи организовывают? smile.gif
Цитата(head_sk @ Aug 21 2009, 00:01) *
Пусть девайсы пересекуться, ничего страшного.
Как раз наоборот, это и есть самое "страшное". Когда ОС, определив устройство неправильно, начнет "подсовывать" ему совершенно другой драйвер.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 01:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01739 секунд с 7
ELECTRONIX ©2004-2016