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

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

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

Подписаться

Автор Тема:   ISP1581 передача/приём байтов
Mozart
Junior Member

Сообщений: 1
Откуда: Russia
Регистрация: Июль 2008

написано 03 Июля 2008 13:47ИнфоПравкаОтветитьIP

использую драйвер USBIO, микросхема включена в GENERIC_MODE
записываю данные так
1. выбираю конечную точку (ЕР)
2. устанавливаю размер буфера
3. записываю данные в буфер через порт дата
4. устанавливаю status in control register
.... первый пакет проходит и всё... что не так?
а читаю так:
1. выбираю конечную точку (ЕР)
2. считываю из буфера длину сообщения
3. потом из дата порт читаю данные
но на втором пункте читаю длину буфера = 0!!! что не так?

------------------
жизнь такая интересная штука что хочется и поспать и поесть иногда...

Весельчак У
Moderator

Сообщений: 9761
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 04 Июля 2008 00:18ИнфоПравкаОтветитьIP

Mozart
Junior Member

Сообщений: 2
Откуда: Russia
Регистрация: Июль 2008

написано 04 Июля 2008 00:23ИнфоПравкаОтветитьIP

это я всё прочитал... почему-то у всех проблемы с прерываниями... у меня же проблема не в этом, проблема заключается в том что после ресета, передаётся один пакет, потом опять ресет опять передаётся один пакет... и пока нет ресета ничего не передаётся, у меня возникло ощущение что я не отвечаю на какой-то АСК или PING, но как его поймать?

Добавление от 04 Июля 2008 18:15:

вот так вот я про инициализировал конечные точки

код:

void Init_Endpoint(void)
{
//---ep1rx
WriteByteToISP(ISP_REG_ENDP_INDX, ISP_ENDP_EP1RX);
WriteByteToISP(ISP_REG_MAXPCKT_SIZE, EP1_PACKET_SIZE);
temp = (1 << ISP_ENDP_TYPE_INTE)|(1 << ISP_ENDP_TYPE_ENABLE);
WriteByteToISP(ISP_REG_ENDP_TYPE, temp);

//---ep1tx
WriteByteToISP(ISP_REG_ENDP_INDX, ISP_ENDP_EP1TX);
WriteByteToISP(ISP_REG_MAXPCKT_SIZE,EP1_PACKET_SIZE);
temp = (1 << ISP_ENDP_TYPE_INTE)|(1 << ISP_ENDP_TYPE_ENABLE);
WriteByteToISP(ISP_REG_ENDP_TYPE, temp);

//---ep2rx
WriteByteToISP(ISP_REG_ENDP_INDX, ISP_ENDP_EP2RX);
temp = 0xFF00 | (1 << ISP_ENDP_TYPE_ENABLE)|(1 << ISP_ENDP_TYPE_BULK);
WriteByteToISP(ISP_REG_ENDP_TYPE, temp);
WriteByteToISP(ISP_REG_MAXPCKT_SIZE, EP2_PACKET_SHORT_SIZE);

//---ep2tx
WriteByteToISP(ISP_REG_ENDP_INDX, ISP_ENDP_EP2TX);
temp = (1 << ISP_ENDP_TYPE_ENABLE)|(1 << ISP_ENDP_TYPE_BULK);
WriteByteToISP(ISP_REG_ENDP_TYPE, temp);
WriteByteToISP(ISP_REG_MAXPCKT_SIZE, EP2_PACKET_SHORT_SIZE);
}


а вот это функция передачи байтов в комп точка настроена Bulk, передаю я по "приходу прерывания" от EP2TX...

код:

int write_endpoint(unsigned char endp, unsigned int lenB, unsigned char *buf)
{
int CountData, data;
CntrlFun = 0;

WriteByteToISP(ISP_REG_ENDP_INDX, endp); //choose EP
WriteByteToISP(ISP_REG_BUFF_LENGTH, lenB);

for (CountData = 0; CountData < lenB; CountData += 2)
{
data = *buf++;
data |= *buf++ << 8;
WriteByteToISP(ISP_REG_DATA, data);
}
//if packet short
if (lenB < EP2_PACKET_SHORT_SIZE)
{
CntrlFun = (1 << ISP_CNTRL_VENDP);
WriteByteToISP(ISP_REG_CNTRL_FUN, CntrlFun);
}

return CountData;
}



что я делаю не так?...


------------------
жизнь такая интересная штука что хочется и поспать и поесть иногда...

[Это сообщение изменил Mozart (изменение 04 Июля 2008 18:16).]

Весельчак У
Moderator

Сообщений: 9764
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 05 Июля 2008 21:48ИнфоПравкаОтветитьIP

Mozart
Лично я ничего не могу сказать. Я использую FTDI.

Mozart
Junior Member

Сообщений: 3
Откуда: Russia
Регистрация: Июль 2008

написано 05 Июля 2008 22:38ИнфоПравкаОтветитьIP

фтди пока не может обеспечить хай спид...

Ваш ответ:

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


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

Все время MSK

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

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

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

Copyright © skunksworks.net, 2000-2018

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


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