Σε αυτό το άρθρο, θα εξετάσουμε τον τρόπο εγγραφής και ανάγνωσης από τη μνήμη flash χρησιμοποιώντας ένα Arduino χρησιμοποιώντας το μικροκύκλωμα 25L8005 ως παράδειγμα.
Απαραίτητη
- - τσιπ μνήμης flash με υποστήριξη SPI.
- - έναν προσαρμογέα για μνήμη ή έναν πίνακα με μηδενικό κέρδος (πίνακας ZIF).
- - Arduino;
- - υπολογιστή;
- - καλώδια σύνδεσης.
Οδηγίες
Βήμα 1
Πρώτον, πρέπει να το κάνουμε έτσι ώστε να μπορούμε εύκολα να συνδεθούμε στο μικροκύκλωμα. Για να το κάνετε αυτό, μπορείτε να χρησιμοποιήσετε είτε έναν ειδικό προσαρμογέα στον οποίο πρέπει να κολλήσετε το μικροκύκλωμα είτε (που είναι προτιμότερο) να χρησιμοποιήσετε έναν πίνακα μηδενικού κέρδους (ο λεγόμενος πίνακας ZIF).
Βήμα 2
Τώρα ας συνδυάσουμε το ηλεκτρικό διάγραμμα για τη σύνδεση του τσιπ μνήμης flash με το Arduino. Θα χρησιμοποιήσουμε τη διεπαφή SPI για προγραμματισμό μνήμης, οπότε θα συνδεθούμε με τις τυπικές ακίδες:
- CS - ψηφιακή ακίδα 10, - MOSI - ψηφιακή ακίδα 11, - MISO - ψηφιακή ακίδα 12, - SCK - ψηφιακός πείρος 13.
Βήμα 3
Πριν γράψετε δεδομένα στη μνήμη, είναι απαραίτητο να διαγράψετε τον τομέα ή τη σελίδα στην οποία πρόκειται να γράψουμε. Εάν δεν υπάρχουν πολλά δεδομένα που πρέπει να γραφτούν (στο παράδειγμά μας θα είναι μόνο 16 byte), τότε αρκεί να διαγράψετε 1 τομέα. Από την τεκμηρίωση για το μικροκύκλωμα, βλέπουμε ότι η ακολουθία διαγραφής έχει ως εξής: ορίστε την άδεια εγγραφής (1 byte), στείλτε την εντολή διαγραφής (1 byte) και τη διεύθυνση (3 byte), ορίστε την απαγόρευση εγγραφής (1 byte). Αυτό ακριβώς κάνει το παραπάνω σκίτσο. Ας το φορτώσουμε στο Arduino. Αφού ολοκληρωθεί το σχέδιο, η μονάδα flash είναι έτοιμη για εγγραφή.
Βήμα 4
Τώρα ας γράψουμε τα δεδομένα. Ας πάρουμε για παράδειγμα μια μικρή σειρά 16 byte. Όπως μπορείτε να δείτε από την τεκμηρίωση, πρώτα πρέπει να ορίσετε την άδεια εγγραφής (1 byte) και, στη συνέχεια, να στείλετε την εντολή εγγραφής (1 byte), τη διεύθυνση έναρξης (3 byte) και τα δεδομένα (στο παράδειγμά μας, 16 byte), στο το τέλος ορίζει την απαγόρευση εγγραφής (1 byte).
Ανεβάστε το σκίτσο στο Arduino. Μετά την εκτέλεση αυτού του σκίτσου, ο πίνακας δοκιμών θα έπρεπε να έχει γραφτεί για να αναβοσβήνει μνήμη. Ας δούμε αν είναι έτσι.
Βήμα 5
Ας γράψουμε ένα σκίτσο για να διαβάσουμε 16 byte από τη μνήμη flash. Ας το φορτώσουμε στο Arduino και ανοίξτε την οθόνη σειριακής θύρας. Στην οθόνη, όπως αναμενόταν, η σειρά μας, που διαβάζεται από τη μνήμη χρησιμοποιώντας το Arduino, θα εμφανίζεται 1 φορά ανά δευτερόλεπτο.