|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 12:29 am
|
Страница 1 от 1
|
[ 8 мнения ] |
|
въпрос за USB комуникация с контролер STM32F103
| Автор |
Съобщение |
|
loser
Ранг: Минаващ
Регистриран на: Съб Ное 12, 2011 9:21 pm Мнения: 62
|
 въпрос за USB комуникация с контролер STM32F103
работя с контролер STM32F103 на ST; ST предоставят различни примери за този контролер, има и примери за комуникация по USB; досега ползвах без проблеми техните примери, сега се опитвам да повиша скоростта на комуникацията по USB, и един от подходите, към които съм се насочил, е да увелича размера на USB endpoint буферите, за да се предават по възможност повече данни накуп; до момента всички IN и OUT USB endpoint-и са с размер 64 байта и работят стабилно; днес реших да увелича един от IN endpoint-ите на 128 байта - за целта увеличих размера на буфера за този endpoint в контролера, и преизчислих параметрите на останалите endpoint-и с оглед на новата конфигурация
ситуацията е следната: така настроен, контролерът работи стабилно при условие, че (макар да съм увеличил размера на endpoint буфера до 128 байта) ограничавам софтуерно максималния размер на изпращаните пакети до 64 байта (както беше досега); но ако се опитам да пращам повече от 64 байта накуп, фирмуеърът увисва, а програмата, която комуникира с устройството от windows машина, пропада с код за грешка 31 - "ERROR_GEN_FAILURE 31 (0x1F) A device attached to the system is not functioning"
не успях да намеря примери за този контролер, които използват буфери с размер по-голям от 64 байта, не намирам и нещо специфично в ръководството на контролера; поради спецификата на конфигурацията, много трудно е да се закача с дебъгер към платката
ще съм щастлив ако някой може да сподели опит или да даде съвет; най-вероятно засега ще се върна на 64 байтови буфери, ако успея да намеря проблема, ще сложа решението тук
|
| Нед Дек 18, 2011 2:24 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: въпрос за USB комуникация с контролер STM32F103
какъв е класа на устрйството? (CDC, Mass storage...)?
|
| Нед Дек 18, 2011 4:26 pm |
|
 |
|
loser
Ранг: Минаващ
Регистриран на: Съб Ное 12, 2011 9:21 pm Мнения: 62
|
 Re: въпрос за USB комуникация с контролер STM32F103
за основа ползвам примера DFU (device firmware upgrade) към библиотеките на ST (може би изборът ми е неподходящ); сега погледнах дескрипторите - класът в този случай е 0, не съм променял нищо по конфигурационния и интерфейсния дескриптори; бях пропуснал в един от дескрипторите за endpoint-ите да променя размера на пакета от 64 на 128 байта, когато направих тази промяна - драйверът на устройството спря да отлепя (за драйвер ползвам библиотеката WinUSB от WDK (windows driver kit)), излиза грешка - This device cannot start. (Code 10); успях да намеря този линк за генериране на трейсове от WinUSB: http://blogs.msdn.com/b/usbcoreblog/arc ... e-log.aspxлогът, който излиза, е: [1]0004.003C::12/18/2011-15:38:04.183 - DriverObject 0xFFFFFA8007D91060 [1]0004.003C::12/18/2011-15:38:04.184 - Preparing hardware [2]0004.003C::12/18/2011-15:38:04.203 - Unable to select the default configuration, failing Start [2]0004.003C::12/18/2011-15:38:04.203 - Enter: WinUSB_ReleaseHardware [2]0004.003C::12/18/2011-15:38:04.203 - Exit: WinUSB_ReleaseHardware (STATUS_SUCCESS) [3]0004.0038::12/18/2011-15:38:04.204 - Handling Device Cleanup ще мога да се занимавам след 2-3 дни отново, но изглежда, че имам проблеми с конфигурационния дескриптор (а може би и с други дескриптори)...
|
| Нед Дек 18, 2011 9:32 pm |
|
 |
|
ps66
Ранг: Форумен бог
Регистриран на: Пет Яну 19, 2007 9:16 am Мнения: 1063 Местоположение: путинофили: "иди н***й"
|
 Re: въпрос за USB комуникация с контролер STM32F103
ако чипа е "full speed" - макс. пакет е 64 байта ! няма какво да се мъчиш!
|
| Нед Дек 18, 2011 10:49 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: въпрос за USB комуникация с контролер STM32F103
bulk е ограничен до 16 байта, iso може 1к ако не беше и повече. аз затова питах какъв дивайс иска, щото някои поддържат само bulk и няма как да им вдига размера. Иначе е задължително дексрипторите да са коректни и каквото пише в тях да се поддържа и от софтуера. Примерно дексриптора като каже ползва се ендпоинт 3 в еди какъв си режим, софтуера (прекъсвания, писания/четения) трябва да поддържат същия ендпоинт и същия режим. Така че ако се бара дискриптора, трябва и софтуера... но само в рамките на стандарта 
|
| Нед Дек 18, 2011 11:30 pm |
|
 |
|
ps66
Ранг: Форумен бог
Регистриран на: Пет Яну 19, 2007 9:16 am Мнения: 1063 Местоположение: путинофили: "иди н***й"
|
 Re: въпрос за USB комуникация с контролер STM32F103
в грешка си ! за bulk: FS - max 64b HS - max 512b за дескрипторите е ясно че ако ги е оплескал ...
|
| Нед Дек 18, 2011 11:33 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: въпрос за USB комуникация с контролер STM32F103
правописна грешка 
|
| Пон Дек 19, 2011 12:00 am |
|
 |
|
loser
Ранг: Минаващ
Регистриран на: Съб Ное 12, 2011 9:21 pm Мнения: 62
|
 Re: въпрос за USB комуникация с контролер STM32F103
да, чипът е full-speed; сега проверих - наистина максималният пакет е 64 байта - това ми е убегнало; явно остава така; понеже чипът има възможност за двойно буфериране - ще се опитам да го включа благодаря много, спестихте ми много време 
|
| Пон Дек 19, 2011 12:57 am |
|
|
|
Страница 1 от 1
|
[ 8 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 1 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|