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 KategoriProjeYeni board'lu C64'ler için switchsiz, kablosuz 7 kernal mod
Sayfa: [1] 2 3 4   Aşağı git
Yazdır
Gönderen Konu: Yeni board'lu C64'ler için switchsiz, kablosuz 7 kernal mod  (Okunma Sayısı 6596 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
i_r_on
Uzman
*****
Mesaj Sayısı: 2.422



Üyelik Bilgileri WWW
« : Eylül 17, 2017, 03:40:18 ÖÖ »

Youtube'da milletin projelerini izlemek falan insanı odaklandığı yerlerden hakikaten saptırıyormuş.

https://www.youtube.com/watch?v=LpRaHkqjqJk

Şunu izledikten ve Jim Brain'in aşağıdaki linkteki switchsiz, kablosuz şöyle olur mu gibi önerisini gördükten sonra bu projeyi yapmaya karar verdim.

http://cbm-hackers.2304266.n4.nabble.com/Switchless-ROMs-td4662130.html

İlk videoda paylaştığım mod kernal'ın 8K'lık bir rom'da tutulduğu c64'ler için. Switch'siz ancak iki adet kablo gerektiriyor yine de.

Benim hedeflediğim board'lar ise 250469 no'lu kernal ve basic'in bir 16K'lık rom'da bulunduğu C64'ler. Elimde hali hazırda bu rom'u soketli olan bir C64 olduğu için denemesi de kolay olacak.

Bu projeyi uçtan uca yapacağım ilk proje olarak ele alacağım. Bu sefer breadboard üzerinde takılmak yok. Gelişme aşamalarını şu şekilde sıralayabilirim.

1. Genel olarak işleyişi ve devreyi kafada kurgulama [YAPILDI]
2. Devrenin şemasını çizme [YAPILDI]
3. PCB'yi tasarlama ve üretme (Özay'ın önerdiği EasyEDA üstünden sipariş edeceğim direkt) [YAPILDI]
4. PCB yolda beklenirken Microcontroller ve C64 tarafı için kod yazma [YAPILDI]
5. PCB'lerin gelmesi, Test&Development. [YAPILDI]
6. PCB tasarımının revize edilmesi. Malzeme siparişi.
7. Kullanım klavuzu hazırlama, ince işçilik.


Projenin tasarım aşaması bitti, hedeflediğim gibi 250469 board'larda canavar gibi çalışıyor


« Son Düzenleme: Nisan 23, 2018, 03:08:23 ÖÖ 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

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



Üyelik Bilgileri WWW
« Yanıtla #1 : Eylül 17, 2017, 03:40:52 ÖÖ »

1. Genel olarak işleyişi ve devreyi kafada kurgulama

Bu basic ve kernal rom'larının birleştirildiği rom'lar haliyle 8k+8k = 16k. Cpu'nun adres bacaklarından A0 ile A13 arası hatları kullanıyor.

Projede yaygın kullanılan 64K kapasiteli 27C512 eprom kullanmayı düşünüyorum. Normal şartlarda sadece kernal'ı değiştirip, basic'i aynı bıraksak basitçe 4 değişik kernalin yüklenebildiği bir mod da yapabilirdik.

Benim hedeflediğim çözümde ise,

1. Basic aynı kalmak üzere 7 farklı kernal olabilmeli. (Projeyi ilk açarken hatalı bir şekilde 8 yazmışım bu arada )
2. Herhangi bir switch yahut kabloya ihtiyaç duymamalı.

Şimdi ilk gereksinimi çözmek için C64'ün bellek modeline bir göz atıyoruz.
Basic C64'de A000-BFFF adresleri arasında yer alıyor, Kernal ise E000-FFFF arasında. Ancak bunlar bu 16K rom'da adreslenirken 16K'lık çipin A13 adres hattının 0 ya da 1 olmasına göre ayrılıyorlar. 0 ise basic rom seçilmiş oluyor, 1 ise kernal.

Yeni 64K'lık rom şu şekilde organize edilmiş olacak,

Kernal 7 - E000 - FFFF
Kernal 6 - C000 - DFFF
Kernal 5 - A000 - BFFF
Kernal 4 - 8000 - 9FFF
Kernal 3 - 6000 - 7FFF
Kernal 2 - 4000 - 5FFF
Kernal 1 - 2000 - 3FFF
Basic    - 0000 - 1FFF

7 adet kernal arasında switch yapabilmek için 3 seçim sinyaline ihtiyacımız var. (2^3 >=  7)

111 -> Kernal 7, 001 -> Kernal 1 olacak. 000'da basic olduğu için bu seçim anlamsız oluyor ve kullanıldığı durumda c64'ümüz açılmaz.

Mevcut rom üstündeki A13 hattının Basic ve Kernal açısından seçici olduğundan bahsetmiştik. Bu durumda A13 sıfır olduğunda yeni koyduğumuz 64k'lık eprom'un en üst üç adres biti her zaman sıfır olmalı. A13 bir olduğunda ise 7 kernal'den istediğimizi seçmemiz mümkün.

Biraz kafa yorduktan sonra da bu işi basitçe PLA'dan gelen A13 hattını bizim 3 adet olan her bir seçim hattımızla VE mantık kapısıyla bağlayarak çözebileceğimizi görüyoruz.

Yani Eprom'un ekstra olan adres bacakları şu şekilde olacak,

A15 = PLA_A13 AND SEL2
A14 = PLA_A13 AND SEL1
A13 = PLA_A13 AND SEL0

Bu şekilde PLA_A13 sıfır değerini içerirse A13, A14, A15 sıfır olmakta, yani seçtiğimiz 8K her zaman üstteki bellek şemasında en altta bulunan basic'i göstermekte. PLA_A13 bir olduğunda ise SEL sinyallerimizde seçtiğimiz bank neyse o bank'taki kernal'e erişim olacak.

Bu şekilde 64K rom içine basic sabit kalmak üzere 7 adet kernal'i seçebiliyoruz. Buraya kadar sadece 7 adet kısmına cevap bulduk aslında.

Saat geç olmuş; switchsiz ve kablosuz kısmına daha sonra geleceğim. Bu noktadan sonra 2 alternatif var, birinde kullanılabilecek custom kernal sayısı 6'ya iniyor. Okuyana egzersiz olarak kalsın şimdilik.
« Son Düzenleme: Eylül 17, 2017, 04:12:48 ÖÖ 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

C64, Amiga 500, Ps3, Wii, Nintendo DS lite, Nintendo 3DS
Simon (Özay Turay)
Genel Yönetici
*****
Mesaj Sayısı: 5.852


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #2 : Eylül 17, 2017, 08:18:39 ÖÖ »

Bence ATtiny13 gibi boşta 3 adet output ve 2 adet input pini olan bir MCU ile kolaylıkla yapılabilir bu dediğin. Şöyle ki:

* 3 adet output EPROM A13, A14, A15'i kontrol edecek.
* 1 adet input PLA_A13'ün değerini okuyacak
* 1 adet input RESTORE tuşu kontrol edecek, 5 saniyeden uzun basılırsa bir sonraki BANK'a geçiş yapacak, tabi önce yazılımla senin yukarıda verdiğin formülle A13, A14, A15'in değerlerinin hesaplaması gerek.

Böylece C64 tarafında herhangi bir yazılıma da gerek kalmaz, tembel işi. Kahkaha
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
ibo1973
Üye4
***
Mesaj Sayısı: 1.628


Üyelik Bilgileri WWW
« Yanıtla #3 : Eylül 17, 2017, 14:24:34 ÖS »

Bence ATtiny13 gibi boşta 3 adet output ve 2 adet input pini olan bir MCU ile kolaylıkla yapılabilir bu dediğin. Şöyle ki:

* 3 adet output EPROM A13, A14, A15'i kontrol edecek.
* 1 adet input PLA_A13'ün değerini okuyacak
* 1 adet input RESTORE tuşu kontrol edecek, 5 saniyeden uzun basılırsa bir sonraki BANK'a geçiş yapacak, tabi önce yazılımla senin yukarıda verdiğin formülle A13, A14, A15'in değerlerinin hesaplaması gerek.

Böylece C64 tarafında herhangi bir yazılıma da gerek kalmaz, tembel işi. Kahkaha

basitlik iyidir banada oldukça olası ve mantıklı göründü
Logged

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



Üyelik Bilgileri WWW
« Yanıtla #4 : Eylül 17, 2017, 14:30:56 ÖS »

Bence ATtiny13 gibi boşta 3 adet output ve 2 adet input pini olan bir MCU ile kolaylıkla yapılabilir bu dediğin. Şöyle ki:

* 3 adet output EPROM A13, A14, A15'i kontrol edecek.
* 1 adet input PLA_A13'ün değerini okuyacak
* 1 adet input RESTORE tuşu kontrol edecek, 5 saniyeden uzun basılırsa bir sonraki BANK'a geçiş yapacak, tabi önce yazılımla senin yukarıda verdiğin formülle A13, A14, A15'in değerlerinin hesaplaması gerek.

Böylece C64 tarafında herhangi bir yazılıma da gerek kalmaz, tembel işi. Kahkaha

Hala Kiss prensipleri diyorsun
Basitlik iyidir ancak sadelik daha iyidir Bu çözümde Restore tuşundan rom çipine doğru kablo lehimlemek gerekecek. Ha mevcut durumda da çoğu C64 için rom çipinin sökülüp soketli hale getirilmesi gerekiyor ancak en azından mod bittiğinde bir yerden bir yere bir kablo uzanmıyor olacak.

Attiny konusunda üstüne bastın, çek ayağını Attiny kullanmayı düşünüyorum zira
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
i_r_on
Uzman
*****
Mesaj Sayısı: 2.422



Üyelik Bilgileri WWW
« Yanıtla #5 : Eylül 17, 2017, 15:06:11 ÖS »

1. Genel olarak işleyişi ve devreyi kafada kurgulama

Evet efendim, C64'de 7 kernal beri gel oğlan beri gel türküsünü daha yeni söylemiştik. Kalan kısmımız işin switch'siz ve kablosuz olma kısmıydı.

Switchsiz kısmı basit aslında... 3 adet seçim hattımızı bir microcontroller kontrol edeceği switchsiz kısmını çözüyoruz. Tam bu sözleri yazarken kablosuz olması ile ilgili de fantastik bir fikir geldi aklıma bu arada Buraya da kısaca not düşüp o alternatifi şimdilik kenara bırakıyorum. Switch işlemini yapacak microcontroller'a bir adet accelerometer bağlayabiliriz, böylece Iphone'larda filan olduğu gibi bilgisayarın belli bir hareketini algılamak mümkün olur. Kernal değişimini de C64'ü hareket ettirerek yaparız. Tabii bu esnada açık olması lazım bilgisayarın. Ram'de çalışan crash etmeyeceğini bildiğimiz özel bir uygulama çalışırken yapılabilir.

Neyse bu ihtimali de bir köşeye atıp orjinal fikrimize odaklanalım. Şimdi burada mevzu şu. Devre sadece rom'a bağlanacağı için elimizde işimizi çözecek nitelikli sinyaller yok.

Elimizde olanlar şunlar : Adres hatları (A0..A13), Data hatları (D0..D7), Ouput enable hattı (/OE ) ve besleme hatları yani GND ve 5v VCC.

Başka çözümlerde olduğu gibi kullanıcı girişine dair bir şey almak istesek bir yerden hat çekmek gerekiyor.

Jim Brain'in de önerdiği yönteme benzer bir çözüm aklıma geliyor.
Aslında daha önce sid player projemde apartman blokları şeklinde yapmıştım devrenin değişik bileşenlerini. O esnada da bağlantıların sağlıklı olup olmadığını test etmek gerekmişti ve benzer bir çözümü hali hazırda kurgulamıştım.

6502 forumlarında hatta bu konuda yaşadığım bir sıkıntıyla ilgili çözüm arayışına girişmiştim. Orada daha detaylı bilgi var.

http://forum.6502.org/viewtopic.php?f=4&t=3378

Temelde orada yapmaya çalıştığım şey şuydu. Rom üstüne attığım program microcontroller ile haberleşebilsin diye tüm işi adres decoding yapıp 2 tane sinyal üreten bir devre kullanıyordum. Belli bir adres aralığı bir interrupt sinyaline, bir diğer adres aralığı da başka bir interrupt sinyaline decode oluyordu. Böylece rom'a atılmış ve bu bilinçle yazılmış bir program doğrudan iletişim hattı olmayan microcontroller'a bilgi aktarabiliyordu.

Şimdi bakıyorum da biraz over design yapmışım, iki interrupt sinyaline, komple address decoding'e falan gerek olmayabilir. Özenle seçilecek tek bir adres hattı da bu iş için kullanılabilir.

Bundan sonrası da işin zor kısmı aslında. Tek bir adres hattını dinleyen microcontroller'ın yapılan bütün bellek erişimleri arasından kendisine ulaşmaya çalışan c64 programımızın özenle yaptığı bellek erişimlerini ayıklayıp "hmm tamam, c64'de çalışan program 3 no'lu kernal bank'ına switch etmemi istiyor" diyebilmesi gerekiyor. Tasarladığımız erişim düzeni c64 üzerinde şimdiye kadar yazılmış programların belleğe erişim düzeniyle tetiklenmemeli.

Aslında buraya kadar olan kısımda şematik ve pcb çizimi için elimizde tüm doneler mevcut. Pcb'ler elime ulaşana kadar C64 tarafında çalışacak program ve microcontroller üstünde çalışacak programla ilgili daha detaylı düşünüp çözümü ortaya koyabilirim.

Sistemin kullanıcı arayüzü haricen çalıştırılacak bir program aracılığıyla olacak. 7 değil de 6 kernal ile yetinelim dersek de bu programı da bir kernal imajı haline getirip ilk kullanılacak kernal haline getirebiliriz. Bunun uyumluluk açısından sakıncaları olabilir. Bu gereksinim için de devre şemasına ve pcb'ye bir dip switch eklenebilir. Zira microcontroller'a her açılışta belli bir seçimin yapılıp yapılmadığını iletmesi seçim yoksa da default kernal'a boot etmesi için bank switch emri göndermesi gerekecek.
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
i_r_on
Uzman
*****
Mesaj Sayısı: 2.422



Üyelik Bilgileri WWW
« Yanıtla #6 : Eylül 21, 2017, 02:27:14 ÖÖ »

Geçenlerde devrenin şemasını çizdim. Yalnız EasyEda ile yıldızımız pek barışamadı, biraz erken terkettim bu uygulamayı. Eagle'da şematik çizme konusunda biraz bir şeyler kapmıştım, onda devam ettim. Pcb tasarım kısmında da şimdilik autorouter üç kağıdından faydalandım.

Şematik aşağıdaki gibi,



Eagle schematic ve board dosyaları da şurada :
http://www.tepetaklak.com/data/7kernalmod.zip

Ola ki biri açıp derse, daha sonra pcb'nin alt ve üst katmanlarına ground layer ekledim. Tamamen gözümden kaçmış

Pcb tasarımından memnun kalırsam prototip amaçlı üretime göndereceğim. (Henüz sipariş söz konusu değil)

Bir yandan da attiny üstünde nasıl bir kod yazacağım onu şekillendirmeye çalışıyorum kafamda. Sürekli adres hatlarını dinlemesini istemiyorum. Kullanıcının kernal seçimi yapacağı zaman dilimi oldukça kısa olacak, geri kalan zamanda düşük güç moduna geçsin istiyorum. Tabii burada da uzun süre uyursa gelecek komutları kaçırma durumu olacak. Interrupt ile uyansın desek dinleyeceğimiz bit sayısı 1 olduğu için bununla karşılaşma olasılığı çok yüksek olduğu için çok mantıklı olmayacak.

Açılışta 3-5 dakika çalışsın sonra uyusun desek aslında çok da mantıksız değil. Ortada üretilen bir şey yok bu arada sadece yazılı düşünüyorum

C64'de çalışan programın özenle yaptığı adres erişimleri için de fuzzy (bulanık mantık) bir state machine (durum makinesi) kullanmayı düşünüyorum.

Örneğin benim dinleyeceğim adres hattı A0 olsun.
Fuzzy olmasından kasıt şu : A0 adres hattının 0 yahut 1 olması durumundan ziyade. Belli bir zaman diliminde A0=0 olan erişimlerin toplam erişim sayısına oranı esas input olacak.

Bu arada devre şemasını çizerken geçici olarak karar verdiğim A0 seçiminin çok da doğru bir seçim olmadığını anlamış bulunuyorum. Zira işlemci yazdığım programı çalıştırırken de bellekten komutları ve komutların operand'larını getirmek için belleğe erişiyor. Anlamlı bir şeyler yapabilmek için en 2 byte'lık opcode'lar kullanmak gerektiği için kod çalışırken A0'ın toggle etmesi kaçınılmaz. Bu da hataya sebep olacağı için dinleyeceğimiz adres hattının yüksek adres hatlarından birinde yeralması gerekiyor.

Beri yandan attiny'e /OE de bağlı, yani aslında /OE=1 iken yani rom seçilmemişken bunu sayacağım erişim olarak kabul etmeyebilirim. Programın rom'dan çalışması durumunda /OE de sürekli toggle edeceği için yine aynı şey geçerli. Ancak kullanacağım biti A13 seçersem ve kodumu da 8K'lık kernal rom alanının alt 4k'lık bölümünde çalıştırırsam A13'ün programın çalışmasından dolayı toggle etmesinin önüne geçerim.

Şimdilik ona A13 diyelim.

İyi ki aceleye getirip pcb'yi sipariş etmemişim

Neyse ne diyorduk, bilgi girişimiz fuzzy olacak. Birim zamanda A13 adres hattının 1 olduğu adreslere gelen erişim sayısı / birim zamandaki toplam erişim sayısı benim girişim olacak.

Durum makinesinin şu durumlarının olması gerekiyor.

- Bilgi almayı bekle
- Senkronizasyon&nbsp; * N
- Bilgi almaya başla
- Kernal 1 * M
- Kernal 2 * M
- Kernal 3 * M
- ....

Burada öncelikle senkronizasyon kısmını açayım. Microcontroller ile işlemci arasında bahsettiğimiz örnekleme diliminin başlangıcı için bir senkronizasyon olmadığı için kabaca bunu sağlamak gerekiyor. Kabaca çünkü fuzzy lojik çalışacağımız için belli sapma değerlerini kabul edebiliyor olacağız. C64 ilk açıldığında ister istemez kernal devreye girdiği için ve A13 hattını toggle edecek erişimler yapacağı için durum makinemizin c64'de çalışacak programla bir senkronizasyonu olmayacak. Tasarlayacağımız durum makinesinin senkronizasyon durumları bu zaman kaymasını azaltmaya yönelik olacak. C64'de çalışan program da durum makinesini "Bilgi almaya başla" durumuna getirene kadar senkronizasyonu sağlayacak durumları atlatacak şekilde erişimlerini yapacak ve sonrasında bilgi göndermeye başlayacak. (C64'de teyp turbolarında kullanılan pilot sinyali de aşağı yukarı bu şekilde çalışıyor sanırım)

Sonrasında da her bir kernal seçiminin durum makinesinde birbirinden farklı şekilde kodlanması gerekiyor. Bunun için durum makinesinde bir kernal seçimini kabul etmek için N adet örneğin uymasını bekleyeceğiz. N ne kadar yüksek olursa herhangi bir programın açılışta kazara kernal'i değiştirme ihtimali o kadar düşüyor.

Senkronizasyonu yaptığımızı kabul edelim,

Misal kernal 1'i seçmek için programımız,

birim zaman diliminde,

1. 100 erişim yapıp 25'ini A13 = 1 iken yapıyor,
2. 100 erişim yapıp 50'sini A13 = 1 iken yapıyor,
3. 100 erişim yapıp 75'ini A13 = 1 iken yapıyor,
4. 100 erişim yapıp 25'ini A13 = 1 iken yapıyor,
5. 100 erişim yapıp 50'sini A13 = 1 iken yapıyor,
6. 100 erişim yapıp 100'ünü A13 = 1 iken yapıyor,
7. 100 erişim yapıp 0'ını A13 = 1 iken yapıyor
...
...
N. 100 erişim yapıp 50'sini A13 = 1 iken yapıyor

Burada örneğin
0 erişimi >=0, <=Threshold gibi algılamak lazım.

aynı şekilde,

25 erişimi >=25-Threshold&nbsp; <25+Threshold

Kernal seçimini tanıyacak geçişe uygun olmayan tüm girdileri de "Bilgi almayı bekle" durumuna göndereceğiz.

0, 25, 50, 75, 100 şeklinde 5 fuzzy girdimiz olduğunda N tane sıralı girdi kabulu için 5^N girdiyi doğru göndermesi gerekiyor herhangi bir programın. Örneğin N'i 6 yapsak toplam 5^10 = 9.765.625 adet girdiyi bizim beklediğimiz sırada göndermesi gerekiyor herhangi bir çalışan programın. Senkronizasyon aşamasını düzgün geçse bile bu aralıkta seçeceğimiz 7 değişik kernal seçimine uygun bilgi geliyor olması çok düşük ihtimal.

Muhtemelen çok daha basit bir çözümle de aynı sonuca ulaşabiliriz ancak bu çözümün şöyle bir avantajı var. Bu algoritmayı kurup çalıştırmanın ciddi realtime yani hassas zamanlama gereksinimleri yok.

Mikroişlemci değil de CPLD gibi bir şey kullansaydık realtime ve tüm adres hatlarını kullanarak yine bir sonlu durum makinesi ile de aynı çözümü uygulayabilirdik. Fuzzy logic uygulamamıza da gerek kalmazdı. Tabii ortaya çıkan hardware biraz daha tuzlu olurdu ve zaten bu işi yapmak için de CPLD kullanma becerisine sahip olmak lazım







* 7kernalmodschematic.jpg (39.27 KB, 800x590 - Görüntüleme: 731 kez.)
« Son Düzenleme: Eylül 21, 2017, 02:29:03 ÖÖ 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

C64, Amiga 500, Ps3, Wii, Nintendo DS lite, Nintendo 3DS
LW3D
Genel Yönetici
*****
Mesaj Sayısı: 9.667


Günü Kurtaran Avam Hiooargggh :)


Üyelik Bilgileri WWW
« Yanıtla #7 : Eylül 21, 2017, 12:01:58 ÖS »

İlginç bir proje olduğu kesin... Okuyunca anlamıyor olsam da muhakkak anlayan arkadaşlar vardır... Emeğin için çok teşekkürler...
Logged

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



Üyelik Bilgileri WWW
« Yanıtla #8 : Eylül 25, 2017, 01:00:12 ÖÖ »

İnsanlık için küçük, ancak benim için büyük bir adım... Tasarladığım pcb'nin siparişini verdim

Daha önce Eagle kullanarak bir şeyler yapmaya çalışmıştım. Bu sefer EasyEda'yı bir deneyeyim dedim ancak şematik kısmında bus sinyallerini çizerken sıkıntı yaşadım. Internette bilgi arayınca da sağlam bir bilgi dağarcığına ulaşamayınca direkt eski dost Eagle'a geçtim.

Eagle'da iyi kötü şematik kısmını hallettik, board tasarımına geçtik falan derken eagle'ın klasik stabilite sorunları, bug'ları, saçmalamaları falan bezdirdi. Daha önceden kulağıma niyeyse Kicad bug'lı diye çalınmış hiç denememiştim. Nette Kicad'e geçtim çok memnunum şeklinde bir kaç yorum okuduktan sonra denemeye karar verdim.

Basit olsa da devreyi yeniden çizmemek için bir çevrim aracı aradım ve buldum,

https://hackaday.com/2015/12/27/eagle-to-kicad-made-easy/

Youtube'da Contextual Electronics diye bir kanalda 3-5 video izleyerek kolayca ısındım programa.

Benim bu iş için ideal programım Kicad'miş onu anladım. Bir kere program çok deterministik. Eagle gibi işleri kolaylaştıracağım derken içinden çıkılmaz bir hale sokmuyor. Eagle'da board tasarımına başladıktan sonra devre şemasında değişiklik yapmak çok sıkıntılı, bunda ise oldukça basit, yine aynı şekilde footprint değişikliği falan gayet kolay.

Girdileri, çıktıları belli bir kaç program bir arada aslında. 2-3 gündür kullanıyorum bir kere dahi programların göçtüğüne yahut beklediğimin aksi bir şey yaptığına rastlamadım. Eagle için bunlar çok olağan şeyler.

Tabii en güzeli free bir yazılım olması, eagle'ın free versiyonu bile tam anlamıyla free değil zira ticari bir tasarım yapıp satmanız mümkün değil. Layer, boyut, şematik sayfa sayısı sınırlaması da yok.

Neyse efendim, bakayım benim 5 prototip board için verdiğim 12.5 dolar belki çöpe gidecek ancak benim için iyi bir deneyim oldu.

Aşağıdakiler sırasıyla, devrenin yeni şeması, EasyEda'nın gerber görüntüleme aracından board'un önyüz görüntüsü ve arka yüz görüntüsü.

Prototip olduğu için elemanların silk screen üstündeki etiketlerine/değerlerine falan fazla özenmedim. Devre şemasında da accelerometer çözümü ile adres hattı dinlemeye dayanan çözümü bir arada deneyebilmek için ucuz bir accelerometer modülünün z eksen çıktısı ile adres hattı arasında seçim yapacak bir jumper pad ekledim.

Bu arada yazılım konusunda henüz hiç çalışmadım, vakit bulursam ilk iş accelerometer modülünü kullanmayı düşünüyorum. Sonrasında da pc üstünde fuzzy state machine olayının bir simülasyonunu yapacağım.



* 7KernalModSchematic.png (43.26 KB, 865x731 - Görüntüleme: 199 kez.)

* 7KernalModFront.png (181.9 KB, 427x732 - Görüntüleme: 286 kez.)

* 7KernalModBack.png (128.31 KB, 425x730 - Görüntüleme: 260 kez.)
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
aegis
Üye2
***
Mesaj Sayısı: 121



Üyelik Bilgileri WWW
« Yanıtla #9 : Eylül 25, 2017, 13:37:20 ÖS »

Hangi Kernal'lar olacak ? Bu arada ellerinize sağlık güzel çalışma. Bundan çoğaltmayı dusunuyormusunuz ? Talip olabilirim.
Logged
i_r_on
Uzman
*****
Mesaj Sayısı: 2.422



Üyelik Bilgileri WWW
« Yanıtla #10 : Eylül 25, 2017, 14:20:05 ÖS »

Hangi Kernal'lar olacak ? Bu arada ellerinize sağlık güzel çalışma. Bundan çoğaltmayı dusunuyormusunuz ? Talip olabilirim.

ilk aklıma gelenler standard kernal + jaffy dos (sd2iec için) + exos.. geri kalanı talebe göre belirleyebiliriz. jiffy dos lisans gerektirdiği için muhtemelen benden çıkan rom'lar üstünde bu kernal olmaz. tabii isteyen istediği 7 kernal'i bir araya getirip yazabilir.
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
emintolga
Üye2
***
Mesaj Sayısı: 137



Üyelik Bilgileri
« Yanıtla #11 : Ekim 14, 2017, 00:26:12 ÖÖ »

Nejat'cım yaz beni listenin başına
Logged

Tanar/CLIQUE
*C64|C64C|1084S|1541-II|Dataset|MultiIce III|Expert|SD2IEC|IRQHack64|Lightpen
*A1200|3GB HDD|2x4GB CF|PCMCIA CF Adapter|IDE Double CF
*PiStation 2 (RasPi2)
*Powerbook G4|17"|1.5Ghz|2Gb|MorphOs|UbuntuMate|OsX Leo
*Wii
*PS3 Slim|500GB|Multiman
*PSP1000|3000
*Atari 2600
phoenix
Üye4
***
Mesaj Sayısı: 598



Üyelik Bilgileri
« Yanıtla #12 : Ekim 14, 2017, 00:58:33 ÖÖ »

Ellerine , emeğine sağlık...
Logged
i_r_on
Uzman
*****
Mesaj Sayısı: 2.422



Üyelik Bilgileri WWW
« Yanıtla #13 : Ekim 14, 2017, 02:47:18 ÖÖ »

Henüz elimde çalışan bir şey yok bu arada. Prototip pcb'ler geldi sadece, üstünde epey bir çalışmak lazım daha.
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
AmigaEsref
Üye4
***
Mesaj Sayısı: 3.157


love is better than


Üyelik Bilgileri WWW
« Yanıtla #14 : Ekim 14, 2017, 03:07:59 ÖÖ »

kolay gelsin abi iyi çalışmalar
Logged

AMIGA 500 | GOTEK | 2.5 MB RAM | 1.3 ROM
AMIGA 1200 | 8GB HDD  | 3.1 ROM | 8 MB RAM
COMMODORE 64 | IRQHack64
Sayfa: [1] 2 3 4   Yukarı git
Yazdır
Gitmek istediğiniz yer: