| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| въпрос за USB комуникация с контролер STM32F103 http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=9623 |
Страница 1 от 1 |
| Автор: | loser [ Нед Дек 18, 2011 2:24 pm ] |
| Заглавие: | въпрос за 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 байтови буфери, ако успея да намеря проблема, ще сложа решението тук |
|
| Автор: | miro_atc [ Нед Дек 18, 2011 4:26 pm ] |
| Заглавие: | Re: въпрос за USB комуникация с контролер STM32F103 |
какъв е класа на устрйството? (CDC, Mass storage...)? |
|
| Автор: | loser [ Нед Дек 18, 2011 9:32 pm ] |
| Заглавие: | 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 дни отново, но изглежда, че имам проблеми с конфигурационния дескриптор (а може би и с други дескриптори)... |
|
| Автор: | ps66 [ Нед Дек 18, 2011 10:49 pm ] |
| Заглавие: | Re: въпрос за USB комуникация с контролер STM32F103 |
ако чипа е "full speed" - макс. пакет е 64 байта ! няма какво да се мъчиш! |
|
| Автор: | miro_atc [ Нед Дек 18, 2011 11:30 pm ] |
| Заглавие: | Re: въпрос за USB комуникация с контролер STM32F103 |
bulk е ограничен до 16 байта, iso може 1к ако не беше и повече. аз затова питах какъв дивайс иска, щото някои поддържат само bulk и няма как да им вдига размера. Иначе е задължително дексрипторите да са коректни и каквото пише в тях да се поддържа и от софтуера. Примерно дексриптора като каже ползва се ендпоинт 3 в еди какъв си режим, софтуера (прекъсвания, писания/четения) трябва да поддържат същия ендпоинт и същия режим. Така че ако се бара дискриптора, трябва и софтуера... но само в рамките на стандарта |
|
| Автор: | ps66 [ Нед Дек 18, 2011 11:33 pm ] | |||||||||
| Заглавие: | Re: въпрос за USB комуникация с контролер STM32F103 | |||||||||
в грешка си ! за bulk: FS - max 64b HS - max 512b за дескрипторите е ясно че ако ги е оплескал ... |
||||||||||
| Автор: | miro_atc [ Пон Дек 19, 2011 12:00 am ] |
| Заглавие: | Re: въпрос за USB комуникация с контролер STM32F103 |
правописна грешка |
|
| Автор: | loser [ Пон Дек 19, 2011 12:57 am ] |
| Заглавие: | Re: въпрос за USB комуникация с контролер STM32F103 |
да, чипът е full-speed; сега проверих - наистина максималният пакет е 64 байта - това ми е убегнало; явно остава така; понеже чипът има възможност за двойно буфериране - ще се опитам да го включа благодаря много, спестихте ми много време |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|