Регистрация | Последние сообщения | Персональный список | Поиск | Настройка конференции | Личные данные | Правила конференции | Список участников | Top 64 | Статистика раздела | faq | Что нового v.2.3 | Чат
Skunk Forum - Техника, Наука, Общество » Форум разработчиков РЭА »
BF561 & ISP1583 (USB2.0) - проблемы с энумерацией, не устанавливается прерываение EP0SETUP

Версия для печати (настроить)

Новая тема | Написать ответ

Подписаться

Автор Тема:   BF561 & ISP1583 (USB2.0) - проблемы с энумерацией, не устанавливается прерываение EP0SETUP
SimpleSoft
Junior Member

Сообщений: 1
Откуда: Минск
Регистрация: Апрель 2006

написано 12 Апреля 2006 13:49ИнфоПравкаОтветитьIP

Параметры: Philips ISP1583BS подключен к системной шине.
Частота ядра 485МГц, шины 121.5МГц.
Долго мучался с настройкой скорости внешней шины, наконец удалось стабильно писать/читать в регистры. (Читаю ChipID И нормально пишу/читаю в Scratch регистр)
INTERRUPT, SUSPEND заведены на PFки. Настроил прерывания от PF. Всё делал по аналогии, как в "ISP1583 Split Bus Firmware_9sep03".
Но вот в чём беда:
1. При подключении к ПК с USB 2.0 не выставляется в регистре прерывания флаг EP0SETUP, последовательность прерываний, которые я ловлю:
Resume (0x10)
Reset & HS_STAT(0x21)
Resume & Susp (0x18)
Reset & HS_STAT(0x21)
Resume & Susp (0x18)
Reset & HS_STAT(0x21)
Resume & Susp (0x18)
Susp(0x8)
иногда, на раз 10й получается другая
Resume (0x10)
Reset & HS_STAT(0x21)
EP0SETUP & Reset(0x101)
...
Susp(0x8)
2. когда же подключаешь к ПК с USB 1.1 всегда срабатывает EP0SETUP.

Да и заметил глюк, если сразу при срабатывании EP0SETUP вычитать данные из Data Port, то первые 2 чтения я имею нули а дальше - 80 06 10 00 ...

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

nagserg
Junior Member

Сообщений: 15
Регистрация: Декабрь 2005

написано 12 Апреля 2006 14:37ИнфоПравкаОтветитьIP

Вот здесь на контроллере ISP1581, может поможет http://forum.skunksworks.net/Forum5/HTML/000770.html

SimpleSoft
Junior Member

Сообщений: 2
Откуда: Минск
Регистрация: Апрель 2006

написано 12 Апреля 2006 15:41ИнфоПравкаОтветитьIP

nagserg, к сожалению не помогло. читал прежде чем создал эту тему.
Я читал что делали FS_FORCE, а как тогда переключиться в High_Speed потом?

[Это сообщение изменил SimpleSoft (изменение 12 Апреля 2006 15:57).]

misyachniy
Member

Сообщений: 119
Откуда: Kyiv
Регистрация: Февраль 2002

написано 13 Апреля 2006 10:00ИнфоПравкаОтветитьIP

Кажется понятно в чем причина.
Конфигурирование для USB 2.0 проводите на High Speed?

SimpleSoft
Junior Member

Сообщений: 3
Откуда: Минск
Регистрация: Апрель 2006

написано 13 Апреля 2006 11:15ИнфоПравкаОтветитьIP

misyachniy, да конечно как в примере. Самое интерестное на Atmega62 всё работало.
а чем отличается конфигурирование ISP (кроме Endpoint size) в HighSpeed от FullSpeed?

nagserg
Junior Member

Сообщений: 16
Регистрация: Декабрь 2005

написано 13 Апреля 2006 16:04ИнфоПравкаОтветитьIP

цитата:
SimpleSoft писал:
Я читал что делали FS_FORCE, а как тогда переключиться в High_Speed потом?

А потом наверно и не переключишься, а зачем? Бит FS_FORCE, как я понял нужен только для того, чтобы утройство принудительно работало в FullSpeed, даже если комп поддерживает USB 2.0

SimpleSoft
Junior Member

Сообщений: 4
Откуда: Минск
Регистрация: Апрель 2006

написано 13 Апреля 2006 16:09ИнфоПравкаОтветитьIP

nagserg, ну так а как потом узнать что поддерживается HighSpeed, конечная цель это полноценный HighSpeed.

misyachniy
Member

Сообщений: 120
Откуда: Kyiv
Регистрация: Февраль 2002

написано 14 Апреля 2006 14:58ИнфоПравкаОтветитьIP

По стандарту конфигурирование High Speed устройств происходит на Full Speed.
Если хост поддерживает High Speed, после конфигурирования,
нужно не только переключиться в HighSpeed но и отсоединить pull-up резистор 1,5К от шины D+, для выравнивания сопротивления линии.
Я сам не подключал устройства High Speed, но в документации на ISP или на сайте Philips Должны быть примеры.

nagserg
Junior Member

Сообщений: 17
Регистрация: Декабрь 2005

написано 14 Апреля 2006 17:58ИнфоПравкаОтветитьIP

У меня работает так: подсоединяю устройство к компу, конфигурирую размер FIFO конечных точек 64 байта. В какой-то момент выставляется флаг HS_STAT и я переконфигурирую размер FIFO конечных точек в 512 байт. Но это, как я понимаю всё-равно FullSpeed. Скорость получается около 1 МБайта в секунду (bulk режим). Мне пока этого хватает. А в дальнейшем конечно же нужен HighSpeed.

SimpleSoft
Junior Member

Сообщений: 5
Откуда: Минск
Регистрация: Апрель 2006

написано 17 Апреля 2006 11:58ИнфоПравкаОтветитьIP

В документации написано:
High speed status: Logic 1 indicates a change from full-speed to
high-speed mode (HS connection). This bit is not set, when the
system goes into full-speed suspend.
Я так понимаю, HS_STAT говорит нам о смене режима на HighSpeed.
Но у меня выставляется HS_STAT а вот EP0SETUP не выставляется.

nagserg
Junior Member

Сообщений: 18
Регистрация: Декабрь 2005

написано 17 Апреля 2006 14:11ИнфоПравкаОтветитьIP

У меня была похожая проблема: где-то на 5-ый, 10-ый раз при передёргивании шнурка USB выставлялся флаг EP0SETUP. В примере было сделано так: перед инициализацией ISP1581 вставил задержку WaitChipId()
код:
do
{
//reset ISP1581
ISP1581_RESET = 0;
Start_mSEC_Timer(100);
ISP1581_RESET = 1;
Start_mSEC_Timer(100);

if(D14_Cntrl_Ptr->D14_CHIP_ID_MBYTE == 0x81 && D14_Cntrl_Ptr->D14_CHIP_ID_MSB == 0x15)
break;
}while(1);


т.е пока не прочитается идентификатор чипа. И перед подключением 1,5 кОм к D+ (установка бита SOFTCT) около 0,1 сек.
Могу дать пример, по которому я разбирался с ISP1581 написанный на keil - скачал с какого-то китайского сайта

SimpleSoft
Junior Member

Сообщений: 6
Откуда: Минск
Регистрация: Апрель 2006

написано 18 Апреля 2006 13:40ИнфоПравкаОтветитьIP

nagserg, если не трудно, выложите, пожалуйста, пример.
З.Ы.: Дело то в том, что ChipID считываю нормально.

nagserg
Junior Member

Сообщений: 19
Регистрация: Декабрь 2005

написано 18 Апреля 2006 14:27ИнфоПравкаОтветитьIP

Закачал на webfile - это по которому я разбирался
и PHILIPS ISP1583 Mass Storage Firmware - с этим я не разбирался

SimpleSoft
Junior Member

Сообщений: 7
Откуда: Минск
Регистрация: Апрель 2006

написано 20 Апреля 2006 11:07ИнфоПравкаОтветитьIP

Спасибо. Попробую.
Но что за напасть - уже 3я микросхема выгорает! Vbus не выставляется даже если подключаешь к USB. Может кто поборол проблему?

SimpleSoft
Junior Member

Сообщений: 8
Откуда: Минск
Регистрация: Апрель 2006

написано 28 Апреля 2006 09:20ИнфоПравкаОтветитьIP

неужели ни у кого не горела?

nagserg
Junior Member

Сообщений: 20
Регистрация: Декабрь 2005

написано 26 Мая 2006 14:07ИнфоПравкаОтветитьIP

У меня не горела. По питанию стоят кондеры 0,1 Мкф 8 штук в параллель. На какой стадии находишься?

Orange
Junior Member

Сообщений: 1
Откуда: Россия
Регистрация: Январь 2007

написано 09 Января 2007 22:22ИнфоПравкаОтветитьIP

Похожая проблема с энумерацией.Пытаемся запустить контроллер ISP1583. До этого с контроллером ISP1581 все работало (проблемы были другого характера).

Ситуация следующая - приходят прерывания:
SUSP
BRST
HS_STA
EP0SETUP (80 06 00 01 00 00 12 00)
EP0TX
BRST
HS_STA
EP0SETUP (80 06 00 01 00 00 12 00)
EP0TX
BRST
HS_STA
EP0SETUP (80 06 00 01 00 00 12 00)
EP0TX
SUSP
RESM

По приходу очередного EP0SETUP из контроллера считываем 80 06 00 01 00 00 12 00 , что расцениваем как запрос дескриптора (Device descriptor 18байт). Следующие действия таковы:

- ставим EP индекс 1 -> 0x2C
- устанавливаем длину пакета 18 ->0x1C; 0 ->0x1D
- пишем данные в FIFO [12 01 00 02 00 00 00 40 85 15 01 00 01 00 01 02 03 01] -> 0x20
- ставим DSEN 4->0x28
- ждем прихода TX (приходит)
- ставим EP индекс 0 -> 0x2C
- ставим STATUS бит 2 -> 0x28

Пытались с разными вариациями обрабатывать TX, устанавливать DSEN, менять скорости передачи, результат всегда одинаковый. Ощущение что в компьютер приходит пачка 0 или
вообще пустая посылка, так как появившееся устройство имеет USB\VID_0000&PID_0000.
То же самое firmware (без исправлений) с контроллером 1581 работает.

Значения регистров контроллера записываются/читаются правильно. Судя по принятой последовательности от хоста канал приема тоже работает.

Мучаемся уже второй месяц, помогите понять что делаем не так.
Или хоть в каком направлении копать. Заранее благодарны

Ваш ответ:

Коды форума
Смайлики


Ник:    Пароль       
Отключить смайлики

Все время MSK

Склеить | Разбить | Закрыть | Переместить | Удалить

Новая тема | Написать ответ
Последние сообщения         
Перейти к:

Свяжитесь с нами | skunksworks.net

Copyright © skunksworks.net, 2000-2018

Разработка и техническая поддержка: skunksworks.net


Рейтинг@Mail.ru Яндекс.Метрика