Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

USB generic device

Başlatan hasankara, 14 Ağustos 2013, 09:08:04

hasankara

pic32mx440f128h usb için basit bir arayüz oluşturmam gerekli. ancak c# ta bir hayli yeni sayılırım. lafı uzatmadan konuya girmek istiyorum.

microchip in, usb modülü için hazırlamış olduğu 4 tane firmware uygulaması (cdc_serial, generic_device, hid_mouse, msd_device) bulunmakta elimde. bunların yanında microchip in hazırlamış olduğu generic_device için hazırladığı bir arayüz bulunmakta. taaaaa 2004 te yazılmış bir arayüz. generic_device firmwaresini kurduktan sonra bu arayüzle cihaza bağlanıp iki kanal adc verileri sorunsuz şekilde bilgisayara gönderilmekte. gelen veriler arayüzde görüntülenmekte. keşke bu arayüzün kaynak kodlarına ulaşabilsem :) .

internet üzerinde hid device için hazır arayüzler kaynak kodları ile birlikte mevcut. araştırmalarıma göre karşılıklı olarak PRODUCT ID (PID) ve VENDOR ID (VID) değerleri karşılıklı tuttuğunda arayüz le cihaz haberleşmeye başlayabilirler gibi anlamış durumdayım. ancak farklı bir ayar daha bulunmakta sanırım. çünkü hazır kodlar üzerinde pid ve vid değerlerini eşitlememe rağmen cihaz bulunamamakta.

hid aygıtlar için c# da hazır bir dll bulunuyormuş sanırım. bu dll üzerindeki kodlar ile haberleşme sağlanıyor. ancak zannediyorum ki benim firmware hid aygıt olarak görüntülenmediğinden dolayı arayüz ile ilgili haberleşme sıkıntısı yaşıyorum.

benim için en uygun firmwarenin deneric_device olduğunu düşünerek bu c kodları üzerinde değişiklikler ile istediğimi yapmaya niyetlendim. hid device firmwaresini yükleyerek de arayüzle haberleşmek aklıma geldi ancak bahsettiğim gibi generic devicenin daha anlamlı olduğunu düşündüm.

generic device için farklı bir dll mi aramam gerekir? anladığım kadarıyla hid dediğimiz zaman protokolden bahsetmiş oluyoruz. bu protokol mevzularından biraz açıklamalarda bulunabilirmisiniz? ne nedir şeklinde. şimdiden teşekkür ediyorum herkeze..

hasankara


t2

40kbyte / sn hız veya daha azı yeterliyse HiD kullanmalısınız. Generic hid.
Generic custom usb aygıt veya cdc aygıtda hız fazla olur,  sürücü tantanası olur. Cdc win7 de otomatik algılanırmış.

hasankara

öncelikle cevap için teşekkür ediyorum.

adc değerlerini pc e gönderip ekranda okunan değerleri göstermeye çalışacağım. 40kb/sn yeterli olur.  generic device için c# da elle tutulur birşey bulamadım çünkü. staj sürem 1 ay olduğu için bazı şeylere hazır konmam gerekiyor, bu sebeple hid_mouse örneği üzerinden gitmeye karar verdim. c# örneği ile cihaz bulundu mesajı geliyor şimdilik. tahmin ediyorum ki kısa sürede read write fonksiyonlarını kullanabiliyor olacağım. peki kıyaslama açısından, generic_device nin hızı ne olur diye sorsam?

Elektroemre

Kontrol amaçlıysa en sorunsusu t2 hocamın dediği gibi HID haberleşme driver derdi yok, bir çok örnek var (Hem MCU hemde PC tarafında DLL için)

VID PID dışında, HID descriptor'ında paket büyüklüğü (1 ile 64 byte arası), oluşturulan kanlların hangi EP (End Pointte sonlandığı gibi) bilgilerde yer almakta. Ancak VID ve PID doğruysa yinede PC tarafında cihazı görürsün ancak haberleşmeye çalıştığğında program patlar ya da MCU dataları alamaz vs. vs. Kullanılan library VID ve PID dışında Üretici adı ve Serial No gibi bilgileri dikkate alıyorsa o zaman haberleşmemesi normal.

(Eğer aynı PC'ye birden fazla aynı cihaz bağlanıyorsa aynı VID ve PID'ı kullanıyorsa Serial noyu kontrol etmek kaçınılmaz bir gereklilik)

Microchip librarysinde en uygun örnek Custom HID örneği. Örneği hiç kurcalamadan aynen projene entegre et.
Sorunsuz çalışır. Yok ben daha derinlere inip takla attıracağım dersen ücretli ya da ücretsiz alternatif HID librarylerine bakacaksın.

HID'nin hızı yetersizse, yine Microchip'in WinUSB örnekleri incelebilir. Denemelerimde 1Mbyte/saniye ye kadar hızlar gördüm.


hasankara

vermiş olduğunuz bilgiler için teşekkür ediyorum. sanırım sizde generic device olarak haberleşmede kullandınız. elinizde bu konuda yapılmış c# örnekleri varsa ve bir mahsuru olmazsa bizimle paylaşabilir misiniz?

güncel olarak bir kaç şeyler daha sorabilirim. aygıt yöneticisinde cihazım mouse logosu şeklinde gözüküyor :D . mplab8 versiyonu ile c32 derleyicisi ile hazır kütüphanede çok fazla ayar bulunmakta. bilginiz dahilinde ise bu ayarı nereden değiştirebilirim diye sormak isterim.

t2

mousela kolay haberleşemezsiniz.  çok zor iş.  emin olmak isterseniz önce elinizdeki  mousla haberleşin.

Elektroemre

Microchip Library'i bilgisayarına indir kur, orada tüm örnekler eksiz olarak hem mcu kodu, hem PC kodu olarak derlenmeye hazır olarak var.
Beğendiğin bir tanesini derle dene, sonra isteğine göre modifiye edersin.

hasankara

#8
evet bulduğum örnekleri microchip in pic32mx_solutions klasöründen edindim. arayüzleri c++ yazılmış olan bazı arayüzlerini buldum. ancak c# a göre çok karışık geldi o yüzden c# ile yapmaya niyetlenmiştim.

birde yeni denediğim bir durumu da sorayım. vid:0x1234 pid:0001 yaptım karşılıklı olarak arayüz bulmadı bu sefer, aygıtlarda belirtilmemiş kategorisinde yer aldı cihazım ve device monitör de insan arabirim aygıtlarında yer almakta. bu durum kafam çok karıştırdı.

arayüz kaynak kodu gayet sade ve vid ve pid değerlerini girilebildiğini görüyorum.

mesaj birleştirme:: 15 Ağustos 2013, 16:18:31

bilgisayar arayüzünü arkadaştan edindim. oda 18f4550 ve microc ile çalışıyor ve gayet rahat ve sade bir şekilde haberleşme kodlarını kullanabiliyor. ben elimdeki pic32mx i microc de örnek bir program yükleyerek denedim arkadaşın yaptığı gibi rahat şekilde kullanılıyor. acaba mplab da bu işi yapmak istiyor olmakla gereksiz yere mi huysuzlanıyorum?

Elektroemre

Hıza yeterliyse kendini hiç kasma,

USB > Device - HID - Custom Demos

klasöründe arayüz için C# örneği, MCU koduda mevcut. Derle tepe tepe kullan, defalarca denendi sorunsuz çalışıyor.

hasankara

xc32 derleyicisini kurdum. örnekleri bu şekilde deneyebildim. evet karşılıklı denediklerimin hepsi çalıştı. HID CUSTOM DEMO kodunu çözmeye başladım. inşallah sonuçlandırabiliriz.

hasankara

Arkadaşlar, bahsi geçen staj projemi 27 eylül cuma günü sonlandırdım. Bir video çektim yalnız bayağı kötü çekmişim, yinede videoyu sizinle paylaşıp görüşlerinizi almak isterim. Yine uygun bir vaktimde kaynak kodları da dosyaları falan paylaşayım diyorum, isteyen olursa staj defterimi pdf şeklinde bilgisayarda saklıyorum onuda paylaşabilirim. şimdilik iyi seyirler... Elektriksel Test Sistemi