Гость MALLOY2 7 июля, 2010 Опубликовано 7 июля, 2010 · Жалоба Толи я что то забыл, толи что то не дочитал давно уже не занимался USB. Суть проблемы. Инициализирую USB, получаю ресет от компа, получаю Setup пакет размером 8 байт с содержимым 0x80, 0x60, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 Все как бы честно запрос дескриптора, но поля wValue и wLength равны нули, из за чего я перехожу в STALL, сначала думал что что то не так копирую, посмотрел в отладчике прямо PMA область, там теже значения, что я делаю не так ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 7 июля, 2010 Опубликовано 7 июля, 2010 · Жалоба Все как бы честно запрос дескриптора... При запросе дескриптора поле bRequest должно быть равно 0х06, а у Вас оно 0х60. Это не запрос дескриптора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 26 7 июля, 2010 Опубликовано 7 июля, 2010 · Жалоба Толи я что то забыл, толи что то не дочитал давно уже не занимался USB. Суть проблемы. Инициализирую USB, получаю ресет от компа, получаю Setup пакет размером 8 байт с содержимым 0x80, 0x60, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 Все как бы честно запрос дескриптора, но поля wValue и wLength равны нули, из за чего я перехожу в STALL, сначала думал что что то не так копирую, посмотрел в отладчике прямо PMA область, там теже значения, что я делаю не так ? Я бы посоветовал вам не придумывать заново реализацию протокола USB, а воспользоваться уже готовой библиотекой от производителя: STM32_USB-FS-Device_Lib (на данный момент свежая версия v3.2.0): http://www.st.com/stonline/products/suppor...iles/um0424.zip http://www.st.com/stonline/products/literature/um/13465.pdf Утилита для компа "USB HID demo" с исходниками: http://www.st.com/stonline/products/suppor...iles/um0551.zip http://www.st.com/stonline/products/literature/um/14711.pdf Я за день прикрутил эти исходники в свой проект (у меня среда CrossWorks), Так мое устройство (HID) сразу заработало как надо. Нужно было лишь подправить под себя один файл - дискрипторы (descr.c) и откорректировать все H файлы из STM32_USB-FS-Device_Lib, чтобы проект собирался, поскольку у меня смесь CPP и C файлов (стандартная запись с применением extern "C" {...} ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 7 июля, 2010 Опубликовано 7 июля, 2010 · Жалоба При запросе дескриптора поле bRequest должно быть равно 0х06, а у Вас оно 0х60. Это не запрос дескриптора. это я тут не правильно написал, естественно там 6. бы посоветовал вам не придумывать заново реализацию протокола USB, а воспользоваться уже готовой библиотекой я его не придумываю просто портирую на этот контроллер, естественно в первую очередь на либу смотрел, и понял годится она только в демки в общем гомно-код мне не нужен. Вобщем разобрался в чем было дело, неправильно копировал с PMA области, все дело в хитрой адресации инкрементируем на 4 читаем 2 байта инкрементируем на 4 читаем два байта и т.д., фактически указатель на 32 бита инкрементируется, а читается по нему 16, а я инкрементировал указатель на 16 бит. Это: 80 06, 00, 01, 00, 00, 40, 00 Выглядит в PMA памяти вот так: 80 06 00 00 00 01 00 00 00 00 00 00 40 00 00 00 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 7 июля, 2010 Опубликовано 7 июля, 2010 · Жалоба Вобщем разобрался в чем было дело, неправильно копировал с PMA области, все дело в хитрой адресации инкрементируем на 4 читаем 2 байта инкрементируем на 4 читаем два байта и т.д. Точно так же на STM32 располагаются в памяти байты бэкап домена. Тут надо быть внимательнее, чтобы не наломать дров :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 9 июля, 2010 Опубликовано 9 июля, 2010 · Жалоба Точно так же на STM32 располагаются в памяти байты бэкап домена. Тут надо быть внимательнее, чтобы не наломать дров :) я тут уже писал.... код функций который копирует данные между PMA и RAM нада кунцкамеру отдавать. я одну из функций переписал короче в 8 раз по выходному асму! шерсть на заднице дыбом встала когда внимательнее поглядел как "там у индусов" сделано :) я предлагаю стандартные библиотеки ST называть не библиотеками а документацией. я лично то что они документацией называют я органически не воспринимаю. А так смотриш библиотеку - a.... вот оно оказываеццо как работает! и пишеше свой код :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 9 июля, 2010 Опубликовано 9 июля, 2010 · Жалоба я предлагаю стандартные библиотеки ST называть не библиотеками а документацией. я лично то что они документацией называют я органически не воспринимаю. А так смотриш библиотеку - a.... вот оно оказываеццо как работает! и пишеше свой код :) Нормальная у них документация. По бэкап домену совсем всё просто и понятно. По USB потруднее воспринимается, но тоже не беда. А библиотеки это да, кривые, но это сейчас так модно - что у ST, что у ATMEL, что у NXP :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 9 июля, 2010 Опубликовано 9 июля, 2010 · Жалоба Нормальная у них документация. По бэкап домену совсем всё просто и понятно. про бекап то я и не читал - до сих пор непонял для чего это можно применить в моих случаях ;) читал про SDIO ETHERNET, не понравилось - непонятно. смотрел в библиотеку - непонравилось - но понятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aner 6 5 апреля, 2012 Опубликовано 5 апреля, 2012 · Жалоба Столкнулся с проблемой для 103-го в W7-32bit, чего нет XP-32-bit. Суть проблемы: Инициализирую USB, получаю ресет от компа, получаю Setup пакет ... без проблем на XP. Тот же девайс, тотже чип с тойже программой на W7-ке Инициализирую USB, НЕ получаю ресет от компа! Резистор подтяжки 1K. USB Dfu c 0, на тойже плате, тот самый чип без проблем на обоих копах. Может кто сталкивался с таким? Как лечить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Danis 0 9 апреля, 2012 Опубликовано 9 апреля, 2012 · Жалоба Я бы посоветовал вам не придумывать заново реализацию протокола USB, а воспользоваться уже готовой библиотекой от производителя: STM32_USB-FS-Device_Lib (на данный момент свежая версия v3.2.0): Все-таки, у меня возникли некие затруднения при работе с этой библиотекой. Я уже запускал VCP на STM32F103XX, работало все хорошо. Тоже самое для STM32F2xx уже с новой USB ”либой”, немного не корректно работает. Например, пакет размером 64 байта не желает по каким-то причинам выходить из контроллера в ПК. Если «пулять» 63 или 65 байт, все выходит и данные можно считать в ПК. Дальше, при программном буфере USB Rx 2048 байт, у меня теряется каждый 16-тый пакет принятый от ПК. Если увеличиваю этот буфер в 10 раз, то теряется в 10 раз меньше, мистика конечно, но чудес не бывает, надо дебажить все и разбираться, че там не так. Вот мое субъективное мнение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться