|
|
  |
непонятки в USB и isp1581, мелкие вопросы... |
|
|
|
Apr 24 2008, 08:32
|
Гуру
     
Группа: Свой
Сообщений: 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 снимают с производства?
|
|
|
|
|
Apr 24 2008, 09:17
|

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

|
Цитата(aaarrr @ Apr 24 2008, 12:32)  Да. К этому сводится программа для практически любого USB контроллера. Если опыт работы с USB есть, то освоить новый контроллер проблемы не составляет.
А Вы в курсе, что ISP1581 снимают с производства? да, просто в магазине isp1583 пока нету, по крайне мере в терре, а для изучения я думаю, пока хватит.
--------------------
все косяки, даже о которых не знает сам разработчик, - мои
|
|
|
|
|
May 6 2008, 14:56
|

Частый гость
 
Группа: Свой
Сообщений: 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?? з.ы. просто написал что-то стрёмно что не правильно... а железка скоро появится...
--------------------
все косяки, даже о которых не знает сам разработчик, - мои
|
|
|
|
|
May 15 2008, 13:43
|

Частый гость
 
Группа: Свой
Сообщений: 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...
--------------------
все косяки, даже о которых не знает сам разработчик, - мои
|
|
|
|
|
May 15 2008, 14:56
|

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

|
Цитата(aaarrr @ May 15 2008, 17:45)  А что осциллограф показывает?  ????? ваще фигня выходит... вместо 0х0С на выходе 0х03... будем смотреть... з.ы. вообще не удобно смотреть на этих ножках...
--------------------
все косяки, даже о которых не знает сам разработчик, - мои
|
|
|
|
|
May 20 2008, 09:55
|

Частый гость
 
Группа: Свой
Сообщений: 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();
--------------------
все косяки, даже о которых не знает сам разработчик, - мои
|
|
|
|
|
May 29 2008, 13:52
|

Частый гость
 
Группа: Свой
Сообщений: 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 кладу байты... и всё??
--------------------
все косяки, даже о которых не знает сам разработчик, - мои
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|