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

 
 
10 страниц V  « < 2 3 4 5 6 > »   
Reply to this topicStart new topic
> Работа с USB2.0 SX2, Ктонибуть использовал SX2
jur
сообщение Oct 24 2005, 08:27
Сообщение #46


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704



Здравствуйте!

Давайте разберемся с прерываниями в этой микросхеме? Очень уж не логично они там наворочали... Я уже задавал подобный вопрос в сайпрессовской техподдержке, ответ получил аж через неделю. И ответ этот несколько странен: он никак не совпадает с данными даташита. Суть проблемы вот в чем. Имеем аппаратную логику, которая считывает поток байт из OUT-ендпойнта. Где-то в процессе считывания может возникнуть прерывание. Эту ситуацию я изобразил на примерной временнОй диаграмме:



Что будет считано на шину данных по очередному импульсу считывания (nSLRD+nSLOE), когда пришло прерывание? Это будет байт статуса прерывания или все-таки очередной байт данных?

В техподдержке мне невнятно сказали, что статус прерывания считывается только по адресу команд (FIFOADR[2..0] = B"100"). В этом случае со считыванием данных вроде все должно быть хорошо. Но почему тогда в даташите нигде не говорится, что статус прерывания считывается именно по адресу FIFOADR[2..0] = B"100"? Написано просто: когда пришло прерывание, то статус байт прерывания выдается по импульсам считывания (nSLRD+SLOE). Вот что мы имеем в даташите (ревизия E):

(стр. 3)
When an interrupt occurs, the INT# pin will be asserted, and the corresponding bit will be set in the Interrupt Status Byte. The external master reads the Interrupt Status Byte by strobing SLRD/SLOE. This presents the Interrupt Status Byte on the lower portion of the data bus (FD[7:0]).

Т.е. считываем - получаем. Про адрес ничего не сказано.

(стр. 7)
An address of [1 0 0] on FIFOADR [2:0] will select the command interface. The command interface is used to write to and read from the SX2 registers and the Endpoint 0 buffer, as well as the descriptor RAM.

Опять же, ничего не говорится про статус прерывания.

Так как же оно на самом деле?

Подскажите, пожалуйста, про этот проклятый байт прерывания...


--------------------
MPEG-4 - в массы!
Go to the top of the page
 
+Quote Post
jur
сообщение Oct 24 2005, 18:49
Сообщение #47


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704



Хм... Провел специальный эксперимент. Микроконтроллер обнаруживает ноль на линии INT#. Выставляет адрес FIFOADR[2..0] = 000b, считывает байт данных. Линия прерывания как была в нуле, так и остается. Тогда микроконтроллер выставляет адрес FIFOADR[2..0] = 100b, считывает байт данных. Линия прерывания уходит в единицу.

Похоже, можно верить сайпрессовской техподдержке... Неужели трудно было об этом в даташите написать? Заразы...

А микросхема у них превосходная :-) Допкомпонентов нужно мало, в работе проста (когда все необходимые шишки набьешь :-) скорость обеспечивает приличную. А со стороны PC я использую их CY4604 - USB Developer's uStudio v1.5.1.1. На первый взгляд там все просто, как дверь. Во всяком случае прилагаемые примеры откомпилировались без проблем, полученные exe-шники работают, необходимые мне 8 МБайт/сек дают свободно (процессор PC PIV-2.6GHz нагружается на 6-8%, Embedded-мама с VIA C3-1.3GHz - порядка 10-12%). А дальше - совершенствование.

Подскажите, пожалуйста, чем хорош драйвер USBIO.SYS по сравнению с CyUSB.sys из их Девелопер Студии?


--------------------
MPEG-4 - в массы!
Go to the top of the page
 
+Quote Post
Trashy
сообщение Oct 25 2005, 03:23
Сообщение #48


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

Группа: Свой
Сообщений: 121
Регистрация: 19-01-05
Пользователь №: 2 049



Цитата(jur @ Oct 24 2005, 21:49)
Подскажите, пожалуйста, чем хорош драйвер USBIO.SYS по сравнению с CyUSB.sys из их Девелопер Студии?
*

Что бы ответить на этот вопрос - нужно иметь исходники.
Не знаю как USBIO.SYS, но старый драйвер EZUSB.SYS - прокачивает 26мег в секунду. Единственный косяк, не соответствует спецификации энергосбережения и не поддерживает оверлаппед. К тому же в нём много прибабахов для 68013. А в CyUSB - их поделяли.
Вообще, есть мнение, что самый лучший драйвер для кипариса, получается из исходников EZUSB + пример из ДДК.
Go to the top of the page
 
+Quote Post
jur
сообщение Oct 25 2005, 17:14
Сообщение #49


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704



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

Большое спасибо за информацию!


--------------------
MPEG-4 - в массы!
Go to the top of the page
 
+Quote Post
jur
сообщение Oct 27 2005, 19:50
Сообщение #50


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704



Так. К сведению. Запустил свою новую плату на CY7C68001... :-)

Микросхема используется в асинхронном режиме. Как и положено, я не загружал ее под завязку быстродействия. Поэтому остановился на 160-ти наносекундном цикле выдачи данных. Работает аки часы швейцарские.

Молодца фирма Cypress! В отличие от примененной мною более года назад FTDI, сайпрессовские драйвера не приводят к RESET'у компьютера, не вызывают никаких проблем и сама микросхема проще в применении (да и стоит дешевле).

Теперь приступаю к углублению в вопросы программной "обвязки" со стороны компьютера. Пошерстю форум и, возможно, понаоткрываю кучу новых топиков! :-)


--------------------
MPEG-4 - в массы!
Go to the top of the page
 
+Quote Post
Xenix
сообщение Nov 8 2005, 17:34
Сообщение #51


Участник
*

Группа: Свой
Сообщений: 29
Регистрация: 4-05-05
Пользователь №: 4 741



Ситуевина такая. 68001 прилеплен к ПЛИСене. ЕЕПРОМа нет. ПЛИСина грузит ВИД, ПИД и ДИД (после прерывания SETUP) нумеруется хостом и вывешивает ENUMOK. Дрова EZUSB. Т.е. все ОК. При этом ендпоинты по умолчанию 4шт по 512байт (0х200) даблбуфер. Это я вижу в ЕЗ-мониторе. Т.е норма для ХайСпид. Если я начинаю их конфигурить ПЛИСиной через запись в EPxCFG(регистры 0х06...0х09) - оставляю 2 и 6 по 1024 даблбуфферинг, 4 и 8 убираю VALID=0 остальное по дефолту, то вижу что все равно присутствуют все 4-ре и размером 0х40 (64байт) - ФулСпид!!!! Лучше бы я их совсем не трогал! Никто не сталкивался? Чо за хрень такая? И как правильно их сконфигурить? Грузить весь Endpoint Configuration?? Через дескрипторы (регистр 0х30)? Софтом? Хелп, плз!!!
Go to the top of the page
 
+Quote Post
Trashy
сообщение Nov 9 2005, 03:37
Сообщение #52


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

Группа: Свой
Сообщений: 121
Регистрация: 19-01-05
Пользователь №: 2 049



Цитата(Xenix @ Nov 8 2005, 20:34) *
Ситуевина такая. 68001 прилеплен к ПЛИСене. ЕЕПРОМа нет. ПЛИСина грузит ВИД, ПИД и ДИД (после прерывания SETUP) нумеруется хостом и вывешивает ENUMOK. Дрова EZUSB. Т.е. все ОК. При этом ендпоинты по умолчанию 4шт по 512байт (0х200) даблбуфер. Это я вижу в ЕЗ-мониторе. Т.е норма для ХайСпид. Если я начинаю их конфигурить ПЛИСиной через запись в EPxCFG(регистры 0х06...0х09) - оставляю 2 и 6 по 1024 даблбуфферинг, 4 и 8 убираю VALID=0 остальное по дефолту, то вижу что все равно присутствуют все 4-ре и размером 0х40 (64байт) - ФулСпид!!!! Лучше бы я их совсем не трогал! Никто не сталкивался? Чо за хрень такая? И как правильно их сконфигурить? Грузить весь Endpoint Configuration?? Через дескрипторы (регистр 0х30)? Софтом? Хелп, плз!!!



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

Цитата(jur @ Oct 27 2005, 22:50) *
Молодца фирма Cypress! В отличие от примененной мною более года назад FTDI, сайпрессовские драйвера не приводят к RESET'у компьютера, не вызывают никаких проблем и сама микросхема проще в применении (да и стоит дешевле).


Видимо вы не работали с драйвером EZUSB.SYS...
Всякий раз при попытке AbortPipe не существующего пайпа - происходил мгновенный выброс из винды...
Меня трижды выкинуло, пока я понял в чём дело.
Go to the top of the page
 
+Quote Post
Xenix
сообщение Nov 9 2005, 10:21
Сообщение #53


Участник
*

Группа: Свой
Сообщений: 29
Регистрация: 4-05-05
Пользователь №: 4 741



Цитата(Trashy @ Nov 9 2005, 07:37) *
Динамическое конфигурирование сайпрессом не поддерживается. Это значит, что нужно сконфигурить микруху и сделать ренумерацию с соответствующими дескрипторами...


В DS указанно такое. Но как мне правильно (аппаратно) сконфигурить ендпоинты.

Если я правильно понял нуна залить конфигурацию ЕР-тов после СЕТАПа, а потом залить дескрипторы
или залить дескрипторы с прописанными ЕР??? А потом я получу ЕНУМОК?!

Т.о. жду прерывания с СЕТАПом, потом я гружу все конфиги и настройки. Потом гружу регистр 0х30 с дескрипторами. И получаю прерывание ЕНУМОК. ??! Правильно?!
Go to the top of the page
 
+Quote Post
QuadMan
сообщение Nov 10 2005, 10:05
Сообщение #54


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

Группа: Свой
Сообщений: 92
Регистрация: 25-10-05
Пользователь №: 10 069



подскажите, пожалуйста, в драйвере CyUSB.sys имеется возможность какой-нибудь командой сбросить буферы данных драйвера?
Go to the top of the page
 
+Quote Post
Xenix
сообщение Nov 14 2005, 10:57
Сообщение #55


Участник
*

Группа: Свой
Сообщений: 29
Регистрация: 4-05-05
Пользователь №: 4 741



2 Trashy. SX2. Гружу регистры 06-09 (выключаю 4 и 8-й ЕР) что сначала, что после дескрипторов одна кухня - в ЕЗМОНе вижу все четыре точки. В чем может быть трабла? Зачем делать FLUSH FIFO?
Заранее благодарен!
Go to the top of the page
 
+Quote Post
vad2
сообщение Nov 18 2005, 08:42
Сообщение #56





Группа: Новичок
Сообщений: 8
Регистрация: 3-10-05
Пользователь №: 9 172



А вы не читали CY3682 Design Notes (на сайте есть), там описана процедура инициализации чипа. Сначала ждешь прерывания SETUP, затем грузишь регистры, затем дескрипторы. После этого винда енумерует устройство, если есть подходящий драйвер.
У меня еще не работает устройство, я пока на пути... но инициализация проходит.
Тоже нет Епрома, работаю с ПЛИС.
Go to the top of the page
 
+Quote Post
vad2
сообщение Nov 18 2005, 20:07
Сообщение #57





Группа: Новичок
Сообщений: 8
Регистрация: 3-10-05
Пользователь №: 9 172



сорри, не SETUP прерывание вначале, а READY. Перепутал.
Go to the top of the page
 
+Quote Post
Xenix
сообщение Nov 21 2005, 16:49
Сообщение #58


Участник
*

Группа: Свой
Сообщений: 29
Регистрация: 4-05-05
Пользователь №: 4 741



Цитата(vad2 @ Nov 18 2005, 12:42) *
А вы не читали CY3682 Design Notes (на сайте есть), там описана процедура инициализации чипа. Сначала ждешь прерывания SETUP, затем грузишь регистры, затем дескрипторы. После этого винда енумерует устройство, если есть подходящий драйвер.
У меня еще не работает устройство, я пока на пути... но инициализация проходит.
Тоже нет Епрома, работаю с ПЛИС.

Читал. Написано грузим конфиг. Что именно ??? Потом дескрипторы. Какие??? Потом размер- и все!
Для моей задачи устраивает почти все по дефолту, только надо выключить два Ер, а два других увеличить в два раза.
Поэтому после РЕДИ, гружу 06-09 - выключаю ЕР 4 и 8. Потом дескрипторы 6 байт, ловлю ЕНУМОК. ПК видит девайс и раньше видел, но два ЕР присутствуют- опять вижу в ЕЗМОНе.
Можно только дескрипторы загрузить и все. Кстати когда до или потом грузишь ЕРхКОНФ размеры буферов изменяются с 512 до 64. Что за штука???
Почему они не выключаются я им ВАЛИД убираю!!!

((Потом я должен увидеть ХСГРАНТ и настроить размер буферов.))

Или для загрузки интерфейса (до загрузки дескрипторов) я все равно должен загрузить все регистры с 0х01 поп 0х2Е.???
Go to the top of the page
 
+Quote Post
vad2
сообщение Nov 22 2005, 14:14
Сообщение #59





Группа: Новичок
Сообщений: 8
Регистрация: 3-10-05
Пользователь №: 9 172



Я думаю, что для того чтобы получить только 2 ендпоинта, вместо 4-х, нужно переписать полную таблицу дескрипторов для вашего случая (2 ендпоинта по 1024 байта) по адресу 300. Винда определяет наличие и конфигурацию ендпоинтов по этой информации, а у вас по умолчанию там записана конфигурация для 4-х ендпоинтов. На последней странице даташита описаны default descriptors, а то что значат эти цифры можно найти в спецификации на шину USB2.0.
Надеюсь, что вам помог.
Go to the top of the page
 
+Quote Post
Xenix
сообщение Nov 22 2005, 15:18
Сообщение #60


Участник
*

Группа: Свой
Сообщений: 29
Регистрация: 4-05-05
Пользователь №: 4 741



Цитата(vad2 @ Nov 22 2005, 18:14) *
Надеюсь, что вам помог.

Спасибо попробую. Свяжусь как там получится.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 20:03
Рейтинг@Mail.ru


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