Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ISP1583 EP0OUT прием больше 64 байт
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
klaks
И опять вопрос про isp1583.
Возникла необходимость принимать по Control Pipe данные длиной более 64 байт, т.е. состоящие более чем из одного пакета данных.
Проблема в том, что первый пакет принимается правильно, а в остальных находится мусор.
Посылаю убывающую последовательность 0xFF ... 0x00 из 256 байт, умещается в 4 пакета по 64 байта.

Алгоритм как описан в Programming Guide: приходит setup token, обрабатываем, устанавливаем DSEN указывая на стадию данных, ждем прерывания EP0RX, в прерывании получаем размер буфера, считываем указанное количество байт, выходим из прерывания и так все пакеты, в конце подтверждаем передачу.

Контрольные точки как указано в мануале никак не инициализирую.
Подскажите, пожалуйста, в чем может быть загвоздка?

Приходят такие данные:
klaks
Проверил на другой плате - все повторяется.
Что примечательно. Я думал это происходит перманентно. Но! Посылаю 256 байт несколько раз. Время от времени присылаются верные посылки. Может прийти первые 128 байт правильными, может только первые 64 байта, может вообще вся посылка быть верной.
Есть мысли куда копать?
Грешу на глючность isp1583
klaks
Тему можно закрывать. Разобрался.
Выводы: 1. Прежде чем паниковать, проверь софт хоста. 2. Если не уверен, не передавай в функции указатели на локальные массивы. 3. Не доверяй софту, сделанному на коленке.
Тупо асинхронная операция не завершилась, а локальный массив уже был уничтожен и заполнен другими данными в стеке.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.