PC portları & osiloskop

Başlatan munzur, 10 Kasım 2002, 21:55:58

Erkan Gench

Alıntı yapılan: "Petek"Cozturk, önerdiğin kombinasyon biraz hatalı gibi geldi bana. 200 MHzlik ADC ile  200 MHz örnekleme yaparsın (8 bitlik), bu da aşağı yukarı 200MBayt/san veri transferi gerektirir. Oysa USB çipi kullanarak PC ile en fazla 900 kbps hızında haberleşirsin. Tabi bu hızda veriyi alıyorsun ama bilgiyi anlık ekrana yansıtırsan bu bilgide de kayıp oluşacaktır. PCI veya ISA buslı bir kart yapacağım ve DMA ile veri transferi yapacağım desen ve veriyi bir süre kaydettikten sonra ekrana yansıtacağım desen daha doğru bir yaklaşım olabilirdi. Yanılıyormuyum?

Bu mantık bana biraz yanlış geldi. Zaten doğru olsaydı yukarıdaki 40MHz osiloskopta çalışmazdı sanırım.

Bu konuyu burada anlatmak zor biraz şekil falan çizmek lazım ama kısaca şöyle açıklayayım: siz ekranda adc'den gelen verileri sürekli olarak göstermiyorsunuz. Ekranda gösterdikleriniz zaten ekranın boyu ve piksel sayısıyla sınırlı. Yani 8 bitlik örnekler aldığınız sinyali -örneğin ekranı baştan başa 256 parçaya bölmüşseniz- bu örneklerin 256 tanesini ekranda ard arda dizerek gösteriyorsunuz. Yani ekranda 8 bitlik 256 adet örnek görünüyor. buda ekranı doldurmak için 256*8=2048 bit harcamak demek. Düzgün bir görüntü elde etmek için saniyede 25 defa tazeleme yaparsanız 25*2048=51200bit yapar yani 51200bps yapar.

Burada tabi mesele ekranda gösterilecek olan görüntüyü ADC'den alıp bilgisayara gönderecek işlemcinin bu yükü kaldırabilecek kapasitede olması. Bir PIC'in 40MHz ve üstü gibi hızlarda bu işlemleri yapması mümkün olmadığına göre ve bitscope gibi bir osiloskopta PIC kullanıldığına göre benim aklıma gelen en mantıklı şey ADC'nin aldığı örnekleri belli bir süre kendi içinde kaydettikten sonra PIC'in istediği zaman bu kaydedilmiş örnekleri okuması ve PC'ye göndermesidir. Fakat şu anda sistem böylemi bilmiyorum benimki sadece bir tahmin.
Zorluklar, zamanında yapmamız gerekip de yapmadığımız kolay şeylerin birikmesiyle oluşur. Henry Ford ----------- Ya Rabbi Filistin'deki ve dünyanın her tarafındaki Müslüman kardeşlerime yardım et.

Petek

@Erkan,

Ekranda sadece sinyal görüntüsünü görmek istiyorsan dediğin bir bakıma doğru sayılır. Ama dediğin gibi olsa 200 MHzlik ADC ye gerek yok. Bu durumda 200 MHzlik ADCnin bir anlamı kalmıyor. Demek istediğim hatalı kombinasyon bu idi.

Diğer taraftan 1 saniyelik bir kayıt alacağınızı varsayalım. Bu durumda kaydetmeniz gereken veri 200MBayt olması gerekirdi. Bahsettiğiniz 40 MHzlik  scopa bakarsanız içerisinde 32 kBaytlık (yanlış hatırlamıyorsam 2 adet) ram var. Bununla ne kadarlık bir kayıt alabileceğinizi herhalde tahmin edebilirsiniz.
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

Erkan Gench

Zaten burada anlatması zor derken bunu kastediyordum demekki iyi anlatamamışım.

O zaman ufak bir resim ile anlatmaya çalışayım.



Bu resimdeki sinyalin 40Mhz olduğunu farzedin. Bu durumda sinyalin başından sonuna ulaşmak için geçecek süre 25ns'dir. Sizin bu görüntüyü elde etmek için ADC ile örnek alma süreniz 25ns olacaktır 1s değil. Yani sonuçta elde edeceğiniz veri 256Bayt. Zaten yukarıdaki osiloskobun 32K hafıza ile çalışabilmesi bunu destekliyor.

Peki sinyali baştan başa göstermek için 8 bitlik 256 adet örnek aldığımızı farzedelim bu durumda 25ns içinde 256 örnek alabilecek bir ADC olmalı buda 25/256~0.1ns yani 10Gsps bir ADC lazım demektir. 200Msps bir ADC ile 40MHz'lik bir sinyali bu şekilde göremezsiniz (256 adet örnek alamazsınız). Yani 200Msps az bile.

Diye düşünüyorum :)
Zorluklar, zamanında yapmamız gerekip de yapmadığımız kolay şeylerin birikmesiyle oluşur. Henry Ford ----------- Ya Rabbi Filistin'deki ve dünyanın her tarafındaki Müslüman kardeşlerime yardım et.

Petek

Alıntı yapılan: "Erkan Gench"
Bu resimdeki sinyalin 40Mhz olduğunu farzedin. Bu durumda sinyalin başından sonuna ulaşmak için geçecek süre 25ns'dir. Sizin bu görüntüyü elde etmek için ADC ile örnek alma süreniz 25ns olacaktır 1s değil. Yani sonuçta elde edeceğiniz veri 256Bayt. Zaten yukarıdaki osiloskobun 32K hafıza ile çalışabilmesi bunu destekliyor.
Amacınız 25ns lik kayıt almak ise dediğiniz doğru.
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

mhk

Sevgili erkan mantık olarak doğrusun. Peki şöyle bir düşünün, biz 1 sn de farklı zamanlarda örnekler alsak. ortaya bir fonksiyon çıkmayacak mı? bu aldığımız değerleri noktalar halinde birbiri ile birleştirirsek , sanırım orjinal sinyale yakın bir sinyal şeklini çizmiş oluruz. Tabi bu yazdıklarım teoride  ;)
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana

Erkan Gench

mhk hocam dediğiniz gibi birşey benimde aklıma geldi mesela ADC'ye göre çok hızlı bir sinyali görüntülemek için sinyalin ilk geçişinde bir noktasından ikinci geçişinde önceki örneğin hemen biraz sonrasından üçüncü geçişinde bir önceki örneğin biraz sonrasından... örnekler alarak bunları birleştirip gerçek sinyali elde etmek. Ancak bunun için zamanlama çok önemli ve tabi sinyal periyodik olacak.

Petek bana kızmışsınız gibi bir izlenim uyandı bende, yok değilmi öyle birşey? Şurda muhabbet ediyor, fikirlerimizi paylaşıyoruz kimseyi küstürmek istemem  ;)
Zorluklar, zamanında yapmamız gerekip de yapmadığımız kolay şeylerin birikmesiyle oluşur. Henry Ford ----------- Ya Rabbi Filistin'deki ve dünyanın her tarafındaki Müslüman kardeşlerime yardım et.

z

Bu bahsettiğiniz ötelemeli örnek alma zaten eskiden analog scoplarda uygulanan bir yöntem.  

Bu sayede örneğin 20Mhzlik analog scop ile 500Mhz lik işaretler incelenebiliyor.

Günümüzde hala kullanılıyormu bilmiyorum.

Hayal meyal radarlarda da bu tür örnek alma kullanılıyor diye hatırlıyorum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Petek

Alıntı yapılan: "Erkan Gench"mhk hocam dediğiniz gibi birşey benimde aklıma geldi mesela ADC'ye göre çok hızlı bir sinyali görüntülemek için sinyalin ilk geçişinde bir noktasından ikinci geçişinde önceki örneğin hemen biraz sonrasından üçüncü geçişinde bir önceki örneğin biraz sonrasından... örnekler alarak bunları birleştirip gerçek sinyali elde etmek. Ancak bunun için zamanlama çok önemli ve tabi sinyal periyodik olacak.

Petek bana kızmışsınız gibi bir izlenim uyandı bende, yok değilmi öyle birşey? Şurda muhabbet ediyor, fikirlerimizi paylaşıyoruz kimseyi küstürmek istemem  ;)

Küsme mi? Ne anlama geliyor o kelime  :D

Ben bir önceki yazdığım mesajdaki ifademi geri almak istiyorum. Biraz geç kalmışım ve düşündüğüm şeylerden birini mhk, sen ve bunalmış hocam bahsetmişler. ADC örnekleme hızı 10Gbps demişsin ya buna kafam takıldı. Sonra sakin kafayla düşününce bazı çelişkiler gördüm. Şöyle:
1. 25 ns.lik kayıt için 256 örnek alıyorsun. Bu da 10Gbps lık ADC gerektiriyor. Bu hızdaki örnekleme için ADC ye start komutu vereceksin, ADC bitti sinyalini bekleyeceksin, ADC çıkışını (10 Ghz için çözünürlük 4 bit sanıyorum) en hızlı yöntemle doğrudan ram belleğe aktarmak istediğini farzadelim (işlemciye alıp, ram belleğe aktarmanın ne kadar instruction cyle aldığını düşünürsen) herhalde en az 10 GHzde çalışacak ram belleğe ihtiyacın olacak. Bu hızda bir bellek 10 yıl sonra piyasaya çıkar mı bilemiyorum.
2. 25 ns.lik görüntüyü aldın diyelim. PCye aktarıyorsun, sonra ikinci 25 ns. için sinyalin sıfırı kestiği noktayı beklemen ve resimde gösterdiğin şeklin aynısını bulman gerek. Bu durumda 40 MHzlik sinyal için izlemek için kullanabileceğin işlemci bana da lazım olurdu :D
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

Erkan Gench

1.

Alıntı yapılan: "Erkan Gench"
Burada tabi mesele ekranda gösterilecek olan görüntüyü ADC'den alıp bilgisayara gönderecek işlemcinin bu yükü kaldırabilecek kapasitede olması. Bir PIC'in 40MHz ve üstü gibi hızlarda bu işlemleri yapması mümkün olmadığına göre ve bitscope gibi bir osiloskopta PIC kullanıldığına göre benim aklıma gelen en mantıklı şey ADC'nin aldığı örnekleri belli bir süre kendi içinde kaydettikten sonra PIC'in istediği zaman bu kaydedilmiş örnekleri okuması ve PC'ye göndermesidir. Fakat şu anda sistem böylemi bilmiyorum benimki sadece bir tahmin.

2. 25ns lik kaydı aldıktan sonra ikinci bir 25 ns kayıt almıyorsunuz. Saniyede 25 update yapıldığına göre 40ms'de bir kayıt yeterli.

3. Şimdi 25ns kayıt alınca 256Bayt tutuyor o zaman 10MHz sinyal için 100ns kayıt alınca dört katı daha fazla veri tutmazmı diyebilirsiniz. Evet tutar ama içinden 256Bayt'lık kısmını seçer onu kullanırız gerisini dikkate almayız derim.

Ben buraya kadar hep tahminlerim üzerine konuştum yanlışlarım çıkabilir. Ancak bu konu ilginç bir konu daha önce bahsettiğim bitscope PIC ile yapılmış bir osiloskop ve hepsinden önemlisi şemaları açık olarak sitesinde mevcut.

www.bitscope.com

http://www.bitscope.com/download/files/bs-sch-03.zip

Ben bu aleti incelemeye karar verdim. Bakalım tahminlerim doğrumu :)
Zorluklar, zamanında yapmamız gerekip de yapmadığımız kolay şeylerin birikmesiyle oluşur. Henry Ford ----------- Ya Rabbi Filistin'deki ve dünyanın her tarafındaki Müslüman kardeşlerime yardım et.

Petek

@Erkan
kusura bakma ben de mesajını dün ve oldukça dağınık kafa ile okuyunca aklımda mesajının detayları kalmamış ve yazarken de bakma gereği duymamışım.

Örneklemenin nasıl yapıldığı konusu bana da ilginç geldi. Ben de bir bakayım gönderdiğin linke.
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

Erkan Gench




Şemayı inceleyince gördümki adamlar 100MHz lik osiloskop için 40Msps ADC kullanmışlar. Galiba kaçırdığımız bir nokta var yada daha önce bahsettiğim fikri hayata geçirmişler :)

Arkadaşlar yokmu bu konuda bilgisi olan aydınlatsın bizi biraz :roll:
Zorluklar, zamanında yapmamız gerekip de yapmadığımız kolay şeylerin birikmesiyle oluşur. Henry Ford ----------- Ya Rabbi Filistin'deki ve dünyanın her tarafındaki Müslüman kardeşlerime yardım et.

Erkan Gench

mhk hocam bizim mantık doğru çıktı gerçektende bu şekilde yapılıyormuş.

http://img.cmpnet.com/edtn/ccellar/e043pdf1.pdf

Bu linkteki doküman bitscope'un ilk yapılışını anlatıyor. Adamlar yarışmada birinci olmuşlar.

Kullandıkları tekniğin adı subsampling. Trigger geldiğinde ADC ile maksimum hızda örnekler alıyorsunuz yüksek frekanslı sinyalin belirli yerlerini yakalamış oluyorsunuz sonraki trigger'da daha farklı yerlerini yakalıyorsunuz ve kısa bir süre sonra sinyalin tümü meydana çıkıyor şeklinde anladım ama hala tam olarak çözebilmiş değilim. Birde sinyal frekansı ADC hızının katları ise her seferinde aynı yerlerden örnek aldığınız için sinyali görmeniz pek mümkün olmuyor.

Acaba PIC'in ADC'si kullanılarak birkaç MHz'lik bir osiloskop yapılabilirmi? Ben vaktim olursa böyle birşey denemek istiyorum ilgililere duyurulur :)
Zorluklar, zamanında yapmamız gerekip de yapmadığımız kolay şeylerin birikmesiyle oluşur. Henry Ford ----------- Ya Rabbi Filistin'deki ve dünyanın her tarafındaki Müslüman kardeşlerime yardım et.

cozturk

Alıntı yapılan: "Erkan Gench"Acaba PIC'in ADC'si kullanılarak birkaç MHz'lik bir osiloskop yapılabilirmi? :)
picine göre değişmekle beraber, 50-70kHze kadar bazı sinyalleri başarıyla örnekliyor. Delki dsPIC daha iyidir. Bu olaylar datasheette yazdığı gibi değil. deneme yapıldığında daha iyi veya daha kötü olabiliyor durum.

refik1

Arkadaşlar burası yerimi ama yardım lazım

Bitscope nin usb bağlantılı olanından getirttim
cihaz dijital ölçümlerde çok güzel

sorun bu cihaz için değişik sitelerde yazılmış birsürü program var ama o programlar paralel veya seri porta göre yazılmış bu programları kullanma şansım olabilirmi.   (diriver falan mı lazım) ne gibi çözüm olur bilmiyorum.

byka

Alıntı yapılan: "refik1"Arkadaşlar burası yerimi ama yardım lazım

Bitscope nin usb bağlantılı olanından getirttim
cihaz dijital ölçümlerde çok güzel

sorun bu cihaz için değişik sitelerde yazılmış birsürü program var ama o programlar paralel veya seri porta göre yazılmış bu programları kullanma şansım olabilirmi.   (diriver falan mı lazım) ne gibi çözüm olur bilmiyorum.

cihaz dijital ölçümlerde çok güzel  demekle digital bilgileri ölçmede basarılı fakat anlog sinyallerde yavas mı demek istiyorsun yoksa
cihaz digital bir cihaz ve ölçümleri basarılı (anlog scoplar gibi)mi demek istiyorsun
çünkü bende bu cihazla ilgileniyorum ve performance nı cok merak ediyorum.
Bir tektronix yada instek marka almama gerek kalmayacak kadar yeterlimi
DWIN LCD Satış Türkiye email:info@kamantek.com  web:http://www.kamantek.com/shop/index.php