usb yazma hızı

Başlatan elektrotasarim, 21 Ocak 2010, 19:02:39

elektrotasarim

Merhaba,
Daha önce PC'den işlemciye usb üzerinden veri gönderen arkadaşlar olmuştur. Merak ettiğim şey, PC'deki yazılımdan gönder tuşuna bastıktan sonra bu datanın işlemciye ulaşıp üzerinde bulunan belleğe yazma süresi ?
Yapmak istediğim uygulamada, PC'den 1-4 mb arası bir veriyi işlemci kartında bulunan spi flasha (M25PXX) yazmam gerekiyor. Seri porttan böyle bir şeyi denediğimde çok uzun sürüyor (5-10 dakika), bu yüzden usb kullanmayı düşünüyorum. Tecrübelerinizi paylaşırsanız sevinirim.
İyi çalışmalar.

serdararikan

peki flash ın yazma hızı nedir?

Klein

Alıntı yapılan: "elektrotasarim"Merhaba,
Daha önce PC'den işlemciye usb üzerinden veri gönderen arkadaşlar olmuştur. Merak ettiğim şey, PC'deki yazılımdan gönder tuşuna bastıktan sonra bu datanın işlemciye ulaşıp üzerinde bulunan belleğe yazma süresi ?
Yapmak istediğim uygulamada, PC'den 1-4 mb arası bir veriyi işlemci kartında bulunan spi flasha (M25PXX) yazmam gerekiyor. Seri porttan böyle bir şeyi denediğimde çok uzun sürüyor (5-10 dakika), bu yüzden usb kullanmayı düşünüyorum. Tecrübelerinizi paylaşırsanız sevinirim.
İyi çalışmalar.

USB 1.0 ve 1.1 : Hız 12 Mbit/sn (1.5 MByte/sn)
USB 2.0  : Hız 480 Mbit/sn (60 MByte/sn)
USB 3.0 : Hız 4,8 Gbit/sn (600 MByte/sn)

Bunlar teorik hızlar.  Pratikte bu hızlara çıkılamıyor.  Eğer işlemcin doğrudan USB destekli değilse  seri portu kullanman gerekir ki bu da en fazla 115200bps demek.

drmp

günümüzde bir çok mcu usb 1.0 veya 1.1 yani low speed olarak çalışıyor bence gözden kaçırılmamalı

muhittin_kaplan

verilenler max olabilecek teorik hızlar. ayrıca seçilen transfer tipide önemli (kesme,bulk vs gbi)

elektrotasarim

Biraz daha derinleştireyim konuyu.. Flash'a yazma hızı yeterince hızlı diyebilirim, 50MHz spi CLK frekansına çıkan flash'lar var. Şöyle bir hesap yapabiliriz sanırım: Seri portta herleşme hızımız 57600bps olsun. 256 byte yaklaşık 44ms'de gönderiliyor. 256 byte'ı flash belleğe yazma işlemi datasheet'te 1-2ms olarak verilmiş. Dolayısıyla burada yazma hızı değil veriyi gönderme hızı yavaş kalıyor. Baudrate 115200 olsa yine de çok hızlı olamıyor.

USB 1.0 ve 1.1'in hızı 1,5mbyte/sn diye belirtilmiş. Flas'ın yazma hızını 1ms'de 256 byte diye düşünürsek 250KB/sn yapıyor.
Transfer tipi olarak en hızlı metodu tercih etsek, kendinden usb desteği olan bir işlemciyle, mesela PIC serisinden bir işlemciyle saniyede 250KB veri transfer edebilir miyiz ?

hasangurlek

Alıntı yapılan: "elektrotasarim"Biraz daha derinleştireyim konuyu.. Flash'a yazma hızı yeterince hızlı diyebilirim, 50MHz spi CLK frekansına çıkan flash'lar var. Şöyle bir hesap yapabiliriz sanırım: Seri portta herleşme hızımız 57600bps olsun. 256 byte yaklaşık 44ms'de gönderiliyor. 256 byte'ı flash belleğe yazma işlemi datasheet'te 1-2ms olarak verilmiş. Dolayısıyla burada yazma hızı değil veriyi gönderme hızı yavaş kalıyor. Baudrate 115200 olsa yine de çok hızlı olamıyor.

USB 1.0 ve 1.1'in hızı 1,5mbyte/sn diye belirtilmiş. Flas'ın yazma hızını 1ms'de 256 byte diye düşünürsek 250KB/sn yapıyor.
Transfer tipi olarak en hızlı metodu tercih etsek, kendinden usb desteği olan bir işlemciyle, mesela PIC serisinden bir işlemciyle saniyede 250KB veri transfer edebilir miyiz ?

USB desteği olan MCU lerin neredeyse tümü full-speed iletişim yeteneğine sahip , sizin kullandığınız MCU nedir ? Sizin için hız önemliyse USB 3.0 yayınlanmışken ve uzun zamandır piyasadaki donanımlar 2.0 ı desteklerken niçin eski spesifikasyona uymak zorundasınız ?

full-speed destekli bir işlemci kullanırsanız bulk transferle istediğiniz 250Kb/sn hızın 100 kat fazlasına çok rahat ulaşabilirsiniz. Data doğrulama önemli değilse 60/mb saniyeye kadar çıkabilirsiniz.
http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!

elektrotasarim

@hasangurlek,
Aslında eski spec.lere uymak zorunda değilim. Şuan tasarım aşamasında olduğum için fikir almak istemiştim. Hız olarak da işlemcinin belleğe yazma hızı yaklaşık 250KB/sn olduğundan buna erişebilsem yeterli. Çünkü PC işlemciye 60mb/sn hızıyla gönderse bile işlemci bunu belleğe bu kadar hızlı yazamayacağından önemi olmayacak.
İşlemci ise henüz belirlemedim, aslında bunun için de sordum bu soruyu biraz. Varsa işlemci öneriniz memnun olurum.

hasangurlek

Alıntı yapılan: "elektrotasarim"@hasangurlek,
Aslında eski spec.lere uymak zorunda değilim. Şuan tasarım aşamasında olduğum için fikir almak istemiştim. Hız olarak da işlemcinin belleğe yazma hızı yaklaşık 250KB/sn olduğundan buna erişebilsem yeterli. Çünkü PC işlemciye 60mb/sn hızıyla gönderse bile işlemci bunu belleğe bu kadar hızlı yazamayacağından önemi olmayacak.
İşlemci ise henüz belirlemedim, aslında bunun için de sordum bu soruyu biraz. Varsa işlemci öneriniz memnun olurum.

PIC kullanacaksanız 18 serisi işinizi fazlasıyla görür. 18F13K50 den 18F4553 e kadar araştırıp USB dışında ihtiyacınız olan diğer modüllere sahip olmasına, pin sayısının yeterliliğine göre herhangi birini tercih edebilirsiniz. Genel kullanım ihtiyaçlarını karşılayabilecek ve kolay bulunabilir bir MCU olsun diyorsanız 2550 veya 4550 her yerde satılıyor.
http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!