Мазмуну:
- Жабдуулар
- 1 -кадам: Circuit Board
- 2 -кадам: Программалоо теориясы
- 3 -кадам: Arduino программасы жана чыгаруу
- 4 -кадам: Жыйынтык
Video: 6502 & 6522 Минималдуу Компьютер (Arduino MEGA менен) 2 -бөлүк: 4 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Мурунку көрсөтмөмдөн кийин, мен азыр 6502ди тилке тактасына коюп, 6522 ар тараптуу интерфейс адаптерин (VIA) коштум. Дагы, мен 6522нин WDC версиясын колдонуп жатам, анткени бул алардын 6502 үчүн эң сонун дал келет. Бул жаңы чиптер MOSтун баштапкы версияларына караганда азыраак кубаттуулукта колдонушат, бирок аларды жайыраак ылдамдыкта иштетсе болот, атүгүл басып өтсө болот. эч кандай көйгөйсүз программа.
Arduino программасы башында Ben Eater (YouTubeда көптөгөн видеолору бар) тарабынан жазылган жана бул жыйынтыкка жетүү үчүн мен тарабынан өзгөртүлгөн.
Жабдуулар
1 x WDC W65C02 процессору
1 x WDC W65C22 ар тараптуу интерфейс адаптери
1 x 74HC00N IC (Quad 2-input NAND дарбазасы) же окшош
Туурасы 1 х 10см (35 сап) Тактай
2 x 40 пин DIL розеткасы
1 x 14 пин DIL розеткасы
PCB Header Pins 2.54mm
PCB Header Sockets 2.54mm
1 х 12мм убактылуу тийүү баскычын которуу PCBге орнотулган SPST же окшош
1 x 1K каршылыгы
1 x 3K3 каршылыгы
2 x 0.1 uF керамикалык конденсаторлор
1 x 8 Way Water Light Marquee 5мм кызыл LED
Байланыш үчүн ар кандай түстүү зым
8 эркек - эркек шилтеме зымдары
1 -кадам: Circuit Board
Электрондук такта абдан тыгыз жана асты Arduino MEGAга туташат. Буга жетүү үчүн, казыктар пластинка кармагычтарына мүмкүн болушунча түртүлүп, тактанын астына ширетилет. Бул үчүн узун казыктарды колдонсо болмок, бирок стандарттуу казыктар такта MEGAнын үстүндө бекем турганын билдирет.
Мен 6502 жана 6522 IC'лерди тизип койдум, алар MEGAга туташуу үчүн тилке тактасынын тректерин колдонушат. IC астында жашырылган 6502 үчүн кээ бир байланыштар да бар. Такта жасоодо биринчи кезекте Ардуинонун кош катар розеткаларына туташтыра турган 16 тилкени кесүү керек болчу. 5v жана Gnd эки тарапта болгондуктан сырткы 2ди кесүүнүн кажети жок. Кийинки астынкы жагында 18 казыктын 2 катарында, ал эми үстү жагында 18 розетканын 2 катарында.
Андан кийин DIL розеткалары ордуна ширетилип, тректер алардын ортосунда кесилген. Мен 74HC00'дин 14 -пин 5v менен бир эле трекке коюп байланышты сактап калмакмын. Мен тректерди бириктирүүчү зымдарды ширетип жатканда керек экенине көзүм жеткенде гана кесип таштадым. Бирок, нерселер дайыма эле планда боло бербейт, мен башында мурунку нан тактасынан Arduino 2, 3 жана 7 төөнөгүчтөрдү колдонуп стриптизди иштеп чыккам, бирок алар тилке тактасындагы тешиктерге дал келбейт, ошондуктан колдонууга туура келди казыктар 18, 31 жана 37. Демек, 31 жана 37деги тактайдагы шилтемелер. Эмне үчүн мен саат үчүн колдонулбаган казыктардын бирин (23, 24 ж.б.) колдонгон эмесмин деп ойлонушуң мүмкүн, анткени алар колдобойт. үзгүлтүккө учуратат, ошондуктан 18, 19, 20 же 21 -пинди колдонууга туура келди. Бактыга жараша, бул 4 казык тилке тактасындагы тешиктерге тизилип, баарын тыкан кармап турат. 18 -пин дагы башка зымдардан эң алыс жайгашкан.
Менин бүткөн тактайым менин схемама такыр окшош эместигин байкасаңыз болот. Себеби мен башка бирөөнүн схемасы боюнча жүрчүмүн. Демек 74HC00 менен байланыштар. Мен ошондой эле күч LEDын жана Gnd жана 5v үчүн кошумча 2 катар розеткаларды жана дагы бир нече конденсаторлорду коштум.
Мен 2 маалымат розеткасын туташтырып койсом болмок, бирок бул тактан өтө көп зымдарды билдирет. Мен муну убактылуу чара катары 8 шилтеме зымын тандадым.
6522 А жана В портторунда LED маркалары оңой киргизиле тургандай кылып, тректерине ширетилген розеткалар болгон.
Азыр нан тактасынын версиясына караганда азыраак зымдар бар.
2 -кадам: Программалоо теориясы
6522де эки I/O порту жана башка көптөгөн мүмкүнчүлүктөр бар, бирок А жана В портуна оңой жетүүгө болот. Порт боюнча маалыматтарды чыгаруу үчүн, маалыматтардын багытынын реестрин (DDR) ошого жараша орнотуу жана маалыматтарды порттун өзүнө жөнөтүү керек.
Жогорудагы орнотуу менен, 6522 $ E000де жайгашкан.
В портуна маалыматтарды чыгаруу үчүн, $ E002 боюнча DDR $ FF (255 - бардык чыгуулар) деп коюлган жана маалыматтар $ E000ге жөнөтүлөт.
А портуна маалыматтарды чыгаруу үчүн, $ E003 боюнча DDR $ FF (255 - бардык чыгуулар) деп коюлган жана маалыматтар $ E001ге жөнөтүлөт.
Төмөндөгү код 6502 A реестрине $ FF жүктөп, аны DDR B $ E002 жазат. Андан кийин 55 доллар жүктөп, ORBге жазат. Код айланат ($ AA берет) жана ORBга жазылат. Программа $ 1005 артка секирип, чексиз кайталанат. ЭСКЕРТҮҮ: DDRди бир жолу баштоо керек.
Дарек Hexdump Dissassembly
$ 1000 a9 ff LDA #$ ff $ 1002 8d 02 e0 STA $ e002 $ 1005 a9 55 LDA #$ $ 1007 8d 00 e0 STA $ e000 $ 100a 6а ROR A $ 100b 8d 00 e0 STA $ e000 $ 100e 4c 05 10 JMP $ 1005
$ 55 экилик - 010101010 жана $ AA - 10101010, бул диоддордун 4 күйүп, 4 өчүшүнө алып келет.
Тез жана кир оңдоо:
74HC00 (Quad 2 input NAND Gate) дегенди 74HC08 (Quad 2 input AND Gate) менен алмаштырыңыз жана 6522 азыр E000 $ ордуна 6000 $ турат. Бул аны жогорку 32Kдан 6502нин даректүү эс тутумунун төмөнкү 32Kсына жылдырат.
3 -кадам: Arduino программасы жана чыгаруу
6502де окуй турган RAM жок болгондуктан, Arduino аны окуу үчүн программаны камсыздап жатат. 18 -саатта импульс табылганда, Arduino программанын маалыматын маалымат автобусуна коет (Arduino пиндери 39, 41, 43, 45, 47, 49, 51 жана 53). 6502 22ден 52ге чейин жуп сандагы казыктарда Arduino тарабынан көзөмөлдөнүүчү өзүнүн даректерин түзөт. Arduino 37 -пиндеги сааттын импульсун да камсыздап турат.
Arduino маалыматтарды берип жаткандыктан, азырынча 6502ди VIAдан маалыматтарды киргизүү мүмкүн болгон жок (эгер сиз жакшы билбесеңиз).
Arduino программасы төмөндө жана Serial Monitorдон алынган үлгү жогору.
4 -кадам: Жыйынтык
Дагы мен минималдуу "6502 компьютерин" кантип орнотууну көрсөтүүгө аракет кылдым.
Бул этапта 6502 дагы эле Arduinoго таянып, аны иштетүү үчүн программа жана саат импульсун берет.
Бул мен аны нан тактасына орноткондон бир кадам алдыга жылат.
Мен бул жолу 74HC373 колдонгон жокмун, бирок татаалыраак 6522 маалыматтын чыгышы үчүн. Ошондой эле 6522де эки I/O порту бар.
Мен бул долбоорду SRAM же EEPROM орнотуу менен улантууну көздөп жатам.
Сунушталууда:
Иштөөчү Гейгер Counter W/ Минималдуу Тетиктер: 4 Кадам (Сүрөттөр менен)
Иштөөчү Гейгер Counter W/ Минималдуу Бөлүктөрү: Мына, менин билишимче, сиз кура турган эң жөнөкөй Гейгер эсептегич. Бул электрондук чымын учкучтан уурдалган жогорку вольттогу күчөткүч схемасы менен башкарылган Россияда жасалган SMB-20 Geiger түтүгүн колдонот. Бул бета бөлүкчөлөрдү жана гамды аныктайт
GoBILDA менен минималдуу төрт X 12 Volt Rover шасси: 10 кадам
GoBILDA менен минималдуу төрт X 12 Volt Rover шасси: Мен сизге goBILDA компоненттерин колдонуу менен RC же автономдуу ровер шассиин кантип курганымды көрсөтөм. Мен бул жакка goBILDA менен эч кандай байланышы жок экенин кошумчалашым керек, негизинен канааттанган кардар катары эмес
Минималдуу OTG туташтыргычын кантип жасоо керек: 4 кадам (сүрөттөр менен)
Минималдуу OTG туташтыргычын кантип жасоо керек: Бул электрондук DIY долбоорунда сиз минималдуу OTG туташтыргычын өтө арзан баада кантип жасоону көрөсүз. OTG туташтыргычы Android телефонуңузду U дискти кеңейтүү жана чычкан туташуусу үчүн оңой туташтырган абдан практикалык курал. Сиз жасай аласыз
Жалаң минималдуу Raspberry Pi Torrent Machine үйрөткүчү: 4 кадам (сүрөттөр менен)
Жалаң минималдуу Raspberry Pi Torrent Machine үйрөткүчү: Hai people.Torrenting - бул ар дайым өмүрдү сактап калуучу жана башы жок Raspberry Pi менен иштөө, чынында эле укмуштуудай болот деп үмүттөнөбүз. Окуу куралы менен мен баарыңарга башы жок иштей турган Pi менен Torrent машинасын курууга жардам берем жана сен биздин Андрону колдоно аласың
Була -оптикалык жана LED минималдуу бакча жарыгы: 10 кадам (сүрөттөр менен)
Була -оптикалык жана LED минималдуу бакча жарыгы: Бул долбоор гүлдөргө, жалбырактарга жана чөптөргө толгон кичинекей бакты жарыктандыруу үчүн LED жана оптикалык оптика колдонот. Куту акрил барактан курулган, ал 9 вольттуу батареяда иштейт жана түбүнө жылдыруучу эшиги бар, батареяга оңой жетүү үчүн. Мен чогулткам