Πίνακας περιεχομένων:

Bus Pirate 3EEPROM Explorer Board: 5 Βήματα
Bus Pirate 3EEPROM Explorer Board: 5 Βήματα

Βίντεο: Bus Pirate 3EEPROM Explorer Board: 5 Βήματα

Βίντεο: Bus Pirate 3EEPROM Explorer Board: 5 Βήματα
Βίντεο: 20 SCARY GHOST Videos That'll Chill You To The Bone 2024, Νοέμβριος
Anonim
Bus Pirate 3EEPROM Explorer Board
Bus Pirate 3EEPROM Explorer Board

Αν έχετε έναν από τους Hack a Day's Bus Pirates, τι κάνετε με αυτό; Μάθετε για τα 1-wire, I2C και SPI EEPROM με τον πίνακα εξερευνήσεων 3EEPROM (το ονομάζουμε THR-EE-PROM). Το EEPROM είναι ένας τύπος τσιπ μνήμης που αποθηκεύει δεδομένα χωρίς συνεχή τροφοδοσία ρεύματος. Είναι χρήσιμο για μόνιμη αποθήκευση δεδομένων σε μικρά κυκλώματα καταγραφής ή για την κατοχή προσαρμοσμένων σελίδων σε μίνι διακομιστή ιστού. Τα EEPROM έρχονται σε πολλά μεγέθη και πρωτόκολλα. Το 3EEPROM διαθέτει τρία κοινά τσιπ EEPROM: τα DS2431 (1-Wire), 24AA- (I2C) και 25AA- (SPI). Και οι τρεις είχαν προηγουμένως παρουσιαστεί στο Hack a Day, αλλά κάθε επίδειξη χρησιμοποιεί μια διαφορετική έκδοση του υλικού και του υλικολογισμικού του Bus Pirate, είναι δύσκολο για έναν αρχάριο να ακολουθήσει χρησιμοποιώντας ένα Bus Pirate v2go. Συνεχίστε την ανάγνωση για έναν ενημερωμένο, βήμα προς βήμα οδηγό χρήσης τα DS2431, 24AA- και 25AA- EEPROM με το Bus Pirate v2go. Έχουμε επίσης τα πλήρη αρχεία καταγραφής περιόδου σύνδεσης ως αρχεία κειμένου, ώστε να μην χάσετε ούτε μια λεπτομέρεια. Μπορούμε να έχουμε 3EEPROM εξερευνητές PCB ή κιτ που παράγονται στο Seeed Studio. Τα PCB κοστίζουν περίπου $ 10, τα κιτ είναι περίπου $ 15, αποστέλλονται σε όλο τον κόσμο. Πρέπει να οργανώσουμε μια ομαδική αγορά 10 PCB ή 20 κιτ για να ξεκινήσουμε. Εάν ενδιαφέρεστε για ένα Bus Pirate, έρχεται η έκδοση 3. Δεν θα μπορούσα να συμπεριλάβω ορισμένα στοιχεία μορφοποίησης και πίνακες HTML σε ένα Instructable, μπορείτε να δείτε την αρχική ανάρτηση στο ιστολόγιο Επικίνδυνων Πρωτότυπων.

Βήμα 1: 3 EEPROM Επισκόπηση υλικού

3EEPROM Επισκόπηση υλικού
3EEPROM Επισκόπηση υλικού
3EEPROM Επισκόπηση υλικού
3EEPROM Επισκόπηση υλικού
3EEPROM Επισκόπηση υλικού
3EEPROM Επισκόπηση υλικού

Ο στόχος αυτού του πρωτοτύπου είναι να μάθει για το EEPROM και τρία κοινά πρωτόκολλα διαύλου. Αρχικά, εξετάζουμε το PCE 3EEPROM και στη συνέχεια παρουσιάζουμε κάθε EEPROM χρησιμοποιώντας ένα καθολικό εργαλείο σειριακής διεπαφής Bus Pirate. Εάν δεν έχετε πειρατή λεωφορείου, μπορείτε να συνεχίσετε, επειδή η βασική σειρά των λειτουργιών διεπαφής παραμένει η ίδια, ανεξάρτητα από τον τρόπο εφαρμογής τους. Κάναμε το κύκλωμα και το PCB χρησιμοποιώντας την δωρεάν έκδοση του Cadsoft Eagle. Μπορείτε να κατεβάσετε το σχηματικό και το PCB από το αρχείο Bus Pirate SVN. Το 3EEPROM PCB διαθέτει DS2431 1-Wire EEPROM (IC1), 24AA-I2C EEPROM (IC4) και 25AA-SPI EEPROM (IC5). Το DS2431 (IC1) αντλεί ενέργεια παρασιτικά από το δίαυλο 1-Wire, δεν έχει εξωτερικό πείρο τροφοδοσίας και δεν απαιτεί πυκνωτή αποσύνδεσης. Τα IC2 και IC3 είναι κενά σημεία για επιπλέον συσκευές 1-Wire, όπως άλλος DS2431 ή αισθητήρας θερμοκρασίας DS1822. Το C1 (0.01uF) είναι προαιρετικό και απαιτείται μόνο εάν το IC2 ή το IC3 είναι γεμάτο με τροφοδοτούμενη συσκευή 1-Wire. Οι ενσωματωμένες αντιστάσεις του Bus Pirate είναι 10K, πολύ αδύναμες για να τροφοδοτήσουν σωστά το DS2431 κατά τη διάρκεια των εγγραφών. Ο πίνακας εξερευνητών 3EEPROM περιλαμβάνει αντίσταση έλξης 1,8k ohm, 1/8 watt (R1) στο δίαυλο 1-Wire, έτσι ώστε να μην απαιτείται πρόσθετη αντίσταση έλξης. Οι 24AA- (IC4) και 25AA- (IC5) ο καθένας παίρνει έναν πυκνωτή 0.1uF για να τους αποσυνδέσει από το τροφοδοτικό (C2, C3). Πιθανότατα δεν χρειάζεστε τους πυκνωτές σε ένα τόσο απλό κύκλωμα, τους παραλείψαμε από την πρωτότυπη πλακέτα στην επίδειξη. Ο δίαυλος I2C που χρησιμοποιείται από το 24AA- απαιτεί επίσης αντιστάσεις έλξης, αλλά οι αντιστάσεις ανύψωσης 10K ohm του Bus Pirate είναι αρκετές. Όλα τα εξαρτήματα θα λειτουργούν από 2,8Volt έως 5volts DC. Το κύκλωμα τροφοδοτείται μέσω των πείρων VCC και GND του βραχυκυκλωτήρα 3. Υπάρχουν δύο ακίδες VCC, η μία είναι για τροφοδοσία και η άλλη είναι για τον πείρο εισόδου τάσης αντίστασης του Bus Pirate (Vpullup). PCB Κάναμε το κύκλωμα και το PCB δωρεάν έκδοση του Cadsoft Eagle. Μπορείτε να κατεβάσετε το σχηματικό και το PCB από το αρχείο Bus Pirate SVN. Εάν θέλετε ένα επαγγελματικά προετοιμασμένο κιτ PCB ή 3EEPROM, μπορεί να είμαστε σε θέση να κανονίσουμε μια ομαδική αγορά εάν ενδιαφέρονται 10 ή 20 άτομα. Λίστα ανταλλακτικών R1 1800 ohm αντίσταση (1/8ο watt) C2, 3 πυκνωτής 0.1uF/10volts+JP1-4 αρσενική ακίδα καρφιτσών IC1 DS2431 1K 1-wire EEPROM TO-92IC4 ** 24AA014-I/P I2C EEPROM DIP8IC5 ** 25AA010A-I/P SPI EEPROM DIP8ICS4, 5 υποδοχή 8 ακίδων DIP για IC5, 6 ** IC4, IC5 θα μπορούσε να έχει οποιοδήποτε μέγεθος, συνδέσαμε μικρές μάρκες, χρησιμοποιήσαμε 128bytes και 128Kbytes. Δεν μπορούσα να συμπεριλάβω πίνακες μορφοποίησης και HTML σε ένα Instructable, μπορείτε να δείτε την αρχική ανάρτηση στο ιστολόγιο Επικίνδυνων Πρωτότυπων.

Βήμα 2: 25AA- / 25LC- SPI EEPROM

25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM
25AA- / 25LC- SPI EEPROM

Όλα τα demo της EEPROM φαίνονται σχεδόν ίδια. Θα γράψουμε μερικούς αριθμούς στο τσιπ και μετά θα τους διαβάσουμε. Κάθε συσκευή έχει συνθήκες που ισχύουν μόλις θέλετε να γράψετε περισσότερες από μερικές τιμές, όπως μέγεθος σελίδας και περιορισμοί ορίων. Διαβάστε περισσότερα σχετικά με αυτά στο φύλλο δεδομένων για τη συγκεκριμένη συσκευή σας. Εάν δεν μπορείτε να κάνετε μια επίδειξη για να λειτουργήσει, κατεβάστε το πλήρες αρχείο καταγραφής τερματικών για να μην χάσετε ούτε ένα πράγμα που κάναμε. Οι συσσωρευτές αντιστάσεις είναι το πιο συνηθισμένο πρόβλημα, ελέγξτε την τάση του πείρου pull-up χρησιμοποιώντας το μενού «v» στο τερματικό Bus Pirate. Τσιπ: 25AA, SPI EEPROM (1Kbyte). Λεωφορείο: SPI. Απαιτούνται αντιστάσεις ανύψωσης μόνο για διασύνδεση μικτής τάσης. Απαιτήσεις ισχύος: 1,8Volt έως 5,5Volt (AA), 2,5Volt έως 5,5volt (LC). Αναφορές: φύλλο δεδομένων, Επίδειξη Hack a Day. Ολοκληρώστε το αρχείο καταγραφής συνεδρίας πειρατών Bus. Δεν μπορούσα να συμπεριλάβω κάποιους πίνακες μορφοποίησης και HTML σε ένα Instructable, μπορείτε να δείτε το πρωτότυπο στο blog Επικίνδυνων Πρωτότυπων. Το IC5 είναι μια σειρά 25AA I2C EEPROM της Microchip, αυτά τα EEPROM έρχονται σε έναν τόνο μεγεθών. Τα εξαρτήματα AA τρέχουν από 1,8Volt έως 5,5Volt, ενώ τα μέρη 25LC έχουν ελάχιστη απαίτηση 2,5volt. Το C3 (0.1uF) αποσυνδέει το SPI EEPROM από την τροφοδοσία. Οι ακίδες προστασίας εγγραφής (WP) και κράτησης θα μπορούσαν να ελεγχθούν από έναν μικροελεγκτή, αλλά τις απενεργοποιήσαμε κρατώντας αυτές τις ακίδες ψηλά. Οι καρφίτσες διαύλου SPI, CS, DO, CLK και DI, μεταφέρονται στην κεφαλίδα JP4. Ρύθμιση Εάν χρησιμοποιείτε Bus Pirate, συνδέστε το στο IC 3EEPROM ή 25AA-IC, όπως φαίνεται στην παρακάτω εικόνα γραφήματος. Το SPI δεν απαιτεί συνήθως αντιστάσεις έλξης. Διασύνδεση Στο τερματικό Bus Pirate πατήστε 'm' για το μενού λειτουργίας και επιλέξτε SPI. Διαμορφώστε τη βιβλιοθήκη SPI για κανονική έξοδο pin, χρησιμοποιήστε τις προεπιλογές για όλες τις άλλες ρυθμίσεις λειτουργίας SPI. Ενεργοποιήστε τα τροφοδοτικά (μεγάλο "W") στην προτροπή λειτουργίας SPI. Τέλος, λάβετε μια αναφορά τάσης για να βεβαιωθείτε ότι τα τροφοδοτικά λειτουργούν ('v'). Θα δείξουμε πώς να διασυνδέσετε το EEPROM απευθείας στα 3,3 βολτ χρησιμοποιώντας τη βιβλιοθήκη SPI σε κανονική λειτουργία pin. Δεν απαιτούνται αντιστάσεις έλξης για αυτό το demo. Εάν θέλετε να διασυνδέσετε ένα EEPROM που τροφοδοτείται από 5Volt, χρησιμοποιήστε τη βιβλιοθήκη SPI σε λειτουργία pin ανοιχτού συλλέκτη (HiZ) και ενεργοποιήστε τις αντιστάσεις έλξης με τον πείρο Vpullup (Vpu) συνδεδεμένο στο τροφοδοτικό της EEPROM. Βήμα 1, απενεργοποιήστε την προστασία εγγραφής 'SPI> [0b110] CS ΕΝΕΡΓΟΠΟΙΗΣΗ <<< τσιπ επιλέξτε ενεργοποιημένη ΓΡΑΠΤΗ: 0x06 <<< απενεργοποίηση εντολής προστασίας εγγραφής CS DISABLEDΤο 25AA- προστατεύεται από εγγραφή κατά την ενεργοποίηση. Επιλέξτε κάτω τσιπ (CS) ([), στείλτε την εντολή απενεργοποίησης προστασίας εγγραφής (0x06) και, στη συνέχεια, αυξήστε το CS (] για να ενεργοποιήσετε τις εγγραφές στο EEPROM. Η εντολή απενεργοποίησης εγγραφής προστασίας είναι 0b00000110 σε δυαδική μορφή, αλλά μπορούμε να την συντομεύσουμε 0b110 και ο Πειρατής του λεωφορείου καταλαβαίνει ακόμα. Βήμα 2, γράψτε ορισμένες τιμές 'SPI> [0b10 0 3 2 1] CS ΕΝΕΡΓΟΠΟΙΗΣΗ <<< τσιπ επιλέξτε ενεργοποιημένη ΓΡΑΠΤΗ: 0x02 <<< εντολή εγγραφής ΓΡΑΠΤΗ: 0x00 <<< εγγραφή διεύθυνσης έναρξης ΓΡΑΠΤΗ: 0x03 <<< 3 τιμές για εγγραφή (3, 2, 1) ΓΡΑΦΤΕ: 0x02ΓΡΑΦΕΤΕ: 0x01CS ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΑ <<Τώρα το EEPROM είναι εγγράψιμο. Αρχικά, χαμηλώστε το CS για να ενεργοποιήσετε το 25AA- ([). Στη συνέχεια, στείλτε την εντολή εγγραφής (0x02) και τη θέση για την έναρξη γραφής (0). Στείλτε τα δεδομένα στην αποθήκευση (3 2 1) και, στη συνέχεια, αυξήστε το CS (]) για να αποθηκεύσετε τις τιμές. Σημείωση: χρησιμοποιήσαμε ένα μικροσκοπικό EEPROM 128bit, τα μεγαλύτερα τσιπ θα χρησιμοποιήσουν μια διεύθυνση 16bit (2 byte). Αυτή η εντολή θα είναι [0b10 0 '' '0' '' 3 2 1] για EEPROM μεγαλύτερα από 256bytes, σημειώστε το δεύτερο 0. Ελέγξτε το φύλλο δεδομένων για το EEPROM για να είστε σίγουροι. Βήμα 3, ανάγνωση τιμών SPI> [0b11 0 r: 3] CS ΕΝΕΡΓΟΠΟΙΗΣΗ <<< τσιπ επιλεγμένη ενεργοποιημένη ΓΡΑΠΤΗ: 0x03 <<< εντολή ανάγνωσης ΓΡΑΠΤΗ: 0x00 <<< ανάγνωση διεύθυνσης έναρξηςBULK READ 0x03 BYTES: <<< ανάγνωση 3 τιμών0x03 0x02 0x01CS ΑΝΑΠΗΡΙΑ <<Τέλος, διαβάστε τα δεδομένα πίσω για να επαληθεύσετε ότι η εγγραφή ήταν επιτυχής. Επιλέξτε το 25AA- ([), στείλτε την εντολή ανάγνωσης (0x03) και διεύθυνση έναρξης (0) και, στη συνέχεια, διαβάστε τρεις τιμές (r: 3). Σηκώστε το CS για να ολοκληρώσετε τη συναλλαγή (]). Οι αξίες ταιριάζουν, η εγγραφή ήταν επιτυχής. Σημείωση: χρησιμοποιήσαμε ένα μικροσκοπικό EEPROM 128bit, τα μεγαλύτερα τσιπ θα χρησιμοποιήσουν μια διεύθυνση 16bit (2 byte). Αυτή η εντολή θα είναι [0b11 0 '' '0' '' r: 3] για EEPROM μεγαλύτερα από 256bytes, σημειώστε το δεύτερο 0. Ελέγξτε το φύλλο δεδομένων για το EEPROM για να είστε σίγουροι.

Βήμα 3: 24AA- / 24LC I2C EEPROM

24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM
24AA- / 24LC I2C EEPROM

Τσιπ: 24AA, I2C EEPROM (1Kbyte). Λεωφορείο: I2C, απαιτούνται αντιστάσεις. Απαιτήσεις ισχύος: 1.8Volts έως 5.5volts (24AA), 2.5volts έως 5.5volt (24LC). Αναφορές: φύλλο δεδομένων, Επίδειξη Hack a Day. Ολοκληρωμένο αρχείο καταγραφής συνεδρίας Bus Pirate για αυτήν την επίδειξη. Δεν μπορούσα να συμπεριλάβω πίνακες μορφοποίησης και HTML σε ένα Instructable, μπορείτε να δείτε το πρωτότυπο στο ιστολόγιο Επικίνδυνων Πρωτότυπων. Το IC4 είναι μια σειρά I2C EEPROM 24AA της Microchip, αυτά τα EEPROM έρχονται σε τόνος μεγεθών. Τα μέρη AA λειτουργούν από 1,8Volt έως 5,5Volts, ενώ τα μέρη 24LC έχουν ελάχιστη απαίτηση 2,5volt. Ένας πυκνωτής 0.1uF (C2) αποσυνδέει το IC4 από την τροφοδοσία. Ο πείρος προστασίας εγγραφής (WP) θα μπορούσε να ελεγχθεί από μικροελεγκτή, αλλά για αυτήν την απλή επίδειξη τον απενεργοποιούμε με σύνδεση με τη γείωση. Οι ακίδες διαύλου I2C, SDA και SCL, εμφανίζονται στην κεφαλίδα JP2. Η διεύθυνση των περισσότερων EEPROM 24AA είναι 1010AAAS, με τα τέσσερα τελευταία bits να καθορίζονται από τις ακίδες διευθύνσεων (A0, A1, A2) και το επιλεγμένο bit λειτουργίας ανάγνωσης/εγγραφής (ΜΙΚΡΟ). Όλα τα δυαδικά ψηφία διεύθυνσης βασίζονται σε αυτό το παράδειγμα, οπότε η διεύθυνση εγγραφής του EEPROM είναι 10100000 (φύλλο δεδομένων σελίδας 6). Ρύθμιση Εάν χρησιμοποιείτε Bus Pirate, συνδέστε το στο 3EEPROM ή στο 24AA-IC, όπως φαίνεται στην παρακάτω εικόνα γραφήματος. Το I2C είναι ένας αμφίδρομος δίαυλος που απαιτεί αντιστάσεις έλξης και στις δύο ακίδες. Μπορείτε να χρησιμοποιήσετε τις αντιστρεπτικές αντιστάσεις του Bus Pirate συνδέοντας τον πείρο Vpullup (Vpu) στην τροφοδοσία 3,3Volt και ενεργοποιώντας τους στο τερματικό. Διασύνδεση Σημείωση: Δεν λειτουργούν όλα τα I2C EEPROM με τον ίδιο τρόπο. Το μικροσκοπικό 24AA01, για παράδειγμα, έχει εντελώς διαφορετικό σύστημα διευθύνσεων και εντολών. Βεβαιωθείτε ότι έχετε ελέγξει το φύλλο δεδομένων για το τσιπ σας. Πατήστε 'm' στο τερματικό Bus Pirate και επιλέξτε I2C από το μενού λειτουργίας. Ενεργοποιήστε τα τροφοδοτικά (μεγάλο "W") και τις αντιστάσεις έλξης ("p", επιλογή 2) στη γραμμή I2C. Λάβετε μια αναφορά τάσης ('v') για να βεβαιωθείτε ότι τα τροφοδοτικά είναι ενεργοποιημένα και ότι ο πείρος Vpullup είναι συνδεδεμένος σε τάση. I2C> (0) <<(1) <<< χρησιμοποιήστε μακροεντολή αναζήτησης διευθύνσεωνΑναζητώντας χώρο διευθύνσεων 7bit I2C. Βρέθηκαν συσκευές σε: 0xA0 0xA1 <<Γνωρίζουμε ήδη ότι η διεύθυνση I2C είναι 10100000, αλλά μπορούμε επίσης να χρησιμοποιήσουμε τη μακροεντολή αναζήτησης I2C του Bus Pirate (1) για να αναζητήσουμε το 24AA-. Η μακροεντολή αναζήτησης βρήκε τη συσκευή στις αναμενόμενες διευθύνσεις εγγραφής (0xA0) και ανάγνωσης (0xA1). Βήμα 1, γράψτε μερικές τιμές I2C> [0b10100000 0 0 3 2 1] I2C ΚΑΤΑΣΤΑΣΗ ΕΚΚΙΝΗΣΗΣ <<< I2C κατάσταση έναρξης ΓΡΑΦΤΕ: 0xA0 ΛΑΜΒΑΝΕΤΑΙ ΝΑΙ <<< 24AA- γράψτε διεύθυνση ΓΡΑΠΤΗ: 0x00 ΛΑΜΒΑΝΟΝΤΑΙ: ΝΑΙ <<< γράφετε διεύθυνση byte 1WRITE: 0x00 GOT ACK: YES <<< γράψτε διεύθυνση byte 2WRITE: 0x03 GOT ACK: YES <<< 3 τιμές για εγγραφή (3, 2, 1) ΓΡΑΦΤΕ: 0x02 GOT ACK: YESWRITE: 0x01 GOT ACK: YESI2C STOP CONTITION < <Ξεκινήστε την εγγραφή με συνθήκη εκκίνησης I2C ([), ακολουθούμενη από τη διεύθυνση εγγραφής 24AA (0xa0). Στη συνέχεια, στείλτε τη διεύθυνση 16bit για εγγραφή στο (0 0) και τα δεδομένα για εγγραφή (3 2 1). Τερματίστε τη συναλλαγή I2C με συνθήκη διακοπής (]). Βήμα 2, τοποθετήστε τον δείκτη ανάγνωσης I2C> [0b10100000 0 0] I2C ΚΑΤΑΣΤΑΣΗ ΕΝΑΡΞΗΣ <<< I2C κατάσταση έναρξηςΓΡΑΦΤΕ: 0xA0 ΛΑΜΒΑΝΕ: ΝΑΙ <<< 24AA- γράψτε διεύθυνση ΓΡΑΠΤΟ: 0x00 ΛΑΜΒΑΝΕΤΑΙ: ΝΑΙ <<< γράψτε διεύθυνση byte 1WRITE: 0x00 GOT ACK: ΝΑΙ <<< γράψτε διεύθυνση byte 2I2C STOP ΚΑΤΑΣΤΑΣΗ <<Χρειάζονται δύο λειτουργίες για ανάγνωση από το 24AA-. Το ένα τοποθετεί τον δείκτη ανάγνωσης/εγγραφής, το άλλο επιστρέφει τις τιμές. Ξεκινήστε με συνθήκη εκκίνησης I2C ([) και διεύθυνση εγγραφής (0xa0). Στείλτε τη διεύθυνση 16bit για ανάγνωση (0 0) και, στη συνέχεια, τη συνθήκη διακοπής (]). Δεν στείλαμε δεδομένα για εγγραφή αυτή τη φορά, απλώς τοποθετήσαμε τον δείκτη ανάγνωσης/εγγραφής πίσω στην αρχή των δεδομένων που γράψαμε στο βήμα 1. Βήμα 3, διαβάστε μερικές τιμές I2C> [0b10100001 r: 3] I2C ΚΑΤΑΣΤΑΣΗ ΕΝΑΡΞΗΣ <<< I2C κατάσταση έναρξηςΓΡΑΦΗ: 0xA1 ΠΗΡΑ ACK: ΝΑΙ <<< 24AA- διεύθυνση ανάγνωσης ΜΑΛΚΟ ΔΙΑΒΑΣΤΕ 0x03 BYTES: <<< διαβάστε 3 τιμές0x03 0x02 0x01I2C ΣΤΑΜΑΤΗΣΗ ΣΥΝΘΗΚΗ <<Βήμα 2 ορίστε τον δείκτη ανάγνωσης/εγγραφής στην αρχή των δεδομένων που θέλουμε να διαβάσουμε. Τώρα μπορούμε να διαβάσουμε τα δεδομένα χρησιμοποιώντας τη διεύθυνση ανάγνωσης 24AA. Ξεκινήστε με τη συνθήκη εκκίνησης I2C ([) και τη διεύθυνση ανάγνωσης 24AA (0xa1). Διαβάστε τις τρεις τιμές που γράψαμε στο βήμα 1 (r: 3) και τελειώστε με μια συνθήκη διακοπής (]). Εάν οι τιμές ταιριάζουν, τότε η εγγραφή σας ήταν επιτυχής.

Βήμα 4: DS2431 1-Wire EEPROM

DS2431 1-Wire EEPROM
DS2431 1-Wire EEPROM
DS2431 1-Wire EEPROM
DS2431 1-Wire EEPROM
DS2431 1-Wire EEPROM
DS2431 1-Wire EEPROM

Τσιπ: DS2431, 1-wire EEPROM (1Kbyte). Λεωφορείο: 1-Wire, <2.2Kohm pull-up resistor. Απαιτήσεις ισχύος: 2.8Volts έως 5.25volts. Αναφορές: φύλλο δεδομένων, Επίδειξη Hack a Day. για αυτήν την επίδειξη. Δεν μπορούσα να συμπεριλάβω κάποιους πίνακες μορφοποίησης και HTML σε ένα Instructable, μπορείτε να δείτε το πρωτότυπο στο blog Επικίνδυνα πρωτότυπα. Το DS2431 αντλεί ισχύ από την αντίσταση έλξης και δεν χρειάζεται εξωτερική τροφοδοσία ή πυκνωτή αποσύνδεσης Το Το 1-Wire χρειάζεται ισχυρή αντίσταση έλξης, το πολύ 2,2Kohms. Οι ενσωματωμένες αντιστάσεις του Bus Pirate είναι 10K, πολύ αδύναμες για να τροφοδοτήσουν σωστά το DS2431 κατά τη διάρκεια της εγγραφής. Πρέπει να χρησιμοποιήσετε εξωτερική αντίσταση 2,2Kohm ή μικρότερη μεταξύ της τροφοδοσίας και του πείρου διαύλου 1-Wire. Εάν δυσκολεύεστε να γράψετε δεδομένα, βεβαιωθείτε ότι η αντίσταση έλξης είναι αρκετά μεγάλη. Ο πίνακας εξερευνητή 3EEPROM περιλαμβάνει μια αντίσταση έλξης 1800 ohm (R1) στο δίαυλο 1-Wire, οπότε δεν απαιτείται εξωτερική αντίσταση. Ρύθμιση Εάν χρησιμοποιείτε Bus Pirate, συνδέστε το στην πλακέτα 3EEPROM ή στο DS2431, όπως φαίνεται στην παρακάτω εικόνα γραφήματος. Το DS2431 δεν απαιτεί τον πείρο τροφοδοσίας, χρησιμοποιείται στην πλακέτα 3EEPROM για να τροφοδοτήσει τη μεγάλη αντίσταση έλξης για το δίαυλο 1-Wire. Διασύνδεση Πατήστε 'm' στο τερματικό Bus Pirate και επιλέξτε τη λειτουργία 1-Wire. Ενεργοποιήστε τα τροφοδοτικά επί του σκάφους (μεγάλο "W") και ελέγξτε την οθόνη τάσης (v). Βήμα 1, βρείτε τη διεύθυνση συσκευής 1-WIRE> (0xf0) <<< 1-Ενσύρματη μακροεντολή αναζήτησης 1WIRE ROM COMMAND: SEARCH (0xF0) Βρέθηκαν συσκευές στη διεύθυνση: Macro 1WIRE address1.0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2B <<< DS2431 μοναδική ταυτότητα*DS2431 1K EEPROM <<Κάθε συσκευή 1-Wire έχει ένα μοναδικό αναγνωριστικό 8 byte. Το 1-Wire διαθέτει μια διαδικασία αναζήτησης που ανιχνεύει το αναγνωριστικό όλων των συνδεδεμένων συσκευών. Το Bus Pirate υλοποιεί την αναζήτηση 1-Wire ως μακροεντολή (240). Πληκτρολογήστε «(240)» στο τερματικό Bus Pirate για να ξεκινήσετε την αναζήτηση 1-Wire. Κάθε διεύθυνση συσκευής εκτυπώνεται, αναγνωρίζονται γνωστές συσκευές. Οι πρώτες δέκα διευθύνσεις συσκευής 1-Wire αποθηκεύονται ως μακροεντολές, σε αυτό το παράδειγμα η διεύθυνση DS2431 είναι διαθέσιμη πληκτρολογώντας '(1)' στο τερματικό. Βήμα 2, γράψτε 8 byte στο ξυστό 1-WIRE> (0x55) (1) 0x0f 0 0 8 7 6 5 4 3 2 11WIRE BUS RESET OK <<< επίσης {command 1WIRE WRITE ROM COMMAND: MATCH (0x55) * ακολουθήστε με διεύθυνση 64bit: 0x08 <<Στη συνέχεια, θα γράψουμε 8 byte σε μια προσωρινή θέση στο DS2431 που ονομάζεται ξυστό. Ξεκινήστε τη συναλλαγή με επαναφορά διαύλου 1-Wire και εντολή MATCH (0x55). Και τα δύο διατίθενται ως μακροεντολή '(0x55)'. Αυτό μπορεί επίσης να γίνει χωρίς μακροεντολή πληκτρολογώντας "{0x55", {στέλνει την επαναφορά 1-Wire, 0x55 είναι η εντολή MATCH 1-Wire. Μετά την εντολή MATCH, στείλτε το αναγνωριστικό 8 byte της συσκευής στη διεύθυνση. Χρησιμοποιήσαμε τη μακροεντολή (1) που συμπληρώθηκε με το αναγνωριστικό DS2431 στο βήμα 1. Μπορείτε επίσης να εισαγάγετε το αναγνωριστικό των 8 byte χειροκίνητα. Σε αυτό το σημείο, το DS2431 θα έπρεπε να είχε λάβει τη διεύθυνσή του και να είναι έτοιμο για εντολές. Τα επόμενα δύο byte του λένε πού να βάλουμε τα δεδομένα, θα τα αποθηκεύσουμε στην αρχή (0 0). Τέλος, στέλνουμε 8 byte αξιών για αποθήκευση, τους αριθμούς 8 προς 1. Πρέπει να γράψετε πλήρη 8 byte στο DS2431. Επιπλέον, η διεύθυνση εγγραφής πρέπει να βρίσκεται σε όριο 8 byte. Δείτε το φύλλο δεδομένων για μια πλήρη επισκόπηση των περιορισμών εγγραφής. Βήμα 3, επαληθεύστε το μηδέν και λάβετε τον κωδικό εξουσιοδότησης 1-WIRE> (0x55) (1) 0xaa r: 3 r: 8 r: 2 r: 21WIRE BUS RESET OK <<< διεύθυνση της συσκευής1WIRE WRITE ROM COMMAND: MATCH (0x55) *ακολουθήστε με διεύθυνση 64bit 0x07 0x06 0x05 0x04 0x03 0x02 0x01BULK READ 0x02 BYTES: <<< CRC for the data0xC8 0x86BULK READ 0x02 BYTES: <<Βεβαιωθείτε ότι τα δεδομένα έχουν ληφθεί σωστά και λάβετε έναν κωδικό εξουσιοδότησης εγγραφής. Ξεκινήστε ξανά με μακροεντολή επαναφοράς 1-Wire και εντολής MATCH (0x55) και τη μακροεντολή διεύθυνσης συσκευής (1). Αυτή τη φορά στείλτε την εντολή DS2431 read scratch pad (0xAA) και, στη συνέχεια, διαβάστε συνολικά 15 bytes. Τα πρώτα 3 bytes που διαβάζονται (r: 3) είναι ο κωδικός εξουσιοδότησης εγγραφής, θα τον χρειαστούμε στο επόμενο βήμα για να αντιγράψουμε γρατσουνιές στο EEPROM. Τα επόμενα 8 byte (r: 8) πρέπει να ταιριάζουν με τα δεδομένα που στείλαμε στο βήμα 2. Τα τελευταία 2 byte (r: 2) είναι ένα CRC16 για τα δεδομένα. Διαβάζει μετά το CRC επιστρέφει όλα τα 1. Βήμα 4, γράψτε το ξυστό στο EEPROM 1-WIRE> (0x55) (1) 0x55 0x00 0x00 0x071WIRE BUS RESET OK <<< διεύθυνση της συσκευής1WIRE WRITE ROM COMMAND: MATCH (0x55) *ακολουθήστε με διεύθυνση 64bit1 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0x55 <<< Copy scratch pad commandWRITE: 0x00 <<< 3 byte κωδικός εξουσιοδότησης από το βήμα 3WRITE: 0x00WRITE: 0x071-WIRE> Έχουμε όλα όσα χρειαζόμαστε για να αποθηκεύσουμε μόνιμα το μηδέν EEPROM. Απευθυνθείτε στη συσκευή και, στη συνέχεια, στείλτε την εντολή DS2431 copy scratch pad (0x55) ακολουθούμενη από τον κωδικό εξουσιοδότησης τριών byte που ανακτήσαμε στο βήμα 3 (0x00 0x00 0x07). Εάν ο κωδικός εξουσιοδότησης είναι σωστός, τα δεδομένα μεταφέρονται στο EEPROM. Βήμα 5, επαληθεύστε το μηδενικό γράψιμο 1-WIRE> (0x55) (1) 0xaa r: 31WIRE BUS RESET OK <<< διεύθυνση της συσκευής1 WIRE WRITE ROM COMMAND: MATCH (0x55) *ακολουθήστε με διεύθυνση 64bit 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xAA <<< διαβάστε την εντολή scratch pad ΜΑΛΚ ΔΙΑΒΑΣΤΕ 0x03 BYTES: 0x00 0x00 0x87 <<Το DS2431 ορίζει το ανώτερο κομμάτι του κωδικού εξουσιοδότησης εγγραφής μετά από μια επιτυχημένη εντολή αντιγραφής. Στείλτε μια άλλη εντολή ανάγνωσης γρατσουνιών (0xAA) για να λάβετε τον ενημερωμένο κωδικό εξουσιοδότησης, αλλά απλώς διαβάστε τα πρώτα τρία byte (r: 3). Η προηγούμενη τιμή 0x07 άλλαξε σε 0x87, η εντολή αντιγραφής ελήφθη με επιτυχία. Βήμα 6, διαβάστε ξανά τις τιμές 1-WIRE> (0x55) (1) 0xf0 0x00 0x00 r: 8 r: 81WIRE BUS RESET OK <<< διεύθυνση της συσκευής1WIRE WRITE ROM COMMAND: MATCH (0x55) *ακολουθήστε με διεύθυνση 64bit 1: 0x2D 0x54 0xD2 0xEF 0x00 0x00 0x00 0x2BWRITE: 0xF0 <<< DS2431 read commandWRITE: 0x00 <<< 2 byte read name 0x08 ΜΠΥΤ: <<Επαληθεύστε ότι η εγγραφή λειτουργεί σωστά, ανακτώντας τις τιμές. Διευθυνθείτε στο DS2431 και, στη συνέχεια, στείλτε την εντολή ανάγνωσης (0xf0) και τη διεύθυνση για ανάγνωση από (0x00 0x00). Είναι δυνατή η ανάγνωση ολόκληρου του εύρους μνήμης με μία μόνο εντολή. Διαβάσαμε τα οκτώ byte που γράψαμε νωρίτερα (r: 8), τα οποία επέστρεψαν τις αναμενόμενες τιμές. Τα οκτώ byte πέρα από αυτές τις τιμές δεν έχουν γραφτεί και επιστρέφουν 0.

Βήμα 5: Συμπέρασμα

συμπέρασμα
συμπέρασμα

Συμπέρασμα Αυτό το πρωτότυπο διδάσκει τη μνήμη EEPROM και δείχνει πώς να χρησιμοποιείτε το Bus Pirate με τρία κοινά πρωτόκολλα: 1-Wire, I2C και SPI. Ο πίνακας εξερευνητών 3EEPROM εξασφαλίζει τις σωστές συνδέσεις με κάθε EEPROM και παρέχει εξωτερική αντίσταση έλξης για το πιο απαιτητικό λεωφορείο 1-Wire με παρασιτικά τροφοδοτούμενα εξαρτήματα. Μπορούμε να έχουμε 3EEPROM εξερευνητές PCB ή κιτ που παράγονται στο Seeed Studio. Τα PCB κοστίζουν περίπου $ 10, τα κιτ είναι περίπου $ 15, αποστέλλονται σε όλο τον κόσμο. Πρέπει να οργανώσουμε μια ομαδική αγορά 10 PCB ή 20 κιτ για να ξεκινήσουμε.

Συνιστάται: