Kim korkar USB den

Başlatan bunalmis, 14 Temmuz 2006, 21:58:58

z

Evet artik USB cipinin icindeki registerlere erisebiliyor ve iceriklerini degistirebiliyoruz.

Ilk baslarda 0v olarak gorulen  3.3V pini de yazilimla aktif hale getirildi.

Programda degisiklik yapildikca eskisi imha olacagindan sadece en son programi indirebilirsiniz.

Indirmek icin tiklayin. [/b]
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

PhD

@bunalmis hocam bu bilgisayardaki C dilimi (DOS ortamında olan mı)? Paralel porta komut göndermek için mi yazıldı? Bildiğim kadarı mikroişlemci kullanılmıyor.

Bir yeri daha anlamadım PC den gönderdiğimiz komutları USB nin çıkışında nasıl görüyoruz acaba bir devre falan mı var? Çok özür dilerim ama sanırım bir yerleri kaçırdım. :oops: Mümkünse projenin amacını tekrar basit bir şekilde tekrar anlatabilir misiniz? İki defa okudum ama kafamda soru işaretleri var... :oops:
...hiç...

z

Programi W98 uzerinde Borland 3.0 ile C dilinde yaziyorum. Dosda da olabilir.

Koca PC yi PIC islemci gibi dusunun. Cipin ucuna yani paralel porta da usb interface yaptik.



Neden boyle?

PC de program yazmak  PIC gibi bir islemciye program yazip denemekten cok daha kolay.

Ayni PC uzerinde USB driver da yazabiliriz. PC, ayni zamanda  kendi kendinin usb cihazi olacak.

Projeyi tamamladığımızda C dilinde elimizde örnek bir USB programı olacak. Zaten usb yapısını da keşfettiğimiz için yazılımı dilediğimiz işlemciye ufak tefek değişikliklerle uyarlıyabileceğiz.

Bu nedenle PC varken özel bir işlemciye bağlı kalmak istemedik.

(Interface rutinlerini değiştiriverip paralel data transferi, DMA destekli taransfer, int kullanmak hiç sorun değil, o kısımlar zaten USB ile alakalı değil.)

Bu arada programimizin revizyon numarasi 2 oldu.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Ilgilenenlere:

http://www.nectix.com/includes/scripts/download.php?file=16f84usb.0.9.0.asm

Sitesinde USBN9604 ile 16F84den olusan donanim icin yazilmis asm kodlari var.

Kartin USB cikisini kablo ile  ikinci bir bilgisayarin usb girisine bagladim. Yani kartimizin uzerindeki cip artik usb uzerinden A PC si ile, B PC si de cip ile paralel port uzerinden konusacak duruma geldi. Program, daha cok eksik olmasina ragmen calistirildiginda B PC'si USB Devide Not Recognized seklinde mesaj vermeye basladi.

One of the USB devices attached to the computer has mulfunctioned, and windows not recognize it. For assistance in solving this problem, click this message...

Ve clickleyince Unknown device der.

Bu cip icin XP tarafina bir driver da yazmamiz gerekecek. Aramizda bu konuyla ilgilenebilecek arkadaslar varsa yardimlari cok makbule gececek. Fikir de dahil olmak üzere her türlü katkıya açığız.

Bu arada, en son verdigimiz C kodlarda Mikrowire rutinlerinde cok ciddi bir hata yapmisim.

Fakat ilgincdir program dogru calisiyor. Hatayi duzeltim programin son hali  henuz siteye yuklenmedi.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Analyzer

Selam,

Üstad USBN9604 eval. board var. Onun sayfasında komple paket olarak (Jungo USB) sürücüleri de var. Belki görmemişsinizdir :

http://www.national.com/appinfo/usb/0,1808,461,00.html

(DDK ile uğraşmak gerçekten çok can sıkıcı. Hazır birşeyler bulunabilirse daha hızlı ilerler proje)

Analyzer
Üşeniyorum, öyleyse yarın!

z

Hocam sözkonusu linkteki yazılımları indirdim  ancak programlar C ile yazılmış, Win ortamında da C dili kullanmıyorum ve zaten derleyicilerim de yok.

Açıkcası verilen yazılımları ne yapacağımı da anlayamadım.

Birimiz de  bu kısma el atarsa projeyi bitirdik sayılır.
(Açıkcası proje durursa driver yüzünden duracak.)

Bu arada bu çip ile ilgili gözlemlerim çok çok olumlu. Fanatiği olduğunuz  işlemcinizi değiştirmeden çipinize usb yeteneği kazandırmak için birebir ve kullanımı gerçekten çok rahat.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

CoşkuN

Yukarıdaki linkteki sayfada verilen programları indirdim.Anladığım kadarıyla çip ile haberleşmek için bir arabirim oluşturulmuş.Programda çipin kaydedicileri de okunabiliyor.Kodları da visual c++ 6 ile yazılmış galiba.Yalnız program açıldığında "win drive bulunamadı" hatası veriyor.Ayrıyetten bir sürücü daha yüklenmesi lazım galiba.

Analyzer

Alıntı yapılan: "CoşkuN"Yukarıdaki linkteki sayfada verilen programları indirdim.Anladığım kadarıyla çip ile haberleşmek için bir arabirim oluşturulmuş.Programda çipin kaydedicileri de okunabiliyor.Kodları da visual c++ 6 ile yazılmış galiba.Yalnız program açıldığında "win drive bulunamadı" hatası veriyor.Ayrıyetten bir sürücü daha yüklenmesi lazım galiba.

Selam,

Tabi hardware takılı olmadığı için driver yüklü değil sisteminizde. Hardware takılıp sürücüsü tanıtılıp ondan sonra programın çalıştırılması gerekiyor. Program msvc++ 6.0 kaynak koduna sahip. Install klasöründe hazır sürücüleri var. Tam aranılan paket aslında.

Analyzer
Üşeniyorum, öyleyse yarın!

z

Anladigim kadariyla USBN9604 cipinde Device Descripter tanimlamalarini yaparken, kartimizin PC tarafindan istedigimiz  herhangi bir USB urunmus gibi taninmasini saglayabiliriz.

Yani;

PC tarafi cipi değil cipe yuklenmis verileri taniyor değil mi?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Bu soruyu neden sordum?

Daha once verdigim linklere bakacak olursaniz bu ciple yapilmis iki ayri projeye ait PIC yazilimlari var. Birisinde 16F84 kullanilmis, bir digerinde 16F628. Iki yazilimda tamamen farkli ve PC tarafinda farkli driverlar kullanmislar.

Simdi Nationall firmasinin evolulation kitine ait  win driverimiz da var.

Peki bu driver butun projelerle sorunsuz calisacakmi?

Bu kisimi hic anlayamadim.

Nationalin cipini kullanan adam isterse web cam yapar isterse mouse yapar isterse klavye. Peki ozaman windows tarafindaki driver nasil olacak?

Yoksa National 9604 icin bir driver hepsinde de kullanilabilir mi?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Evet kizlar piste bekliyoruz sizi.....
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Analyzer

Alıntı yapılan: "bunalmis"
.....PC tarafi cipi değil cipe yuklenmis verileri taniyor değil mi?

.....Simdi Nationall firmasinin evolulation kitine ait win driverimiz da var.

Peki bu driver butun projelerle sorunsuz calisacakmi?

.....Nationalin cipini kullanan adam isterse web cam yapar isterse mouse yapar isterse klavye. Peki ozaman windows tarafindaki driver nasil olacak?

.....Yoksa National 9604 icin bir driver hepsinde de kullanilabilir mi?

Selam,

Öncelikle şunu netleştirelim. Paket içerisindeki sürücü, eval. board'un sürücüsü. Ancak sizin projenizle neredeyse birebir örtüşüyor. Driver problemine takılmamanız için ekledim. Zaten paketin readme'sinde de kaynak kodlara bakarak kendi sürücünüzü oluşturun mealinde anlatım var.Yani yazmaçları değiştirip geliştirme açısından bu sürücü yeterli ama bir web cam için elbette uygun değil. Windows DDK ile tekrar sürücü yazılması gerekiyor.(Zamanınız varsa kaynak kodlara bakarak-benzeterek sürücü yazılabilir)
İsterseniz bu sürücüyü bir kurun, sonucu görüp buraya yazalım. Daha net bir şekilde konuşma imkanımız olur böylece.

Analyzer
Üşeniyorum, öyleyse yarın!

CoşkuN

Alıntı yapılan: "bunalmis"Anladigim kadariyla USBN9604 cipinde Device Descripter tanimlamalarini yaparken, kartimizin PC tarafindan istedigimiz  herhangi bir USB urunmus gibi taninmasini saglayabiliriz.

Yani;

PC tarafi cipi değil cipe yuklenmis verileri taniyor değil mi?

Hocam Jan Amca'nın kitabından ve çeşitli USB kaynaklarından okuduklarımdan anladığıma göre cihazlar PC'ye ilk bağlandıklarında PC cihaza "dur bakalım sen kimsin kendini tanıt " diye komut yolluyor.Cihaz da PC'ye kimlik kartını gösteriyor.Bunlara "descriptor" yapıları deniliyor.Bunların içinde cihazla ilgili bilgiler gönderiliyor ve windowsta buna göre işini görüyor.Benim anladığım kısım şimdilik bu kadar.

z

Daha once linkini verdigim www.nectix.com sitesindeki Pic16F84-USBN9604 projesine ait asm kodlari uzun ugraslardan sonra C'ye cevirdim.

Indirmek icin tiklayin. [/b]

Hatasiz cevirdigimi sanmiyorum. Program calistirildiginda windows sorunlu bir usb cihaz buldum diyor. Bundan sonrasi nasil olacak bilemiyorum.

Aramizda bu cipe ilgi duyan, ugrasan yokmu ? Yalnizmiyim?

National'in gelistirma kartinin yazilimlari  ve surucusune ait her sey verilmis.
Fakat takibi bana cok ama cok zor geldi.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mp3dragon

@bunalmis,

kusura bakma şu an kısıtlı internet bağlantım olduğu için verdiğin çipin datasheet ve dökümanlarını inceleyemedim. Ancak senin anlatımından anladığım kadarıyla 8 bit veri yoluna paralel olarak bağlanıyor ve PC ye tanıtmak için sürücü yazmak gerekiyor. Peki bu çipin ft245 ten farkı ne? sadece PC ile istediğimiz mcu' nun iletişimini mi sağlıyor? yoksa çipi istersek host olarak tanıtıp USB donanımları mcu ile kullanabiliyormuyuz? eğer sadece PC iletişimi içinse ve iş PC tarafında sürücü yazmak noktasında kalıyorsa ft245 ile de kendi sürücümüzü yazıp USB nin dibini bulabiliriz kanaatindeyim. Aradaki farkı kısaca anlatırsan sevinirim çünkü USB işini bir şekilde kafa göz yara yara da olsa öğrenmeliyiz.
İyilik Yap, Denize At, Balık Bilmezse, Halik Bilir.