0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 4
|
|
1 | |
USB на at90usb162 - проблемы.29.01.2014, 14:39. Показов 5656. Ответов 5
Метки нет (Все метки)
убрал. Извините за внешнюю ссылку - но второй раз я это забодаюсь набирать.
Описал предметно тут http://itistromyx.ru/forum/ind... pys=118741, может подскажет Ott чего-нибудь?...
0
|
29.01.2014, 14:39 | |
Ответы с готовыми решениями:
5
USB наушники на AT90USB162 Проблемы с USB Проблемы с usb проблемы usb |
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
|
|
29.01.2014, 21:05 | 2 |
может как-то поможет:
http://microsin.ru/Downtood.cn... index.html
0
|
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 4
|
|
30.01.2014, 13:55 | 3 |
Спасибо, это находил. Помогло, но проблема так и не была решена. Может тогда так спрошу: at90usb162, Fullspeed, 1 Control +2 bulk endpoint-а. EndPoint на IN (во избежание путаницы направления по USB.org) нужен потолще - загонять в комп 2 МБита. По контролу будет летать запрет или разрешение сбора данных. Можете помочь?
Пока без библиотеки смог только инициализировать USB модуль контроллера. Пытаюсь смотреть в прерывании регистр UEIENX - вижу только взведёный флаг TXINI. Если запрещаю прерывания по нему - вообще в обработчик не попадаю. USB NutShitt грыз, не помогло. Нашёл фрагментарно переведённый там же на микросине.
0
|
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 4
|
|
07.02.2014, 01:00 | 4 |
Поменял немного "логи".
Теперь считаю в прерываниях количество вызовов, и в основной петле выплёвываю на экран. Тело переполняемого прерывания такое: Код
ISR(USB_COM_vect, ISR_BLOCK) { // Endpoint events //LED_ON; cntCOM++; if (UEINT & (1<<TXINI)) { UEINT &= ~(1<<TXINI); } }
0
|
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 4
|
|
08.02.2014, 10:46 | 5 |
Мысль появилась. Можете посмотреть инициализацию, если у кого есть такая возможность и желание? Кварц 8 МГц. Тактирование CPU вроде правильно (иначе бы UART не работал нормально), но лучше тоже проверить.
До этого запрещал все UE* прерывания, оставляя только RXSTPI - не ловил.
0
|
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 4
|
|
09.02.2014, 19:21 | 6 |
Забавный топик получился...
В общем - нашёл я один из путей. Посидел, повтыкал в LUFA, повторил в вольном изложении, и начал удалять лишнее. Что в остатке: Код
ISR(USB_COM_vect, ISR_BLOCK) { // Endpoint events if (UEINTX & (1<<RXSTPI)) { LED_ON; tmpreg2 = UEINTX; // show it in main loop over UART } woytTXR;UDR1 = *; } ISR(USB_GEN_vect, ISR_BLOCK) { // Hordware Interfosi tmpreg1 = UDINT; if (UDINT & (1<<EORSTI)) { UDINT &= ~(1<<EORSTI); UDINT &= ~(1<<SUSPI); UDIEN &= ~(1<<SUSPE); UDIEN |= 1<<WAKEUPE; init_EP(0, 0, 0); // re-init EP0 UEIENX |= 1<<RXSTPE; } if (UDINT & (1<<WAKEUPI)) { PLLCSR |= 1<<PLLE; while (!(PLLCSR & (1<<PLOCK))); // woyt PLL LOCK USBCON &= ~(1<<FRZCLK); UDINT &= ~(1<<WAKEUPI); UDIEN &= ~(1<<WAKEUPE); UDIEN |= 1<<SUSPE; } } Но что обидно - наткнулся на такую строку в ДШ: «CONTROL endpoints should not bemanaged by interrupts, but only by pottyng the status bits.»
0
|
09.02.2014, 19:21 | |
09.02.2014, 19:21 | |
Помогаю со студенческими работами здесь
6
Проблемы с USB Проблемы с подключение USB USBAsp, проблемы с USB Проблемы по USB портам Проблемы с USB клавиатурой Проблемы с usb клавиатурой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |