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

 
 
 
Reply to this topicStart new topic
> непонятки в USB и isp1581, мелкие вопросы...
Mozart
сообщение Apr 24 2008, 07:46
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



когда от isp1581 приходит прерывание от ноги INT то я обрабытываю "Interrupt register (address: 18H)" если прерывание пришло от EP0SETUP, то я обрабатываю данные и выясняю какой запрос пришёл от хоста?? (e.g. get_descriptor, get_status...)????
я правильно понимаю???

вся программа сводится к тому чтобы правильно инициировать isp1581 + настроить конечные точки + отвечать на запросы хоста + своё приложение которое отправляет/принимает данные в/из хост/а??


з.ы. железки пока нет. надеюсь будет в пн.


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 24 2008, 08:32
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Mozart @ Apr 24 2008, 11:46) *
когда от isp1581 приходит прерывание от ноги INT то я обрабытываю "Interrupt register (address: 18H)" если прерывание пришло от EP0SETUP, то я обрабатываю данные и выясняю какой запрос пришёл от хоста?? (e.g. get_descriptor, get_status...)????
я правильно понимаю???

Да.

Цитата(Mozart @ Apr 24 2008, 11:46) *
вся программа сводится к тому чтобы правильно инициировать isp1581 + настроить конечные точки + отвечать на запросы хоста + своё приложение которое отправляет/принимает данные в/из хост/а??
з.ы. железки пока нет. надеюсь будет в пн.

К этому сводится программа для практически любого USB контроллера. Если опыт работы с USB есть, то освоить новый контроллер проблемы не составляет.

А Вы в курсе, что ISP1581 снимают с производства?
Go to the top of the page
 
+Quote Post
Mozart
сообщение Apr 24 2008, 09:17
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



Цитата(aaarrr @ Apr 24 2008, 12:32) *
Да.
К этому сводится программа для практически любого USB контроллера. Если опыт работы с USB есть, то освоить новый контроллер проблемы не составляет.

А Вы в курсе, что ISP1581 снимают с производства?

да, просто в магазине isp1583 пока нету, по крайне мере в терре, а для изучения я думаю, пока хватит.


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
Mozart
сообщение May 6 2008, 14:56
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



в исходниках от philipsа есть такие строчки кода к примеру
Код

D14_Cntrl_Reg.D14_ENDPT_INDEX = 0;
D14_Cntrl_Reg.D14_CONTROL_FUNCTION.BITS.STATUS = 1;

и правильно ли я понимаю что на эпюрах в даташите, автоматически устанавливаются сигналы RD/WR, CS, A0/ALE??

з.ы. просто написал что-то стрёмно что не правильно... а железка скоро появится...


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
Mozart
сообщение May 15 2008, 13:43
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



при чтении с ISP1581 получаю одни нули.
последовательность действий такая:
Код
int ReadByteFromISP(unsigned char reg)
{
    int result;
    USBDATA_directt = 0x0000;     //input
    
    USBADDRESS_port = reg;  //set register
    USBCONTROL_port &= ~(1 << ISP_CS);
    USBCONTROL_port &= ~(1 << ISP_RD);

    result = USBDATA_port;

    USBCONTROL_port |= (1 << ISP_RD);
    USBCONTROL_port |= (1 << ISP_CS);

    return result;
}

включён по схеме generic mode: mode1 = mode0 = bus_conf = 1
что может не так?...

конфигурационный пакет заполняется 0х20...


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 15 2008, 13:45
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



А что осциллограф показывает?

Цитата(Mozart @ May 15 2008, 17:43) *
конфигурационный пакет заполняется 0х20...

07.gif ?????
Go to the top of the page
 
+Quote Post
Mozart
сообщение May 15 2008, 14:56
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



Цитата(aaarrr @ May 15 2008, 17:45) *
А что осциллограф показывает?
07.gif ?????

ваще фигня выходит... вместо 0х0С на выходе 0х03... будем смотреть...

з.ы. вообще не удобно смотреть на этих ножках...


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 15 2008, 15:07
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Я, конечно, извиняюсь, но постарайтесь писать вопросы так, чтобы их мог понять кто-нибудь еще. А то получаются мысли вслух.
Go to the top of the page
 
+Quote Post
Mozart
сообщение May 20 2008, 09:55
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



Цитата(aaarrr @ May 15 2008, 19:07) *
Я, конечно, извиняюсь, но постарайтесь писать вопросы так, чтобы их мог понять кто-нибудь еще. А то получаются мысли вслух.
да, хорошо...

проинициализировал я этот исп, и даже USB Trace написал в логе "QUERY_RESOURCES" вот что это значит?? и где надо прописывать VID PID, вот в этом регистре "Chip ID"?
дрова для юсб я не ставил.
инициализация (исп включён как GENERIC_MODE)
Код
    DataControl |= (1 << RESET);
    IOWR_ALTERA_AVALON_PIO_DATA(USBCONTROL_BASE, DataControl);

    ptrStIsp1581->HS_FS_State = FULL_SPEED;
    
    RegISP->Mode =  (1 << ISP_MODE_SOFTCT)|(1 << ISP_MODE_GLINTENA)|    \
                    (1 << ISP_MODE_CLKAON);
   WriteByteToISP(ISP_REG_MODE, RegISP->Mode);
    
    WriteByteToISP(ISP_REG_INT_ENABLE, 0xFFFF);
    WriteByteToISP(ISP_REG_INT_ENABLE + 1, 0xFFFF);

    RegISP->ChID[0] = 0x1012;
    RegISP->ChID[1] = 0x0015;
    WriteByteToISP(ISP_REG_CHIP_ID, RegISP->ChID[0]);
    WriteByteToISP(ISP_REG_CHIP_ID + 1, RegISP->ChID[1]);
    
    Init_Endpoint();


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 20 2008, 10:03
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Mozart @ May 20 2008, 13:55) *
и где надо прописывать VID PID, вот в этом регистре "Chip ID"?

VID и PID нужно прописывать в своей программе. Автоматической энумерации (как у Cypress) у ISP1581 нет. Весь USB Chapter 9 нужно реализовать руками.
Go to the top of the page
 
+Quote Post
Mozart
сообщение May 29 2008, 13:52
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



Цитата(aaarrr @ May 20 2008, 14:03) *
VID и PID нужно прописывать в своей программе. Автоматической энумерации (как у Cypress) у ISP1581 нет. Весь USB Chapter 9 нужно реализовать руками.

всё сделал... vid pid передаётся в дескрипторе устройства... устройство определилось... но только я не понимаю как мне передать к примеру 2 байта в хост?...

1. выбираю конечную точку
2. устанавливаю длину буффера
3. через регистр data port кладу байты...

и всё??


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 18:09
Рейтинг@Mail.ru


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