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   Aşağı git
Yazdır
Gönderen Konu: TZXDuino (ZX Spectrum 48K için)  (Okunma Sayısı 4172 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
emarti
Uzman
*****
Mesaj Sayısı: 2.578


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« : Ocak 25, 2026, 03:45:59 ÖÖ »

Elimdeki ZX Spectrum 48K için PC'den mono çıkış vererek ses kartı üzerinden oyun yüklemesi yapıyor olsamda, TZXStudio için kolları sıvadım yalnız devreyi oluşturmak için yeterli döküman yok gibiydi. Geliştiriciler sadece kodlara gömülmüşler, donanım tarafı ne şema var ne de tarif. Şema var aslında lakin hatalı çizilmişti.

https://github.com/emartisoft/TZXDuino

Arduino Nano için de derlenebilir bir repoyu GitHUB üzerinden forkladım. Yeni sürüm IDE ile ve son sürüm SDFAT kütüphanesi ile hatayı aldık. Bunun ile ilgili değişiklikleri yaptım. OLED SSD1306 ekran ve PAM8403 amplifier kullanımı için donanımları ayarladım. Şemasını çizdim.



Ayrıca TZXDuino projesinde standart başlangıç logosu kullanmak yerine kendi tasarımınızı kullanmak isterseniz Rust ve FLTK kullanarak bir proje geliştirdim. Açıklamaları GitHUB reposunda. Windows için çalıştırılabilir dosya github üzerinden indirilebilir yada rust ile derleyebilirsiniz.



Ayrıca STL dosyaları da oluşturdum; henüz bitmedi. 3D dosyalarından sadece 1 adet STL yayınladım. Farklı button denemelerim için parça beklemedeyim ona göre diğer STL dosyalarını oluşturacağım.




TZXDuino için tek kayıp cihaz üzerinden kaydetmeyi MIC çıkışından yapamıyor olmamız. Ama bunun için cross-platform çözümler mevcut. PC tarafında bazı araçları ve derleyicileri kullanarak TZXDuino üzerinden yükleyebileceğiniz TAP ve TZX formatlı dosyalar ve programlar oluşturabilirsiniz. Bu araçlardan bazıları:

  • zmakebas
  • pasmo
  • z80-pascal
  • z88dk

Her
Kod:
LOAD ""
komutu sonrası 'eskiden ne sabırlıymışız' cümlesini kuruyorum.
« Son Düzenleme: Şubat 03, 2026, 02:23:10 ÖÖ Gönderen: emarti » Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB

READY.
SYS(64767): EMARTI
fort_apocalypse
Uzman
*****
Mesaj Sayısı: 4.042



Üyelik Bilgileri WWW
« Yanıtla #1 : Ocak 25, 2026, 04:00:43 ÖÖ »

Eline sağlık @emarti
Çok güzel bir paylaşım.
« Son Düzenleme: Ocak 29, 2026, 04:15:37 ÖÖ Gönderen: fort_apocalypse » Logged

emarti
Uzman
*****
Mesaj Sayısı: 2.578


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #2 : Ocak 25, 2026, 04:18:06 ÖÖ »

Eline sağlık @emarti
Çok güzel bir paylaşım.


Eyvallah. Beğenmene sevindim.
Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB

READY.
SYS(64767): EMARTI
runal
Deneyimli
*****
Mesaj Sayısı: 673



Üyelik Bilgileri
« Yanıtla #3 : Ocak 25, 2026, 07:54:25 ÖÖ »

Elinize sağlık, bu devreyi bende yapıp denemiştim güzel çalışıyor.
Logged
kaizen71
Üye
***
Mesaj Sayısı: 209



Üyelik Bilgileri
« Yanıtla #4 : Ocak 25, 2026, 11:34:33 ÖÖ »

Elinize sağlık. Ben de bundan iki adet yapmıştım. Çok güzel çalışıyor. Bendekilerde teyp motor kontrolü için remote çıkışı da var. MSX ler için kullandım. Şu kutulardan alıp içine sığdırmaya çalıştım ama tam sığmadı.

https://www.altinkaya.com/tr/shop/dt-065-egimli-kutu-1155?category=106#attr=15097,15104



Daha sonra Zaxon'un PCBWay'de paylaştığı TZXDuino'yu yaptım.

https://www.pcbway.com/project/shareproject/TZXDuino_Shield_V2.html

 Devre çalıştı ama ses seviyesi çok yüksek olduğundan MSX'lerde yükleme hatası aldım. Yükselteç olarak kullanılan LM386'nın kazancını belirleyen C1 kondansatörünü sökünce kazanç düştü ve yükleme hatalası düzeldi. ZX Spectrum'da denemedim henüz ama onda da çalışır diye düşünüyorum çünkü ses seviyesi C1 olmadan da çok iyi.
« Son Düzenleme: Ocak 25, 2026, 11:55:03 ÖÖ Gönderen: kaizen71 » Logged
dodogildo
Üye
****
Mesaj Sayısı: 389



Üyelik Bilgileri
« Yanıtla #5 : Ocak 25, 2026, 17:33:35 ÖS »

Çok güzel.
Logged

Levent (Lvnt)
Uzman
*****
Mesaj Sayısı: 2.369



Üyelik Bilgileri
« Yanıtla #6 : Ocak 26, 2026, 03:46:29 ÖÖ »

@emarti: elinize sağlık, tebrikler

Doğrusu anfi ekleme işi bana biraz aşırı geldi. Devreyi ben tasarlıyor olsaydım anfi eklemek bir tarafa sesi kısmak için pot koyar, doğru yükleme işini gören kısık bir ayarda sabitlerdim. Çünkü nano dijital çıkış seviyesi (3.3v? 5v?) ZX spectrum ses girişi için fazlasıyla yeterli olmalı.

Linkte tablodan anladığıma göre ULA pin'inde (mic girişi değil, oradan ULA pin'ine ne tür bir devre varsa artık) 0.7v'tan 3.5v'a kadar lojik 1 algılıyor.
https://retrocomputing.stackexchange.com/questions/27538/what-are-the-electrical-properties-of-the-ear-and-mic-sockets-on-a-zx-spectrum#27539

Ses giriş seviyesi neymiş diye bakarken karşıma ULA çıkınca tırstım doğrusu. Dikkatli olun. Hatta biraz paranoyak olup devre çıkışına sınırlama diyotları (örn 4 x 0.7v = 2.8v'a sınırlasın, diyotlara gelmeden 600ohm gibi seri bir direnç yeter herhalde) eklemeyi ya da hazır böyle bir devreye geçmeyi düşünebilirsiniz
Logged

Use the brute force, Luke
emarti
Uzman
*****
Mesaj Sayısı: 2.578


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #7 : Ocak 26, 2026, 21:58:03 ÖS »

@emarti: elinize sağlık, tebrikler

Doğrusu anfi ekleme işi bana biraz aşırı geldi. Devreyi ben tasarlıyor olsaydım anfi eklemek bir tarafa sesi kısmak için pot koyar, doğru yükleme işini gören kısık bir ayarda sabitlerdim. Çünkü nano dijital çıkış seviyesi (3.3v? 5v?) ZX spectrum ses girişi için fazlasıyla yeterli olmalı.

Linkte tablodan anladığıma göre ULA pin'inde (mic girişi değil, oradan ULA pin'ine ne tür bir devre varsa artık) 0.7v'tan 3.5v'a kadar lojik 1 algılıyor.
https://retrocomputing.stackexchange.com/questions/27538/what-are-the-electrical-properties-of-the-ear-and-mic-sockets-on-a-zx-spectrum#27539

Ses giriş seviyesi neymiş diye bakarken karşıma ULA çıkınca tırstım doğrusu. Dikkatli olun. Hatta biraz paranoyak olup devre çıkışına sınırlama diyotları (örn 4 x 0.7v = 2.8v'a sınırlasın, diyotlara gelmeden 600ohm gibi seri bir direnç yeter herhalde) eklemeyi ya da hazır böyle bir devreye geçmeyi düşünebilirsiniz

Haklısın. Hatayı affetmeyen, bir anlık fazla voltajda efsaneleşmiş bir çipten olabiliriz. Osiloskopta EAR TIP’te gördüğümüz sinyal 0.7–1.0 V civarındaysa güvenli diyebiliriz. Kondansatör, direnç ve diot ile kontrol etmek mantıklı olacak. Biz alışmışız pini diğer pine bağla, Osiloskopsuz, çalışıyorsa tamam demeye.



ölçüm yapmadım ve denemedim ama mantık olarak bu şekilde olmalı gibi. Eksik yada eklenmesi gereken var mıdır? Amfi çıkışı R OUT - çıkışını hiç kullanmadım.
Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB

READY.
SYS(64767): EMARTI
Levent (Lvnt)
Uzman
*****
Mesaj Sayısı: 2.369



Üyelik Bilgileri
« Yanıtla #8 : Ocak 27, 2026, 03:15:43 ÖÖ »

'silikon diyot yaklaşık 0.7v'ta iletime geçer' mantığıyla aklımdaki şuydu:


aklımdaki soru işaretlerini gidermek için biraz referanslara baktım, doğru çalışması açısından sorun yok gözüküyor. şemaya koymadım ama en solda 0.1uF, 1uF seramik vb kondansatör (elektrolitik değil) uygun olur.

devre basit, doğru çalışırsa ayrıntıya girmeye hiç gerek yok, deneyin bakalım.

Not: anfisiz de olur aslında. şimdilik anfiyle çalışsın, ayrıca konuşuruz
Not2: web'den şema çizimi için şunu buldum: https://www.circuitlab.com/


* diyotlu-koruma-2.8v.png (24.97 KB, 447x472 - Görüntüleme: 673 kez.)
« Son Düzenleme: Ocak 27, 2026, 04:44:03 ÖÖ Gönderen: Levent (Lvnt) » Logged

Use the brute force, Luke
hades
Üye
****
Mesaj Sayısı: 391



Üyelik Bilgileri
« Yanıtla #9 : Ocak 27, 2026, 11:30:51 ÖÖ »

Hem ULA hem de devrenin beslemesi 5V olduğu için ULA'ya en fazla 5V gider. Korkulacak bir durum yok yani. Ama illa ben giriş seviyesini düşüreceğim derseniz 680R + 2,7V zener devresi yeterli. 4 tane 4148 diyot koymaya gerek yok. 2,7 Zener yeterli gelmezse 3,3V zener deneyebilirsiniz. Zener diyot, yönü ters olarak takılmalıdır.
Logged
emarti
Uzman
*****
Mesaj Sayısı: 2.578


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #10 : Ocak 27, 2026, 21:22:48 ÖS »

Hem ULA hem de devrenin beslemesi 5V olduğu için ULA'ya en fazla 5V gider. Korkulacak bir durum yok yani. Ama illa ben giriş seviyesini düşüreceğim derseniz 680R + 2,7V zener devresi yeterli. 4 tane 4148 diyot koymaya gerek yok. 2,7 Zener yeterli gelmezse 3,3V zener deneyebilirsiniz. Zener diyot, yönü ters olarak takılmalıdır.

@hades merhaba (zx spectrum elime alınca ilk aklıma sen geliyorsun ) Devrenin beslemesi 5V olsa da PAM8403'ten çıkan logic 5V'dan fazla çıkışta üretebiliyor, çok kısa süreler olsa dahi. Bu da ULA'nın ömrünü kısaltabilir.

'silikon diyot yaklaşık 0.7v'ta iletime geçer' mantığıyla aklımdaki şuydu:

aklımdaki soru işaretlerini gidermek için biraz referanslara baktım, doğru çalışması açısından sorun yok gözüküyor. şemaya koymadım ama en solda 0.1uF, 1uF seramik vb kondansatör (elektrolitik değil) uygun olur.

devre basit, doğru çalışırsa ayrıntıya girmeye hiç gerek yok, deneyin bakalım.

Not: anfisiz de olur aslında. şimdilik anfiyle çalışsın, ayrıca konuşuruz
Not2: web'den şema çizimi için şunu buldum: https://www.circuitlab.com/


Bu devrede pozitif yönde bir clamp olsa da negatif yönde clamp olmadığı için negatif spike'lara karşı ULA savunmasız kalabilir.
Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB

READY.
SYS(64767): EMARTI
hades
Üye
****
Mesaj Sayısı: 391



Üyelik Bilgileri
« Yanıtla #11 : Ocak 27, 2026, 22:47:01 ÖS »

Anladığım kadarıyla PAM 8403'ün çıkışları spectruma uygun değil. Normalde bir canlı çıkış bir GND olması gerekir. Ama PAM'de çıkışta GND yok. Köprü tipi çıkış var gibi gözüküyor. Bu durumda dediğin gibi çıkış seviyesi 5V'tan yüksek olabilir. Bir başka ihtimal ise entegre içinde gerilim çiftleyici varsa çıkış seviyesi yüksek olabilir. En iyisi araya hiç anfi koymamak. Arduinonun D9 pini çok rahat bir şekilde ULA'yı sürebilir. Hatta @levent'in araya potans koyma önerisi daha mantıklı.
Logged
Levent (Lvnt)
Uzman
*****
Mesaj Sayısı: 2.369



Üyelik Bilgileri
« Yanıtla #12 : Ocak 28, 2026, 01:28:52 ÖÖ »

@hades: valla üstat ULA'nın önünde başka bir entegre, transistör diyot vb ben göremedim, mic girişi doğruca ULA'ya giriyor. siz de bir bakın bakalım. ama doğru gördüysem kesinlikle korkulacak bir durum var demektir. diğer konu: pot'u  başlangıçta deneme yaparım diye yazmıştım, son devre için sabit değerli koruma devresi daha uygun, o yüzden onun devresini çizip tavsiye ettim. diğer bir konu: sinyal kırpmak için ben zener diyot değil gösterdiğim şemadaki gibi seri diyotlar kullanırdım çünkü referans kaynaklarda öyle geçer. zener diyot daha çok gerilim sabitleme için kullanılır. olmaz mı? belki olur ama o şekilde öğrenmediğim için öyle bir tavsiyede bulunmam doğru olmaz.

@emarti: evet, ters gerilim gelmeyeceğinin garantisi yok, o 4 diyoda ters yönlü paralel bir diyot bağlayabilirsin: -0.7v civarından fazla ters gerilime izin vermez. hiç negatif gerilime izin vermeyeni de var aslında, devre biraz alengilli hale geliyor, olursa son halini yarın paylaşayım
« Son Düzenleme: Ocak 28, 2026, 03:29:38 ÖÖ Gönderen: Levent (Lvnt) » Logged

Use the brute force, Luke
Levent (Lvnt)
Uzman
*****
Mesaj Sayısı: 2.369



Üyelik Bilgileri
« Yanıtla #13 : Ocak 28, 2026, 23:46:33 ÖS »

spectrum input'u öncesi kullanılabilecek koruma devresinin simülasyon sonuçları PNG olarak ekte. AC ve pulse olarak 1KHz ve 10KHz 15v sinyal girişi uygulandı. mavi grafik uygulanan sinyal, kırmızı grafik çıkış sinyali oluyor.

girişi hem AC hem de pulse olarak hem 1khz hem 10khz önce 70v sonra 80v'a kadar artırıp test ettim. genel olarak girişteki gerilim arttıkça çıkıştaki gerilim de biraz artıyor. 80v girişte çıkış 5v'a yaklaştı ama geçmedi. aslında 1N4148 ters kırılma gerilimi 75v, 80v bu diyodun sınırlarının dışında yani. yine de birşey olmadı.

üst kısımdaki V2 gerilim kaynağı 5v ya da 3.3V farketmedi. D5'in 0.7v kaybını telafi ediyor.

AC sinyal girişinde girişteki negatif gerilim çıkışta 0v olarak çıkıyor. amaç da buydu zaten

pulse.asc ve ac.asc kaydettiğim simülasyon dosyaları. pulse.asc'de frekans değiştirmek için periyot değerlerini değiştirmek gerekiyor, şemada yazılı (T ve Ton değerleri).

yapmayı planladıklarımdan bazılarını yapmayı unuttum:
* aslında c1'in diğer ucundaki grafiği de çizdirsem iyi olacaktı.
* şimdi gördüm seri 1k direnç de koymalıydım, o da kalmış
üşenmeyip yaparsam gönderirim

bakın bakalım. her ne kadar LTSpiceIV üst düzey bir simülatör olsa da %100 güvenmeyin derim, dikkatli olun

* asc.zip (1.42 KB - Yükleme: 14 kez.)

* 15v 1KHz pulse.PNG (34.69 KB, 804x768 - Görüntüleme: 43 kez.)

* 15v 10KHz pulse.PNG (34.79 KB, 804x768 - Görüntüleme: 34 kez.)

* 15v 1KHz ac.PNG (34.21 KB, 804x768 - Görüntüleme: 46 kez.)

* 15v 10KHz ac.PNG (34.36 KB, 804x768 - Görüntüleme: 33 kez.)
Logged

Use the brute force, Luke
emarti
Uzman
*****
Mesaj Sayısı: 2.578


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #14 : Şubat 02, 2026, 02:18:29 ÖÖ »

Arduino Nano D9 pin çıkışına 1.8K direnç ve diyot seri olarak EAR-TIP'e bağladım. Yükleme oluyor. Osiloskopta Vmax:1.74V gördüm. Amp:1.57V civarı.

Direnci 1.5K yaparsam 1,90V max, Amp ise 1.70V civarı oluyor.

Yükler muhtemelen ama denemedim D9 çıkışını direkt osiloskopa bağlarsam, zx spectrum açık değilken sadece devreden uygulama yükler modda Vmax 5.6V oluyor.

1.8K olanda voltaj sınırlaması iyi gibi gelse de hala devrenin güvenli olduğuna şüpheliyim. Lakin ilginç taraf şu ki tzxduino/maxduino firmware kullanan devrelerde EAR'e giden bu çıkış için standart bir çözüm yok hatta internette doğru dürüst devre de yok. LM386'lı çözümler var ama gerek var mı?

Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB

READY.
SYS(64767): EMARTI
Sayfa: [1] 2   Yukarı git
Yazdır
Gitmek istediğiniz yer: