Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.trGenel KategoriProjeIRQHack64 - EPROM Kullanan :) Prg Yükleyici Kartuş
Sayfa: 1 ... 5 6 [7] 8 9 ... 20   Aşağı git
Yazdır
Gönderen Konu: IRQHack64 - EPROM Kullanan :) Prg Yükleyici Kartuş  (Okunma Sayısı 225724 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #90 : Ekim 10, 2015, 20:25:34 ÖS »

@msvstpl: İşin teorisine fazla girmenin insanları benzer çabalara girme noktasında korkutacağı noktasına kısmen katılıyorum. Şu kısım hariç; Ortada herhangi bir yanlış varsa, örn. benim hatları doğrudan sürmem gibi veya bir başka kişinin verdiği eksik / yanlış bilgi gibi, teoriye girilmesi gerekiyorsa bence o noktada girilmeli.

Bildiğin bir şeyi yapıyor olmak güzel ancak yeni bilgiler bazılarına giriş kapısını kapattığı gibi bazılarına da bazı yeni kapıları aralayabilirler.  Şahsen dün bulunduğum noktadan bir adım ötede olmayı isterim hep.
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
Metallic
Uzman
*****
Mesaj Sayısı: 1.081



Üyelik Bilgileri
« Yanıtla #91 : Ekim 11, 2015, 00:23:05 ÖÖ »

C64_RESET.oe=REQ_RESET; Burada da output enable yapılınca, yani aslında pini output yapınca çıkışı low a çekmiş oluyor.
Pinin output enable'dan sonraki durumu nedir, float mu?
Logged
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #92 : Ekim 11, 2015, 01:00:06 ÖÖ »

C64_RESET.oe=REQ_RESET; Burada da output enable yapılınca, yani aslında pini output yapınca çıkışı low a çekmiş oluyor.
Pinin output enable'dan sonraki durumu nedir, float mu?


OE 1 ise Hi-Z, yani buraya bağlı olan devre buradan etkilenmez. Kendi yapısında ne okuması gerekiyorsa onu okur, 1 ya da 0. OE 0 ise yani output enable edilmiş ise pin'e ne verilmişse o.

Hi-Z, tristate vs. yapmanın mantığı şu, bu tip pin'ler zaten harici pull-up ile high'a çekiliyor.
« Son Düzenleme: Ekim 11, 2015, 01:02:46 ÖÖ Gönderen: i_r_on » Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #93 : Ekim 11, 2015, 01:07:10 ÖÖ »

Pinin durumu C64_RESET.l='b'0; satırı ile belirleniyor zaten. Yani bu pin hep Low. Tabiki sadece output enabled high edilince bu 0 değerini dışarıya basıyor, output enabled olmadığı durumlarda pin float demek.

Lojik devre çıkışlarında genelde her bir pin için iki adet mosfet(transistor) olur. Bunlardan biri çıkışı low'a çekmek için kullanılır. Diğeri de high'a çekmek için kullanılır. Output Enabled sinyali bu transistorlerin çalışıp çalışmayacağını belirler aslında basit anlamda.

Open Collector olarak bahsedilen yapıda ise sadece low'a çeken transistor vardır. High'a çekmek için bir transistor bulunmaz. Bunun avantajı eğer aynı hattı birden çok chip paylaşıyor ise, chiplerden biri hattı high, öteki low yapmak istediği durumlarda kısa devre olmasının önlenmesidir. Tabiki bu durumda mutlaka ilgili hattın bir adet pull-up direnci vardır. Bu direnç hattı kimse low'a çekmiyor ise, float değil high'da kalmasını sağlar.

Bazı CPLD'lerde Open Collector özelliği mevcut. Ama benim kullandığımda yok. Open Collector özelliği olmayan durumlarda (örn. bir çok mikroişlemcide de böyle) çıkış sabit olarak 0 yapılır. Yani high'a çeken transistorun hiç çalışmayacağı garanti edilmiş olur. Eğer ilgili pin input yapılırsa çıkıştaki transistorler çalışmayacağından, hat pull-up direnci ile high olmuş olur. Hat low yapılmak istendiğinde ise, pin output yapılır ve zaten daha önce 0 olarak set edilmiş olduğu için low'a çeken transistor çalışır, ve hat low'a çekilmiş olur.

Bu sisteme open collector denmesinin sebebi ise, çıkışta sadece low'a çeken transistor olduğunu söylemiştik. İşte bu transistorun collector bacağının dışarı verilmiş olmasıdır. Yani çıkış ya 0 yada boştadır kısaca...

Open Collector yapıda low sinyalin ağırlığı vardır bir bakıma. Zaten bu sebeple şemalarda gördüğümüz bazı sinyaller Active Low olarak tanımlanmıştır. Örneğin /RESET. Yani /RESET hattını gerektiğinde birden çok kaynak low'a çekerek tetikleme yapabilir.

Bu arada bilgi için, şemalarda sinyalin üzerinde bir çizgi varsa, yada sinyalin isminin yanında / işareti kullanılıyorsa bu hattın active low olduğunu gösterir.  
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #94 : Ekim 11, 2015, 01:08:48 ÖÖ »

OE 1 ise Hi-Z, yani buraya bağlı olan devre buradan etkilenmez. Kendi yapısında ne okuması gerekiyorsa onu okur, 1 ya da 0. OE 0 ise yani output enable edilmiş ise pin'e ne verilmişse o.

i_r_on, Latch entegralerinde falan oe sinyali active low, yani aslında /oe şeklinde. Yani senin dediğin gibi 0 olduğunda output aktif demek. Ama CPLD içinde oe sinyali active high, yani /oe değil. Bu sebeple CPLD içinde oe=1 olduğunda çıkışlar aktif demek oluyor.
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #95 : Ekim 11, 2015, 01:24:47 ÖÖ »

OE 1 ise Hi-Z, yani buraya bağlı olan devre buradan etkilenmez. Kendi yapısında ne okuması gerekiyorsa onu okur, 1 ya da 0. OE 0 ise yani output enable edilmiş ise pin'e ne verilmişse o.

i_r_on, Latch entegralerinde falan oe sinyali active low, yani aslında /oe şeklinde. Yani senin dediğin gibi 0 olduğunda output aktif demek. Ama CPLD içinde oe sinyali active high, yani /oe değil. Bu sebeple CPLD içinde oe=1 olduğunda çıkışlar aktif demek oluyor.


Hmm, GAL, eprom, sram vesaire hepsinde hep active low, cpld'de tersiymiş demekki.

Bir de şu float'u netleştirmek lazım. Float'u Hi-z yerine mi kullanıyorsunuz? Bir pin'i ortamdaki gürültüye göre rastgele değerler okuyacak şekilde set etmek mümkün mü cpld üstünde? Float'tan benim anladığım hiç bir yere bağlı olmayan input pin'i. Sürülen devre gözünden bakarsak open collector / open drain bir output bekliyor ve ortamda pull up varsa sinyalin float olması yani 1 ile 0 arasında gezmesi mümkün değil. Süren devre gözünden bakarsak ilgili pin'i Hi-Z yapmışsa aynı pin'i kendi okuduğunda 1 ile 0 arasında gezer bulması mümkün mü?
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
Metallic
Uzman
*****
Mesaj Sayısı: 1.081



Üyelik Bilgileri
« Yanıtla #96 : Ekim 11, 2015, 02:40:57 ÖÖ »

delimawi  open collector bilgisi için teşekkürler. Vurgulayıcı olması açısından fc3'te kullanılan bir open collector örneği de benden.

Logged
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #97 : Ekim 11, 2015, 04:37:45 ÖÖ »

@Özay:
KissCart'ını gönder, IRQHack64'ünü al :p



Şaka bir yana denemen için hazırlayacağım dediğim IRQHack64'ünü hazırladım. Test ettim çalışıyor, pazartesi günü sana gönderirim.

Bu arada buton olayını da hallettim. A4'ü (A5 te olabilir) kullandım, A6 ve A7'de internal pullup yokmuş.


* 20151011_042751.jpg (126.03 KB, 1024x988 - Görüntüleme: 4929 kez.)
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #98 : Ekim 11, 2015, 12:16:18 ÖS »

Bir de şöyle bir sorunsal var. Pro mininin 5v kartustaki 5v'a bağlı. Arduino usb ile pc'ye bağlandığında arduino iki kaynak arasında seçim yapacak. Bu durumda sorun yaşar mıyım acep?

Pc tarafına usb seri bağlantı üzerinden transfer yapacak ufak bir program yazacağım, bu konu aklıma takıldı.
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #99 : Ekim 11, 2015, 13:43:14 ÖS »

Bir de şöyle bir sorunsal var. Pro mininin 5v kartustaki 5v'a bağlı. Arduino usb ile pc'ye bağlandığında arduino iki kaynak arasında seçim yapacak. Bu durumda sorun yaşar mıyım acep?

Pc tarafına usb seri bağlantı üzerinden transfer yapacak ufak bir program yazacağım, bu konu aklıma takıldı.

USB bağladığında C64'ten enerji almasını sağlaman mümkün ise (yani kartuş takılı ve C64 çalışır iken USB bağlantısı yapacaksan) USB tarafındaki 5V'yi hiç bağlama.

Yok kartuş takılı değilken de USB bağlarım diyorsan, USB 5V ile C64 5V nin birbirlerine bağlı olması hoş bir durum değil. Mutlaka biri birinden daha yüksek olacaktır ve otaraftan diğerine akım akacak.

Bunu önlemek için mosfetli bir power switch kullanman en doğrusu. Benim ucuz yollu tavsiyem ise, USB tarafından gelen 5V hattına seri bir sthocky diod bağla. Bu sayede C64 tarafındaki 5V PC ye akamaz. Ayrıca PC tarafından gelen 5V diod üzerinden geçeken 0.2 kadar gerilim düşümüne uğrayacaktır, yani 4.8v lara düşer. Bu sebeple de C64 tarafına akmamış olur.

Bilmiyorum konuyu doğru anladım mı ama bu yöntemi deneyebilirsin.
USB tarafından gelen 5V da düşme olması senin devrenin çalışmasını etkilemez.

EDIT: Diode olarak 1N5819 kullanabilirsin.
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #100 : Ekim 11, 2015, 14:00:32 ÖS »

Hmm, GAL, eprom, sram vesaire hepsinde hep active low, cpld'de tersiymiş demekki.


CPLD programlarken dökümanlarda diyor ki; Siz kafanızı hiç active low, yada active high mantığı ile karıştırmayın. Lojik mantığı olması gerektiği gibi kurun. Yani oe mesela. Output Enabled demek. Output Not Enabled değil.
En son lojik bitince, gerekiyorsa ilgili pini yada hattı active low olarak tanımlayabilirsin, bu durumda değişmesi gereken tüm önermeleri compiler yada fitter kendisi hallediyor.

Bunu tanılarken de mesela, PIN2 = oe Dediğimiz yerde, sadece PIN2=!oe yada !PIN2=oe diyoruz.
Yada bir önermede mesela, Sinyal=A&B yerine !Sinyal=A&B dediğimizde Sinyal active low olmuş oluyor...


WinCUPL Manual'den Altıntı:


The concept of polarity can often be a confusing one. In any PLD design, the designer is primarily concerned with whether a signal is true or false. The designer should not have to care whether this means that the signal is high or low. For a variety of reasons a board design may require a signal to be considered true when it is logic level 0 (low) and false when it is logic 1 (high). This signal is considered active-low since it is activated when it is low. This might also be called low-true. If a signal is changed from active-high to active low then the polarity has been changed.

For this reason, CUPL allows you to declare signal polarity in the pin definition and then you do not have to be concerned with it again. When writing equations in CUPL syntax, the designer should not be concerned with the polarity of the signal. The pin declarations declare a translation that will handle the signal polarity.


Bir de şu float'u netleştirmek lazım. Float'u Hi-z yerine mi kullanıyorsunuz? Bir pin'i ortamdaki gürültüye göre rastgele değerler okuyacak şekilde set etmek mümkün mü cpld üstünde? Float'tan benim anladığım hiç bir yere bağlı olmayan input pin'i. Sürülen devre gözünden bakarsak open collector / open drain bir output bekliyor ve ortamda pull up varsa sinyalin float olması yani 1 ile 0 arasında gezmesi mümkün değil. Süren devre gözünden bakarsak ilgili pin'i Hi-Z yapmışsa aynı pin'i kendi okuduğunda 1 ile 0 arasında gezer bulması mümkün mü?


Evet, doğru tanım mı bilmem ama benim için float ve High-Z aynı şey.
Eğer süren devre gözü ile bakarsak, Pin Hi-Z yapılmış ise, ve dışarıda bir pull-up pull-down yoksa normalde 1-0 arasında rasgele bir değer okunmasını bekleriz. Ama bu durum istenen bir durum değil, zira gürültüye ve enerji tüketimine sebep olur, şöyleki eğer bu pin input ise, her 0-1 geçişinde, input buffer'ın&nbsp; state değiştirmesine sebep olur. Bunu önlemek için bazen internal pull-up oluyor, bazen de dışarıdan pull-up kullanılması tavsiye olunuyor kullanılmayan pinler için.

ATF1504 de ise başka bir mantık var. Her bir pin için ayrı ayrı set edilebilien pin-keeper denen bir özellik var. Örneğin pin gürültü alıp 1 statüsüne geçmiş ise, input buffer çıkışından pin girişine zayıf bir feedback yapılıyor ve pinin bu statüde kalması sağlanıyor. Pin-keeper özelliğini sadece kabaca biliyorum, detaylarına Atmel CPLD pdflerinden ulaşabilirsin.

Bu pin keeper'in basit şemeası aşağıdaki şekilde:

Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.751


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #101 : Ekim 11, 2015, 17:57:13 ÖS »



Facebook'da "KissCart64 ordum hazır, Commodore dünyasını ele geçirmeye hazırım." demiştim ya, bu da kumandanları olur artık. Kahkaha
Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #102 : Ekim 11, 2015, 20:29:07 ÖS »

Hmm, GAL, eprom, sram vesaire hepsinde hep active low, cpld'de tersiymiş demekki.


CPLD programlarken dökümanlarda diyor ki; Siz kafanızı hiç active low, yada active high mantığı ile karıştırmayın. Lojik mantığı olması gerektiği gibi kurun. Yani oe mesela. Output Enabled demek. Output Not Enabled değil.
En son lojik bitince, gerekiyorsa ilgili pini yada hattı active low olarak tanımlayabilirsin, bu durumda değişmesi gereken tüm önermeleri compiler yada fitter kendisi hallediyor.


Aslında input ve output'lar için bunu yaptığını biliyorum. CPLD'ler ile hiç çalışmadım, GAL'lerde bildiğim kadarıyla tek pin OE ve low active. Oraya referans vermiştim aslında. Pin'lerin OE'sini de positive / negative logic'e göre belirlenmesi iyiymiş.


Bir de şu float'u netleştirmek lazım. Float'u Hi-z yerine mi kullanıyorsunuz? Bir pin'i ortamdaki gürültüye göre rastgele değerler okuyacak şekilde set etmek mümkün mü cpld üstünde? Float'tan benim anladığım hiç bir yere bağlı olmayan input pin'i. Sürülen devre gözünden bakarsak open collector / open drain bir output bekliyor ve ortamda pull up varsa sinyalin float olması yani 1 ile 0 arasında gezmesi mümkün değil. Süren devre gözünden bakarsak ilgili pin'i Hi-Z yapmışsa aynı pin'i kendi okuduğunda 1 ile 0 arasında gezer bulması mümkün mü?


Evet, doğru tanım mı bilmem ama benim için float ve High-Z aynı şey.
Eğer süren devre gözü ile bakarsak, Pin Hi-Z yapılmış ise, ve dışarıda bir pull-up pull-down yoksa normalde 1-0 arasında rasgele bir değer okunmasını bekleriz. Ama bu durum istenen bir durum değil, zira gürültüye ve enerji tüketimine sebep olur, şöyleki eğer bu pin input ise, her 0-1 geçişinde, input buffer'ın&nbsp; state değiştirmesine sebep olur. Bunu önlemek için bazen internal pull-up oluyor, bazen de dışarıdan pull-up kullanılması tavsiye olunuyor kullanılmayan pinler için.

ATF1504 de ise başka bir mantık var. Her bir pin için ayrı ayrı set edilebilien pin-keeper denen bir özellik var. Örneğin pin gürültü alıp 1 statüsüne geçmiş ise, input buffer çıkışından pin girişine zayıf bir feedback yapılıyor ve pinin bu statüde kalması sağlanıyor. Pin-keeper özelliğini sadece kabaca biliyorum, detaylarına Atmel CPLD pdflerinden ulaşabilirsin.

Bu pin keeper'in basit şemeası aşağıdaki şekilde:




Atmel için baktım, evet piyasada pull up yahut pull down yok ise ve pin okuma modunda ise float edermiş. Bilgiler için teşekkürler. En iyisi kullanılmayan pin'leri output olarak set edip default bir değeri buradan vermek.
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #103 : Ekim 11, 2015, 20:42:57 ÖS »

USB bağladığında C64'ten enerji almasını sağlaman mümkün ise (yani kartuş takılı ve C64 çalışır iken USB bağlantısı yapacaksan) USB tarafındaki 5V'yi hiç bağlama.

Yok kartuş takılı değilken de USB bağlarım diyorsan, USB 5V ile C64 5V nin birbirlerine bağlı olması hoş bir durum değil. Mutlaka biri birinden daha yüksek olacaktır ve otaraftan diğerine akım akacak.

Bunu önlemek için mosfetli bir power switch kullanman en doğrusu. Benim ucuz yollu tavsiyem ise, USB tarafından gelen 5V hattına seri bir sthocky diod bağla. Bu sayede C64 tarafındaki 5V PC ye akamaz. Ayrıca PC tarafından gelen 5V diod üzerinden geçeken 0.2 kadar gerilim düşümüne uğrayacaktır, yani 4.8v lara düşer. Bu sebeple de C64 tarafına akmamış olur.

Bilmiyorum konuyu doğru anladım mı ama bu yöntemi deneyebilirsin.
USB tarafından gelen 5V da düşme olması senin devrenin çalışmasını etkilemez.

EDIT: Diode olarak 1N5819 kullanabilirsin.


İki şekilde kullanım mevcut aslında burada. Kartuş dışarıdayken besleme ve program aktarımı. Kartuş takılıyken usb üstünden seri haberleşme.

Pro mini kullandığımız için aslında pro Mini'nin üstünde usb desteği veren bir çip yok. Hariçten bu sağlanıyor serial to usb aparatları ile. O da sonuçta RXD, TXD, GND ve 5V ile bağlanıyor.

Kartuş takılı iken 5V'u bağlamamak lazım. Takılı değilken de bağlamak lazım. Ancak atmega'yı çıplak kullanmayıp orijinal board'u ile kullandığımız için bu diyot işi yapılabilir mi bilmiyorum. Nano yahut Uno olsaydı bu dediğin işi o kendi yaptığı için sorun olmazdı muhtemelen.

Şimdilik kullanıcının gözünü açık tutmasını bekleyelim
Zaten usb'yi sürekli bağlı tutup kullanacak kişi sayısı çok fazla olmaz. Onların da 5v pin'ine bağlantı yapmaması lazım.
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #104 : Ekim 12, 2015, 01:55:53 ÖÖ »

Zımbırtıya yeni bir özellik ekledim. Pc tarafındaki ufak bir tool yardımı ile prg dosyalarını yükleyip çalıştırabiliyor artık.



Ufak bir de yarışma düzenliyorum. Size üretildiğinde bir adet IRQHack64 kazanma fırsatı. Eğlenceli bir sorusu var, yarın akşam saat 18:00'a kadar doğru cevap verenlerin arasından yapılacak çekiliş ile şanslı kişi belli olacak.

Soru şu : IRQHack64 C64'e program gönderirken ekranda çıkan şeritler neyi ifade ediyor?

Cevapları lütfen PM ile gönderin.
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
Sayfa: 1 ... 5 6 [7] 8 9 ... 20   Yukarı git
Yazdır
Gitmek istediğiniz yer: