|
проблемы с настройкой модуля USB в AT91SAM7S256 |
|
|
|
Oct 24 2007, 06:16
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 16-05-06
Пользователь №: 17 135

|
Добрый день , уважаемые форумчане Помогите начинающему работать с USB. Щупаю пример от Атмеля at91_demo_massstorage_fs Возникло несколько вопросов по работе модуля USB:
1.При запуске проги , но не подключённом у-ве к хосту вижу что постоянно влетаю в прерывание по флагу ENDBUSRES, которое вообще должно возникать при подключениие к хосту . Флаг этот должен сбрасываться следующим кодом AT91F_UDP_DisableIt( USBDEV_BASE_UDP, DISABLE_ALL_IT ); AT91F_UDP_InterruptClearRegister( USBDEV_BASE_UDP, CLEAR_ALL_IT ); AT91F_UDP_EnableIt( USBDEV_BASE_UDP, AT91C_UDP_EPINT0| AT91C_UDP_RXSUSP | AT91C_UDP_RXRSM | AT91C_UDP_EXTRSM | AT91C_UDP_SOFINT );
но почему то код не работает , флаг ENDBUSRES остаётся взведённым . И вообще состояние регистров не меняется и в итоге прога постоянно крутится в прерывании.
2. Первоначально маска прерываний конфигурится в состояние по умолчанию - прерывание только по флагу RXRSM . При нормальной работе модуля , при подключении к хосту по этому флагу возникает прерывание , такой же вышепреведённый код отрабатывает нормально , начинается процесс нумерации.
А иногда бывает что у-во подключено , а никакой реакции на компе нет , прерывания только по ENDBUSRES , по RXRSM прерывания нет , у-во на компе не видно .
|
|
|
|
|
 |
Ответов
|
Oct 24 2007, 08:04
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 16-05-06
Пользователь №: 17 135

|
Цитата(aaarrr @ Oct 24 2007, 11:14)  1. Скорее всего, флаг сбрасывается нормально, а Ваше устройство просто постоянно ловит BUSRES, пока не подключено к шине. 1-2. Как организовано подключение pull-up на D+? Подключение pull-up организовано через полевой транзистор типа IRLML5203. Тут есть некоторые сомнения - резюк 1.5 кОм подтягивает линию к уровню примерно 5.1 В при подключённом к хосту девайсе ( берётся от питания шины ). По докам надо вообще к 3.3 если я правильно понял. Разаработчик платы уверяет что это нормально , работать должон... Это принципиально ? Насчёт сброса флага - всё может быть конечно , но эти команды выполняются в обработчике прерывания по соответствуюшему вектору , мне кажется вряд ли между 3 командами между 2 точками останова , я как то успеваю попасть в это же прерывание , и никак не заметить это по точкам остонова ? . Или я не прав ?
|
|
|
|
|
Oct 24 2007, 08:27
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(coolzero @ Oct 24 2007, 12:04)  По докам надо вообще к 3.3 если я правильно понял. Разаработчик платы уверяет что это нормально , работать должон... Это принципиально ? Это не нормально, нужно исправить. Цитата(coolzero @ Oct 24 2007, 12:04)  Насчёт сброса флага - всё может быть конечно , но эти команды выполняются в обработчике прерывания по соответствуюшему вектору , мне кажется вряд ли между 3 командами между 2 точками останова , я как то успеваю попасть в это же прерывание , и никак не заметить это по точкам остонова ? . Или я не прав ? Я не совсем понимаю, что именно Вы наблюдаете в прерывании. Между двумя точками останова можно сотню раз успеть поставить флаг. С JTAG'ом в прерываниях нужно быть осторожнее.
|
|
|
|
|
Oct 24 2007, 09:00
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 16-05-06
Пользователь №: 17 135

|
[quote name='aaarrr' date='Oct 24 2007, 12:27' post='312649'] Это не нормально, нужно исправить. [/quote] Подтяжку буду исправлять...
Я не совсем понимаю, что именно Вы наблюдаете в прерывании. Между двумя точками останова можно сотню раз успеть поставить флаг. С JTAG'ом в прерываниях нужно быть осторожнее. [/quote] Насчёт флага - да конечно полностью согласен , он может выставляться. Мне не совсем понятно почему после выполнения кода AT91F_UDP_EnableIt( USBDEV_BASE_UDP, AT91C_UDP_EPINT0| AT91C_UDP_RXSUSP | AT91C_UDP_RXRSM | AT91C_UDP_EXTRSM | AT91C_UDP_SOFINT );
я не вижу никаких изменений в регистре маски прерываний UDP_ IMR? Та же самая команда , но в обработеке флага RXRSM, ведёт себя корректно , и модифицирует регистр UDP_ IMR.
Попробую разобраться с подтяжкой , может что то прояснится ...
|
|
|
|
Сообщений в этой теме
coolzero проблемы с настройкой модуля USB в AT91SAM7S256 Oct 24 2007, 06:16    aaarrr Цитата(coolzero @ Oct 24 2007, 13:00) Мне... Oct 24 2007, 09:10 KAlex Цитата(coolzero @ Oct 24 2007, 10:16) Щуп... Oct 24 2007, 09:23 aaarrr Цитата(KAlex @ Oct 24 2007, 13:23) Что то... Oct 24 2007, 09:37 ljerry Цитата(coolzero @ Oct 24 2007, 10:16) 1.П... Oct 24 2007, 09:51 _4afc_ Цитата(coolzero @ Oct 24 2007, 10:16) Щуп... Oct 24 2007, 10:01 coolzero Изменил подтяжку вместо питания USB на 3.3 В , фла... Oct 24 2007, 11:05 _4afc_ Цитата(coolzero @ Oct 24 2007, 14:47) В п... Oct 24 2007, 11:10 coolzero А чем мне может помешать управление энергопотребле... Oct 24 2007, 11:10 _4afc_ Цитата(coolzero @ Oct 24 2007, 15:10) А ч... Oct 24 2007, 11:23 coolzero М-да что то не получается
Из проводника диск форм... Oct 24 2007, 11:44 _4afc_ Цитата(coolzero @ Oct 24 2007, 15:29) Не ... Oct 24 2007, 11:45 coolzero вот оно что , я то думаю где собака порылась
насч... Oct 24 2007, 12:02 _4afc_ Цитата(coolzero @ Oct 24 2007, 16:02) вот... Oct 24 2007, 12:26 coolzero А если я поменяю PID\VID - у меня проблем с д... Oct 24 2007, 12:40 Dron_Gus У меня sam7x нормально работает с AT45 и ("на... Oct 24 2007, 12:43 coolzero Значит надо рыть в другую сторону , возможно дейст... Oct 24 2007, 13:04 Dron_Gus Вы не забываете блокировать доступ "из" ... Oct 24 2007, 13:34 coolzero Да вроде нет - програмка пока отладочная , кроме u... Oct 25 2007, 05:15 Calculator Цитата(coolzero @ Oct 25 2007, 11:15) Мал... Oct 25 2007, 07:54 coolzero Всё возможно , надо проверить , спасибо ...
Но во... Oct 25 2007, 08:51 Dron_Gus Я описание ФАТ давно читал, но не длинное ли имя ф... Oct 25 2007, 09:53 _4afc_ Цитата(Dron_Gus @ Oct 25 2007, 13:53) Я о... Oct 25 2007, 10:21 coolzero Так точно , похоже на то .
Длину имен подрезал, ст... Oct 25 2007, 10:23 Calculator Цитата(coolzero @ Oct 25 2007, 16:23) Так... Oct 25 2007, 10:42 _4afc_ Цитата(coolzero @ Oct 25 2007, 14:23) Так... Oct 25 2007, 11:20 coolzero Написано достаточно много , но есть строка Revisio... Oct 25 2007, 11:05 coolzero Плата на пластиковых пеньках , стола не касается .... Oct 25 2007, 11:37 _4afc_ Цитата(coolzero @ Oct 25 2007, 15:37) Пла... Oct 25 2007, 11:46 coolzero Текстолита , увы , сейчас под рукой нет ...
Не сов... Oct 25 2007, 12:05 _4afc_ Цитата(coolzero @ Oct 25 2007, 16:05) Тек... Oct 25 2007, 12:33 Dron_Gus Какой размер сектора Вы используете? Хотя у AT45 р... Oct 25 2007, 12:45 _4afc_ Цитата(Dron_Gus @ Oct 25 2007, 16:45) Как... Oct 25 2007, 14:48 coolzero Таблица ФАТ и соответствующие сектора меняются
На... Oct 25 2007, 13:08 Dron_Gus Цитата(coolzero @ Oct 25 2007, 17:08) пра... Oct 25 2007, 13:22 coolzero Надо попробовать Oct 25 2007, 13:38 Dron_Gus 2 _4afc_, что-то наверное уже поздно... "ниас... Oct 25 2007, 14:55 _4afc_ Цитата(Dron_Gus @ Oct 25 2007, 18:55) Я т... Oct 26 2007, 11:17 coolzero Погонял свой девайс , мнение такое сложилось - кос... Oct 26 2007, 12:09 Dron_Gus Код
/*
typedef struct _AT45_Device{
int buflen... Oct 26 2007, 12:45 coolzero Спасибо Dron_Gus , буду разбираться .
А какое знач... Oct 26 2007, 12:55 coolzero а какая команда чтения датафлеш используется ? Oct 29 2007, 07:38 coolzero Поигрался с настройками SPI , не понятно
Девайс к... Oct 29 2007, 09:26 Dron_Gus Где-то на форуме обсуждались проблеммы и особеност... Oct 29 2007, 10:34 coolzero Уважаемые форумчане , где то видел мессагу , про т... Oct 31 2007, 08:59
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|