Kim korkar USB den

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

z

Yillardir seri porttan kurtulup USB ara birimini kullanmayi cok istememe
ragmen bir turlu konunun uzerine  egilemedim. Herseyden once interface
bana cok karmasik geldi.

Forumda ne zaman USB kelimesi gecen bir soru gecse iste simdi bir
seyler ogrenecegim umuduyla yazilanlari ve cevaplari okurum.

Fakat malesef  FT232 kullanin seklindeki klasik cevabi gormekten
usandim..

Yeter artik diyip bu gun usb interface uzerinde calisabilecegim prototip
kart hazirladim. Yok oyle PIC falan değil. Daha farkli. Sectigim cipin adi
National USBN9604. USB Node Controller diye geciyor.

Cipin 8 bitlik data bus'i sayesinde herhangi bir islemci busina peripheral
cihaz gibi  yapistiriyorsunuz. Ister multiplex modunda isterseniz non
multiplex modunda paralel veri transferi gerceklestirebiliyorsunuz.

DMA destekli data transferi yapmaniza yarayan pinleri de var.

Yok ben bus uzerinden calismak istemiyorum derseniz  Gnd dahil 5 pin
uzerinden Microwire haberlesmesi yapabiliyorsunuz.

USB 1.0 ve 1.1'i  destekliyor.

Bu ciple hazirladigim kart PC paralel porta takiliyor. Paralel port
pinlerinden  Microwire haberlesmesi icin gerekli  SI, SO, SCLK, RST
sinyallerini uretiyorum.


PC tarafinda Borland 3.0 derleyici ile yazdigim kodu aninda calistirip
sonuclari gorme sansim var. Komutlari trace etmek hata bulmak cok
kolay olacak.

Bu sayede PCnin paralel portundaki USB interface ile PC'nin kendi USB
interface portunu konusturabilecegim.

En onemli avantajimiz ise isletim sistemi, cipimizden ne tur isteklerde bulunmus bunlari ekranimizdan izleyecegiz.

Calismalari buradan yayinlayacagim.

Oncelikle sema ve Eagle cizimi verecegim. Birde bir kac fotograf.

Ancak usb konusunu bildigimi sanmayin. Burada sizlerle birlikte ogrenecegim. Sizlerden de katilim bekliyorum.

Bu cipi kullanabilen bir kisinin her turlu USB cipini kullanabilecegini
dusunuyorum. Zira felsefeyi kaptiktan sonra farkli ciplerle calismanin sorun olmayacagini dusunuyorum.


USB sorun olmaktan ciksin artik.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

OG

USB/IDE dönüştürücü chip veya hazır devreler bir işe yararmı?. Bende böyle bir minik devre var, HDD, CD sürücü falan bağlıyorum.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

z

Hocam bahsettiginiz cipler FT232 orneginde oldugu gibi bize usb ogretmiyor. Sadece hazir bazi cozumler sunuyor.

Halbuki ele aldigim cip USB cipinin kendisi.

Bu cipi kullananmayi beceren  butun USB ciplerini kullanabilir.

Herseyden once onerdigim gelistirme ortami PC'nin kendisi, yok flash programlaydi, yok cipi programlayiciya tak cikartti gibi angaryalarin hic birisi olmayacak.

Compile et calistir compile et calistir seklinde son derece suratli pragram yazacagiz.

Unutmadan. Gelistirme asamasinda isletim sistemi DOS yada W98 olacak.

Nedeni Paralel porta dogrudan erisecegiz. Ama isteyenler  port erisim engelini diledikleri yontemle asarak XP'de de calisabilirler.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Unutmadan,  islemcimizin (PC) cip ile haberlesmesinde,  baski devre basit olsun dusuncesiyle  Microwire kullanacagiz.

Bu calismada http://www.picguide.org/usb-full-speed-project-pic16-series/ sitesindeki calismadan yola cikiyorum.

Buradaki PIC'i kaldirip atip yerine PC paralel port koyarak cok esnek bir gelistirme ortami sagladim.

Cipimizin dokumani asagidaki linkten indirilebilir.

http://cache.national.com/ds/US/USBN9604.pdf
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ise

jan axelson un usb complete kitabında çok detaylı bir şekilde anlatılmış teorik pratik örneklerle   ethernet internet kitabıda çok güzel
ed2k://|file|Jan%20Axelson%20-%20USB%20Complete%20(2nd%20Edition)_decrypted.PDF|3767078|646CCAC4C833C41F9CFC7EED21A10B62|/

z

USB problemimizin ustesinden gelecek kahramanlarimiz asagida goruluyor.





Eagle brd dosyasini indirebilirsiniz

!!! 6 nolu pin pcb ciziminde bosta kalmistir. !!! Bunu 5V'a baglayin.

Her yonuyle USB Universal Serial Bus

Yazan: J.Axelson'un Turkce'ye cevrilmis kitabi bende mevcut. Aldigimda soyle bir karistirdim ve hic sevmemistim.

Simdi konuya damardan girdigim icin  kitap hakkindaki onyargimi bir kenara birakacagim.

Kitabin uzerindeki isteme adresi: Galeri Kultur
Selanik Cad. No: 1/B Kizilay - ANKARA
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Malzeme kutumda Smd 1K5, 24R ve 1M bulamayinca pcb uzerinde ince bir
cerrahi operasyonla padler uzerinde delikler delip klasik bacakli direnclerden
takarak devreyi tamamladim. Mevcut degerlerde bulamadigimdan 24R yerine 22R, 1M yerine de 1.2M bagladim.

Gene yokluktan 47p lari 27p ile degistirdim.



25 Pin konnektorden gnd sinyali alabilmek icin pcb de uygun bir yere delik
delinip kablo ile gndler birlestirildi.

Artik kodlamaya gecebiliriz.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

OG

Hocam PCB yi nasıl çıkardın? CNC ile mi?
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

z

Evet hocam cncde kazima yontemiyle yaptim.

Bu arada voltaj verip scopla xtal uclarina baktigimda hic bir salinim goremedim.  18 numarada tahminimce 3v3 olmasi gerekirken  0 v gordum.

Arizali bir CD Rom kartindan soktugum Smd tipi kristali supheli xtal  ile degistirince osc calisti.

18 nolu pinin durumu ne olmali onu  arastiracagim.

---------------------

Benim gibi bu cipi hic tanimayanlarin ilgilenecegi dusuncesiyle ilk montaj ardindan cikan sorunlara da deginiyorum.

18 nolu uc, cip icindeki 3v3 regulatorun cikisi ve burada voltaj olmasini bekliyordum. Katalogu inceledigimde, reset islemi ardindan cip bu voltaji kesiyormus.

Devremizde 16 nolu reset pini, power on asamasinda 100n C ile Gnd ye cekildiginden cip bu voltaji kesiyor.

OSC miz calisiyor, ve simdi kodlamaya haziriz.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

OG

Sayfa 30

VGE
Voltage Regulator Enable. Setting this bit enables the internal 3.3V voltage regulator. This bit is hardware reset only to a 0,
disabling the internal 3.3V regulator by default. When the internal 3.3V regulator is disabled, the device is effectively disconnected
from USB. Upon power-up, the firmware may perform any needed initialization (such as power-on self test) and then
set the VGE bit. Until the VGE bit is set, the upstream hub port does not detect the device presence.
If the VGE bit is reset an external 3.3V power supply may be used on the V3.3 pin.



Sayfa 7

Transceiver 3.3V Voltage Supply. This pin can be used as the internal 3.3V voltage regulator
output. The regulator is intended to power only the internal transceiver and one external pull-up.
An external 1 μF de-coupling capacitor is required on this pin. The voltage regulator output is disabled
upon reset. When the internal voltage regulator is left disabled, this pin must be used as a
3.3V supply input for the internal transceiver. This is the case during 3.3V operation.


Sayfa 10 da

2.2 VOLTAGE REGULATOR (VREG)
The voltage regulator provides 3.3V for the integrated transceiver from 5.0V device power or USB bus power. This output
can be used to supply power to the 1.5 KΩ pull-up resistor. This output must be decoupled with a 1 μF tantalum capacitor
to ground. It can be disabled under software control to allow using the device in a 3.3V system.

2.1 TRANSCEIVER
The device contains a high-speed transceiver which consists of three main functional blocks:
— Differential receiver
— Single-ended receiver with on-chip voltage reference
— Transmitter with on-chip current source.
This transceiver meets the performance requirements described in Chapter 7 of the USB Specification, Version 1.1.
To minimize signal skew, the differential output swings of the transmitter are well balanced. Slew-rate control is used on the
driver to minimize radiated noise and crosstalk. The drivers support TRI-STATE operation to allow bidirectional, half-duplex
operation of the transceiver.
The differential receiver operates over the complete common mode range, and has a delay guaranteed to be larger than
that of the single-ended receivers. This avoids potential glitches in the Serial Interface Engine (SIE) after single-ended zeros.
Single-ended receivers are present on each of the two data lines. These are required, in addition to the differential receiver, to
detect an absolute voltage with a switching threshold between 0.8V and 2.0V (TTL inputs). To increase Vcc rejection, without
glitching, a voltage reference sets the single-ended switching reference. An external 1.5 ± 5% KΩ resistor is required on D+ to
indicate that this is a high-speed node. This resistor should be tied to a voltage source between 3.0V and 3.6V, and referenced
to the local ground, such as the output provided on pin V3.3.
2.2 VOLTAGE REGULATOR (VREG)
The voltage regulator provides 3.3V for the integrated transceiver from 5.0V device power or USB bus power. This output
can be used to supply power to the 1.5 KΩ pull-up resistor. This output must be decoupled with a 1 μF tantalum capacitor
to ground. It can be disabled under software control to allow using the device in a 3.3V system.




Sayfa 8
USB D+ Upstream Port. This pin requires an external 1.5k pull-up to 3.3V to signal full speed
operation.

Alıntı yapılan: "bsivgin"USB de dörtçeşit transfer yöntemi tanımlanmıştır..Control Transfer, Interrupt Transfer, Isochronous Transfer, and Bulk Transfer

USB low speed, full speed ve high speed hızlarından biri ile çalışır..LowSpeed - 1.5Mbit/s, FullSpeed - 12Mbit/s, HighSpeed - 480Mbit/s

USB bağlanan cihazın full speed mi yoksa low speed mi olduğunu bağlanan pull-up direncinden anlar. Eğer DATA+ 1.5K ile pull-up yapılmışsa cihaz full speed, DATA- 1.5K ile pull-up yapılmışsa host tarafından low speed olarak algılanır.

http://picproje.org/index.php/topic,8509&postdays=0&postorder=asc&start=0
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

z

Evet 3.3v cikisinin  0 olmasi normalmis. Bu arada katalogda, DMA ozelligi kullanilmayacaksa, DACK pinin Vcc ye baglanmasi gerektigi soyleniyor.

Bu uyariyi cok gec farkettigim icin pcb de bu pin bosta kaldi. Neyseki ince bir teli 6 numaraya lehimleyip cip uzerinden asirip 24 nolu pine kolayca lehimleyebiliyoruz.

Asagida PCye monte edilmis USB kartimizda cipin ustundeki ince teli gorebilirsiniz.



Her nekadar dokumanlari daha detayli okumaya baslamamis olsak da DMA modu paralel interface modunda gecerli oldugundan belki de Microwire modunda 6 nolun pinin bosta kalmasi  problem olusturmayacakti. (?)

Cipin M1 ve M0 pinlerini, hard olarak lehimle M1=1 M0=1 yaptigimiz icin kartimiz sadece ve sadece Microwire modunda calisacak.

Kart verniklendi ve simdi kodlamaya gecebiliriz.  :D

Bu arada hatirlatma: USB kartimiz enerjisini normalde USB kablosu uzerinden alacak. Bu asamada daha isin cok basinda oldugumuz icin usb kabloyu takmayıp karti besleme pinlerinden harici olarak besleyeceğiz.

Bunun icin flopye 5v Gnd Gnd +12V goturen kucuk konnektoru kartimizdaki 4lu pin headera takiyoruz. Ters takma durumunda arizaya neden olmamak icin sari kabloyu kesip attim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

PhD

Selam @bunalmis hocam,

Projende başarılar diliyorum ama aklıma bir şey takıldı. Klasik bir soru artık ama bu çip piyasada peynir ekmek gibi bulunabiliyor mu ve ucuz mu? Emeğiniz boşa gitmesin hocam. :oops:

Başarılar dilerim kolay gelsin...
...hiç...

z

Bu projede asil amacimiz usb'yi ogrenmek. Cip  bize sadece calisma ortami saglayacak. Dolayisiyla olayi anlayinca istedigimiz cipi kullanabilecegiz.

Hemen hemen orta sinif  denetleyicilerin hepsi  asenkron haberlesme donanimi icerir.

Baud rate'in bir register uzerinden istenen degere set edildigini, int ile calisacaksan seri iletisim int'i aktif etmen gerektigini, 8 bit 1 stop calisacaksan bununla ilgili tanimi yapman gerektigini, gonderilecek verinin txbuf gibi bir rege yazildigini, gelen verinin rxbuf gibi bir registerdan alindigini  bilirsin.

Iste bu calismayla usb'nin derinliklerine inecegiz. Ben kendi adima soyleyeyim usb ciplerinde  hangi regler vardir ne ise yararlar  hic bilmiyorum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Analyzer

Selam,

Ne tesadüf ki ben de USB protokolünü anlamak için çalışmaya başlamıştım :) Üstad USBN'den başlamışsın, ben tam anlamıyla öğrenmek adına IgorPlug'ı inceliyorum.

http://www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB%20(AVR)_eng.htm

Bu arada o kötü Türkçe çeviriye sahip J.Axelson'un Her yönüyle USB hepimizde var sanırım :D

Analyzer
Üşeniyorum, öyleyse yarın!

z

Evet o linki sanirim daha once gene sen vermistin ve o projeye hayran kalmistim.

O projede usb nin taa dibine iniliyor. Fakat o projeden once herhangi bir usb cipini ogrenmek daha faydali. Cipi ogrendikten sonra cipin hizli bir islemcide yazilimla emule edilmesi cok daha agir bir konu.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com