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)
Sayfa: 1 2 [3] 4 5 ... 14   Aşağı git
Yazdır
Gönderen Konu: Psid player projesi  (Okunma Sayısı 99905 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #30 : Ocak 28, 2015, 23:15:57 ÖS »

Reset devresi de tamamdır. 0.5sn logic sıfırda kalan onun haricinde 1 olarak giden bir sinyal üretmem gerekiyordu. Pic16f84a delay komutu ile kısaca yazdım.

Program ekte. Orjinal devrede böyle ekstra bir pic kullanımı olmayacak bu arada. Bu sadece test için.

ps: Bu arada dünkü başarısız denemelerden sonra logic analyzer'a az daha bok atıyordum. 1Mhz Osilatör devresini de Reset devresini de bu aletle debug ettim. Kullanması oldukça basit ve başarılı. Sadece devrenizin yanlış çalıştığına inanmanız gerekiyor

* Reset.c.txt (0.89 KB - Yükleme: 482 kez.)
« Son Düzenleme: Ocak 28, 2015, 23:17:42 ÖS 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
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #31 : Ocak 29, 2015, 01:38:31 ÖÖ »

Test devresini kurdum. Logic analyzer'ın en çok işe yarayacağı an bu an. Sid'i öldürmemek için devreye bağlamadım. Logic analyzer ile 6502 / Eprom ve Sid'in bacakları açısından işler yolunda gidiyor mu diye önden bir test etmek istiyorum. Elimde fazla Eprom ve 6502 var ancak 8580 (En yeni kasalarda kullanılan sid modeli) bir tane.

8580 6581'den farklı olarak 9v gerilim istiyor. Benim elimde 12v elde etme imkanı olmadığı için mecbur böyle bir seçim yapmak zorunda kalıyorum şimdilik.&nbsp; Pc power supply'ı kullanılabilirdi belki ki elimde de fazla var ancak bu konuda deneyimim yok. Şimdilik 9v pil ile şansımı deneyeceğim bakalım.



Bu arada eprom konusunda bir tüyo, elinizde eprom sayısı az ise ve/veya silmekte zorlanıyor iseniz aynı eprom'u tekrar tekrar yazabilirsiniz. Yapmanız gereken ihtiyacınız olmayan bölgeleri yazacağınız dosyada FF şeklinde bırakmak. Eprom'un default içeriği FF olduğu için bir kere yazdıktan sonra FF kalan yerler değiştirilebiliyor.&nbsp; Eldeki eprom atıyorum 64k ise ve siz de 8k 8k kullanacaksanız. Devrenize bağlarken sadece adres bacaklarını değiştirip aynı eprom'u silmeden 8 defa kullanabilirsiniz.

Bu OTP eprom'lar için de geçerli. Elinizde silinebilir eprom yoksa ancak içinde size yetecek kadar bitişik FF bulunan bir OTP eprom varsa bunun FF bölgelerini programlayıp kullanabilirsiniz. Geri kalan içeriği olduğu gibi aynı yapmalısınız dosyanızda.



* 20150129_011557 (2).jpg (348.39 KB, 2048x1152 - Görüntüleme: 3502 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 #32 : Ocak 29, 2015, 02:23:36 ÖÖ »

Devreyi logic analyzer ile çalıştırdım. İlk problemler, board'ların arasındaki +5v, GND geçişleri düzgün yapılmamış. Ancak devamında modüler çalışmanın hediyesi olsa gerek 6502'ye reset atıp çalıştırmayı başardım. Sid testi daha sonraya kaldı. C64 açıp ciğerinden sid'i çıkarmam lazım falan... iş güç var yarın.

Devre çalıştığında logic analyzer'daki görüntüsü...
Sırasıyla, Clock, Eprom /CS, Reset, A0, A1, A2



Elimdeki logic analyzer 8'den fazla kanallı olaydı belki 8 adres bacağına da bağlamak mantıklı olabilirdi. Diğer testleri sonraya bırakıyorum artık. Herkese iyi geceler.



* 6502.png (24.62 KB, 1081x400 - Görüntüleme: 3621 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 #33 : Ocak 30, 2015, 02:51:11 ÖÖ »

Bugün sid'i takıp denedim. Sonuç hüsran En azından çip yakma falan yok şimdilik bu iyi.

1. Kesinlikle daha fazla kanalı olan logic analyzer almalıymışım. Analiz seçeneklerinden Simple Parallel tam bana göre. Program istediğiniz kanalları D0'dan D15'e atıyor sonra sinyalleri otomatikman Text ve/veya Hex değerlerine çeviriyor. Sallıyorum 8 Data, 8 adres bus'dan 16 kanal bağlansa hangi adresten ne yazılıyor ne okunuyor görmek mümkün.

2. Salae logic analyzer programının bir sıkıntısı var, iki de bir crash olup duruyor. Doğru düzgün analiz yapamadım bu yüzden. (belki ram'den belki de disk alanının azlığından... ssd yetersizliği...)

3. ZIF soket fikri iyi bir fikir değilmiş. Özellikle de taktıktan sonra yerinden çok da oynatmayacağınız entegreler için breadboard söz konusu olduğunda kolaylıktan çok zorluk getiriyor. Sid için bacaklarını koruma maksatlı kullanılabilirdi ancak aldığım zif soket sid için darmış. Sid'i c64'ten çıkarıp da bunları bir araya getirince anladım Alınan malzemenin enine boyuna bakmak lazım.

4. Sesi daha çalamadım ama devredeki gürültüyü engellemek için epey çalışmak gerekecek bunu anladım.

5. Devreyi değiştirdim. Logic analyzer'ı düzgün kullanmak ve bağlantıları doğru yaptığımdan emin olmak için 6502'nin adres bacaklarını ve data hatlarını boş bir bölgeye çıkarıp diğer entegrelere hatları buradan gönderdim. Daha fazla kablolama gerekti ancak logic analyzer'ı data yahut adres bacaklarına daha rahat ve doğru bir şekilde takabiliyorum. Aynı şekilde çiplere doğru sinyalleri göndermek daha az çaba istiyor.

Son gelinen noktada data bus'ı logic analyzer'dan test ettiğimde 6502'nin yazma yapana kadar düzgün çalıştığını görüyorum. Başlangıçta FFFC ve FFFD adreslerindeki değeri okuyor, sonra oraya gidip ilk komut olan LDA #$03'ü de okuyor. STA komutunu da okuduğunu görüyorum ancak sonrasında bus'ta alakasız değerler gözüküyor. Muhtemelen eprom ve/veya sid de o sırada data bus'ı kontrol ediyor. Eprom üstünde iki tane seçici pin var, biri /G hattı, diğeri de /CE. Ben /CE'yi A15'in ters'ine bağladım, /G'yi de R-/W hattının ters'ine. Derken dur lan deneyeyim bari dedim en azından Eprom /W sinyali oluştuğunda enable olmasın diye /G'ye gönderdiğim sinyali oraya da gönderdim. (Aslında A15'le de and'lemek lazım)  Neyse nihayetinde ses elde ettim Monoton olmayan bir deneme programı yazıp tam emin olmak lazım.

Sram'i de entegre edip ikinci testi gerçek sid ile yaptığımızda geriye Sd kart erişimi, kontroller ve display sürme kalıyor. Ben herhalde esas kolay kısmını atlattım henüz
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 #34 : Şubat 02, 2015, 00:18:52 ÖÖ »

Son gelişmeleri de aktarayım.

Eprom'un /E ve /G bacakları doğru bir şekilde select edilmediğinden öncesinde devre düzgün çalışmıyordu. Sonra bunu hallettim. Deneme programım sabit frekanslı bir şey çalıyordu. Çıktıdan tam emin olmak için döngü içinde frekansı değiştirip efektli bir program elde edip bunu denedim. Program devrede istediğim gibi çalışıyordu. Ancak bir sıkıntı vardı. Efekt bir kaç saniye çalıyor sonrasında ise kesiliyordu. Hatta süresi duruma göre bazen uzun bazen kısa oluyordu. Büyük ihtimalle data bus'taki contention problemi yani birden fazla cihazın data bus'a aynı anda write yapması problemini gideremedim.

En büyük problem bu arada en az problem beklenecek yerden bağlantı kablolarında çıkıyor, şöyle ki meretler yetmiyor Hafta sonu gittim bir miktar daha aldım, onlar da yetişmedi. Artık türlü taklalar atıyorum.

Mevcut problemi tam olarak halletmemişken dur dedim ikinci test'imi yapayım. Devreye Sram de ekleyip konunun başlarında daha önce emulatör ile çalışmasını yaptığım rom'u kullanıp gerçek bir sid çalayım dedim. Bir kaç saniye de olsa çalışırsa belki sevindirik olurum diye, motivasyon olayı

Öncelikle olması gerektiği gibi eprom'u ayrı bir board'a zif sokete aldım. Onun yerine devrede sabit olacak sram'ı yerleştirdim. Bacak dizilimleri çok farklı olmadığından çok fazla uğraştırmadı.

Sonra devrenin final halinde de hafif değiştirilip kullanılabilecek bir address decoding devresi oluşturdum yine ayrı bir board'da. Led'lerle address decoding'i test ettim.

Bu konuda şurası oldukça güzel bir kaynak : http://www.wilsonminesco.com/6502primer/index.html

Yalnız burada yaşadığım bus contention problemi ile ilgili pek bir şey bulamadım.

Address decoding kısmında AND yerine NAND kapısı kullanıldığında oluşan sinyali tekrar invert etmeye gerek kalmıyor. O yüzden sadece NAND kapıları kullandım. (Logic yazılırken Nand diye yazılmıyor ama idare edin, devre şemasını vermeye üşendim şimdi) Sebebi ise üretmeye çalıştığımız sinyal low active bir sinyal. 0 elde etmeye çalışıyoruz.

Bu arada bir not : Propagation delay'i azaltmak için logic kapıları tekrar tekrar kullanmamak gerekiyor. Yani bir yerde ürettiğiniz sonucu diğer sonucu üretmek için input olarak kullanmamak gerekiyor.
Gerçi 1Mhz için çok da bir şey farketmiyor. Bir cycle tam 1000 ns, bellek erişimi yarısında yapılıyor yani totalde 500ns süre var. Logic entegrelerin propagation delay'leri ise 15-30ns arasında. İşi abartmadıkça bir miktar cascading yapılabilir. Elimdeki sram'in erişim süresi 35-70ns aralığında. Eprom'unki 45ns. 6502'nin adresi setup zamanı vesairesi de var ancak bellek erişimi harici totalinin 430ns'lere ulaşması lazımki bana problem olsun.


RAM /CS /OE = (PHI2 NAND NOT A15) ; PHI2 sinyali 1 iken ve A15 0 iken 0 üretiyor. Diğer türlü 1. 32K ram adresliyoruz bu şekilde 0000-7FFF aralığı

EPROM /CS /OE = (A15 NAND A14 NAND A13) ; A15, A14 ve A13 bir iken 0 üretiyor. E000-FFFF arası 8K rom adresliyoruz.

SID /CS = (A15 NAND A14 NAND NOT A13 NAND A12) ; A15, A14, A12 1 ve A13 0 iken 0 üretiyor. D000-DFFF aralığında I/O adresliyoruz. Yani sid register'ları her 32 byte'da bir bu 4k'lık alanı kaplıyor. Nokta atış D400 yapmak istersek address decoding biraz karışıyor o yüzden şimdilik basit tuttum. Şu an bağlayacağım başka I/O cihaz yok zaten. C64'de bu decoding üstüne demultiplexer kullanılarak birden fazla I/O cihazı select edilmiş.


Doğruluk tablosu (Belleğe yazma PHI2 yüksek iken olduğu için 1 kabul ediyorum)

---A15/A14/A13/A12-------RAM /CS-----EPROM /CS----SID /CS
---------------------------------------------------------
0-0/0/0/0-----------------0------------1------------1----
1-0/0/0/1-----------------0------------1------------1----
2-0/0/1/0-----------------0------------1------------1----
3-0/0/1/1-----------------0------------1------------1----
4-0/1/0/0-----------------0------------1------------1----
5-0/1/0/1-----------------0------------1------------1----
6-0/1/1/0-----------------0------------1------------1----
7-0/1/1/1-----------------0------------1------------1----
8-1/0/0/0-----------------1------------1------------1----
9-1/0/0/1-----------------1------------1------------1----
A-1/0/1/0-----------------1------------1------------1----
B-1/0/1/1-----------------1------------1------------1----
C-1/1/0/0-----------------1------------1------------1----
D-1/1/0/1-----------------1------------1------------0----
E-1/1/1/0-----------------1------------0------------1----
F-1/1/1/1-----------------1------------0------------1----

Dikkat edilirse 8000 ile D000 aralığında hiç bir bölge seçilmiyor. Çünkü şu an işi basit tutmak için 32k sram kullanıyorum. Elimdeki tüm sram'ler 32k'lık.

Zaten şu anda ram ile çalışmasını da geçtim, address decoding sonrası yine sid'i D400'de gören basit efektimi çalıştırmaya çalışıyorum ama çalışmıyor. Yine bir debugging faslı geçmem gerekiyor.

Dünkü debugging faslında az kalsın 8580'i (Sid'in 9v ile de çalışabilen versiyonu) elime alıyordum. 9 voltu bir ara yanlışlıkla Vdd hattı yerine Audio out hattına bağlamışım. Sonra neyse ki C64'de denedim bir şey olmamış. Ancak gidişat proje bitene kadar en az bir kaç sid hacemat edeceğim gibi gösteriyor.

Bu arada sorun clock sinyalinin çapaklı olması, devreye yeterince akım gitmemesi (pil kullanıyorum) gibi sebepler de olabilir.

İlk iş tüm güç girişlerine birer kapasitör bağlamak olacak. Yine belki bir güç kaynağı alıp pil mevzunu ortadan kaldırmak ta en azından sorunun kaynağı noktasında bir noktayı daha ekarte etmek adına önemli olabilir.

Yine aynı şekilde clock generator devresi yerine 1mhz oscillator'ü acilen temin etmem lazım.

Devrenin son hali şu şekilde bu arada. Epey saçaklandı.



Beri yandan sid için sid datasheet'inde verilmiş implementasyon ile c64'deki uygulama arasında ciddi farklar varmış bunu farkettim. Eski sid versiyonlarında gürültü azaltmak için ferrite bead kullanılmış. 8580'i içeren uygulamada ise kaldırılmış bu, hatta sanırım 8580 için filtre bacaklarına kapasitör bağlamanın da bir esprisi yokmuş. Referans implementasyona göre en büyük fark çıkışta bir adet transistör bulunması c64'deki uygulamada. Sesin kısık olması problemini bu transistör çözecek. Bu arada çıkışa 10uF yerine 1uF kapasitör koymuşum, yüksek parazitin ana kaynağı da bu olsa gerek. Onu da değiştireceğim.


* 20150201_190526.jpg (86.9 KB, 800x450 - Görüntüleme: 3354 kez.)
« Son Düzenleme: Şubat 02, 2015, 02:50:50 ÖÖ 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
barone
Üye
***
Mesaj Sayısı: 122



Üyelik Bilgileri
« Yanıtla #35 : Şubat 02, 2015, 02:38:17 ÖÖ »

Benzer şeyler söylenmiş ama ben de kendi adıma belirtmek istedim:

Daha önce, hemen hiçbir şey anlamadığım bir meseleyi bu kadar ilgiyle takip etmemiştim.

Genelde forum ortamında başlığa gelen cevap/yorum sayısı, konuya duyulan ilgiyi gösteren bir ölçüdür. Ama burada olduğu gibi, mevzunun genel bilgi ve deneyim seviyesini aştığı durumlarda, ister isemez bir "monolog" ortaya çıkıyor.

Gelişim sürecindeki detayları anlamayan veya "az anlayan" bir insan olarak; "Neticede ortaya çıkacak 'ürün'den faydalanma/edinme/üretme" fikrinden bağımsız bir şekilde, bu ve benzeri başlıkları takip etmekten mutluluk duyuyorum.

Lütfen bu konulara kafa yormaya ve deneyimlerinizi paylaşmaya devam edin.

Kolay gelsin.

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



Üyelik Bilgileri WWW
« Yanıtla #36 : Şubat 02, 2015, 03:01:37 ÖÖ »

@barone : hakaten bazen ben de bu şekilde hissediyorum, yani bir monolog içindeymişim gibi. uzun süredir elektronik ile uğraşmadığım için elektronik ile alakalı bir yere de üye değilim. interneti eprom gibi kullanıyorum, sadece değişik kaynaklardan okuyup bilgi elde etmeye çalışıyorum.

Okuyup keyif alanlar, yahut bir şeyler öğrenenler varsa ne mutlu bana.

Yazmışken bugün yazacaklarımın geri kalanını da yazayım bari yeni mesaj oluşturmayayım.
--

Sanırım biraz şom ağızlıyım. Devreyi gözümle takip edip ilk bug'ı buldum. Eprom'a giden A0-A7 arası adres hatlarını ters bağlamışım. Düzelttim. Sonra test eprom'unu çalıştırdığımda çalıştı, beklediğim sesi duydum. Yine bir yerden sonra kesiliyordu ses, yine oldukça fazla gürültü mevcuttu.

C64'deki uygulamadaki gibi 1uF kapasitör yerine 10uF kapasitör kullanayım dedim ses çıkışında, belki dedim gürültü azalır. Kullanmam gereken 25v elimdeki kapasitör ise 100V'luk idi. Devamında muhtemelen sid'in ses çıkışı cortayı çekti. Eski haline getirdim ama bir daha aynı sonucu vermedi.

Bacaklarına zarar vermemek için şimdilik deneyemiyorum c64 üstünde. Uygun malzemeler elime geçince bir kontrol edeceğim bakalım. 12v elde edebilirsem direkt 6581'lere geçeceğim artık mecburen.

Bir yandan da projenin mantığını sorguluyorum kendi kendime, böyle sid ezmeye devam edersek günün birinde elimizde sid kalmayacak herhalde. Bunu yapmak yerine mp3 olarak kaydedilmiş olan sid'leri mi kullansak acep?

Ancak bu noktaya kadar gelmişken bir yanım da projeye devam etmek istiyor. Belki ileride çok parası olan bir c64 gönüllüsü reverse engineer edilmiş sid çiplerini eski teknoloji ile yeniden üretir diye düşünüyorum. Beri yandan insanlar "c64 mü hala var mı onlardan?" derken sayılarımız azalıp öldürdüğümüz çiplerden kalanlar bile bize yetebilir.
Logged

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

twitter | blog
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.184


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #37 : Şubat 02, 2015, 08:45:14 ÖÖ »

İlgiyle takip ediyorum ben de.

Kafama birşey takıldı, kondansatörlerdeki voltaj değeri maksimumu belirtmiyor muydu ya? Sonuçta sen ne kadar voltaj verirsen o kadar voltaj alman gerekiyor konsansatör'den. Bence bir yerlerde kısa devre falan olmuştur o yüzden yakmışsındır çıkışı. Üzüldüm emektar SID için.
Logged

http://www.retrodergi.com - http://www.e-turay.com - http://www.karizmawow.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
LW3D
Yönetici
*****
Mesaj Sayısı: 11.232


Günü Kurtaran Avam Hiooargggh :)


Üyelik Bilgileri WWW
« Yanıtla #38 : Şubat 02, 2015, 10:00:08 ÖÖ »

Bende ilgiyle takip ediyorum, ama bazen kendimi Güldür Güldür'ün Plaza Dili skecindeki gibi hissediyorum Merakla takipteyim..
Logged

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



Üyelik Bilgileri WWW
« Yanıtla #39 : Şubat 02, 2015, 20:19:13 ÖS »

@Özay : Haklısın, ben de öyle düşünüyordum aslında ama işte bir sıkıntı olunca insan suçlayacak bir yer arıyor Bu arada ölmemiş olma ihtimali az da olsa var. Hala içindeki osilatörler çalışıyor, zaman zaman saçma sapan sesler üretiyor. Belki tek başına sid testi için ayrı bir devre yapabilirim. Pic'den doğrudan sid'in 8 bit data bus ve 5 bit adres bacaklarına çalışıp basitçe ses testi yapan bir devre iş görür. Kenarda durur sid'leri öldürüyor muyum ayakta kalıyorlar mı kontrol etmiş olurum.

@LW3D : Terminolojiyi Türkçe de kullanabilirim aslında ama bu sefer de mevzudan anlayan birinin türkçesinden anlamama riski var

--

Bu arada bu geceki çalışmanın konusu NOP komutu ile Eprom + 6502 testi. NOP yani No operation komutu adı üstünde hiç bir şey yapmıyor. Bunun makine kodundaki opcode'u $EA. 6502 reset'i yediğinde $FFFC adresinde düşük $FFFD adresinde yüksek baytını bulduğu adrese dallanıyordu. Şimdi devreye bağladığımız 8K eprom'un içinin $EA değerleri ile dolu olduğunu düşünelim. $FFFC ve $FFFD adreslerinde $EAEA adresi olduğu için cpu bu adrese dallanacak. $EAEA adresinde ne var peki? $EA var, sonra ne var? Yine $EA var. Peki devre ne yapıyor? Hiç bir şey.

Bu test sayesinde logic analyzer'ı A0-A7 arasına, A8-A15 arasına veya D0-D7 arasına koyduğumuzda oluşan sinyalin hep $EA olduğunu görmemiz lazım. Komut hiç bir şey yapmadığı için tekrar eden ve hiç bitmeyen bir desen yakalamalıyız logic analyzer'da. Aksi taktirde devrenin bileşenlerinde yahut bağlantılarında sıkıntı var demektir.

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 #40 : Şubat 04, 2015, 22:39:07 ÖS »

Bu arada geçenlerde NOP testini yaptım. Üç şey farkettim,

1. 6502 düzgün çalışıyor gibi. 8 bit birden analiz edemediğim için düşük 4 bit üstünden gittim. Sadece data bus'a baktım. Tam anlamı ile bir test olmadı ama sürekli ardarda gelen düşük dört bit içinde A'yı gördüm. $EAEA'dan $0000'a başa dönünceye kadar cpu'nun crash olmaması lazımdı. Ancak en fazla 1800 civarı read'dan sonra cpu'nun crash olduğunu gördüm.

2. İlk reset'ten sonra ikinci reset'i atamadığımı gördüm. Nette araştırdım ama sebebini bulamadım.

3. En önemlisi bu bir süre sonra crash etme mevzunun muhtemelen /IRQ ve /NMI bacaklarını bağlamamamdan kaynaklanabileceğini öğrendim. Kullanılmayacaklarsa Pull up direnç ile 5v'a bağlanmaları gerekiyormuş. RDY line'ı da aynı şekilde, ancak pull up'sız bir şekilde de bağlanabilirmiş bu.

Neyse sonrasında teste mecalim kalmamıştı artık, crash etmeden en azından $EAEA'dan $0000'a kadar okumaların olduğunu görmem lazım bir sonraki testte. Neden $0000'a kadar derseniz mevcut devremde bu bölge RAM olduğu için ve açılışta boş olacağı için orada BRK'ya tekabül eden 00 olacak muhtemelen. (Emin değilim gerçi bundan)

ROM testini tekrar yapıp ok'ledikten sonra RAM testinde de EA'ya benzer bir  pattern üstünden test yaparım muhtemelen.

Ancak beni şu an esas endişelendiren, 8580'e ne olduğu. Elimde kablo da kalmadığı için devreden sid'i kabloları ile ayırdım. Bu gecenin konusu sid'i ayrı breadboard üstünde breakout board şeklinde ayırmak. Daha önce ram yazmak için yazdığım programı bu sefer sid'in 5 address pin'i pic'e bağlanacak şekilde modifiye edip sid'i doğrudan kontrol etmek. Doğru sonuç elde ettiğim noktada da bu devreyi bir kenarda tutup devamında sid testi için kullanmak. Diğer bir amaç da sid'i orjinal devreye ayrı breadboard ile bağlayabilmek.

Sid'in clock'unu kolaya kaçıp yine orjinal devreden kullanacağım şimdilik, osilatör alana dek.

ps1: Devre yapıldı, çalıştırıldı ancak sid'den pek bir ses seda çıkmadı. Artık yarın ilk deneme 8580'i tekrar c64'e takıp yapılacak. Orada da çalışmıyorsa bu sefer test devresine bir adet 6581 takılacak.

ps2: Yarını bekleyemedim, 8580'i c64'e takıp yaptığım teyp adaptörü ile barbarian'ı yükledim. loader sırasında müzik çalmaya başlayınca şu saatte sevindirik oldum Öldürmemişim haylazı. Dışarıdan işkenceye karşı o kadar da nazik değilmiş demek ki çip

Neyse, her iki devrede de anlaşılan temel bir hata var. Herşeye sıfırdan başlayacağız. Öncelikle test devresine yoğunlaşıp düzgün çalışmasını istiyorum. Hatta oradan da sid çaldırabilirim. Sid dump'ını doğrudan sid'e gönderip. Sid pek tabii pic kodu içerisinde gömülü data olarak duracak. Dump çok fazla yer kapladığı için bir 3-4 saniyelik bir şey olur muhtemelen çalacağım şey.
« Son Düzenleme: Şubat 05, 2015, 03:42:02 ÖÖ 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
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #41 : Şubat 08, 2015, 04:45:04 ÖÖ »

Sevindirik olma anı İlk sid'imi çalmayı başardım sonunda. Ses kalitesi hayalimdekinin çok gerisinde ancak bir adım ileri gittiğim için bunu da düzeltmek için yeterli motivasyonu topladım



Bu arada daha önce verdiğim yanlış bilgileri düzelteyim.

- 8580'de filtre kapasitörleri işe yaramıyormuş gibi bir şey demiştim. Yokmuş öyle bir şey.

- Data bus contention sıkıntısı demiştim. Sorun aslında IRQ ve NMI'nın logic 1'e çekilmemesiymiş. 3.3K pull up'larla 5v'a bağladım bunları. RDY ve SO bacaklarını da doğrudan 5v'a bağladım.

Yani esas sıkıntım IRQ ve/veya NMI hatlarından cpu'nun interrupt olmasıymış.

Bu arada videoda müzik iki defa başlıyor, bunun sebebi 6502'ye iki defa reset atıyor olmam. Pic'deki kodu düzeltmem lazım bunun için. Çok da önemli değil. Şu an esas sorun sesi düzeltmek. Bu konuda elektronik bilgisi iyi olan arkadaşların yardımına ihtiyacım var.

Şu servis kitapçığı içindeki son board üstündeki sid'in çıkışı ile benzer çıkış kullanıyorum şu anda.
http://www.bombjack.org/commodore/commodore/C64-C64C_Service_Manual_314001-03_%281992_Mar%29.pdf

470pf kondansatör yerine elimdeki 560pf'yi kullandım, orjinal transistör yoktu, sid ile yapılmış midi devrelerinde kullandıkları 2n2222 de yoktu. Elimde 2n3093 vardı bunu kullandım. Sid'e filtre kapasitörü olarak 22nf kapasitör kullanıyorum. Çıkış doğrudan videoda gördüğünüz speaker'lara bağlı. Yüksek frekanslar filtrelenmiyor gibi geldi bana.

Videoda, soldaki address decoder, ön kısımda eprom var. Ortadaki ilk board'da 6502 var. Arkadaki board'da Sid ve SRAM var. Sağdaki board'da ise clock ve reset devreleri var.

Bir kaç set daha kablo ve breadboard alıp daha kompakt bir şey çıkaracağım. Reset ve clock devresindeki kablolar bu anlamda çok iyi. Bu arada gürültünün bir sebebi de devrede bu kadar çok havada kablo dolaşması.
« Son Düzenleme: Şubat 08, 2015, 04:49:22 ÖÖ 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
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.184


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #42 : Şubat 08, 2015, 11:37:38 ÖÖ »

Tebrikler, büyük azim doğrusu o kadar kabloyla uğraşmak. En sonunda çalışmasına sevindim. Baskı devre olayına girince parazitler de gider tahminimce.
Logged

http://www.retrodergi.com - http://www.e-turay.com - http://www.karizmawow.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 #43 : Şubat 08, 2015, 13:53:01 ÖS »

Tebrikler, büyük azim doğrusu o kadar kabloyla uğraşmak. En sonunda çalışmasına sevindim. Baskı devre olayına girince parazitler de gider tahminimce.

Kabloların karmaşık görüntüsü aslında biraz da benim tercihim / hatam. 3 büyük, 2 küçük breadboard yerine 2 breadboard'a da sığardı aslında. Alt devreleri kendi başına test edebileyim istedim. Aslında işe yaradı geliştirme anlamında ama nihayetinde bunu ufaltmak lazım. Şu  saçak yapmayan breadboard kabloları büyük nimet. Yeterince kablo+breadboard ve osilatör temin edince iki board'a indiricem.

Hala pcb aşamasına geçemiyorum çünkü daha işin içine esas pic girecek, sd kart ve lcd display kısmı da var.
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 #44 : Şubat 08, 2015, 21:42:32 ÖS »

Devredeki ana haylazı buldum bu arada. Ext in girişini ground'a bağlamıştım ama öyle tek başına ground'a bağlamak yetmiyormuş Bir adet 220nf seramik kapasitörü kendisine kardeş yapınca ses yükseldi ve düzeldi... lan diyorum hala patlak patlak gelen bir yer var. Sonra kafama dank etti, benim digi desteğim yok. Bu sid digi kullanıyor olmasın bas hattında Demonstrasyon için yanlış sid seçmişim

Şimdi digi kullanmayan bir sid bulup eprom'u ona uygun hale getirip bir daha deneyeceğim.

ps: PotX ve PotY'yi de ground'a 220nf ile bağladım bu arada, ancak onlar ext in kadar etraftan gürültü toplamıyorlarmış bunu anladım.

Devredeki ana haylazı buldum bu arada. Ext in girişini ground'a bağlamıştım ama öyle tek başına ground'a bağlamak yetmiyormuş Bir adet 220nf seramik kapasitörü kendisine kardeş yapınca ses yükseldi ve düzeldi... lan diyorum hala patlak patlak gelen bir yer var. Sonra kafama dank etti, benim digi desteğim yok. Bu sid digi kullanıyor olmasın bas hattında Demonstrasyon için yanlış sid seçmişim

Şimdi digi kullanmayan bir sid bulup eprom'u ona uygun hale getirip bir daha deneyeceğim.

ps: PotX ve PotY'yi de ground'a 220nf ile bağladım bu arada, ancak onlar ext in kadar etraftan gürültü toplamıyorlarmış bunu anladım.

Şu nane digi kullanıyor mu teyit edebilir misiniz?
http://hvsc.etv.cx/?info=please&path=C64Music/MUSICIANS/Z/Zyron/Access_Time.sid
« Son Düzenleme: Şubat 08, 2015, 21:45:27 ÖS 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
Sayfa: 1 2 [3] 4 5 ... 14   Yukarı git
Yazdır
Gitmek istediğiniz yer: