
Სარჩევი:
2025 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2025-01-23 14:50

ჩემი წინა ინსტრუქციის შემდეგ, მე ახლა 6502 ჩავწერე ზოლის დაფაზე და დავამატე 6522 მრავალმხრივი ინტერფეისის ადაპტერი (VIA). ისევ და ისევ, მე ვიყენებ 6522 -ის WDC ვერსიას, რადგან ის იდეალურია მათი 6502 -ისთვის. არა მხოლოდ ეს ახალი ჩიპები იყენებენ გაცილებით ნაკლებ ენერგიას, ვიდრე MOS- ის ორიგინალი ვერსიები, არამედ მათი გაშვება ნელი სიჩქარითაც კი. პროგრამა უპრობლემოდ.
არდუინოს პროგრამა თავდაპირველად დაწერილი იყო ბენ ეატერის მიერ (რომელსაც ბევრი ვიდეო აქვს YouTube- ზე) და ჩემ მიერ შეცვლილია ამ შედეგის მისაღწევად.
მარაგები
1 x WDC W65C02 პროცესორი
1 x WDC W65C22 მრავალმხრივი ინტერფეისის ადაპტერი
1 x 74HC00N IC (Quad 2-input NAND gate) ან მსგავსი
1 x 10 სმ სიგანე (35 ხაზი) ზოლის დაფა
2 x 40 პინიანი DIL სოკეტი
1 x 14 პინიანი DIL სოკეტი
PCB სათაურის ქინძისთავები 2.54 მმ
PCB სათაურის ბუდეები 2.54 მმ
1 x 12 მმ Momentary Tactile Push Button Switch PCB Mounted SPST ან მსგავსი
1 x 1K რეზისტორი
1 x 3K3 რეზისტორი
2 x 0.1 uF კერამიკული კონდენსატორები
1 x 8 Way Water Light Marquee 5 მმ წითელი LED
სხვადასხვა ფერის მავთულები კავშირებისთვის
8 მამრობითი - მამრობითი კავშირის მავთულები
ნაბიჯი 1: მიკროსქემის დაფა


მიკროსქემის დაფა საკმაოდ კომპაქტურია და ქვედა ნაწილი უერთდება პირდაპირ Arduino MEGA- ს. ამის მისაღწევად, ქინძისთავები შეძლებისდაგვარად უბიძგებენ პლასტმასის დამჭერებს, სანამ დაფის ქვედა ნაწილზე შეიკვრებიან. უფრო გრძელი ქინძისთავები შეიძლება გამოყენებულ იქნას ამისათვის, მაგრამ სტანდარტული ქინძისთავები ნიშნავს, რომ დაფა მყარად დგას MEGA– ს თავზე.
მე დავამუშავე 6502 და 6522 IC, ისე რომ ისინი იყენებენ ზოლის დაფის ტრასებს MEGA– სთან დასაკავშირებლად. ასევე არსებობს რამდენიმე კავშირი 6502 -ისთვის, რომელიც დამალულია IC- ს ქვეშ. დაფის დამზადებისას, პირველი რაც გააკეთა იყო 16 ზოლის მოჭრა, რომელიც დაუკავშირდება არდუინოს ორმაგ რიგს სოკეტებთან. გარე 2 -ს მოჭრა არ სჭირდება, რადგან 5v და Gnd ორივე მხარეს არის. შემდეგი შედუღება 18 რიგის 2 მწკრივში ქვედა ნაწილში, ხოლო 2 სტრიქონი 18 სოკეტის ზედა მხარეს.
ამის შემდეგ DIL- ის სოკეტები შედუღდა ადგილზე და ბილიკები გაჭრა მათ შორის. შემეძლო გადავარჩინო კავშირი 74HC00– ის პინ 14 – ის დაყენებით იმავე ტრეკზე, როგორც 5 ვ. ბილიკები მხოლოდ მაშინ გავწყვიტე, როდესაც დარწმუნებული ვიყავი, რომ ისინი საჭირო იყო, სანამ მე ვაკავშირებდი დამაკავშირებელ მავთულხლართებს. თუმცა, ყველაფერი ყოველთვის ისე არ მიდის, როგორც თავდაპირველად, მე დავამუშავე წინა პურის დაფის ზოლები დაფაზე Arduino– ს მე –2, მე –3 და მე –7 ნაწილების გამოყენებით, მაგრამ ეს არ ემთხვევა ზოლის დაფის ხვრელებს, ასე რომ მომიწია გამოყენება. ქინძისთავები 18, 31 და 37. აქედან გამომდინარე ბმულები ჩემს დაფაზე 31 და 37. ალბათ გაინტერესებთ რატომ არ გამოვიყენე ერთ – ერთი გამოუყენებელი ქინძისთავი (23, 24 და ა.შ.) საათისათვის, ეს იმიტომ ხდება, რომ მათ არ აქვთ მხარდაჭერა წყვეტს, ამიტომ უნდა გამოვიყენო პინი 18, 19, 20 ან 21, რომელიც აკეთებს. საბედნიეროდ, ეს 4 ქინძისთავები შეესაბამება ზოლის დაფის ხვრელებს და ინახავს ყველაფერს კომპაქტურად. პინი 18 ასევე ყველაზე შორს არის ყველა სხვა მავთულისგან.
თქვენ ასევე შეგიძლიათ შეამჩნიოთ, რომ ჩემი დასრულებული დაფა არ არის ზუსტად იგივე, რაც ჩემი დიაგრამა. ეს იმიტომ ხდება, რომ მე ვიცავდი სხვის დიაგრამას. აქედან გამომდინარეობს კავშირები 74HC00– თან. მე ასევე დავამატე დენის LED და დამატებით 2 რიგის სოკეტი Gnd და 5v, ასევე რამდენიმე კონდენსატორი.
შემეძლო 2 მონაცემთა სოკეტის დაკავშირება, მაგრამ ეს ნიშნავს, რომ გაცილებით მეტი მავთული გადის დაფაზე. მე ავირჩიე 8 ბმული მავთული ამის გაკეთება, როგორც დროებითი ღონისძიება.
6522 პორტ A- სა და B- ს ჰქონდა ბუდეები მიმაგრებული მათ ბილიკებზე ისე, რომ LED მარკერები ადვილად ჩასვათ.
ახლა გაცილებით ნაკლები მავთულია, ვიდრე პურის დაფის ვერსიაზე იყო.
ნაბიჯი 2: პროგრამირების თეორია

6522– ს აქვს ორი I/O პორტი და მრავალი სხვა მახასიათებელი, მაგრამ A და B პორტები ადვილად მისაწვდომია. პორტზე მონაცემების გამოსაყვანად, მონაცემების მიმართულების რეესტრი (DDR) უნდა შეიქმნას შესაბამისად და მონაცემები გაიგზავნოს თავად პორტში.
ზემოაღნიშნული პარამეტრებით, 6522 მდებარეობს E000 $.
B პორტზე მონაცემების გამოსაყვანად, DDR E002 $ -ზე არის მითითებული $ FF (255 - ყველა გამოსავალი) და მონაცემები იგზავნება E000 $.
A პორტზე მონაცემების გამოსასვლელად, DDR E003 დოლარად არის მითითებული $ FF (255 - ყველა გამოსავალი) და მონაცემები იგზავნება $ E001.
ქვემოთ მოყვანილი კოდი იტვირთება $ FF 6502 A რეგისტრში და წერს მას 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 #$ 55 $ 1007 8d 00 e0 STA $ e000 $ 100a 6a ROR A $ 100b 8d 00 e0 STA $ e000 $ 100e 4c 05 10 JMP $ 1005
$ 55 ორობითი არის 010101010 და $ AA არის 10101010 რაც იწვევს LED- ების მონაცვლეობას 4 ჩართული, 4 გამორთული.
სწრაფი და ბინძური გამოსწორება:
შეცვალეთ 74HC00 (Quad 2 input NAND Gate) 74HC08 (Quad 2 input AND Gate) და 6522 არის $ 6000 $ E000- ის ნაცვლად. ეს გადააქვს მას ზედა 32K– დან 6502– ის მისამართული მეხსიერების ქვედა 32 K– ში.
ნაბიჯი 3: არდუინოს პროგრამა და შედეგი

რადგან 6502 – ს არ აქვს RAM წაკითხვისთვის, Arduino აწვდის პროგრამას მის წასაკითხად. როდესაც საათის პულსი გამოვლენილია პინ 18 -ზე, Arduino აყენებს პროგრამის მონაცემებს მონაცემთა ავტობუსში (Arduino აყენებს 39, 41, 43, 45, 47, 49, 51 და 53). 6502 წარმოქმნის საკუთარ მისამართებს, რომელთა მონიტორინგიც მხოლოდ არდუინოს მიერ ხდება 22 -დან 52. რიცხვამდე ქინძისთავებზე. არდუინო ასევე აწვდის საათის პულსს 37 -ე პინზე. 6502 -ის R/W ხაზის მონიტორინგი ხდება 31 -ე პინზე.
რადგან Arduino აწვდის მონაცემებს, ჯერჯერობით შეუძლებელი იყო 6502 -ის მიღება VIA– ს მონაცემების შესასვლელად (თუ თქვენ უკეთ არ იცით).
Arduino პროგრამა ქვემოთ არის და სერიული მონიტორის ნიმუში ზემოთ.
ნაბიჯი 4: დასკვნა
კიდევ ერთხელ შევეცადე მეჩვენებინა, თუ როგორ უნდა შეიქმნას მინიმალური "6502 კომპიუტერი".
ამ ეტაპზე 6502 კვლავ ეყრდნობა არდუინოს, რომ მიაწოდოს მას პროგრამა და საათის პულსი, რათა ის იმუშაოს.
ეს არის წინ გადადგმული ნაბიჯი, ვიდრე მაშინ, როცა ის პურის დაფაზე დავაყენე.
მე არ გამოვიყენე 74HC373 ამჯერად, მაგრამ უფრო რთული 6522 მონაცემების გამოსაყვანად. ასევე 6522 აქვს ორი I/O პორტი.
მე ვაპირებ ამ პროექტის შემდგომ გაგრძელებას SRAM- ის ან EEPROM- ის დაყენებით.
გირჩევთ:
6502 მინიმალური კომპიუტერი (Arduino MEGA– ით) ნაწილი 3: 7 ნაბიჯი

6502 მინიმალური კომპიუტერი (Arduino MEGA– სთან ერთად) ნაწილი 3: კიდევ უფრო წინსვლისას, მე ახლა დავამატე ოქტალური ჩამკეტი, 8 მართკუთხა LED და 220 Ohm რეზისტორული მასივი მთავარ დაფაზე. ასევე არის ჯუმპერი მასივის საერთო პინსა და მიწას შორის, ისე რომ LED- ები გამორთული იყოს. 74HC00 NAND კარიბჭე თ
6502 მინიმალური კომპიუტერი (Arduino MEGA– ით) ნაწილი 1: 7 ნაბიჯი

6502 მინიმალური კომპიუტერი (Arduino MEGA– სთან ერთად) ნაწილი 1: 6502 მიკროპროცესორი პირველად გამოჩნდა 1975 წელს და შეიქმნა მცირე გუნდის მიერ ჩაკ პედლდის ხელმძღვანელობით MOS ტექნოლოგიისთვის. მაშინ ის გამოიყენებოდა ვიდეო კონსოლებში და სახლის კომპიუტერებში, მათ შორის Atari, Apple II, Nintendo Entertainment System, BBC Micr
მინიმალური Arduino ხმის ეფექტების ყუთი: 5 ნაბიჯი

მინიმალური Arduino ხმის ეფექტების ყუთი: ეს არის ხმის ეფექტების ყუთის სწრაფი პროექტი. მოწყობილობა კითხულობს წინასწარ ჩაწერილ wav ფაილს microSD- დან, რომელიც მინიჭებულია კონკრეტულ ღილაკზე და უკრავს მას დაჭერისას
კომპიუტერი RE სისტემებისთვის (ნაწილი 2 2) (აპარატურა): 5 ნაბიჯი

კომპიუტერი RE სისტემებისთვის (ნაწილი 2 2) (აპარატურა): აქ მე გაჩვენებთ თუ როგორ შევქმენი სრულად მომუშავე მინი დესკტოპის კომპიუტერი მცირე განახლებადი ენერგიის სისტემებისთვის. RE სისტემა, რომლის გამოყენებასაც ვგეგმავ, იქნება პირველ რიგში 12 ვოლტიანი სისტემა 6 ან 8 გოლფის კალათის ბატარეებით, და მე მექნება ინვერტორული სიმძლავრე 700 ვატი
კომპიუტერი RE სისტემებისთვის (ნაწილი 2 2) (პროგრამული უზრუნველყოფა): 6 ნაბიჯი

კომპიუტერი RE სისტემებისთვის (ნაწილი 2 2) (პროგრამული უზრუნველყოფა): ამ ინსტრუქციის პირველ ნაწილში განთავსებულია აქ https://www.instructables.com/id/Computer-for-RE-Systems-Part-1-of-2 -მძიმე/, მე დავამატე ყველა ტექნიკა, რომელიც მინდოდა კარგი დესკტოპის სისტემის მიღება. ახლა პროგრამული უზრუნველყოფისთვის, მაგრამ პროგრამულ უზრუნველყოფამდე