Мазмуну:
- Жабдуулар
- 1 -кадам: Концепция
- 2 -кадам: талаптар
- 3 -кадам: Аны бириктирүү
- 4 -кадам: Районду тестирлөө
- 5 -кадам: Кийинки кадам
- 6 -кадам: Программа
- 7 -кадам: Жыйынтык
Video: 6502 Минималдуу Компьютер (Arduino MEGA менен) 1 -бөлүк: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
6502 микропроцессору биринчи жолу 1975 -жылы пайда болгон жана MOS технологиясы үчүн Чак Педдл жетектеген чакан команда тарабынан иштелип чыккан. Ал кезде видео консолунда жана үй компьютерлеринде, анын ичинде Atari, Apple II, Nintendo Entertainment System, BBC Micro, Commodore VIC20 жана 64 колдонулган. Ошол учурда ал рынокто эң арзан болгон. Ал эч качан чындап кеткен эмес жана азыр аны көптөгөн колдонмолор үчүн хоббисттер жана адистер колдонушат.
Мен колдонуп жаткан версия W65C02S6TPG-14, ал Батыш Дизайн Борбору тарабынан даярдалган жана оригиналына караганда он эсе аз энергияны колдонот. Бул оригиналдуу чип сыяктуу 1 МГцте иштөөнүн кажети жоктугу менен өзгөчөлөнөт. Ал бир кыйла жайыраак иштей алат же программаны бир кадамга чейин колдонсо болот, ал тургай 14 МГцке чейин жетет. Чиптин маалымат баракчасы анын мүмкүнчүлүктөрүн түшүндүрөт. Башка 6502 чиптеринде мындай мүмкүнчүлүк жок жана бул жол менен иштебейт. Чиптер учурда Ebayде жана башка булактарда жеткиликтүү.
Жабдуулар
Колдонулган бардык тетиктер учурда Ebay, AliExpress жана башкаларда жеткиликтүү.
1 -кадам: Концепция
Мен шыктануумду YouTubeда 6502 жана компьютерлерди жана микросхемаларды куруунун башка көптөгөн аспектилери жөнүндө видеолордун сериясын чыгарган Ben Eaterдан алдым. Программа башында ал тарабынан жазылган жана мен аны жана анын кээ бир дизайнын ушул Нускамага келүү үчүн өзгөртүп койгом. Мени шыктандырган дагы бир адам GitHubда бөлүмү бар Эндрю Джейкобс болгон, анда ал 6502ди башкаруу үчүн PIC микро колдонот.
Бен сыяктуу эле, мен 6502ди көзөмөлдөө үчүн Arduino MEGA колдонуп жатам. Мен Бенден айырмаланып саат сигналын берүү үчүн MEGAны да колдонуп жатам. Учурда мен эч кандай EEPROM же RAM колдонбойм.
2 -кадам: талаптар
Бул "компьютерди" куруу үчүн нерселердин тизмеси төмөнкүдөй:
1 x Arduino MEGA
1 х Батыш дизайн борбору W65C02S6TPG-14
1 x 74HC00N IC (Quad 2-input NAND дарбазасы) же окшош
1 x 74HC373N IC (Octal D түрүндөгү тунук бекиткич) же окшош
2 x 830 тешик нан тактасы (1 чымчым)
Ар кандай Дюпонт эркек - эркек жетелейт жана шилтеме зымдары
2 х светодиод (мен 5мм көк түстү колдондум, анткени сиз каршылыгы жок туруп кете аласыз)
1 х 12мм убактылуу тийүү баскычын которуу PCBге орнотулган SPST же окшош
1 x 1K каршылыгы
2 x 0.1 uF керамикалык конденсаторлор
1 x 8 Way Water Light Marquee 5mm кызыл LED (жогоруда көрсөтүлгөндөй) же 8 LED жана резистор
ЭСКЕРТҮҮ: Эгерде сиз сатылбаган комплектти алсаңыз, анда диоддорду катоддун айланасына туура эмес киргизе аласыз. Мен башка жерге оңой туташа тургандай чымын коргошун (пин ордуна) туташтырам. VCC азыр Жерге айланат. Сиз, албетте, светодиоддорду айландырып (чогултулган нерсеге) жана аларды кайра ширете аласыз, бирок бул абдан көп! Учурда комплект AliExpressде жеткиликтүү.
3 -кадам: Аны бириктирүү
Дареги жана маалымат шиналары үчүн лентасынан ажыратылбаган жаңы DuPont зымдарын колдонууну оңой көрдүм.
6502нин 9 (A0) пинин MEGAнын 52 пинине туташтырыңыз, 6502 пин 10 (A1) пин 50гө чейин ж.
чейин
6502нин 25 (A15) пинин MEGAнын 22 пинине туташтырыңыз.
Азырынча 16 байланыш.
Ошо сыяктуу эле
6502нин 26 (D7) пинин MEGAнын 39 пинине туташтырыңыз, 6502нин 27 (D6) пини 41ге чейин ж.б.
чейин
6502нин 33 (D0) пинин MEGAнын 53 пинине туташтырыңыз.
Дагы 8 байланыш.
Pin 8 (VDD) MEGAдагы 5vге туташтырыңыз.
Нан тактасынын 8 -графасынан Gndге туташкан 0.1uF конденсатору бул жерде пайдалуу болушу мүмкүн, бирок зарыл эмес.
21 -пин (VSS) MEGAдагы Gndге туташтырыңыз.
2, 4, 6, 36 жана 38 -пиндер 5vге байланат
37 -пин (Саат) MEGAнын 2 жана 7 -пинге туташтырыңыз.
34 -пинди (RWB) MEGAнын 3 -пинине туташтырыңыз.
40 -пинди (Reset) жогорудагы диаграммага туташтырыңыз.
4 -кадам: Районду тестирлөө
Бул этапта 6502 иштейт жана program1 колдонулушу мүмкүн. Эгерде сиз 8 тараптуу марканы колдонуп жатсаңыз (жогоруда көрсөтүлгөндөй), аны түз эле нан тактасына жана чымындын коргоосун жерге туташтырууга болот, же 8 LED жана резисторлорду колдонсоңуз болот. LEDS маалымат шинасында эмне бар экенин көрсөтөт.
Бул этапта Loop () кечигүүлөрүн 500 же андан көп кылып, эмне болуп жатканын ээрчүү жакшы болмок.
Сиз Сериялык Монитордо жогорудагыдай окшош чыгууну алышыңыз керек. Кайра коюу басылганда, процессор 7 циклден өтөт, андан кийин программанын башталышын $ FFFC жана $ FFFD жайгашкан жерлерден издейт. 6502 үчүн физикалык даректер жок болгондуктан, биз аларды MEGAдан камсыз кылышыбыз керек.
Жогорудагы чыгарууда 6502 $ FFFC жана $ FFFD окуйт жана программанын башталышы $ 1000 жана $ 10 менен $ 10 (Төмөн байт, Жогорку байт) алат. Андан кийин процессор программаны $ 1000 жайгашкан жерде аткара баштайт (жогорудагыдай). Бул учурда ал $ A9 жана $ 55, б.а. LDA#$ 55 (85ти аккумуляторго жүктөйт) окуйт. Кайра физикалык эс тутуму жок болгондуктан, MEGA маалымат шинасынан окулганды окшоштурат.
$ 55 (85) 01010101 экилик моделин берет жана 1 бит солго бурулганда $ AA (170) 10101010 берет.
Программа процессордун туура иштеп жатканын көрсөтүп турат, бирок көп өтпөй бир аз кызыксыз болуп калат.
5 -кадам: Кийинки кадам
Жогорудагы "спагетти үймөгү", балким, бул этаптан кийин сизде боло турган нерсеге окшош.
Андан кийин 74HC373N жана 74HC00N ICлерин нан тактасына кошуу керек.
Тилекке каршы, 373 -жылдын казыктары маалымат автобусуна туура келбейт, андыктан зымдарга илиниши керек.
5 -пин 20га туташтырыңыз.
Жерди 10 -пинге туташтырыңыз.
6502нин 33 (D0) пинин 74HC373N 3 (D0) пинине туташтырыңыз
жана ошондой эле D1 - D7 төөнөгүчтөрү менен.
Q0 - Q7 - бул жыйынтыктар жана алар LED маркасына же жеке LED жана резисторлорго туташууну талап кылат.
74HC00 менен анын 2 гана дарбазасы керек
5 -пин 14кө туташтырыңыз.
Жерди 7 -пинге туташтырыңыз.
6502нин 17 (A8) пинин 74HC00'дин 1 (1A) пинине туташтырыңыз
6502нин 25 (A15) пинин 74HC00 2 (1B) пинине туташтырыңыз
6502нин 34 (R/W) пинин 74HC00 5 (2B) пинине туташтырыңыз
74HC00 pin 3 (1Y) 74HC00 4 (2A) пинке туташтырыңыз
74HC00'дун 6 (2Y) пинин 74HC373N 11 пинине (LE) туташтырыңыз.
74HC373N пин 11 (LE) туташуу 74HC373N 1 пин (OE)
Сиз көк LEDди 1Yге жана жерге, ошондой эле жерге 2Y туташтырсаңыз болот, бул дарбаза активдүү болгондо көрсөтүлөт.
Акыры onClock процедурасындагы линияны program1ден program2ге өзгөртүңүз
setDataPins (program2 [offset]);
6 -кадам: Программа
6502-Monitor программасы жогоруда сүрөттөлгөн эки 6502 тартибин камтыйт.
Программа дагы эле иштелип жатат жана бир аз иретке келтирилген.
Program2ди иштеткенде, циклдеги () кечигүүлөр 50 же андан аз болушу мүмкүн, ал тургай таптакыр жок кылынышы мүмкүн. Serial.print () линияларын комментарийлөө 6502ди ылдамыраак иштетет. 373 -тин 1 -пин (OE) 11 -пинден (LE) ажыратуу ар кандай натыйжаларды берет. NAND дарбазасынан 373 -тин 1 -пин жана 11 -пин ажыратуу сизге ар бир саат циклинде маалымат автобусунда эмне бар экенин көрүүгө мүмкүнчүлүк берет.
Эгер бул пин бийик болуп кетсе, 8 чыгаруу линиялары өчүрүлгөндүктөн, OEди калкып кетпей, жерге байлап коюуңуз керек болот. LE пин бийик болгондо, чыгуучу пиндер кириштер менен бирдей. LE пинди төмөн түшүрүү, чыгууларды, башкача айтканда, эгер кирүү казыктары өзгөрсө, чыгуулар ошол бойдон калат.
Мен түшүнүү үчүн программаны мүмкүн болушунча жөнөкөй сактоого аракет кылдым.
Убакытты кечиктирүү менен тажрыйба жүргүзүү сизге 6502 эмне кылып жатканын так аткарууга мүмкүндүк берет.
Төмөндө 6502 Assemblerдеги эки программа (экөө тең $ 1000 дарегинде иштейт):
программа1
LDA#55 доллар
ЖОК
ROL
STA $ 1010
JMP $ 1000
ROL аккумулятордун мазмунун бир аз солго бурат, демек 55 доллар азыр $ AA болуп калат.
Машина кодунда (он алтылык): A9 55 EA 2A 8D 10 10 4C 00 10
программа2
LDA#$ 01
STA $ 8100
ADC#$ 03
STA $ 8100
JMP $ 1005
Машина кодунда (он алтылык): A9 01 8D 00 81 69 03 8D 00 81 4C 05 10
Программада2 азыр $ 8100 физикалык дареги бар, ал жерде 74HC373 дарек автобусунда жайгашкан.
б.
Ошентип, 6502 8100 долларга (STA $ 8100) жазганда, 6502 R/W төмөн жана 6502 маалымат автобусундагы маалыматтар 373 LE төмөндөгөндө жабылат. 74HC00 NAND дарбазасы болгондуктан, сигналдар тескери бурулат.
Жогорудагы экранда экинчи жазуу 3кө көбөйгөн (ADC#$ 03) - 7F доллардан 82 долларга чейин.
Чындыгында, 373 так жайгашкан жери үчүн дарек автобусунун 2ден ашык линиясы колдонулат. Бул мүмкүн болгон 65536 ичинен жалгыз физикалык дарек болгондуктан, ал дарек автобусунун кандайча иштээрин көрсөтөт. Сиз башка дарек казыктары менен эксперимент жүргүзүп, башка жерге койсоңуз болот. Албетте, СТА операнддарын жаңы жерге өзгөртүү керек болот. мис. Эгерде сиз A15 жана A9 дарек линияларын колдонгон болсоңуз, анда дарек $ 8200 болмок (32768 + 512).
7 -кадам: Жыйынтык
Мен 6502ди иштетүү канчалык оңой экенин көрсөтүүгө аракет кылдым.
Мен бул жаатта адис эмесмин, андыктан конструктивдүү комментарийлерди же маалыматты кабыл алам.
Сиз муну андан ары өнүктүрүп кетиңиз жана мен эмне кылганыңызга кызыкдар болом.
Мен долбоорго EEPROM, SRAM жана 6522 кошууну, ошондой эле келечекте аны тилке тактасына кошууну көздөп жатам.
Сунушталууда:
Иштөөчү Гейгер 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 вольттуу батареяда иштейт жана түбүнө жылдыруучу эшиги бар, батареяга оңой жетүү үчүн. Мен чогулткам