Yeni projeler baslatiyorum

Başlatan z, 06 Ekim 2013, 14:41:48

yldzelektronik

Alıntı yapılan: Allegro - 08 Ekim 2013, 14:31:24
Bence SD Kart ve GLCD gibi "hızlı veri aktarımı gerektiren" cihazlar için SPI tek tercih olmalı.

Aynı fikirdeyim.
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

z

#61
SPI için çip select işine "Daisy-chained" haricinde çözüm öneriniz varmı?

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

pisayisi

#62
Çoklu modülleri paralel bağlamak ve spi kullanmak gerektiğinde, modüllerin tasarımında da bir sonraki modüle data çıkışı vermek ve modüllerin önceliklerini belirlemek ve data hattının hızının artan modül sayısı ile birlikte düşmesi gibi sorunlar mevcut. Bir gürültülü ortamdaki modülden ötekine de veri aktarımı zorunluğu olduğundan verinin sonraki modüle aktarımında sorunlar olabilir diye düşünüyorum. Az sayıda modül kullanıldığında sorun olmayabilir ancak sonuçta önceliği yüksek modülü bir numaraya koyarak hızlı çalışması gereken modülleri başa alarak sorun aşılabilir.

Buna alternatif olabilcek azami 16 adet modül olsa 4 to 16 demultiplekser kullanılsa chip select sorunu sıkıntısız bir şekilde ilave 4 adet adres hattı kullanarak çözümlenebilir.Bu durumda da modül sayısı ile orantılı olarak kablolama artcak ancak hızdan feragat edilmeyecek...
Murat

esensoy

Hocam ben A/D için ayrı bir hat kullanmayı gereksiz buluyorum, DI-DO yu aynı hatta bindirmek te sıkıntı yaratacakmış gibi geliyor,
Onun yerine bilgiyi belli bir çerçeve üzerine oturtmak daha doğru geliyor,

Mesela;
paketimiz 0x02 ile başlasın,
ikinci 1 byte veri kart adresi olsun,
3. 1 byte veri komut olsun,
dördüncü 1 byte veri takip eden data boyutu olsun,
dördüncü kadar data gönderilsin,
0x03 ile bitsin,

Gerekliliği var mı bilmiyorum ama datadan sonra 0x03 ten önce CRC de eklenebilir, böylece doğruluğu da kontrol edilmiş olur
En tehlikeli an "zafer" anıdır.

justice_for_all

ben de SS pininin kullanilma amacini hala anlayabilmis degilim.
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

z

#65
A/D hattının önemli bir getirisi var. Eğer kullanmazsak, ana işlemci slave işlemcilere data hattından her data gönderdiğinde tüm işlemciler ne geldi ne geldi diye işlerini bırakıp dataya bakmak zorundalar zorunda kalırlar. Tüm dataları izlemek zorundalar hatta tüm sınıf bilgilerinin komut setlerini de bilmek zorunda kalabilirler. Çünkü SD kart uygulaması ile birlikte çalışacak kartlar SD karta gönderilen dataları komut olarak algılayabilirler. Pek ala seçtiğimiz komut yapısında gidecek adres data vs bilgiler şans eseri SD karta yazılacak datalar arasında olabilir.

A/D hattı eklendiğinde A/D=0 yapılınca tüm işlemcilere interrupt yollamış oluruz. Hey hepiniz şimdi göndereceğim data adres bilgisidir uyanık olun bunu okuyun anlamına gelir.

Bu yüzden A/D hattı işleri kolaylaştırıyor.

Pin sayısını azaltmak adına Tx/Rx i birleştirdim. Çoğu komutta aynı anda Tx aynı anda Rx olmayacağı için hat sayısını azaltmak işime geliyor.

Ben hala UART modeli üzerinde duruyorum çünkü bağlantı sayısı çok çok az. Eğer yüksek baud ratelere çıkabilirsek zaten sorun da kalmıyor.

CRC kontrolü vs iyi şeyler ancak zaten yavaş olan BUSa ilave olarak ucuz işlemcilere ilave kontroller yaptırmak hızımızı daha da düşürübilir. Eğer uygulamada sıkıntılar olursa CRC, handshake vs eklemek zorunda kalabiliriz.


mesaj birleştirme:: 08 Ekim 2013, 20:50:00

Alıntı yapılan: justice_for_all - 08 Ekim 2013, 20:44:53
ben de SS pininin kullanilma amacini hala anlayabilmis değilim.

Hem CS anlamına geliyor hem de iletişimin başladığı anlamına. Sonuçta durum makinesi var. Bunun sapıtması durumunda sıfırlanması lazım. SS bu işi yapıyor.

Düşün bir clk sapıtsa artık sonraki tüm datalar yanlış gider fakat SS bunu engeller.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Erol YILMAZ

Alıntı yapılan: z - 08 Ekim 2013, 20:47:47
A/D hattı eklendiğinde A/D=0 yapılınca tüm işlemcilere interrupt yollamış oluruz. Hey hepiniz şimdi göndereceğim data adres bilgisidir uyanık olun bunu okuyun anlamına gelir.

Bu yüzden A/D hattı işleri kolaylaştırıyor.

Hocam bence UART taki en büyük problem olan her data geldiğinde her üyede kesme oluşması problemini halletmiş görünüyorsunuz.
A/D hattı sayesinde bütün üyeler sadece ADRES gönderildiği zaman bir kontrol yapacaklar.
İlgisiz üyeler diğer zamanlarında UART kesmelerini göz ardı edebilirler.
Aksi halde örneğin SD Karttan veri okumaya kalktığınızda akan veri,  ilgisiz üyelerin kendi iş akışına izin vermeyecek seviyeye ulaşacaktı.

muhittin_kaplan

Bana yaptiginiz calismanin bir ornegini daha gosterebilirmisiniz.
En yakini ardu onda da std bir baglanti yok.

z

Alıntı yapılan: Allegro - 08 Ekim 2013, 21:32:16
Hocam bence UART taki en büyük problem olan her data geldiğinde her üyede kesme oluşması problemini halletmiş görünüyorsunuz.
A/D hattı sayesinde bütün üyeler sadece ADRES gönderildiği zaman bir kontrol yapacaklar.
İlgisiz üyeler diğer zamanlarında UART kesmelerini göz ardı edebilirler.
Aksi halde örneğin SD Karttan veri okumaya kalktığınızda akan veri,  ilgisiz üyelerin kendi iş akışına izin vermeyecek seviyeye ulaşacaktı.

Aslina bazi uartlardaki 9 data biti ozelligi sayesinde bu A/D hatti kaldirilabilir. Fakat her islemci 9. data bitini destekliyormu bilmiyorum. Zaten bu 9. bit data adres tasiyor anlamina geliyor ve int uretim isi 9. bit ile yapilabiliyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

subram

Alıntı yapılan: z - 06 Ekim 2013, 15:04:18
Normalde organizasyonlar bu kararlari muhtemelen toplanti ustune toplanti yaparak bilir kisi calisanlari ile cok uzun vadede ortaya koyuyorlardir. Biz o kadar calisma yapamayiz ama bir sekilde standart olusturabiliriz.

toplantı konusu için google hangoutu öneririm. Daha önce kullandık çok güzel bir uygulama.
https://www.picproje.org/index.php/topic,44605.0.html
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

z

Alıntı yapılan: z - 08 Ekim 2013, 14:22:57

(Resim gizlendi görmek için tıklayın.)

Deneme için 3.3v da çalışan çipinizde UART'ın Rx pinine 330R direnç ve buna paralel 100pF kapasite bağlayıp 20 cm lik bir kablo üzerinden Tx pinine BAT54 benzeri bir diyodu bağlayıp gönderilen karakterin doğru şekilde alınıp alınmadığını test etmek gerekiyor.

Bu deneme sonucunda hangi baud rate değerinden sonra yanlış veriler alınmaya başlıyor denemek lazım.

Anlasilan kimsede bu denemeyi yapacak donanim ya da merak yok. Benim denemem gerekecek.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

serdararikan

hocam siftah sizden bereket Allah'tan.

z

#72
Siz denemezseniz ben de denemeyecegim. Yoklama yapmaya karar verdim.

Ana islemci kendisine hangi siniftan ve hangi adresli kartlarin takildigini kendi uzerindeki yazilimdan dolayi zaten biliyor. Init fonksiyonunda takili olan kartlarin tek tek yoklamasi yapilabilir.

115200 baud ile basliyor.

Ahmet!!!
-------------- Burdayim

Mehmet!!!
-------------- Burdayim

Ayse!!!

-------------- Igi Muf
Ayse!!!

-------------- Mufigi

Anlasildi bir dusuk baudrate ile bir daha yoklama yapalim.

Ne zaman Ayse burdayim dedi o zaman ana islemci o baud rate ile herkesle konusur.

Biraz akilli algoritma ile tum slave kartlar Aysenin 115200 de calisamadigini ve Aysenin Burdayim dedigi baudrate'in kac baud oldugunu anlayacaklardir.

Yada yoklamayi en dusuk baud rate den baslatip git gide tempoyu artirabilir. Bu daha az akil gerektirir.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Klein

O şekilde çift devre deneyemem şimdilik. Rs485 çipinin çıkışına bir diyot  ve direnç bağlayıp deneyebilirim.

serdararikan

Alıntı yapılan: z - 11 Ekim 2013, 23:31:54
Siz denemezseniz ben de denemeyecegim. Yoklama yapmaya karar verdim.

Ana islemci kendisine hangi siniftan ve hangi adresli kartlarin takildigini kendi uzerindeki yazilimdan dolayi zaten biliyor. Init fonksiyonunda takili olan kartlarin tek tek yoklamasi yapilabilir.

115200 baud ile basliyor.

Ahmet!!!
-------------- Burdayim

Mehmet!!!
-------------- Burdayim

Ayse!!!

-------------- Igi Muf
Ayse!!!

-------------- Mufigi

Anlasildi bir dusuk baudrate ile bir daha yoklama yapalim.

Ne zaman Ayse burdayim dedi o zaman ana islemci o baud rate ile herkesle konusur.

Biraz akilli algoritma ile tum slave kartlar Aysenin 115200 de calisamadigini ve Aysenin Burdayim dedigi baudrate'in kac baud oldugunu anlayacaklardir.

Yada yoklamayi en dusuk baud rate den baslatip git gide tempoyu artirabilir. Bu daha az akil gerektirir.

şöyle olsa

ana işlemci sisteme ilk enerji verildiğinde sabit bir baudrate de üniteleri tarasa ve üniteler enerjilenme durumunda A/D ucu D olana kadar işlemciyle tanışmak için bekleseler ve her ünite tanışma sırasında ana işlemciye sınıfını adresini ve baudrate ini söylese işlem daha pratik yapılmazmı?