USB Donanımı ve D+ D- pinlerinden kaynaklanan sorunlar

Başlatan z, 13 Eylül 2015, 13:37:01

z

Elimdeki kit USB yazılımlarında sorun oluşturuyordu. Neyseki bu durumun, USB konnektörünün pcbye lehim sorunundan kaynaklandığı ortaya çıktı ve lehimleyince sorun düzeldi. ( https://www.picproje.org/index.php/topic,61058.msg472697.html#msg472697 )

Fakat bu durum son derece kritik uygulamalarda başımıza gelirse çözüm üretmek gerektiğini düşündüm.

Hiç sorunu olmayan bir devrede USB haberleşme devam etmekteyken USB D+ D- pinlerinden birisi ile Gnd arasına kısa süreliğine 100nF gibi bir kapasite bağlayıp hemen ardından ayırarak hattaki sinyali kısa bir süre için bozduğumda yazılmın artık haberleşme yapmadığını farkettim. İşletim sistemi usb cihazı görmeye devam ettiğine göre sorun, MCU üzerindeki yazılımdan ya da küçük bir ihtimal USB Donanımından kaynaklanıyordu.

PC'den data gönderdiğim halde MCU daki usb rutinleri bu veriyi algılamıyordu.

USB_ISTR registerinde hata durumları için ayrılmış bitler de hatta bağladığım bu kapasiteden dolayı değer değiştirmiyordu.

Sonuçta hoşuma gitmese de PC'den belli bir süre içinde veri alınmadığında böyle bir sorun oluştuğunu varsayıp usb donanımını kaldırıp yeniden devreye sokarak PC tarafının yeni baştan enumeration işlemleri yapmasını sağlayarak sorunu çözdüm.

Fakat PC den MCU'ya hiç veri yollamadığım durumlarda bile bu şekilde USB hattına yapılacak müdahaleden hemencecik haberdar olmak istiyorum.

Elimde STM ailesi için daha başka usb mcu yazılımı olmadığı için ben deneyemedim. Bu yüzden, D+ yada D- hattına elinizle 100nF gibi bir kapasite bağlayıp çekerek iletişime müdahale ettiğinizde mevcut yazılımlarınızda haberleşmenin devam edip etmediğini kontrol edebilirmisiniz?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Klein

STM32L100 Kısa süreli bağlarsam, kapasiteyi çektiğimde veri alıp göndermeye devam edebiliyorum.
Kapaasite uzun süre bağlı kalırsa  Windows aygıtı arızalı olarak işaretliyor.