|
AT90USB1286 прерывание VBUSTI, Подскажите как увидеть прерывание в эмуляторах |
|
|
|
Jan 7 2009, 01:48
|
Группа: Новичок
Сообщений: 13
Регистрация: 6-05-08
Пользователь №: 37 334

|
Самой железки пока нет. Пробую в Proteus и AVR Studio такой код для AT90USB1286: Код ISR(USB_GEN_vect) { USBINT = 0;} int main(void) { // разрешить VBUS detection и VBUS Transition interrupt // то есть определение подключения или отключения устройства USBCON |= (1 << OTGPADE)|(1 << VBUSTE); USBINT = 0; // Global enable interrupts sei(); while(1){} Прерывания VBUSTI нет. Ставил и VBUS и VBUSTI. В чем проблема? Спасибо.
|
|
|
|
|
 |
Ответов
|
Jan 7 2009, 07:06
|
Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782

|
Цитата(harper @ Jan 7 2009, 04:48)  Самой железки пока нет. Пробую в Proteus и AVR Studio такой код для AT90USB1286: Код ISR(USB_GEN_vect) { USBINT = 0;} int main(void) { // разрешить VBUS detection и VBUS Transition interrupt // то есть определение подключения или отключения устройства USBCON |= (1 << OTGPADE)|(1 << VBUSTE); USBINT = 0; // Global enable interrupts sei(); while(1){} Прерывания VBUSTI нет. Ставил и VBUS и VBUSTI. В чем проблема? Спасибо. А где код обработчика? Цитата(VladimirYU @ Jan 7 2009, 10:01)  А где код обработчика? В догонку. Что WDT, что с разрешением прерывания, и.... , а как ПРОТЕУС на это смотрит?
|
|
|
|
|
Jan 7 2009, 09:49
|
Группа: Новичок
Сообщений: 13
Регистрация: 6-05-08
Пользователь №: 37 334

|
Цитата(VladimirYU @ Jan 7 2009, 10:06)  А где код обработчика? В догонку. Что WDT, что с разрешением прерывания, и.... , а как ПРОТЕУС на это смотрит? Код обработчика USBINT = 0;, да хоть любой другой. Вызывает сомнения Proteus? Можно рассматривать только AVR Studio. При установке бита VBUS и даже VBUSTI прерывания не происходит.
|
|
|
|
|
Jan 7 2009, 10:04
|
Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782

|
Цитата(harper @ Jan 7 2009, 12:49)  Код обработчика USBINT = 0;, да хоть любой другой. Вызывает сомнения Proteus? Можно рассматривать только AVR Studio. При установке бита VBUS и даже VBUSTI прерывания не происходит. Только предположение. Далеко не вся переферия полностю моделируется симуляторами, и система прерываний в том числе. И все же вопрос про WDT актуален, явно запретите его, т.к. глюк с его симуляцией в студии раньше был.
|
|
|
|
|
Jan 7 2009, 10:58
|
Группа: Новичок
Сообщений: 13
Регистрация: 6-05-08
Пользователь №: 37 334

|
Цитата(VladimirYU @ Jan 7 2009, 13:04)  Только предположение. Далеко не вся переферия полностю моделируется симуляторами, и система прерываний в том числе. И все же вопрос про WDT актуален, явно запретите его, т.к. глюк с его симуляцией в студии раньше был. В моем случае с WDT все в порядке. В коде, указанном выше, я могу заменить данное прерывание на тоже асинхронное INT0 по Low Level и симуляция прекрасно работает. Вопрос именно к тем, кто работает с AT90USB. Может в коде чего-то не хватает? Или проблема симуляторов?
|
|
|
|
|
Jan 8 2009, 22:47
|
Группа: Новичок
Сообщений: 13
Регистрация: 6-05-08
Пользователь №: 37 334

|
Цитата(Xenia @ Jan 8 2009, 22:37)  36. Errata 37. AT90USB1287/6 Errata.
37.4. AT90USB1287/6 Third Release • Incorrect CPU behavior for VBUSTI and IDTI interrupts routines
5. Incorrect CPU behavior for VBUSTI and IDTI interrupts routines The CPU core may incorrectly execute the interrupt vector related to the VBUSTI and IDTI interrupt flags.
Problem fix/workaround Do not enable these interrupts, firmware must process these USB events by polling VBUSTI and IDTI flags. Спасибо, Xenia! Вас то я и ждал! Буду теперь иметь ввиду, что Datasheet надо читать от корки до корки. Все равно странно Atmel пишет. Зачем мне опрашивать флаг VBUSTI, если все равно потом придется опрашивать VBUS? Так бы и писали. Встречный вопрос. Но в Вашем проекте USB_AT90 Вы как раз используете это прерывание, или код уже исправлен? И еще, почему во всех примерах сначала инициализируют USB блок (тем самым увеличивая энергопотребление), потом ждут подключения к шине и делают ATTACH. Почему сначала не определить подключение к шине, потом запустить USB блок и сделать ATTACH? И еще везде непонятная фишка с UECFG0X = 0x02; - там же бит номер 1 не значащий. Это опечатка Atmel, которую все копируют? Спасибо!
Сообщение отредактировал harper - Jan 8 2009, 22:57
|
|
|
|
|
Jan 8 2009, 23:16
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(harper @ Jan 9 2009, 01:47)  И еще везде непонятная фишка с UECFG0X = 0x02; - там же бит номер 1 не значащий. Это опечатка Atmel, которую все копируют? Спасибо! avr-libc/iousbxx6_7.h: #define UECFG0X _SFR_MEM8(0XEC) #define EPTYPE1 7 #define EPTYPE0 6 /* #define ISOSW 3 */ /* Reserved */ /* #define AUTOSW 2 */ /* Reserved */ /* #define NYETSDIS 1 */ /* Reserved */ #define EPDIR 0 Возможно в первых ревизиях чипов установка этого бита была обязательна, а может и сейчас имеет значение. Анатолий. PS: Цитата ATMEL AT90USB Datasheet (7593D-AVR-07/06)
There exists some errors or at least unclear statements as listed below: ... 22.16 Isochronous mode (page 278) For Isochronous IN endpoints, it is possible to automatically switch the banks on each start of frame (SOF). This is done by setting ISOSW. The CPU has to fill the bank of the endpoint; the bank switching will be automatic as soon as a SOF is seen by the hardware. !!! ISOSW is mentioned here and in the 31. Register Summary (page 414), but no where else. !!! In Register Summary (page 414) Flags SOSW, AUTOSW, NYETSDIS are mentioned, but not explained! PSS: хотя в даташите написанно: • 1 - Reserved The value read from this bits is always 0. Do not set this bit.
Сообщение отредактировал aesok - Jan 8 2009, 23:39
|
|
|
|
Сообщений в этой теме
harper AT90USB1286 прерывание VBUSTI Jan 7 2009, 01:48       Xenia Цитата(harper @ Jan 9 2009, 01:47) Зачем ... Jan 9 2009, 10:01        harper Цитата(Xenia @ Jan 9 2009, 13:01) VBUSTI ... Jan 9 2009, 14:47         Xenia Цитата(harper @ Jan 9 2009, 17:47) Xenia,... Jan 9 2009, 22:12          harper Спасибо, Вам большое, Xenia, за внимание! Раз... Jan 10 2009, 07:49
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|