Harici RAM En az 50Mhz

Başlatan robomaster, 12 Eylül 2015, 17:25:00

robomaster

İki MCU nun arasında veri paylaşımı için devremde  2 mcu arasında ortak kullanmayı düşündüğüm (birinci mcu belli aralıklarda yazacak ikincisi belli aralıklar da okuma yapacak) bir RAM modülü lazım. Kapasite çok küçük olabilir. Zira bir tampon vazifesi görecek ve 256byte olabilir. Ancak 50mhz kadar çalışabilmeli. Bulunabilirlik ve fiyatta önemli tabiki. Ama olmuyorsa da ne yapalim. :)

Neden bu yolu tercih ettim hız açısından iki mcu arasında uart veya seri bir protokol kullanmak istemiyorum. Ayrıca paralel bir iletişim ile 2 mcu nunda aynı anda meşkul olmaması lazım.

Önerileriniz ne olur bu konuda.

Selamlar...

Klein

CPU nedir?  kullanacağınız CPU'nun harici adres ve veri yolu var mı?

robomaster

Hayır yok. Normal IO pinleri üzerinden halledebilirim. Sorun yok. 
Kullandığınız bir sram varsa tavsiye edebileceğiniz. Birde 2 mcu paylaşabilir mi denicem.

diot

Fast sram diye aratırsanız bulunur. örnek olartak işinize yararmı bilmem 66mhz  http://www.idt.com/document/dst/71v547-data-sheet

robomaster

Kapasite çok büyük verdiğiniz örnekte. Üstelik 36 bit veri genişliğinde. 8 bit bana çok uygun. 16 bit te olabilir. Basit bir şey arıyorum.  Araştırmaya devam.
Teşekkürler...

diot

#5
6116 gibi bir şey bulabilirsiniz en küçük oda 8 bit ve 2k ama erişim süresi 70 ns, size  15 ns gibi bir şey lazım.


mesaj birleştirme:: 12 Eylül 2015, 18:30:07

bu olabilir hem dual port http://uk.farnell.com/integrated-device-technology/idt7006l15jg/sram-dual-port-16k-x-8-smd-plcc68/dp/1260371?categoryId=700000004175

robomaster

#6
Alıntı yapılan: diot - 12 Eylül 2015, 18:27:41
6116 gibi bir şey bulabilirsiniz en küçük oda 8 bit ve 2k ama erişim süresi 70 ns, size  15 ns gibi bir şey lazım.

6116 dan gidince baya güzel sonuçlara ulaştım. Ancak datasheetleri bulmak zor şimdide.

5ns gibi değerler var.
74188 - 256 bit (8x64)
74186- 512 bit (8x128)
74271- 2048bit  vs...

Çok teşekkür ederim.


mesaj birleştirme:: 12 Eylül 2015, 20:08:36

Bunlar artik yok piyasada galiba... :) Çoğu da PROM.

Klein

2 MCU ile paylaşabilmek için  Portun ya open collector olmalı, ya da işin bitince Hi-Z yapman gerek. Ya da bir anahtarlayıcı eleman kullanman gerek.
CPU kaç MHZ?  normal IO kullanarak o kadar yüksek hızlara çıkabileceğinizi pek sanmıyorum. 

z

Bu işler için dual port Ram lazım. Fiyatları çok pahalı idi.

http://datasheets.maximintegrated.com/en/ds/DS1609.pdf
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

CLR

Bence AL422B kullanabilirsin, FIFO'dur. Adres pinleri olmadığı için sadece data ve okuma ve yazma kontrol pinleri gerekir ama datayı nasıl yazıp okuyacağınız bir protokolünü belirlemelisin, çünkü datanın yerini bulmak için. Aynı anda bir işlemci yazarken diğeri okuyabilir. Dediğim gibi adres pinleri olmadığı için data ring(baştan sona, sondan başa)  olarak dönecektir. Derinliği 384KB yani çok derin sayılır.
Fiyatıda Aliexpresste oldukça uygun, tanesi 1.1$ gibi bir fiyata geliyor. (10 tanesi 11$).
Knowledge and Experience are Power

robomaster

#10
Alıntı yapılan: Klein - 12 Eylül 2015, 20:33:52
2 MCU ile paylaşabilmek için  Portun ya open collector olmalı, ya da işin bitince Hi-Z yapman gerek. Ya da bir anahtarlayıcı eleman kullanman gerek.
CPU kaç MHZ?  normal IO kullanarak o kadar yüksek hızlara çıkabileceğinizi pek sanmıyorum. 
Sonuna kadar doğru. Benim isimi 80ns görecek.



mesaj birleştirme:: 13 Eylül 2015, 15:53:46

Alıntı yapılan: z - 12 Eylül 2015, 20:57:24
Bu işler için dual port Ram lazım. Fiyatları çok pahalı idi.

http://datasheets.maximintegrated.com/en/ds/DS1609.pdf

Super. Tam 12 den. Fiyat sorun ama bakıcam.


mesaj birleştirme:: 13 Eylül 2015, 01:58:07

Alıntı yapılan: CLR - 12 Eylül 2015, 23:08:02
Bence AL422B kullanabilirsin, FIFO'dur.
Güzel bir chip. FIFO olması. İlk girenin ilk çıkması için tüm hafızanın dolması gerekiyor diye anladım. O sebeple küçük boyuttaki veri paylaşımında zaman kaybı olacaktır diye düşünüyorum. (Denemek lazım...?)


CLR

Yok öyle değil yanlış anlamışsın, diyelim ki cpu1 fifoya yazıyor, cpu2 fifodan okuyor olsun. Yazma ve okuma için fifo içinde 2 tane ayrık counter var. Yani yazarken yazma counter'i sayıyor ve fifoya yerleştiriyor. Okuma için ise okuma counter'i fifodan okuyor. Tabii ilk mesajımda dediğim gibi mesaj yerini kaçırmaman lazım, önlem almalısın.
Knowledge and Experience are Power

esensoy

Neden dma kullanmıyorsunuz?
En tehlikeli an "zafer" anıdır.

robomaster

Çünkü 2 denetleyici arasında ve küçük boyuttaki data yı paylaşmak istiyorum.
RAM ortak kullanılacak. Transfer ettiğim data 64 byte kadar küçük. İşlemciyi çokta meşkul etmeyecektir.
Ayrıca data nın talebi anında diğer işlemci boşta değil bu sebeple küçük bir tampona ihtiyacım var.

t600

#14
hurdacıdan 286 , 386 , 486  at  bordlardan bul , her birinin üzerinde en az 10 adet 64 veya 256 k lık static ram var , bu ramlar bord ramları , işini görür, ör 61c64
iki işlemci ile aynı ram ı okuma konusuna gelelim . Bunu bir ekran kartı yaparken denemiştim . Mutlaka meşkul sinyali için bir pin ayır . Mutlak surette adres yolu olan mikrodenetliyici kullanmalısın , 16 bit . Bu adres yolunun ilk 8 pini adres ve data birlikte tamamı ise sadece adrestir , bu konu ile ilgili haluk gümüşkayanın kitabında tam istediğin gibi bir örnek var ( 8051). aynı örneği ısıs sampler örnek dosyalarda 8051 ram olarak bulabilirsin . Mutlaka 74 serisi yol tutucuları kullanman gerek .

mesaj birleştirme:: 13 Eylül 2015, 18:07:00

https://www.pjrc.com/tech/8051/dev-board-schematic.html