Atari 8-bit: Sio2Arduino, ο Arduino σαν SD drive
- sly*m
-
Συντάκτης θέματος
- Elite Member
-
- Δημοσιεύσεις: 322
- Ληφθείσες Ευχαριστίες 539
Αυτή την κατασκευή θα ήθελα να παρουσιάσω εδω!
Το Sio2Arduino είναι μια εφαρμογή εξομοίωσης Atari 8-bit disk drive στον Arduino , που είναι μια δημοφιλής πλατφόρμα ανάπτυξης hardware.
Το σύστημα φορτώνει disk images από κάρτα SD και ο Atari τις βλέπει σαν disk drive, μέσω της θύρας SIO .
Το hardware
Η εφαρμογή υλοποιείται στον Arduino Duemilanove ή στον UNO .
Για την κάρτα Micro-SD χρησιμοποιείται ένα (πολύ φτηνό!) breakout board που δίνει τα σήματα για την επικοινωνία SPI με τον Arduino.
Τα υλικά που χρειάζονται είναι (αναφορές στις εικόνες των σχεδίων)
ένας Arduino βέβαια! (Συσκευή 1)
ένα breadboard
ένα breakout board για Micro-SD (Συσκευή 2)
τέσσερεις αντιστάσεις 10ΚΩ (R1, R2, R3, R4)
τρία LED 3mm (κίτρινο LED1, κόκκινο LED2, πράσινο LED3)
ένας διακόπτης mini push button για πλακέτα (SW1)
καλώδια διασυνδέσεων για breadboard
ένας κονέκτορας Atari SIO θηλυκός (για καλώδιο) για τη σύνδεση με το Atari
προαιρετικά
ένα αλφαριθμητικό lcd display με τον controller HD44780 ή συμβατό (Συσκευή 3)
ένα ποτενσιόμετρο 22ΚΩ γραμμικό για τη ρύθμιση contrast του lcd (P1)
Για να συναρμολογήσουμε το κύκλωμα, κάνουμε τις συνδέσεις στο breadboard:
Συνδέουμε τη τροφοδοσία 5V από το SIO pin 10, στο breadboard και τον Arduino.
Συνδέουμε τη γείωση (GND) από το SIO pin 6, στο breadboard και τον Arduino.
Βάζουμε την αντίσταση pull-down (R4) του μίνι μπουτόν στη γείωση.
Βάζουμε το μίνι μπουτόν (SW1) όπου η μια μεριά του διακόπτη συνδέεται στην αντίσταση R4 και την άλλη τη συνδέουμε στα 5V.
Από την αντίσταση R4 προς το μπουτόν SW1 συνδέουμε το pin 3 του Arduino.
Τοποθετούμε τις τρεις αντιστάσεις pull-up R1, R2, R3, με το ένα άκρο στα 5V.
Βάζουμε τα led με την άνοδο (το μακρύ ποδαράκι) στις αντιστάσεις.
Στην κάθοδο του κάθε led συνδέουμε αντίστοιχα:
Στο κιτρινο (LED1) το SIO pin 7 και το Arduino pin 2
Στο κόκκινο (LED2) το SIO pin 5 και το Arduino pin 0
Στο πράσινο (LED3) το SIO pin 3 και το Arduino pin 1
Τοποθετούμε το Micro-SD μπορντάκι στο breadboard και συνδέουμε:
Το GND στη γέιωση
Το VCC στα 5V
Το σήμα MISO στο Arduino pin 12
Το σήμα MOSI στο Arduino pin 11
Το σήμα SCK στο Arduino pin 13
Το σήμα CS στο Arduino pin 10
Αυτό είναι το βασικό στήσιμο.
Εδώ είναι ένα σχέδιο για τις συνδέσεις.
Αν θέλουμε και μας βρίσκεται πρόχειρη μια οθόνη dot matrix lcd, συμβατή με τον controller HD44780 και ένα γραμμικό ποτενσιόμετρο 22KΩ, τα συνδέουμε.
Στην οθόνη lcd (Συσκευή 3):
Το VSS στα 5V
Το VDD στη γείωση
Το RW στη γείωση
Το RS στο Arduino pin 4
Το E στο Arduino pin 5
Το D7 στο Arduino pin 6
Το D6 στο Arduino pin 7
Το D5 στο Arduino pin 8
Το D4 στο Arduino pin 9
Στο ποτενσιόμετρο ρύθμισης contrast του lcd, P1 (όπως το κοιτάμε από πάνω):
Τη δεξιά ακίδα στα 5V
Τη μεσαία στο lcd pin VO
Την αριστερή στη γείωση
Στο τέλος έχουμε φιάξει μια πολύ ωραία μακαρονάδα όπως στη φωτό.
(Το breadboard είναι διασκευασμένο σε shield και κουμπώνει πάνω στις ακίδες του Arduino)
Το firmware στον Arduino
(Θεωρώ ότι όσοι έχουν Arduino ξέρουν και να χρησιμοποιούν το περιβάλλον του, απλά βάζω ένα ενημερωτικό link για το IDE )
Τα προγράμματα που χρειάζεται ο Arduino είναι ένα sketch και μια library.
Για να ξεκινήσει κάποιος άμεσα, αυτά είναι τα links στο GitHub:
Το sketch
github.com/whizzosoftware/Sio2Arduino
Όλο το project μπορεί να κατεβεί σαν zip ( Download ZIP στη σελίδα του GitHub)
Η library
github.com/jbeynon/sdfatlib
Όλη η library μπορεί να κατεβεί σαν zip ( Download ZIP στη σελίδα του GitHub)
Το sketch υλοποιεί τη διαχείριση SIO και disk drive και η library τη διαχείριση της κάρτας SD.
Ξεκομπρεσάρουμε σε φάκελο το sketch, στο φάκελο των sketches του Arduino (στα windows συνήθως στο "My Documents\Arduino"), ονομάζοντας το φάκελο "Sio2Arduino".
Από το zip της library, ξεκομπρεσάρουμε μόνο το φάκελο "Sdfat" στο φάκελο libraries στα sketches (στα windows συνήθως στο "My Documents\Arduino\libraries")
Έτσι στα windows έχουμε τα φάκελα, για παράδειγμα, "My Documents\Arduino\Sio2Arduino" για το sketch και "My Documents\Arduino\libraries\SdFat" για τη library.
Το software για τον Atari
Στον Atari θα τρέχει ένα πρόγραμμα μορφής menu που μπορούμε να επιλέγουμε disk image για να φορτώσουμε στο εικονικό drive, από την κάρτα SD.
Έχει φιαχτεί για μια άλλη υλοποίηση SD card drive για τα οκτάμπιτα Atari, εδώ .
Το menu είναι μορφής ATR disk image και είναι εδώ .
Κάνουμε format τη Micro-SD σε FAT.
Μετονομάζουμε το ATR σε AUTORUN.ATR και το σώζουμε στο root της Micro-SD.
Σώζουμε στη Micro-SD ότι disk images έχουμε!
Προτιμάμε να ονομάζουμε τα disk images με 8 χαρακτήρες στο όνομα και 3 στην επέκταση, στα αγγλικά.
Το πρόγραμμα του Atari βλέπει κάρτες SD μέγιστου μεγέθους 2 Gigabytes (γι αυτό και το format σε FAT). Οπότε δεν πετάμε ποτέ τις παλιές SD μας γιατί μπορούμε να τις χρησιμοποιούμε στα embedded συστηματάκια μας! Και δεν μπορεί, θα γίνουν και αυτές retro μια μέρα!
Τρέξιμο και Tips
Στο compile, το sketch του Arduino μπορεί να διαμαρτύρεται ότι δεν βρίσκει το SPI.h
Έτσι προσθέτουμε τη directive "#include <SPI.h>" στο Sio2Arduino sketch. Προσοχή στα πεζοκεφαλαία.
Ο σύστημα δεν θα πρέπει να έχει καμμία τροφοδοσία. Θα ξεκινάει όταν ανάβει ο Atari.
Επειδή όμως το firmware δεν έχει κανένα disk image φορτωμένο όταν ξεκινάει, θα πρέπει να προσθέσουμε στο τέλος της "void setup()" τη γραμμή "mountFilename(0, "AUTORUN.ATR");" για να bootάρει ο Atari.
Το πρόγραμμα στον Arduino τρέχει με δύο επιλογές.
Η πρώτη είναι χωρίς lcd display και με το μπουτόν να φορτώνει τη δισκέτα εκκίνησης όποτε πατηθεί:
Στο sketch, στο config.h βγάζουμε το σχόλιο ( // ) και ενεργοποιούμε το "#define RESET_BUTTON".
Το "#define SELECTOR_BUTTON" , αν είναι ενεργό, πρέπει να το απενεργοποιήσουμε βάζοντας σχόλιο ( // ).
Το "#define LCD_DISPLAY" , αν είναι ενεργό, πρέπει να το απενεργοποιήσουμε βάζοντας σχόλιο ( // ).
Έτσι όταν ανάβουμε τον Atari, θα ξεκινάει από το AUTORUN.ATR και θα έχουμε σε λίστες τα disk images μας.
Στις λίστες επιλέγουμε με το joystick, τα βελάκια στο keyboard ή τα [OPTION] και [SELECT]. Φορτώνουμε ένα image πατώντας [START]. Πατάμε [SYSTEM RESET] και το disk image τρέχει στο micro.
Το Sio2Arduino υποστηρίζει ένα drive.
Η δεύτερη επιλογή είναι να βάλουμε την οθόνη lcd και να κάνουμε το μπουτόν να φορτώνει το επόμενο image:
Στο sketch, στο config.h βγάζουμε το σχόλιο ( // ) και ενεργοποιούμε τα "#define LCD_DISPLAY" και "#define SELECTOR_BUTTON".
Το "#define RESET_BUTTON" , αν είναι ενεργό, πρέπει να το απενεργοποιήσουμε βάζοντας σχόλιο ( // ).
Έτσι μπορούμε να επιλέγουμε disk images πατώντας το μπουτόν και να τα φορτώνουμε πατώντας [SYSTEM RESET].
Το κύκλωμα καταναλώνει 25mA χωρίς οθόνη lcd και 70mA με οθόνη, τιμές πολύ ανεκτές για τον Atari.
Αν το υλοποιήσετε, διαβάστε προσεκτικά το site του Sio2Arduino .
Καλή διασκέδαση!
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- vovolas
-
- Retro Elite
-
- tha vapsoume?
- Δημοσιεύσεις: 2262
- Ληφθείσες Ευχαριστίες 1131


"Knowing is not enough we must apply
Willing is not enough we must do."
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- DUser1
- Elite Member
-
- Δημοσιεύσεις: 491
- Ληφθείσες Ευχαριστίες 905

Πολύ δυναμικό το ξεκίνημα σου στο RetroComputers.gr , συνέχισε έτσι!!!

Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- sly*m
-
Συντάκτης θέματος
- Elite Member
-
- Δημοσιεύσεις: 322
- Ληφθείσες Ευχαριστίες 539


Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.

" Έχω σε 46άρα κασέτα όλα τα τραγούδια των Metallica! "

Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- kerkyra2007
-
- Premium Member
-
- Άπορος AmigaFun
- Δημοσιεύσεις: 182
- Ληφθείσες Ευχαριστίες 136

Υπάρχει περίπτωση κάτι τέτοιο να μπορούσε να κατασκευαστεί για τον Oric Atmos?
AMIGA 1200 3.1 /BLIZZARD 1230/50/32 MB IDE/CF/HD/CD/LS120/ZIP100 / INDIVISION AGA MK2CR / COMMODORE MONITOR 1084 S / AMIGA MULTISCAN MONITOR / ATARI 520 STE 4MB TOS 1.06 /ICD ASCI2SCSI HD 6GBX2 /COSMOSEX-MICROCOSMOS/ COMMODORE 128D JIFFYDOS /COMMODORE 64C / 1541 ULTIMATE / ZX SPECTRUM 48+ DIVIDE+KEMPSTON/ ATARI 800XL / SIO2SD/ ORIC ATMOS Soon with Floppy interface

Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- Fotis_KFOR
-
- Site Owner / Admin
-
- PC / Sinclair ZX Spectrum+3


My Collection / Projects / Various :
Computers , Consoles-Pongs , Various , Not-working , Handhelds-Tabletops , Intel p4004 (First CPU) , Old Hardware Parts , Magazines ,
Retro Computer Project , M.A.M.E. Cabinets , My Retro Computers & Consoles Room

UP THE IRONS!!! - My Iron Maiden Collection

My Wish List : www.retrocomputers.gr/collection/my-wish-list ;)
KEEP RETRO

Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
Τι να πω...RESPECT και sticky please, έτσι ώστε όταν πάρουμε 'κανα Αταράκο, να το έχουμε πρώτο - πρώτο !!!



Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- sly*m
-
Συντάκτης θέματος
- Elite Member
-
- Δημοσιεύσεις: 322
- Ληφθείσες Ευχαριστίες 539
Όμως!!!!
Δεν είναι δικό μου.
Απλώς βρήκα μια βιβλιοθήκη SD για τον arduino που δουλεύει καλά με το sketch. Δεν είναι μόνο μία για SD, η επίσημη library δεν είναι πιά συμβατή με το Sio2Arduino και έτσι το sketchάκι θέλει αλλαγές για να κάνει έστω compile
...και για test το έκανα με τον εύκολο τρόπο του breadboard.

στο SIO2PC που ξεκίνησε την εξομοίωση του disk drive και του printer στο MS-DOS, σε assembly. (Ένα review με κύκλωμα στο forum μας είναι εδώ )
στο Atari810 που έκανε την εξομοίωση σε C++ στα windows
στους C.P.U. που έκαναν την εξομοίωση σε AVR και έφτιαξαν και το μενού από τη μεριά του Atari
στους Sio2SD που έκαναν άλλη μια υλοποίηση σε AVR
και βέβαια το Sio2Arduino που έκανε την εξομοίωση στον Arduino (που τρέχει σε AVR).
Αυτό που θα ήθελα να δείξω με αυτά τα posts είναι να δουν τα νέα παιδιά κυρίως, ότι είναι απόλυτα εφικτό να μάθουν και να ασχοληθούν με το hardware και το software. Ιδιαίτερα στις εποχές μας που υπάρχει καλή πρόσβαση σε πληροφορίες και με πολλά και φτηνά hardware modules. Kαι με τα retro micros γίνεται ένα ωραίο hobby!
kerkyra2007 έγραψε: Υπάρχει περίπτωση κάτι τέτοιο να μπορούσε να κατασκευαστεί για τον Oric Atmos?
Αχχχ.. Φίλε kerkyra2007 στη μικρή έρευνα που έκανα δεν είδα φως... Προς το παρόν υπάρχει ένα εμπορικό περιφερειακό για SD (που δεν παράγεται ακόμα!!!), ενώ δεν έχει υλοποιηθεί κάτι opensource... Ψάχνεις για κάτι σαν "oric atmos sd drive"... βλέπουμε....
Update: Ο Cumulus δίνει sources . Θέλει χρόνο και δουλειά όμως, για να καταλάβει κάποιος τον microdisk controller και τη δομή της δισκέτας... Επίσης υπάρχει hardware floppy drive emulator που υποστηρίζει Oric και πολλούς άλλους υπολογιστές και μηχανήματα (και τον Atari ST που με ενδιαφέρει)... βλέπουμε!
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- angel_grig
-
- Elite Member
-
- Δημοσιεύσεις: 340
- Ληφθείσες Ευχαριστίες 228



sly*m έγραψε: Επίσης υπάρχει hardware floppy drive emulator που υποστηρίζει Oric και πολλούς άλλους υπολογιστές και μηχανήματα (και τον Atari ST που με ενδιαφέρει)... βλέπουμε!
Υπαρχει ,αλλα θελει $$$!!!

Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- sly*m
-
Συντάκτης θέματος
- Elite Member
-
- Δημοσιεύσεις: 322
- Ληφθείσες Ευχαριστίες 539
Πιθανά να γίνεται στο nano, έχει τα ίδια pins (εκτός των αναλογικών εισόδων). Θέλει δοκιμή όμως.angel_grig έγραψε: Πιστευω οτι μπορει καποιος να το φτιαξει και με nano για μικροτερο μεγεθος,ενω με μια διατρητη πλακετα γλυτωνει την μακαροναδα..
Το breadboard είναι αξεπέραστο ομως σε ταχύτητα υλοποίησης και δοκιμών για τέτοια project-και όχι μόνο. Αν δουλεύει, γίνεται pcb. Ελπίζω να βγάλω ένα shield για τον duemilanove (αυτόν έχω..!) και να το δημοσιεύσω εδώ.
Δίνει σχέδια πλακετών και αρχεία για το cpld για diy. Το cpld και ο programmer του είναι το πιο τρομακτικό....angel_grig έγραψε: Υπαρχει ,αλλα θελει $$$!!!


Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- Pluto63
-
- Platinum Member
-
- Heil Clive
- Δημοσιεύσεις: 540
- Ληφθείσες Ευχαριστίες 767
Ότι δεν σκοτώνει παχαινει.
Το blog μου pluto63.weebly.com/
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- sly*m
-
Συντάκτης θέματος
- Elite Member
-
- Δημοσιεύσεις: 322
- Ληφθείσες Ευχαριστίες 539
Το sio connector για το καλώδιο όντως ήταν ένα θέμα και εγώ το είχα πάρει από το program recorder (όλο το καλώδιο, χωρίς να χαλάσω κάτι και μπορώ να το ξαναβάλω στη συσκευή), όταν πρωτοέφτιαξα το sio2pc το 2002.
Τώρα έχω 3 spare κονέκτορες που τους πηρα απο τον lotharek με την ευκαιρία που αγόρασα ένα pokey που χρειαζόταν. Έχει όμως ακριβά μεταφορικά. Εδώ είναι ο connector.
Μπορείς βέβαια να πάρεις ξεχωριστά τα pins από τον αρσενικό κονέκτορα πάνω στο 400 για δοκιμή, με κάποιο αντίστοιχο θηλυκό pin που ταιριάζει, προσεκτικά όμως μη στραβώσει κανένα pin. Το πάχος των pins το μέτρησα στο 1mm.
Αν δεν έχεις το pinout του κονέκτορα στο atari, δες την τελευταία σελίδα στο part 3 του hardware manual εδώ στο forum.
Το micro-sd breakout board το βρήκα στα Εξάρχεια και είναι πάρα πολύ φτηνό!
Στη διάθεση σου ότι χρειαστείς!

Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- Pluto63
-
- Platinum Member
-
- Heil Clive
- Δημοσιεύσεις: 540
- Ληφθείσες Ευχαριστίες 767
Ότι δεν σκοτώνει παχαινει.
Το blog μου pluto63.weebly.com/
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.