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 KategoriProjeDoberman (DMA Tabanlı Kartuş Projesi)
Sayfa: [1] 2 3 ... 15   Aşağı git
Yazdır
Gönderen Konu: Doberman (DMA Tabanlı Kartuş Projesi)  (Okunma Sayısı 38531 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
delimawi
Uzman
*****
Mesaj Sayısı: 1.579



Üyelik Bilgileri
« : Eylül 24, 2015, 01:06:34 ÖÖ »

NOT: Bir kaç saat önce projeyle ilgili teknik bilgilerin de olduğu uzun bir giriş yazmıştım. Ancak malesef bilgisayar kilitlendi ve tüm yazdıklarım gitti. Şimdi tekrar yazıyorum ancak bu sefer biraz özet olacak. Merak ettiğiniz bir husus olursa belirtirseniz detaylı olarak anlatırım. Teşekkürler.

Doberman-64 Nedir?

Doberman-64, Commodore 64'e kartuş portundan takılan bir donanım. Ama bilindik bir kartuş değil.
Çok basit anlatmak gerekir ise, normalde C64'e takılan kartuşlar, C64'ün RAM bölgesindeki bir alanı iptal ederek o bölgeye yerleşirler.
Doberman-64 ise, C64 adres bölgesinde yer kaplamayan, yani C64 tarafından görülmeyen bir kartuş.
Sadece istendiği durumlarda (örneğin butonuna basılınca) devreye giren, anlık olarak 6510 CPU'yu durdurarak, C64'ün tüm RAM'bölgesine erişebilen, istediği adresteki bilgiyi okuyabilen ve yazabilen bir donanım.
İşlem sonrasında, tekrar kontrolü 6510 CPU'ya bırakarak C64'ün çalışmasına devam etmesine izin verebilen bir kartuş. Tüm bu erişim için temel olarak kartuş portundaki /DMA hattını ve özelliğini kullanıyor.
(DMA=Direct Memory Access)

Doberman-64 Ne İşe Yarar?

Aslında bir çok işe yarayabilir. Benim bu projeye başlama amacım, olabildiğince hızlı bir şekilde istediğim programı yada oyunu yükleyebilmek idi.

Bu konuda bir çok çalışma mevcut. Ancak tam olarak istediğim özellikleri taşıyan bir çözüm bulamadığım için bu projeye giriştim.
Başlarda standart bir kartuşu emule edebilecek bir donanım geliştirmek istedim, ama çok hızlı bir işlemci kullanılmadığı sürece bunun mümkün olmadığını denyerek gördüm.
Doğrudan mikroişlemci yerine RAM kullanarak kartuş emülasyonu yapılabilmesi teknik olarak mümkün, hatta bu konuda forumda i_r_on'un devam bir projesi de mevcut.
EasyFlash gibi flash tabanlı kartuş çözümleri var.
SD2IEC vb. 1541 emulatörleri mevcut.

Gerçi teknik olrak ne çeşit olursa olsun, RAM, EEPROM yada FLASH tabanlı kartuş projeleri malsef tam olarak istediklerimi karşılamıyor.

Kartuş çözümleri 8KB yada 16KB oluyor. Sayfa değiştiren kartuşlar var ve 128KB ya kadar çıkabiliyor ama yazılımın bu tarz kartuşlar için yazılmış olması gerekiyor.

Benim istediğim ise, herhangi uzunluktaki bir programı bir kaç saniye içerisinde C64'üme yükleyebilecek, birden çok imajı üzerinde barındırabilecek bir donanım.

Teorik hesaplara göre Doberman-64 saniyede 250KByte veriyi transfer edebilir. Yani 64KB lık bir C64 programı bile bir kaç saniyede hazır olabilecek.

Aynı zamanda Doberman-64 ile, C64 freeze edilip hafıza imajının alınması ve daha sonra tekrar yüklenerek işleme devam edilmesi en azından teorik olarak mümkün.
Yada Doberman-64 ile C64 doğrudan PC ile USB üzerinden haberleştirilebilir. (Cross compile işleri için çok yararlı olabilir. c64 PC üzerinden pause edilip memory incelenebilir hatta modifiye edilebilir.)
C64'e özellikle hızlı veri iletişimi gerektiren donanımlar eklenebilir. (Scanner, kamera, digitizer vb...)
İlerleyen versiyonlrda SD kart desteği eklenebilir vb...

Bu ilk versiyonda Doberman-64 üzerinde 4MByte bir seriel flash kullanmayı planlıyorum. Bu sayede en kocamanından 64KB lık toplam 64 program kartuş üzerinde saklanabilecek.
Kartuş üzerindeki butona basıldığında çıklan listeden istenilen PRG seçilecek ve hemen çalışacak...

Doberman-64 Ne Değildir?

Doberman-64 bir disk, kartuş yada tape emulatoru değildir. Dolayısı ile çok parçalı yada ara yüklemeli program yada oyunlar, DSK dosyaları ve CRT dosyaları desteklemez.
Şimdilik sadece *.PRG dosyaları modifiye edilmeye gerek olmadan kartuşa atılabilir ve kullanılabilir.

Neden Doberman-64?

Aslında özel bir nedeni yok. Sadece DMA kelimesindeki harfleri içerdiği için seçtim.
Neden 64 oldğunu söylemeye gerek yok sanırım.

Bu projenin ilk başalngıç aşamasını aşağıdaki linkte bulabilirsiniz. İlk denemler başarılı olunca konuyu bir proje haline getirmeyi ve gelişmeleri burada yazmayı uygun gördüm.
http://www.commodore.gen.tr/forum/index.php?topic=11161


« Son Düzenleme: Şubat 08, 2016, 00:59:23 ÖÖ Gönderen: delimawi » Logged

delimawi
Uzman
*****
Mesaj Sayısı: 1.579



Üyelik Bilgileri
« Yanıtla #1 : Eylül 24, 2015, 01:06:49 ÖÖ »


Öncelikle devre şemasını finalize ediyoruz. Bu versiyonda tüm C64 zamanlama, DMA giriş çıkış, adres latch OE gibi kritik işler için bir CPLD kullanmayı düşündüm. Sol üstteki entegre ATF1504 CPLD.
Sol alttaki iki entegre ise adres latchleri. Bu sayede PIC C64'ten izole olacak ve daha üst seviye flash yada SD kart okuma, yazma, PC haberleşmesi ve benzeri işlerle zamanlama kriterlerine takılmadan ilgilenebilecek.
C64 ile DMA üzerinden bilgi paylaşması gerektiğinde bunu CPLD'den rica edecek. CPLD, C64 ün müsait olduğu ilk anda araya girerek bu zamanlama kritik işlemleri gerçekleştirecek. Yani bir nevi trafik polisi gibi davranarak, trafik uygun olduğunda PIC'e yol verecek.



Baskı devre tasarımı neredeyse tamam. Gene bu ilk PCB yi kendim elde basacağımdan, olabildiğince az via kullanmaya çalıştım. Ve viaları da entegreler altında kalmayacak şekilde yerleştirdim. Ayrıca 12mil den ince yol çizmedim.



İlk olarak PCB'nin bir yüzünü beyaz kağıda çıktı alıyoruz. Daha sonra baskının denk geldiği bölüme mavi transfer kağıdı yerleştirerek tekrar baskı alıyoruz. Bu sayede transfer kağıdını gerğinden fazla harcamamış oluyorum. İki yüz için de baskı alıyoruz. Ön yüzü mirrored baskı almamız gerekiyor.









Daha sonra çift taraflı PCB'mizi yaklaşık boyutlarda biraz pay bırakacak şekilde kesiyoruz.



Bu noktadan sonra PCB'yi çok iyi temizlemek gerekiyor. Üzerinde hiç yağ kalmamalı. Temizlği su sabun ve scotch brite kullanarak yapıyorum. Yıkama sonrasında kart üzerinde sürekli halde ince bir su tabakası kalıyor ise kart iyi temizlenmiştir. Bu temizlik kısmı çok önemli zira yeterince temiz olmaz ise transfer iyi olmuyor.



Yüzlerden bir tanesini dikkatlice ütü ile transfer ediyoruz. Öncelikle trasfer kağıdı ile ütü arasına kağıt havlu koyuyuorum. Bu sayede bir anda ısınan kağıt büzüşüp ölçülerde bozulmaya neden olmuyor. Kullandığım ütüde uygun sıcaklığı en üst kademenin bir alt kademesinde elde ediyorum.





İlk yüzün transfer işlemi tamam. KAğıdı kesinlikle çekerek çıkartmıyoruz. Akan soğuk altında kendi kendine düşmesini sağlıyorum. Su sayede herhangi bir bozulma olmuyor.



Görüldiği üzere transfer kağısında siyah yol olan tüm yerler artık şeffaf. Bu tüm yolların düzgün bir şekilde PCB ye aktarıldığını gösteriyor.



Şimdi arka yüzü hizalamak için karşı köşelerde olmak üzere en az iki tane refeans deliği delmemiz gerekiyor. Bu pCB için 3 farklı köşede 3 farklı referans deliği açıyorum. Kullandığım uç 0.5 mm.



Diğer yüz baskısını ütülemeye başlamadan önce, kağıt üzerindeki referans deliklerini iğne ile deliyoruz, ve PCB üzerindeki deliklerle gene iğne vb yardımı ile hizalıyoruz.



Bu yüzün baskısı da tamam. Merak edilen konu delikler denk geldi mi? Ama önce asit banyosunda sıra.



Banyo öncesi PCB'yi bir miktar daha traşlıyorum. Zira fazla bakır olması asit çözeltisini çok çabuk doyuma ulaştırıyor ve işlem daha uzun sürüyor. Kartın asit içinde çok kalmasını sevmiyorum. Bitmiş PCB kalitesi düşüyor.



Asit banyosu tamamlandı. Çözelti olarak %50 tuzruhu (Hidroklorik asit), %50 perhidrol (hidrojen peroksit) kullanıyorum. Bu boyda bir PCB'nin çözülmesi yaklaşık 1dakika sürüyor. Daha önce dediğim gibi işlemin hızlı olması deneyimlediğim kadarı ile daha kaliteli çıktı almamı sağlıyor. Banyo sırasında çıkan gaz tehlikeli, solunmamalı.



İnce bir zımpara ile transfer kalıntıları temizleniyor. Elimde en ince 320 olduğundan kullanamadım. Bu zımpara yollara da zarar verebilirdi. Bu sebeple gene yeşil scotch brite ile temizledim. Uzun sürdü ama sonuçtan memnunum.
Tüm delikler 0.5mm ile delindi. Sonuç güzel, yüzleri tam hizalayabilmişim. Bir kaç delikte kayıklık var ama delerken elim titrediği için oldu, bir zarar yok.



   
Şimdi sırada fakir adamın via yapması var. Delik içi kaplama yapacak tehcizatım olmadığı için, via lara direnç bacağı lehimliyorum. Diğer taraftan karşılık lehimini atıp, fazlalıkları kesince via oluyor. Ama bu işi entegrelerin altında yapmak zor, zaten o sebeple tüm viaları boş alanlara yerleştirmiştim.



Tüm vialar tamamlandı. Yaklaşık 100'e yakın via attım. Halbuki az via kullanmak için tasarım esnasında özellikle çapa sarf etmiştim.



Tüm pasif komponentler lehimlendi. Elektriksel kontroller yapıldı. Kısa devre ve açık devre yok.



Bu ucube kartı C64'e takmak cesaret ister ama zaten C64 arge için ayrılmış olduğundan korkmadan takıyorum. Birşey olmasını beklemiyorum. Kısa devre olmasın, C64 normal çalışsın yeter.
Beklediğim gibi herhangi bir sorun yok C64 normal çalışıyor.



İlk aktif elamanı, PIC'i taktım. Zaten PIC ile C64 şu an için besleme dışında hiç bir bağlantısı yok. CPLD ve LAtchler henüz takılmadı.



Basit bir program atıyorum PIC'e. Mavi Led'imiz yanıp sönüyor.



Şimdi CPLD eklendi artık devreye. CPLD doğrudan C64 Bus'a bağlı olduğu için denemeleri artık C64 dışında yapacağız. Önce CPLD'ye basit bir lojik atıp test etmeli.



Elimde ATF1504'ü progrmalayacak bir JTAG programlayıcı yok. Zaten bu CPLD'yi de en son 5-6 yıl önce kullanmıştım. Tek hatırladığım LPT tabanlı basit bir programlayıcı yaptığım dı. Nete bakıyorum bir çok kablo şeması mevcut. Atmel, ByteBlater vb...
Bir tanesini hızlıca yapıyorum.



MAlesef günün geri kalanında ne yaptıysam CPLD'yi gördüremedim. Bir çok kablo denedim, hiçbiri başarılı olmadı. Elimde XP çalışan ve LPT portu olan tek bilgisayar var. Ancak şüphelendiğim konu, o bilgisayardaki LPT port da PCI kart ile takılmış. Yani adres 0378 vb değil, CD00... Acaba bu sebepten mi çalıştıramadım hiçbir kabloyu bilmiyorum. Şimdi birtek bu proje için USB JTAG programlayıcı da almak istemiyorum. Konuyu biraz araştırıp, ilk fırsatta belki üzerinde native LPT olan bir board ile XP kurararak yeniden deneyeceğim...


Şimdilik bu kadar,
Herkese iyi bayramlar.
Logged

asit
Üye4
***
Mesaj Sayısı: 560



Üyelik Bilgileri
« Yanıtla #2 : Eylül 24, 2015, 01:55:30 ÖÖ »

Elinize sağlık güzel bir çalışma olmuş sonunu merakla bekliyorum
Logged

Amiga 500
C64
Ps1
Ps2
Atari 2600
Sega mega drıve 2
Xbox 1
Xbox 360
Nintendo wii
i_r_on
Uzman
*****
Mesaj Sayısı: 2.487



Üyelik Bilgileri WWW
« Yanıtla #3 : Eylül 24, 2015, 01:57:39 ÖÖ »

Prototip yapabilme imkanı güzel bir şey. Maşallah bir sonraki Post'ta artık son ürünü sunacaksın neredeyse bize
Logged

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

twitter | blog

C64, Amiga 500, Ps3, Wii, Nintendo DS lite, Nintendo 3DS
delimawi
Uzman
*****
Mesaj Sayısı: 1.579



Üyelik Bilgileri
« Yanıtla #4 : Eylül 24, 2015, 02:54:05 ÖÖ »

Yok
Prototip yapabilme imkanı güzel bir şey. Maşallah bir sonraki Post'ta artık son ürünü sunacaksın neredeyse bize

Yok daha sona cok var.
Atmisp programi ve lpt uzerindwn cpld programlama ilgili bilgi yada tavsiye var mi? Takildim. :p
Logged

Simon (Özay Turay)
Genel Yönetici
*****
Mesaj Sayısı: 5.899


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #5 : Eylül 24, 2015, 09:15:33 ÖÖ »

Vakit bulunca ayrıntılı okuyacağım ama fotoğraflar çok güzel görünüyor. Ellerine, emeğine sağlık. Benim projeler bunun ve i_r_on'un projelerinin yanında oyuncak gibi kaldı.
Logged

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

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PSP Slim, Nintendo DS Lite
AmigaFUN
Üye4
***
Mesaj Sayısı: 1.057


MC68060 inside!


Üyelik Bilgileri
« Yanıtla #6 : Eylül 24, 2015, 10:03:40 ÖÖ »

Bir nefeste okudum. Konsept oluşturma, tasarım ve prototip imalatı, sitemizde bu işleri kotarabilen birkaç kişiden birisiniz. Maaşallah diyelim Merak ettim, uzmanlığınız nedir?


Not: İsim mükemmel durmuş.
Logged

Amiga1200/Apollo1260@80MHz@105MIPS/RapidRoadUSB/IndiAGAmk2cr
Amiga500+/ACA500/ACA1221ec@42Mhz/IndivisionECS
Turbo Chameleon 64 w/Docking Station
RaspberryPi Zero/1B/2B/3B
Lattepanda 4/64GB
ibo1973
Üye4
***
Mesaj Sayısı: 1.691


Üyelik Bilgileri WWW
« Yanıtla #7 : Eylül 24, 2015, 11:50:24 ÖÖ »

şimdiye kadar yapılan projeler arasında en beğendiğim ve en çok işe yarar proje üzerine eğer koyabilirsen sd karttan oyun yükleme imkanıda ekle 4 başı mağrur 10 numara 5 yıldız c64 projesi olur bence.

ayrıca kart yapma tekniğin güzelmiş çok kaliteli olmasada ben pratikliğe çok önem veririm yani kartı 1 yılda basmak benim açımdan çokta önemli değil pratik olması daha önemli.

çift taraflı baskılı devrelerde matbacıların kulandığı bir hizalama tekniği mevcut bana eskiden matbacılık yapan emekli bir öğretmen abimiz anlatmıştı ve çokta güzel işime yaramıştı anlatıncıya kadar yarım saat uğraşıp göstermişti nerdeyse anlat öğret desen yapamam ama araştırırsan böyle bir teknik mebvcut bilgine.
Logged

Metallic
Üye4
***
Mesaj Sayısı: 749



Üyelik Bilgileri
« Yanıtla #8 : Eylül 24, 2015, 12:35:16 ÖS »

delimawi çok güzel bir proje, çok kısa bir sürede geliştirmiş olman takdire değer, emeğine sağlık. Prototip yapma aşamasında verdiğin bilgiler için teşekkürler, board çizimini bastırmak için hangi marka ve model yazıcı kullanıyorsun merak ettim. Başka bir yerde yazdın mı bilmiyorum, ama c64'e transfer ettiğin oyunu çalıştırmak için 6510'u nasıl yönlendireceksin? Kolay gelsin.
Logged
hakkan
Üye2
***
Mesaj Sayısı: 169


Üyelik Bilgileri
« Yanıtla #9 : Eylül 24, 2015, 13:48:48 ÖS »

Harika bir proje, süper bir hırs ve yetenek, bravo gerçekten. Ülkemizde böylesine yetenekler olduğunu görmek gurur veriyor. Projenin devamını ve en kısa zamanda finalini merakla bekliyoruz...
Logged
KNG
Üye3
***
Mesaj Sayısı: 288



Üyelik Bilgileri
« Yanıtla #10 : Eylül 24, 2015, 14:15:16 ÖS »

Tebrikler, çalışmanız mükemmel, bence kutulu nihai ürün olarak satışa çıkarırsanız talep olacaktır.
Ben de uğraşmak istiyorum projelerle ama iş yerindeki yoğunluk, çocuklar ve doktoradan zaman bulamıyorum, tekrar tebrik ederim çok başarılı çalışma oluyor.
Logged
i_r_on
Uzman
*****
Mesaj Sayısı: 2.487



Üyelik Bilgileri WWW
« Yanıtla #11 : Eylül 24, 2015, 16:19:08 ÖS »

Yok daha sona cok var.
Atmisp programi ve lpt uzerindwn cpld programlama ilgili bilgi yada tavsiye var mi? Takildim. :p

Hiç fikrim yok valla. CPLD ve FPGA dev board'lar aliexpress'te hala wish list'imde duruyor
Logged

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

twitter | blog

C64, Amiga 500, Ps3, Wii, Nintendo DS lite, Nintendo 3DS
F_P_G_A
Üye2
***
Mesaj Sayısı: 118


Üyelik Bilgileri
« Yanıtla #12 : Eylül 24, 2015, 17:06:37 ÖS »

Yok
Prototip yapabilme imkanı güzel bir şey. Maşallah bir sonraki Post'ta artık son ürünü sunacaksın neredeyse bize

Yok daha sona cok var.
Atmisp programi ve lpt uzerindwn cpld programlama ilgili bilgi yada tavsiye var mi? Takildim. :p

Selamlar, çalışmanızı merakla izleyeceğim çok güzel görünüyor. PCB oldukça temiz çıkmış. 7-8 yıl önceye kadar Pozitif20, photosensitive film, ütü-kuşe kağıt gibi şeyler kullanarak kartlar yaptım ama 0.50mm pitch'e çok nadiren inebilmiştim. Sizin TQFP kılıftaki chipler 0.50mm veya 0.65mm sanırım. Gayet güzel. Epey uzun zamandır bu yöntemlerle üretilebilecek yoğunlukta PCB tasarlamadığım için bunları görmek beni o günlere geri götürdü.

Ek:
PCB'nizin oksitlenmemesi için, üzerine monte edeceğiniz SMD malzemelerde soğuk lehim vs sorunları yaşamamak için, montaja başlamadan önce bütün kartı lehimle kaplayabilirsiniz. Bunun için sıvı flux + normal lehim + havya kullanabileceğiniz gibi, varsa ufak bir lehim potası da kullanabilirsiniz. Kartı flux kapladıktan sonra potaya sokup çıkarmak yeterli olacaktır.


CPLD konusuna gelince, programmable logic için Xilinx serisi FPGA ve CPLD'ler kullanıyorum. Üretimde genelde bunlara sizin yaptığınız gibi bir JTAG konnektörü bırakıyoruz. Ancak bu konnektörü sadece genelde ya hiç kullanmıyoruz ya da üretimde bir kez kullanıyoruz. Güncellemeleri cihazların gövdelerini sökmeden yapmak için veya uzaktan güncelleme yapabilmek için dış dünya ile bağlantısı olan Host CPU'nun GPIO pinlerini de bu JTAG pinlerine bağlayarak, CPU üzerinde bir host JTAG emulasyonu yapıyoruz. FPGA'lerin binary dosyalarını eskiden XC18 serisi configuration ROM'larda saklardık ancak yıllardır host CPU ile paylaşımlı kullanılan Serial Flash'larda saklıyoruz. Bu konfigürasyonda SPI üzerinden flash memory programlama kadar basit oluyor. Ancak CPLD'lerin (Xilinx XC95144, Coolrunner vs) dahili flash'ları için yukarıdaki gibi bir şey yapıyoruz.

Atmel'den sadece FPSLIC diye bir seri kullanmıştım, onunla da üretime gitmedik. Pek hoşuma gitmemişti zaten. PIC18F45K22'de USB var mıymış diye baktım hemen, olsaydı hemen yukarıda anlattığım şekilde denemenizi önerirdim ama yokmuş. PIC18F45K22'de 32KB flash varmış. ATF1504 ne yoğunlukta bir CPLD bilmiyorum ama configuration dosyası bu flash'a sığıyorsa ICSP ile MCU'yu programlarken configuration dosyasını da PIC18F45K22'a atıp oradan JTAG pinlerine bağlayacağınız jumperlar ile CPLD'yi konfigüre edebilirsiniz belki ama asıl amaç Doberman-64'ü çalıştırmak, böyle detaylarda kaybolmanızı istemeyiz.

O yüzden elinizdeki paralel port programlayıcıyı tekrar çalışır hale getirmek en kestirme yol olacak herhalde. TCK pininde JTAG clock sinyalini görebiliyor musunuz? Bizim en sık karşılaştığımız sorun dalgınlıkta TDI ve TDO pinlerinin ters bağlanması oluyor bu arada. Ama sanırım onu çoktan kontrol etmişsinizdir.
« Son Düzenleme: Eylül 24, 2015, 17:22:54 ÖS Gönderen: F_P_G_A » Logged
cdemir
Uzman
*****
Mesaj Sayısı: 2.654



Üyelik Bilgileri
« Yanıtla #13 : Eylül 24, 2015, 18:19:38 ÖS »

Keyifli bir proje daha Kahkaha

Elinize sağlık.  Sonunu bende herkes gibi bekliyorum
Logged

delimawi
Uzman
*****
Mesaj Sayısı: 1.579



Üyelik Bilgileri
« Yanıtla #14 : Eylül 24, 2015, 23:32:17 ÖS »

Vakit bulunca ayrıntılı okuyacağım ama fotoğraflar çok güzel görünüyor. Ellerine, emeğine sağlık. Benim projeler bunun ve i_r_on'un projelerinin yanında oyuncak gibi kaldı.

Olur mu ne demek. Daha önce bir yerlerde yazmıştım, esasen C64 için planladığım FPGA tabanlı iki ayrı proje var.

Birisi bire bir SD kart ile çalışan 1541 emulatoru, ama SD2IEC gibi değil, tam uyumlu olacak bir proje. Ultimate-II yada Chameleon gibi. Ama onlar kadar kapsamlı ve karışık değil, sadece tam uyumlu ve olabildiğince sade bir tasarım. IEC portuna gerçek bir 1541 gibi takılacak vb.
Bir de gene FPGA tabanlı komple C64 redesign yapmak istiyorum. Aslında DTV gibi ama adres ve data bus da erişilebilir olacak. Yani gerektiğinde gerçek SID, C64 klavyesi, alası diğer donanımlar ve hatta gerçek kartuşlar da takılabilecek.
Bu iki projenin de aslında benim için hobi, C64'ü hatırlamak, derinlerine inmek, bir anlamda teknolojik nostalji yapmaktan öte bir faydası yok. Belki bir miktar VHDL'imi geliştirme fırsatı bulacağım.
37 yaşındayım, en az 15 yıldır C64'ümü çalıştırmamıştım bile, bu sene DTV ararken bu forumu buldum, çok da mutlu oldum o yıllara dair anıları canlı tutmak isteyen kişilerin olduğunu öğrenince.

Özetle, sizlerin kartuş projeleri sayesinde Doberman-64 için heveslendim ve başladım. İlk başta PIC tabanlı kartuş emulatörü yapacaktım ama teknik olarak PIC yeterli gelmeyince kendimi DMA ile cebelleşirken buldum, umarım projeyi tamamlayabilirim.
Bu sayede belki diğer arkadaşlara da bir yararım dokunmuş olur.

Bir nefeste okudum. Konsept oluşturma, tasarım ve prototip imalatı, sitemizde bu işleri kotarabilen birkaç kişiden birisiniz. Maaşallah diyelim Merak ettim, uzmanlığınız nedir?

Selam,
Endüstri ürünleri tasarımı okudum. Ama küçüklüğümden beri bilgisayar yazılım ve elektronik ile ilgileniyorum. Meslek hayatıma ilk başladığımda, Win 3.1 zamanlarıydı, uzun yıllar PC için yazılım geliştirme ile ilgilendim. Elektronik benim için bu süre zarfında hobi olarak kalmıştı. Yıllar sonra imkanlar oluşunca elektronik ürünler de geliştiren küçük bir tasarım şirket kurdum ve hala devam ediyorum. (Bana sorulduğunda genelde 'fason ARGE' yaptığımı söylüyorum.) Yani kısaca gerçek hayatımda da elektronik ürün tasarımı, gömülü yazılımlar ve gerektiği sürece, PC ve mobil yazılım geliştirme ile ilgileniyorum.

çift taraflı baskılı devrelerde matbacıların kulandığı bir hizalama tekniği mevcut bana eskiden matbacılık yapan emekli bir öğretmen abimiz anlatmıştı ve çokta güzel işime yaramıştı anlatıncıya kadar yarım saat uğraşıp göstermişti nerdeyse anlat öğret desen yapamam ama araştırırsan böyle bir teknik mebvcut bilgine.

Açıkçası bu hobi projesi olduğu ve özellikle eski günlere dönmek istediğim için elle basılacak şekilde tasarladım. Gündelik yaptığım tasarımlarda artık neredeyse hiç el ile baskı yapmıyorum. Zaten günümüzün teknolojisi buna da pek olanak tanımıyor. BGA entegreler, 10 mil yol aralıkları vb elle basılacak gibi değil. Ama bu yöntemi  de merak ettim, araştıracağım. Teşekkürler.

delimawi çok güzel bir proje, çok kısa bir sürede geliştirmiş olman takdire değer, emeğine sağlık. Prototip yapma aşamasında verdiğin bilgiler için teşekkürler, board çizimini bastırmak için hangi marka ve model yazıcı kullanıyorsun merak ettim. Başka bir yerde yazdın mı bilmiyorum, ama c64'e transfer ettiğin oyunu çalıştırmak için 6510'u nasıl yönlendireceksin? Kolay gelsin.

Samsung SCX-4623 all in one laser printer ile bastım. Ama laser olduktan sonra hepsi benzer sonuçlar veriyor sanırım. Yani daha önceleri birçok farklı marka ile de başarılı sonuçlar aldım.
Programların nasıl çalıştırılabileceğini i_r_on ile bir miktar tartışabilmiştik. Şu an için ben de tam olarak emin değilim, öncelikle DMA transfer işini çözmeye odaklandım, nasılsa bir şekilde çalıştırırım diye.
Bu konuda önerbileceğin fikir varsa seve seve kabul ederim. Zira daha o konuya detaylı kafa patlatmadım.
Daha önce i_R_on önermişti sanırım, aslında DMA işleminin son byte transferi biter bitmez gene aynı DMA içerisinde RASTER interrupt kurularak belli bir koda dallanılması sağlanabilir belki.

Harika bir proje, süper bir hırs ve yetenek, bravo gerçekten. Ülkemizde böylesine yetenekler olduğunu görmek gurur veriyor. Projenin devamını ve en kısa zamanda finalini merakla bekliyoruz...

Teşekkürler, umarım proje başarılı olur. Açıkçası proje ile ilgilnen insların olduğunu görmek çok güzel bir duygu. Her ne kadar bir çok kişi için boş bir işle uğraşıyor bile olsam, destekleyen sesleri duymak güç veriyor.
Boş bir iş derken de, açıkçası 80 lerin teknolojisi ile yapılmış, neredeyse çoktan unutulmuş bir makine için donanım geliştirmek, hem de hiç bir ticari amaç gütmeden buna saatler, günler harcamak, akıl sağlığı yerinde olan ve analitik düşünebilen bir başka insana anlatılabilir bir olay değil ve aslında hiç bir savunulur tarafı da yok. Kahkaha

Tebrikler, çalışmanız mükemmel, bence kutulu nihai ürün olarak satışa çıkarırsanız talep olacaktır.
Ben de uğraşmak istiyorum projelerle ama iş yerindeki yoğunluk, çocuklar ve doktoradan zaman bulamıyorum, tekrar tebrik ederim çok başarılı çalışma oluyor.

Teşekkür ederim. Bu proje sanırım hiç bir zaman bir kutu içerisine girip satılacak bir ürün olmayacak. Eğer başarılı bir şekilde sona gelirsek belki PCB bastırır buradan arkadaşlara dağıtırız. Zaten bilgi herkese açık, kaynak kod ve compiled binary'leri de istek olursa gene buradan yayınlarız, hepsi bu.

Selamlar, çalışmanızı merakla izleyeceğim çok güzel görünüyor. PCB oldukça temiz çıkmış. 7-8 yıl önceye kadar Pozitif20, photosensitive film, ütü-kuşe kağıt gibi şeyler kullanarak kartlar yaptım ama 0.50mm pitch'e çok nadiren inebilmiştim. Sizin TQFP kılıftaki chipler 0.50mm veya 0.65mm sanırım. Gayet güzel. Epey uzun zamandır bu yöntemlerle üretilebilecek yoğunlukta PCB tasarlamadığım için bunları görmek beni o günlere geri götürdü.

Açıkçası ben de çok nadir elde baskı yapıyorum. Genelde tüm ticari işler eğer 2 layer ise yerli imalat, 4 layer ise yurt dışı imalat olacak şekilde çıkıyor.

Ek:
PCB'nizin oksitlenmemesi için, üzerine monte edeceğiniz SMD malzemelerde soğuk lehim vs sorunları yaşamamak için, montaja başlamadan önce bütün kartı lehimle kaplayabilirsiniz. Bunun için sıvı flux + normal lehim + havya kullanabileceğiniz gibi, varsa ufak bir lehim potası da kullanabilirsiniz. Kartı flux kapladıktan sonra potaya sokup çıkarmak yeterli olacaktır.

Evet haklısınız, ama potam yok. Normal lehim teli içerisindeki pastayı da çok sevmiyorum. Aslında kalayla kaplanabilse ne güzel olur.
Ben dün PCB'yi yaparken CPLD'de problem yaşayacağımı tahmin etmemiştim. Tüm dizilecek herşey başlandığı gibi biter diye okitlenmeye karşı önlem almamıştım malsef. :/

CPLD konusuna gelince, programmable logic için Xilinx serisi FPGA ve CPLD'ler kullanıyorum. Üretimde genelde bunlara sizin yaptığınız gibi bir JTAG konnektörü bırakıyoruz. Ancak bu konnektörü sadece genelde ya hiç kullanmıyoruz ya da üretimde bir kez kullanıyoruz. Güncellemeleri cihazların gövdelerini sökmeden yapmak için veya uzaktan güncelleme yapabilmek için dış dünya ile bağlantısı olan Host CPU'nun GPIO pinlerini de bu JTAG pinlerine bağlayarak, CPU üzerinde bir host JTAG emulasyonu yapıyoruz. FPGA'lerin binary dosyalarını eskiden XC18 serisi configuration ROM'larda saklardık ancak yıllardır host CPU ile paylaşımlı kullanılan Serial Flash'larda saklıyoruz. Bu konfigürasyonda SPI üzerinden flash memory programlama kadar basit oluyor. Ancak CPLD'lerin (Xilinx XC95144, Coolrunner vs) dahili flash'ları için yukarıdaki gibi bir şey yapıyoruz.

Atmel'den sadece FPSLIC diye bir seri kullanmıştım, onunla da üretime gitmedik. Pek hoşuma gitmemişti zaten. PIC18F45K22'de USB var mıymış diye baktım hemen, olsaydı hemen yukarıda anlattığım şekilde denemenizi önerirdim ama yokmuş. PIC18F45K22'de 32KB flash varmış. ATF1504 ne yoğunlukta bir CPLD bilmiyorum ama configuration dosyası bu flash'a sığıyorsa ICSP ile MCU'yu programlarken configuration dosyasını da PIC18F45K22'a atıp oradan JTAG pinlerine bağlayacağınız jumperlar ile CPLD'yi konfigüre edebilirsiniz belki ama asıl amaç Doberman-64'ü çalıştırmak, böyle detaylarda kaybolmanızı istemeyiz.

O yüzden elinizdeki paralel port programlayıcıyı tekrar çalışır hale getirmek en kestirme yol olacak herhalde. TCK pininde JTAG clock sinyalini görebiliyor musunuz? Bizim en sık karşılaştığımız sorun dalgınlıkta TDI ve TDO pinlerinin ters bağlanması oluyor bu arada. Ama sanırım onu çoktan kontrol etmişsinizdir.

CPLD programlama için açıkçası JTAG pinlerini keşke PIC'e bağlamış olsaydım diye geçirdim içimden. Ama bir yandan da dediğiniz gibi seri üretilecek bir donanım değil, bir tane elde üretiyorum, programlar geçerim diye düşündüm.
Ayrıca dün başarısız olunca kafamda iki olasılık vardı. Ya USB-JTAG alacaktım. Ama yurtdışından tedarik beklemek gerekecek, yada native LPT portu olan bir PC bulacaktım. Şimdilik ikinci yöntemi tercih ediyorum. Ofiste duran bir board var ona hızlıca XP kurulum yapıp deneyeceğim.

JTAG ile jedec dosyasının CPLD ye nasıl atıldığı konusunda en ufak bir bilgim yok. Aslında spi flash yazmak gibi basit bir protokol ise denenebilir. HAtta dışarıdan gene ayrı bir pic ile bir programlayıcı bile yapılabilir sorun yok. Ama dahili PIC kullanılacak olsa bile, USB olmaması bir kısıt değil zira Doberman-64 üzerinde TTL seviye bir RX/TX mevcut. Bunu FTDI üzerinde PC USB prota bağlayabilirim ve zaten bu şekilde bağlayarak ileriki günlerde denemeler ve data aktarımları da yapmayı planlıyorum.

TDI ve TDO yu dediğiniz gibi ters çevirip de denedim ama zaten LTP üzerinde 2,3,4.. vb olmayan diğer ayrık olan pin genelde LPT tarafına giriş pini. Buradan emin olabiliyorum. TCK da bir clock göreceğimi ben de tahmin ettim ama protkolü bilmediğim için bunu bir anlamı yoktu, hiç kontrol etmedim. Yani Clock üretmeye başlamadan önce bir şekilde orada bir cihaz var mı yok mu detect etmeye çalışmak gibi bir algoritma yada yöntemi olabilir belki diye düşündüm.

İlgi ve desteğiniz içi teşekkür ederim herkese. Fırsat bulabilir ve CPLD kısmını atlatabilirsem gene gelişmeleri yazıyor olacağım. Hatta mümkün olduğunca teknik bilgileri de paylaşacağım.

İyi akşamlar...
Logged

Sayfa: [1] 2 3 ... 15   Yukarı git
Yazdır
Gitmek istediğiniz yer: