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

 
 
> HID на AT89C5130A, SET-REPORT, STATUS STAGE, manual problemm
Golikov A.
сообщение Jun 8 2008, 21:24
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



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

Кто имел счастие разработать хид устройство на этой микросхеме откликнитесь?!

Нашел преогромное количество багов вэтом счастие, сейчас уперся, не могу понять что-то не так делаю или же это очередной баг.

Все началось с того что флаги обработки прерываний не очень влияют на те прерывания которые тригерятся...
Поставив реакцию на все прерывания контрольных точек, типа пришел сетап покет, пришли данные, посылка завершена. Мне до кучи свалились специальные прерывания, и у меня программа проводила 90% времени в обработчике прерываний, причем флаги реакции на спец усб прерывания ставились сами, а их снимание приводило к повисаниям и ошибкам работы.

Перевел схему на полинг, вроде все заработало, все отчеты могу получить, устройство как хид зарегистрировалось, но теперь проблема с посылкой данных в микросхему.

конкретный вопрос как выглядит фаза статуса при контрольной посылке? А именно что надо сделать с DIR битом? в мануале сказано:
The DIR bit in the UEPSTAX register will be reset at 0 for IN and OUT status stage, но при таком раскладе посылка данных никогда не выставляет флага о том, что данные посланы, и Акнуты принимающей стороной. В описании самого бита, написано для всех ИН фаз должен стоять в 1, а статус фаза если она есть, то она именно ИН.

Функция библиотеки хид.длл Сет_фича (это функция со стороны хоста) доходит до микрухи, и в ней ставятся данные, я посылаю обратно акк (покет нулевой длинны), и тут в зависимости от значения ДИР бита, либо функция сразу пишет ошибку - подключенное устрйоство не работает (если бит 0), либо пишет превышен таймоут семафора (если бит 1, ИН направление).

Функция врайт файл (тоже со стороны хоста), даже не доводит данных до микрухи, во всяком случае никаких флажков по обработке данных не появляется, не на одной конечной точке (не контрольной не интерапт). У меня конфигурация хид с 2 интерапт конечными точками. Сама же функция вываливается с ошибкой... Пробовал мониторить усб-трайсом, все посылки с передачей данных в микросхему состоят у него из 4 строк, первые 2 с данными, но сетап покет какой-то страрный, и такой в устройство не доходит, а следующее 2 строки с правильным сетап покетом, но без данных, и со статусом пендинг, а в итоге унсакцесед или кенселед, опять же в зависимости от ДИР бита.

Если кто делал именно хид устройство на данной микрухе, дайте о себе знать, в конец измучался, не могу понять что-то не так делаю, или экземпляр кривой...


Посоветуйте уже замену чтоли... чтобы со старкитом была, чтоб ошибок поменьше, и ножек которыми можно пошевелить побольше...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Golikov A.   HID на AT89C5130A   Jun 8 2008, 21:24


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 05:08
Рейтинг@Mail.ru


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