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



Üyelik Bilgileri WWW
« Yanıtla #60 : Şubat 12, 2015, 08:47:04 ÖÖ »

@Gnostic : Valla code hafızasının tamamını kullanmayı düşünmediğim için çok da önemsemiyordum optimizasyon özelliğini. Ancak recursive fonksiyonlardan vurdu beni.

Şu an zaman kısıtından dolayı (partiye pcb olarak yetiştiririm belki diye düşünüyorum) bana en sıcak gelen seçenek 5 no'lu seçenek. Diğer türlü 2 no'lu seçeneği bir denerdim herhalde.
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 #61 : Şubat 13, 2015, 01:23:38 ÖÖ »

5 ve 2 no'lu seçenekler iptal.
5 no'lu seçenek iptal çünkü kütüphane içinde bir sürü yerde kullanılan buffer'a erişim var. c++ yazsaydık bir class ile falan işi çözerdik, c ile her yeri sağlam mıncıklamak gerekecek. Beri yandan sram'a sıralı (sequential) eriştiğimi hatırladım, mıncıklama kısmı basit bir mıncıklama olmayacak yani. kullandığım counter da up/down counter değil. sadece yukarı sayıyor. data yazdıktan sonra okuyabilmek için counter'ı resetleyip başa sarmam lazım. İmkansız değil ama gereksiz karmaşık hale getirecek.

2 no'lu seçeneğe yani avr'ye geçmeye gelince. WinAVR indirdim, Kod derlendi sıkıntı yok, proteus'ta falan bir şekilde simüle de eder, debug da ederim ancak bir yandan da huyunu suyunu bildiğim pic dururken avr'ye geçmek beni biraz ürküttü açıkçası.

Güvenli liman olan pic'e geri dönüş. Seçeneğimiz bol. "3. Olduğun yerde kal filesystem'siz sd kartı block device olarak kullan." seçeneği için biraz araştırma yaptım. Öğrenip sıfırdan kod yazacak kadar *kaliteli* vaktim ne yazık ki yok. Aşağıdaki sitede örnek bir proje buldum. Amcam XC8'e uyarlanmış kodunu dahi vermiş. Kullandığı pic de benimkine çok benzer. Sdcard'dan okuduğu bilgileri doğrudan kullanmış bir yere saklamamış. Benim durumumda ben sram'a saklayacağım.

http://www.moty22.co.uk/sd.php?dl=1

Sd kart içinde büyük tek bir dosya olacak. Basit bir dosya sistemi ve sid'leri saklayacak bu tek dosya. Karta yazma yapmayacağım için bozulma ihtimali çok düşük, pc'de mıncıklanmaz ise başına bir iş gelmez. Pc için de müzikleri aktarmak için ufak bir program yazarız. Şimdilik iş görsün.

Yan ürün olarak da elemanın devresi ile çocuklar için talking tom tarzı bir oyuncak yapılabilir. Konuştuğunda kaydedecek sonra da bunu geri çalacak bi devre.
Logged

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

twitter | blog
GnoStiC
Ziyaretçi
« Yanıtla #62 : Şubat 13, 2015, 08:12:16 ÖÖ »

raw olarak kaydetmek simdilik bir cozum olabilir ama uzun vadede ister istemez fat destekli birsey yapman gerekmeyecek mi?

bu Joel Test madde 5'e uyuyor biraz.
Logged
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #63 : Şubat 13, 2015, 12:50:30 ÖS »

raw olarak kaydetmek simdilik bir cozum olabilir ama uzun vadede ister istemez fat destekli birsey yapman gerekmeyecek mi?

bu Joel Test madde 5'e uyuyor biraz.



Aslında tam olarak uymuyor. Çünkü projenin mevcut tasarimi moduler. Sram'i doldurup 6502'yi ve sid' resetleyen başka bir devre orjinalin yerine kullanilabilir. Aklimda bunlari birbirinden ayri ve ustuste konumlandirma gibi bir dusunce de var. Daughterboard modeli. Boylece pcb tasarimi da daha basit olacak ve kullanici ile esas etkilesimi yapan kismi yeniden dizayn edip değiştirme imkanim olacak. Değişik iletişim metodlari ile çalışan boardlar yapilabilir. Ya da değişik display'ler.

Logged

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

twitter | blog
GnoStiC
Ziyaretçi
« Yanıtla #64 : Şubat 13, 2015, 13:35:49 ÖS »

programciya karisilmaz

ben kafamda 5-10 sid'i birbiri arkasina append edip tek dosya olusturup bunu raw olarak sd'ye yazip, sonrasinda hangi pointer'da hangi isimli sid var vs gibinden birsey dusundugum icin baska cozume yoneldim. en azindan http://www.seeedstudio.com/wiki/SDLogger_-_Open_Hardware_Data_Logger gibisinden birsey kullanirdim heralde.
Logged
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #65 : Şubat 13, 2015, 14:10:22 ÖS »

Yok zaten dediğin gibi olacak. Sid isimleri ve sid'lerin büyük dosya içerisindeki lokasyonları dosyanın başında olacak. Esas sid dosyaları da peşinden gelecek. Bu dosya pc'de sd kartın neredeyse tamamını kaplayacak şekilde yazıldıktan sonra artık pc tarafındaki program dosyayı bırakıp sd kartta verileri blok bir şekilde düzenlemeli. (Tek faydası en azından windows'a kartı takınca kart tanınacak. )

Yoksa pic filesystem ile uğraşmayacak.

O linkteki herhalde daha çok yazma amaçlı kullanım için olan bir modül. Pic ile sd kart kullanmak isteyenlerin çoğu okumadan çok yazmaya uğraşıyor

"Yöneldim" derken benzer bir proje ile mi uğraştın / uğraşıyorsun yoksa çözüm düşüncesine yöneldim mi demek istedin?

Logged

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

twitter | blog
GnoStiC
Ziyaretçi
« Yanıtla #66 : Şubat 13, 2015, 17:08:22 ÖS »

@i_r_on: her programcida vardir heralde, ne gorsem/duysam, bunu nasil code'lardim diye dusunuyorum. ordan dusunce sadece
Logged
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #67 : Şubat 13, 2015, 23:44:19 ÖS »

@i_r_on: her programcida vardir heralde, ne gorsem/duysam, bunu nasil code'lardim diye dusunuyorum. ordan dusunce sadece

Valla benim düşünce tarzı da tam tersine, bunu kodlamaktan nasıl kurturuldum şeklinde
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 #68 : Şubat 15, 2015, 16:01:57 ÖS »

Bu arada devreye osilatör eklendi, iki adet entegre (counter ve inverter), 3 direnç, bir kristal yerine 4 bacaklı ufak bir şey yetiyor artık. 5v'u Kalem pil ile elde etme dönemi bitti (Sid'i gerçi yine 9v pil ile besliyorum). Şu an devre canavar gibi, daha önce bahsettiğim cpu'nun crash olması durumu ile karşılaşmadım epey uzun süreler çalmasına rağmen.

Şöyle ucuz bir power supply aldım (15V-2A), resimdeki ile birebir aynı değil.



Bugünkü alışveriş sonrası kablo/board ihtiyacını da giderdim ve Pic16f876 yerine Pic16F887 aldım. 876'ya göre daha güncel bir model. İlaveten tornistan yaparım belki diye de bir adet ATMEGA32A aldım. Sipariş listesini yazdığım kağıdı kaybettiğim için lcd display'i unuttum. Elimde seneler önce almış olduğum bir tane var ancak iki değişik örnek kodla proteusta simülasyonda sorun olmamasına rağmen devrede çalıştıramadım.

Geri kalan kısma ilk lcd ile gireyim dedim. Bir nevi debug imkanı olur benim için diye düşündüm. Gerçi devreye rs232 iletişim özelliği ekleseydim daha iyi debug imkanı olurdu. Max232 gibi ucuz bir naneyi almayı akıl edemediğim için buradan da devam edemiyorum.

Şu an en iyisi, yeni board'larla ana projeye bir adım daha yaklaşacak şekilde minimum board ile finale yakın olan devreyi kurmak.

Bu arada aklımda bazı soru işaretleri var henüz çözemediğim. Pic'den sram'a sid'i aktarma esnasında 6502'yi nasıl durduracağız. Burası soru işareti. Rdy pin'i var 6502'nin ancak datasheet'i okuyunca kafamı karıştırdı biraz. Adres bacaklarında son eriştiği adres kalır diyor. Bu pic'in address bus'ı doğru bir şekilde idare edip edemeyeceği ile ilgili bir sorun olur mu bilemedim. Kristal kontrol edebileceğim bir eleman değil dolayısıyla daha devre başlar başlamaz saat sinyali 6502'ye besleniyor olacak, sorun burada.
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.704


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #69 : Şubat 15, 2015, 16:33:16 ÖS »

6502 reset pin'i low tuttuğun sürece çalışmaya başlamıyor sanırım. PIC'te boş bir pinin varsa SRAM popüle olana kadar işlemciyi bekletebilirsin gibime geliyor.

http://lateblt.tripod.com/bit63.txt

http://lateblt.tripod.com/6502prj1.htm

http://lateblt.tripod.com/6502prj2.htm
« Son Düzenleme: Şubat 15, 2015, 16:48:37 ÖS Gönderen: Simon (Özay Turay) » 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
EMREZ
Deneyimli
*****
Mesaj Sayısı: 1.930



Üyelik Bilgileri
« Yanıtla #70 : Şubat 15, 2015, 16:55:34 ÖS »

Selam, pic32 ile hiç sram kullanmadan sd kart üzerinden dosya seçip sid sürebilirsin. dma kullanıp uygun spi ayarı ile şaşırtıcı hızlarda işlem yapılabiliyor, örnek 30-40 sn de 8 mb dosya yazma vs. ki sid dosyaları çoğunlukla 3-4 kb bir şey. sram kullanmak daha maliyetli olur, ayrıca projeden sıkılırsan pic32 yi başka projelerdede kullanabilirsin.
Logged

this is amiga speaking.
EMREZ
Deneyimli
*****
Mesaj Sayısı: 1.930



Üyelik Bilgileri
« Yanıtla #71 : Şubat 15, 2015, 17:01:11 ÖS »

ayrıca istersen pic32 ile çok basit pal ve vga kodları ile birde biraz modifiye ile c64 arayüzlü bir cihaz gibi monitörde çalışmasını sağlayabilirsin, pic32 bunların hepsini yapabilecek durumda. (pic32 microcontroller Lucio Di Jasio çok yararlı bir kaynak olacaktır.) ben üniversite ye ağırlık verdiğimden artık çok fırsat bulamıyorum ileride pic32 250 mhz lik microchipleri ile ilgilenmek istiyorum.
Logged

this is amiga speaking.
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #72 : Şubat 15, 2015, 18:25:38 ÖS »

@Ozay : Aslında reset pin low'dan high'a geçiş yaptığında reset süreci başlıyor 6502 için. Benim problem ilk çalışmadan ziyade ikinci sid'e geçiş yapmak için devreye girmem gerektiğinde ortaya çıkıyor. Reset pin'i 0'a çekmek işe yaramaz çünkü 6502'nin ilgilendiği 0'dan 1'e geçiş.

@Emrez : Emülasyonla uğraşmak istemiyorum o yüzden yüksek frekanslı ve potansiyeli yüksek bir mcu tercih etmedim. Emüle ettiğin şeyi sabit bir frekans ile çalıştırmak ta başlı başına bir problem. Benim öyle bir derdim yok çünkü 6502 için ayrı bir oscillatörüm var. Ucuz / Pahalı tartışılır.

Osilatör : 6tl
6502 : 7tl
2*UT62256 SRAM (toplam 64k) :  6*2  = 12tl
Pic 16f887 : 8.5tl

Ana entegrelerin toplam ederi 35 tl'yi bulmuyor. Sid hariç ıvır zıvırla beraber taş çatlasın 50 tl eder.

Sid dosyası 3-4 k ancak bunlar birer program ve belleğin herhangi bir bölgesinde çalışabiliyorlar. Nispeten yüksek boyutta olanları da var bu yüzden 64k sram şart.

Ayrıca eski 486dx board'larından falan sram bulmak mümkün. (Ben bir tanesinden 6-7 tane 32kb'lik çıkardı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 #73 : Şubat 16, 2015, 01:27:07 ÖÖ »

Oturdum devreyi sıfırdan yapmaya, bir entegrelere, bir de board'lara bakıp düşünceye daldım. Düşün, düşün, bir sürü jumper kablo olmadan 16 adres 8 data bacağını 4 lokasyon arasında dolandırmanın öyle kolay yolu yok.

Şu andaki test devresinde cpu, ram, eprom, sid şeklinde, yeni versiyonda cpu, ram, ram sürücü devre, sid şeklinde. Şimdi eski çalışan devreyi de bozmamaya karar vermiştim, neyse kafamda yeşil ışık yandı. Dedim eski çalışanı bozma, ona eklenti yap.

Elimde 64k sram yok, bunları zaten üstüste koyarak kullanmayı düşünüyordum. 486dx board'dan çıkardığım iki Paradigm PDM41256'yı üstüste geçirdim. Üstteki çipin /OE ve /CS bacaklarını alttaki çip ile kontak yapmasın diye kıvırıp bunlara bir kablo lehimledim.






Adres decoding kısmında ufak bir iki değişiklik yapıp burası için de ayrı bir sinyal üretmem lazım. Bu bacaklar dışındaki bacaklar ortak kullanılabilir. Alttaki çip sallıyorum $0000-$7FFF arasına bakarken, üstteki $8000-$FFFF aralığına bakacak.

Görünen o ki en fazla değişikliği içerecek olan parça adres decoder olacak. Mecburen onu devreden çıkartıp yeni bir tane oluşturmam. Adres decoder'a giden sinyallerim modüler, adres decoder'a A15, A14, A13, A12, PHI gidiyor oradan da SID /CS, EPROM /CS ve RAM /CS geliyor. Devreden Eprom çıkınca aslında logic daha basit olacak. Eskisinde SID /CS'yi nasıl üretiyorsam aynı şekilde üreteceğim bunun tersi de RAM /CS olacak. Diye düşünürken adres decoder devreme bakıyorum NAND kapılarından birini kullanmamışım. Hali hazırda ürettiğim SID /CS'nin tersini üretmek için bu NAND kapısını kullanabilirim.

Bu arada bir şeyi atladım, orjinal decoder'da diğer chip select'lerden farklı olarak Ram chip select'ine phi2'yi de dahil etmiştim, 6502 primer'deki (http://www.wilsonminesco.com/6502primer/addr_decoding.html)&nbsp; amcam öyle öğütlemiş. Belki dedim benim devrede çalışır, bir deneyeyim. Phi2 yerine 1 verdim bağlantıyı kesip, ancak çalışmadı. Benim hali hazırda iki ram çipi arasında da bir ayrıma gitmem gerekiyor. Bu yüzden yeni bir adres decoder oluşturmak şart oldu. Elimde 4 girişli nand kapısı sadece bir adet varmış. Bunun yerine mecbur 3x 3 girişli nand kapısı içeren 74XX10'lardan kullanacağım.

Test devresinde Pic'i işin içine dahil etmekten bahsetmiştim. Bunu da şöyle yapacağım, test devresinde daha önce yayınladığım videolarda farkettiyseniz eprom küçük bir board'da en altta yer alıyor. Eprom burada bir zif sokette. Toplamda 14 x 2 pin'lik bir yer işgal ediyor. Adres bus ve Data bus komple burada mevcut. Zif soketi yerinde sökmeyeceğim bu arada, üzerine ya 28 pin'li bir zif soket monte edeceğim ya da 28 pin'li bir precision soket.



Böylece hali hazırda geliştirilmiş test edilmiş kısımları bozmadan devreye ek yapabileceğim. Herhangi bir anda dur lan sid'i mi yaktım acaba dediğim noktada mevcut zif'in üstüne taktığım zif'i yahut precision soket'i çıkartıp eprom'u takarak ve adress decoder'ı değiştirerek sid'i test etmem mümkün olacak.

Vakit dar olunca bunları düşünmek dışında başka bir şey yapamadım. Şimdilik bu kadar.

ps: Bu arada sd kart erişimi ve lcd olaylarına da girdik ama aslında sırada bir test daha var. Bunun için boyutu 1.5-2k arasında en az iki sid'i pic program alanında data olarak tutup bunları bir butonla sırayla çalma var. Devre bu hale gelince aslında işin en büyük kısmı bitmiş olacak. Lcd ve sd kart artık işin pic tarafındaki detaylara dönüşüyor. Gerçi en fazla kod da orada yazılacak. Sd kart demek, yığınla sid'i saklayabilmek demek. Playlist çalmaya, oluşturmaya kadar gider o kısım.


* 20150215_190010.jpg (33.82 KB, 640x360 - Görüntüleme: 3420 kez.)

* 20150215_235240.jpg (39.58 KB, 640x360 - Görüntüleme: 3377 kez.)

* 20150216_011056.jpg (31.05 KB, 640x360 - Görüntüleme: 3225 kez.)
« Son Düzenleme: Şubat 16, 2015, 01:48: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
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #74 : Şubat 18, 2015, 22:10:38 ÖS »

Gelişmeleri aktarayım,

Geçen zaman içinde adres decoding kısmını yaptım. Şema şu şekilde,




Bahsettiğim Eprom yerine bağlanacak devrenin ana beynini oluşturacak Pic ve şurekasını kapsayan Pic + counter'lar + tristate buffer'ları içeren devreyi tamamladım.



En doyurucu olanı ise hafta içinde gelen Max232 türevi olan HIN232 vasıtası ile bir seri haberleşme denemesi yapmam ve sonunda gerçekleştirebilmem oldu.
Önce evdeki prolific chipset'li usb to seri kablo ile denemeler yaptım ancak başarısız oldum. Araştırdığımda bu kabloların bazılarının rs232 standardına çok da uygun olmadıklarını okudum. Şansımı normal com port ile denemeye karar verdim. Etrafa bakındaım com port'u olan neyim var diye. Bilgisayarın anakartında com port'u vardı ancak board'un çıkışları arasında yoktu. Şansıma evde ne zaman aldıysam hariçten takılan bir com port bracket'i varmış. Onu taktım bilgisayara, uygun bir kablo hazırladım ve denedim. Çalıştı

Bir sıkıntı vardı, com port üzerinden gönderdiğim yazı ile alakasız karakterler basılıyordu terminale. Bulduğum örnek kod bug'lıymış, onu düzelttim. Bu tip bir şey yaşandığında ilk bakılması gereken yer pic'in clock frekansının uart başlatılırken doğru set edilip edilmediğiymiş bu arada.



Üstteki seri iletişimi ayrı bir pic ile test ettiğim devre, alttaki ise adres decoder + ana pic devresi. (board çokluğundan kurtulamadık bir türlü )

Neyse efendim, yazılım dünyasına geri döndük. Hemen bir menü yapıverdim terminalde göstereceğim. Terminal ile debug oldukça interaktif bir yöntem olacağı için test süreci daha sağlıklı geçecek diye umuyorum.

En basitinden hiç 6502'yi ve Sid'i bağlamadan kolayca Pic'in belleği düzgün doldurup dolduramadığını test edip sonucu terminale göndermem mümkün olacak.

Menü şu şekilde,
Kod:
***********************************************
-------- Hardware PSID Player by I.R.on--------
-----------------------------------------------
-- Select an operation
1. Test RAM Access
2. Reset 6502
3. Fill Sram with NOP and reset 6502
4. Play Test Sound
5. Take Address Bus and Halt 6502
6. Transfer Sid#1 and Play
7. Transfer Sid#2 and Play
8. Transfer Sid
***********************************************


Öncelikle işe 1,2,3,4,5 no'lu seçenekleri yazmakla başlıyorum. 6 ve 8 no'lu seçenek için sid'in header'ını parse etmek ve play rutin'ini sid üstündeki relocation bilgisine göre adreslemek falan gerekiyor. 8 no'lu seçenek için terminalden dosya upload etmek gerekiyor. Terminali doğrudan kullanabilir miyim bu iş için bilmiyorum. Haberleşmeyi yapacak özel bir&nbsp; program yazmak da gerekebilir ancak sanmıyorum. Masum


* 20150217_012407.jpg (40.37 KB, 800x450 - Görüntüleme: 3343 kez.)

* 20150217_012259.jpg (68.24 KB, 800x450 - Görüntüleme: 3326 kez.)

* 20150218_211949.jpg (101.24 KB, 800x450 - Görüntüleme: 3086 kez.)
« Son Düzenleme: Şubat 18, 2015, 22:14:02 Ö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 ... 3 4 [5] 6 7 ... 14   Yukarı git
Yazdır
Gitmek istediğiniz yer: