Πώς και γιατί να διαβάζετε φύλλα δεδομένων εάν οι μικροελεγκτές είναι το χόμπι σας

Πώς και γιατί να διαβάζετε φύλλα δεδομένων εάν οι μικροελεγκτές είναι το χόμπι σας

Η μικροηλεκτρονική είναι ένα μοντέρνο χόμπι τα τελευταία χρόνια χάρη στο μαγικό Arduino. Αλλά εδώ είναι το πρόβλημα: με αρκετό ενδιαφέρον, μπορείτε να ξεπεράσετε γρήγορα την DigitalWrite(), αλλά το τι πρέπει να κάνετε στη συνέχεια δεν είναι απολύτως σαφές. Οι προγραμματιστές του Arduino έχουν καταβάλει μεγάλη προσπάθεια για να μειώσουν το εμπόδιο για την είσοδο στο οικοσύστημά τους, αλλά έξω από αυτό εξακολουθεί να υπάρχει ένα σκοτεινό δάσος σκληρών κυκλωμάτων που είναι απρόσιτο στον ερασιτέχνη.

Για παράδειγμα, φύλλα δεδομένων. Φαίνεται ότι έχουν τα πάντα, πάρτε τα και χρησιμοποιήστε τα. Αλλά οι συντάκτες τους σαφώς δεν έχουν καθήκον να εκλαϊκεύουν τους μικροελεγκτές. Ωρες ωρες φαίνεταιότι σκόπιμα κάνουν κατάχρηση ακατανόητων όρων και συντομογραφιών όταν περιγράφουν απλά πράγματα για να μπερδέψουν όσο το δυνατόν περισσότερο τους αμύητους. Αλλά δεν είναι όλα τόσο άσχημα· αν θέλετε, το φέρετρο ανοίγει.

Σε αυτό το άρθρο θα μοιραστώ την εμπειρία ενός ειδικού ανθρωπιστικών επιστημών που επικοινωνεί με φύλλα δεδομένων για λόγους χόμπι. Το κείμενο προορίζεται για ερασιτέχνες που έχουν μεγαλώσει από παντελόνια Arduino· προϋποθέτει κάποια κατανόηση των αρχών λειτουργίας των μικροελεγκτών.

Θα ξεκινήσω με το παραδοσιακό

Αναβοσβήνει ένα LED στο Arduino

Και αμέσως ο κωδικός:

void setup() {
DDRB |= (1<<5);
}

void loop() {
PINB = (1<<5);
for (volatile uint32_t k=0; k<100000; k++);
}

"Τι είναι αυτό? – Θα ρωτήσει ένας σοφιστικέ αναγνώστης. – Γιατί γράφετε κάτι στον καταχωρητή εισόδου PINB; Είναι μόνο για διάβασμα!» Πραγματικά, Τεκμηρίωση Arduino, όπως και τα περισσότερα εκπαιδευτικά άρθρα στο Διαδίκτυο, αναφέρει ότι αυτό το μητρώο είναι μόνο για ανάγνωση. Έτσι νόμιζα και εγώ μέχρι που το ξαναδιάβασα φύλλο δεδομένων στο Atmega328p, προετοιμάζοντας αυτό το άρθρο. Και εκεί:

Πώς και γιατί να διαβάζετε φύλλα δεδομένων εάν οι μικροελεγκτές είναι το χόμπι σας

Αυτή είναι μια σχετικά νέα λειτουργικότητα, δεν ήταν στο Atmega8, δεν το γνωρίζουν όλοι ή δεν αναφέρεται για λόγους συμβατότητας προς τα πίσω. Αλλά είναι αρκετά κατάλληλο για την επίδειξη της ιδέας ότι τα φύλλα δεδομένων αξίζει να διαβαστούν προκειμένου να χρησιμοποιηθούν όλες οι δυνατότητες του τσιπ, συμπεριλαμβανομένων των ελάχιστα γνωστών. Και δεν είναι αυτός ο μόνος λόγος.

Γιατί αλλιώς να διαβάσετε φύλλα δεδομένων;

Συνήθως, οι μηχανικοί του Arduino, έχοντας παίξει αρκετά με LED και AnalogWrites, αρχίζουν να συνδέουν όλα τα είδη των μονάδων και των τσιπ στην πλακέτα, για τα οποία υπάρχουν ήδη γραπτές βιβλιοθήκες. Αργά ή γρήγορα, εμφανίζεται μια βιβλιοθήκη που δεν λειτουργεί όπως θα έπρεπε. Τότε ο ερασιτέχνης αρχίζει να το μαζεύει για να το φτιάξει και μετά...

Και κάτι εντελώς ακατανόητο συμβαίνει εκεί, οπότε πρέπει να πάτε στο Google, να διαβάσετε πολλά σεμινάρια, να βγάλετε τμήματα του κατάλληλου κώδικα κάποιου και τελικά να πετύχετε τον στόχο σας. Αυτό δίνει μια ισχυρή αίσθηση ολοκλήρωσης, αλλά στην πραγματικότητα η διαδικασία είναι σαν να εφευρίσκουμε εκ νέου τον τροχό με την αντίστροφη μηχανική μιας μοτοσικλέτας. Επιπλέον, η κατανόηση του πώς λειτουργεί αυτό το ποδήλατο δεν αυξάνεται. Το ξέρω, γιατί το έκανα μόνος μου για αρκετό καιρό.

Αν αντί αυτής της συναρπαστικής δραστηριότητας είχα περάσει μερικές μέρες μελετώντας την τεκμηρίωση του Atmega328, θα είχα εξοικονομήσει τεράστιο χρόνο. Μετά από όλα, αυτός είναι ένας αρκετά απλός μικροελεγκτής.

Επομένως, πρέπει να διαβάσετε φύλλα δεδομένων τουλάχιστον για να φανταστείτε πώς λειτουργεί γενικά ο μικροελεγκτής και τι μπορεί να κάνει. Και επιπλέον:

  • για έλεγχο και βελτιστοποίηση των βιβλιοθηκών άλλων ανθρώπων. Συχνά γράφονται από τους ίδιους ερασιτέχνες που εφευρίσκουν εκ νέου τον τροχό. ή, αντίθετα, οι συγγραφείς σκόπιμα τα καθιστούν υπερβολικά αλάνθαστα. Αφήστε το να είναι τρεις φορές μεγαλύτερο και πιο αργό, αλλά σίγουρα θα λειτουργήσει.

  • να μπορεί να χρησιμοποιεί μάρκες σε ένα έργο για το οποίο κανείς δεν έχει γράψει βιβλιοθήκη.

  • για να διευκολύνετε τη μετάβαση από τη μια γραμμή MK στην άλλη.

  • για να βελτιστοποιήσετε επιτέλους τον παλιό σας κώδικα, ο οποίος δεν ταίριαζε στο Arduino.

  • να μάθει πώς να ελέγχετε οποιοδήποτε τσιπ απευθείας μέσω των καταχωρητών του, χωρίς να ασχολείστε με τη μελέτη της δομής των βιβλιοθηκών του, εάν υπάρχουν.

Γιατί να γράψετε απευθείας στους καταχωρητές όταν υπάρχουν HAL και LL;

Γλωσσάριο
HAL, High Abstraction Layer – μια βιβλιοθήκη για τον έλεγχο ενός μικροελεγκτή με υψηλό επίπεδο αφαίρεσης. Εάν χρειάζεται να χρησιμοποιήσετε τη διεπαφή SPI1, απλώς ρυθμίζετε και ενεργοποιείτε το SPI1 χωρίς να σκέφτεστε ποιοι καταχωρητές είναι υπεύθυνοι για τι.
LL, API χαμηλού επιπέδου – μια βιβλιοθήκη που περιέχει μακροεντολές ή δομές με διευθύνσεις μητρώου, που σας επιτρέπουν να έχετε πρόσβαση σε αυτές ονομαστικά. Τα DDRx, PORTx, PINx στο Atmega είναι LL.

Διαφωνίες σχετικά με το θέμα «HAL, LL ή εγγραφές» εμφανίζονται τακτικά στα σχόλια στο Habré. Χωρίς να διεκδικώ πρόσβαση στην αστρική γνώση, θα μοιραστώ απλώς την ερασιτεχνική μου εμπειρία και σκέψεις.

Έχοντας καταλάβει λίγο-πολύ το Atmega και έχοντας διαβάσει άρθρα για την υπέροχη ομορφιά του STM32, αγόρασα μισή ντουζίνα διαφορετικούς πίνακες - Discovery και Blue Pills, ακόμα και μόνο τσιπς για τα σπιτικά προϊόντα μου. Όλοι μάζευαν σκόνη σε ένα κουτί για δύο χρόνια. Μερικές φορές έλεγα στον εαυτό μου: «Αυτό είναι, ξεκινώντας αυτό το Σαββατοκύριακο κατακτώ το STM», ξεκίνησα το CubeMX, δημιούργησα μια ρύθμιση για το SPI, κοίταξα τον τοίχο κειμένου που προέκυψε, γενναιόδωρα αρωματισμένο με πνευματικά δικαιώματα STM και αποφάσισα ότι αυτό ήταν κατά κάποιο τρόπο επίσης πολύ.

Πώς και γιατί να διαβάζετε φύλλα δεδομένων εάν οι μικροελεγκτές είναι το χόμπι σας

Φυσικά, μπορείτε να καταλάβετε τι έγραψε το CubeMX εδώ. Αλλά ταυτόχρονα είναι ξεκάθαρο ότι το να θυμάσαι όλη τη διατύπωση και μετά να τα γράψεις με το χέρι δεν είναι ρεαλιστικό. Και για να το διορθώσω, αν κατά λάθος ξεχάσω να τσεκάρω ένα πλαίσιο στον κύβο, είναι εντάξει.

Πέρασαν δύο χρόνια, ακόμα γλείφω τα χείλη μου ST MCU Finder για όλα τα είδη νόστιμων, αλλά πέρα ​​από την κατανόησή μου, πατατάκια, και κατά λάθος συνάντησα υπέροχο άρθρο, αν και για STM8. ΚΑΙ ξαφνικά Συνειδητοποίησα ότι όλο αυτό το διάστημα χτυπούσα μια ανοιχτή πόρτα: τα μητρώα του STM είναι διατεταγμένα με τον ίδιο τρόπο όπως αυτά οποιουδήποτε άλλου MK και ο Κύβος δεν είναι απαραίτητος για να δουλέψεις μαζί τους. Ήταν καν δυνατό;..

Το HAL και συγκεκριμένα το STM32CubeMX είναι ένα εργαλείο για επαγγελματίες μηχανικούς που συνεργάζονται στενά με τα τσιπ STM32. Το κύριο χαρακτηριστικό είναι το υψηλό επίπεδο αφαίρεσης, η δυνατότητα γρήγορης μετάβασης από το ένα MCU στο άλλο και ακόμη και από τον έναν πυρήνα στον άλλο, παραμένοντας στη γραμμή STM32. Οι χομπίστες σπάνια αντιμετωπίζουν τέτοια προβλήματα - η επιλογή των μικροελεγκτών μας, κατά κανόνα, περιορίζεται στη συλλογή AliExpress και συχνά μεταναστεύουμε μεταξύ ριζικά διαφορετικών τσιπ - μετακινούμαστε από το Atmega στο STM, από το STM στο ESP ή οτιδήποτε νέο πράγμα οι Κινέζοι φίλοι μας ρίξε πάνω μας. Το HAL δεν θα βοηθήσει εδώ, και η μελέτη του θα καταναλώσει πολύ χρόνο.

Το LL παραμένει - αλλά από αυτό μέχρι τα μητρώα υπάρχει μισό βήμα. Προσωπικά, θεωρώ χρήσιμο να γράφω τις μακροεντολές μου με διευθύνσεις μητρώου: μελετώ πιο προσεκτικά το φύλλο δεδομένων, σκέφτομαι τι θα χρειαστώ στο μέλλον και τι σίγουρα όχι, δομώ καλύτερα τα προγράμματά μου και γενικά, το ξεπέρασμα βοηθά στην απομνημόνευση .

Επιπλέον, υπάρχει μια απόχρωση με το δημοφιλές STM32F103 - υπάρχουν δύο μη συμβατές εκδόσεις LL για αυτό, η μία επίσημη από την STM, η δεύτερη από τη Leaf Labs, που χρησιμοποιείται στο έργο STM32duino. Αν γράφετε μια βιβλιοθήκη ανοιχτού κώδικα (και είχα ακριβώς ένα τέτοιο έργο), πρέπει είτε να δημιουργήσετε δύο εκδόσεις ή να αποκτήσετε απευθείας πρόσβαση στα μητρώα.

Τέλος, η κατάργηση του LL, κατά τη γνώμη μου, απλοποιεί τη μετανάστευση, ειδικά αν το σχεδιάζετε από την αρχή του έργου. Υπερβολικό παράδειγμα: ας γράψουμε το Arduino Blink στο Atmel Studio χωρίς LL:

#include <stdint.h>

#define _REG(addr) (*(volatile uint8_t*)(addr))

#define DDR_B 0x24
#define OUT_B 0x25

int main(void)
{
    volatile uint32_t k;

    _REG(DDR_B) |= (1<<5);

    while(1)
    {
        _REG(OUT_B) |= (1<<5);
        for (k=0; k<50000; k++);
        _REG(OUT_B) &= ~(1<<5);
        for (k=0; k<50000; k++);
    } 
}

Για να αναβοσβήνει αυτός ο κωδικός το LED σε μια κινεζική πλακέτα με STM8 (από το ST Visual Desktop), αρκεί να αλλάξετε δύο διευθύνσεις σε αυτό:

#define DDR_B 0x5007
#define OUT_B 0x5005

Ναι, χρησιμοποιώ μια δυνατότητα σύνδεσης του LED σε μια συγκεκριμένη πλακέτα, θα αναβοσβήνει πολύ αργά, αλλά θα γίνει!

Τι τύποι φύλλων δεδομένων υπάρχουν;

Σε άρθρα και φόρουμ, τόσο στα Ρωσικά όσο και στα Αγγλικά, τα «φύλλα δεδομένων» σημαίνουν οποιαδήποτε τεχνική τεκμηρίωση για μάρκες, και κάνω το ίδιο σε αυτό το κείμενο. Επίσημα, είναι μόνο ένας τύπος τέτοιας τεκμηρίωσης:

Datasheet – Χαρακτηριστικά απόδοσης, τακτικά και τεχνικά χαρακτηριστικά. Υποχρεωτικό για οποιοδήποτε ηλεκτρονικό εξάρτημα. Οι πληροφορίες παρασκηνίου είναι χρήσιμο να διατηρούνται σε ετοιμότητα, αλλά δεν υπάρχουν πολλά που πρέπει να διαβάσετε προσεκτικά. Ωστόσο, τα απλούστερα τσιπ συχνά περιορίζονται σε ένα φύλλο δεδομένων, ώστε να μην δημιουργούνται περιττά έγγραφα. σε αυτήν την περίπτωση Εγχειρίδιο αναφοράς περιλαμβάνεται εδώ.

Εγχειρίδιο αναφοράς – οι ίδιες οι οδηγίες, ένα υγιές βιβλίο 1000+ σελίδων. Η δουλειά όλων όσων είναι στριμωγμένα στο τσιπ περιγράφεται λεπτομερώς. Το κύριο έγγραφο για τον έλεγχο του μικροελεγκτή. Διαφορετικός φύλλο δεδομένων, οι οδηγίες είναι γραμμένες για ένα ευρύ φάσμα MK· περιέχουν πολλές πληροφορίες για περιφερειακά που λείπουν στο συγκεκριμένο μοντέλο σας.

Εγχειρίδιο προγραμματισμού ή Εγχειρίδιο σετ οδηγιών – οδηγίες για μοναδικές εντολές μικροελεγκτή. Σχεδιασμένο για όσους προγραμματίζουν στη γλώσσα Assembly. Οι συντάκτες του μεταγλωττιστή το χρησιμοποιούν ενεργά για τη βελτιστοποίηση του κώδικα, επομένως στη γενική περίπτωση δεν θα τον χρειαστούμε. Αλλά η αναζήτηση εδώ είναι χρήσιμη για μια γενική κατανόηση, για ορισμένες συγκεκριμένες εντολές όπως η έξοδος από μια διακοπή, καθώς και για την ενεργή χρήση του προγράμματος εντοπισμού σφαλμάτων.

Σημείωση εφαρμογής – χρήσιμες συμβουλές για την επίλυση συγκεκριμένων προβλημάτων, συχνά με παραδείγματα κώδικα.

Φύλλο εσφαλμένου – περιγραφή περιπτώσεων μη τυπικής συμπεριφοράς chip με εναλλακτικές λύσεις, εάν υπάρχουν.

Τι υπάρχει στα φύλλα δεδομένων

Απευθείας στο Datasheet μπορεί να χρειαστούμε τις ακόλουθες ενότητες:

Σύνοψη συσκευής – η πρώτη σελίδα του φύλλου δεδομένων περιγράφει συνοπτικά τη συσκευή. Πολύ χρήσιμο σε περιπτώσεις που βρήκατε ένα τσιπ κάπου (το είδατε σε ένα κατάστημα, το κολλήσατε, συναντήσατε μια αναφορά) και θέλετε να καταλάβετε τι είναι.

Γενική περιγραφή – λεπτομερέστερη περιγραφή των δυνατοτήτων των τσιπ από τη γραμμή.

Pinouts – Διαγράμματα pinout για όλα τα πιθανά πακέτα τσιπ (ποια καρφίτσα βρίσκεται σε ποιο πόδι).

Περιγραφή καρφίτσας – περιγραφή του σκοπού και των δυνατοτήτων κάθε pin.

Μνήμη Χάρτης – είναι απίθανο να χρειαστούμε έναν χάρτη διευθύνσεων στη μνήμη, αλλά μερικές φορές περιλαμβάνει επίσης έναν πίνακα διευθύνσεων μπλοκ καταχωρητών.

Εγγραφή χάρτη – ο πίνακας διευθύνσεων των μπλοκ καταχωρητών, κατά κανόνα, βρίσκεται στο φύλλο δεδομένων και στο Εγχειρίδιο Ref - μόνο βάρδιες (μετατοπίσεις διευθύνσεων).

Ηλεκτρικά χαρακτηριστικά – σε αυτή την ενότητα μας ενδιαφέρει πρωτίστως απόλυτες μέγιστες βαθμολογίες, αναφέροντας τα μέγιστα φορτία ανά τσιπ. Σε αντίθεση με το άφθαρτο Atmega328p, τα περισσότερα MK δεν σας επιτρέπουν να συνδέσετε σοβαρά φορτία στους ακροδέκτες, κάτι που γίνεται μια δυσάρεστη έκπληξη για τους Arduinists.

Πληροφορίες πακέτου – σχέδια διαθέσιμων θηκών, χρήσιμα κατά το σχεδιασμό των σανίδων σας.

Εγχειρίδιο αναφοράς δομικά αποτελείται από τμήματα αφιερωμένα σε συγκεκριμένα περιφερειακά που αναφέρονται στον τίτλο τους. Κάθε κεφάλαιο μπορεί να χωριστεί σε τρία μέρη:

Επισκόπηση, Εισαγωγή, Χαρακτηριστικά – επισκόπηση των περιφερειακών δυνατοτήτων.

Λειτουργική Περιγραφή, Οδηγός χρήσης ή απλά το κύριο μπλοκ της ενότητας - μια λεπτομερής περιγραφή κειμένου των αρχών της περιφερειακής συσκευής και του τρόπου χρήσης της.

Μητρώα – περιγραφή των μητρώων ελέγχου. Σε απλές περιπτώσεις, όπως το GPIO ή το SPI, αυτό μπορεί να είναι αρκετό για να αρχίσετε να χρησιμοποιείτε τα περιφερειακά, αλλά συχνά πρέπει να διαβάσετε τα προηγούμενα μέρη.

Πώς να διαβάσετε τα φύλλα δεδομένων

Τα φύλλα δεδομένων, από συνήθεια, σε τρομάζουν με τον όγκο τους και την πληθώρα των ακατανόητων λέξεων. Στην πραγματικότητα, όλα δεν είναι τόσο τρομακτικά αν γνωρίζετε μερικά life hacks.

Σετ καλό πρόγραμμα ανάγνωσης PDF. Τα φύλλα δεδομένων είναι γραμμένα σύμφωνα με τη λαμπρή παράδοση των χάρτινων οδηγιών· είναι υπέροχα για εκτύπωση, εισαγωγή με πλαστικούς σελιδοδείκτες και ράψιμο. Το υπερκείμενο σε αυτά παρατηρείται σε ίχνη. Ευτυχώς, τουλάχιστον η δομή του εγγράφου έχει σχεδιαστεί με σελιδοδείκτες, επομένως είναι πολύ απαραίτητος ένας κατάλληλος αναγνώστης με εύκολη πλοήγηση.

Το φύλλο δεδομένων δεν είναι το εγχειρίδιο του Stroustrup· περιέχει δεν χρειάζεται να διαβάζεις τα πάντα. Εάν χρησιμοποιήσατε την προηγούμενη συμβουλή, απλώς βρείτε την ενότητα που θέλετε στη γραμμή σελιδοδεικτών.

Φύλλα δεδομένων, ειδικά Εγχειρίδια αναφοράς, μπορεί να περιγράψει τις δυνατότητες ενός συγκεκριμένου τσιπ, αλλά ολόκληρη τη γραμμή. Αυτό σημαίνει ότι οι μισές ή ακόμα και τα δύο τρίτα των πληροφοριών δεν σχετίζονται με το τσιπ σας. Πριν μελετήσετε τα μητρώα TIM7, κάντε check in Γενική περιγραφή, το έχεις?

Ξέρω Αγγλικά αρκετά για βασικό επίπεδο. Τα φύλλα δεδομένων αποτελούνται από τους μισούς όρους που δεν είναι εξοικειωμένοι με τον μέσο μητρικό ομιλητή και το μισό από απλές δομές σύνδεσης. Υπάρχουν επίσης εξαιρετικά κινεζικά φύλλα δεδομένων στα κινέζικα αγγλικά, όπου τα μισά είναι επίσης όροι και το δεύτερο μισό είναι ένα τυχαίο σύνολο λέξεων.

Αν συναντηθείτε άγνωστη λέξη, μην προσπαθήσετε να το μεταφράσετε χρησιμοποιώντας ένα αγγλικό-ρωσικό λεξικό. Αν είστε μπερδεμένοι υστέρηση, τότε η μετάφραση «υστέρηση» δεν θα σας κάνει πιο ζεστούς. Χρησιμοποιήστε το Google, το Stack Overflow, τη Wikipedia, τα φόρουμ, όπου θα είναι η απαιτούμενη έννοια εξηγείται με απλά λόγια με παραδείγματα.

Ο καλύτερος τρόπος για να καταλάβετε τι διαβάζετε είναι check in δράση. Επομένως, κρατήστε σε ετοιμότητα τον πίνακα εντοπισμού σφαλμάτων με τον οποίο εξοικειώνεστε, ή καλύτερα δύο, σε περίπτωση που παρεξηγήσατε κάτι και είδατε έναν μαγικό καπνό.

Είναι καλή συνήθεια να διατηρείτε το φύλλο δεδομένων σας εύχρηστο όταν το κάνετε διαβάζοντας το σεμινάριο κάποιου ή μελετώντας τη βιβλιοθήκη κάποιου άλλου. Είναι πολύ πιθανό να βρείτε μια πιο βέλτιστη λύση στο πρόβλημά σας σε αυτό. Και το αντίστροφο - εάν δεν μπορείτε να καταλάβετε από το φύλλο δεδομένων πώς λειτουργεί πραγματικά το μητρώο, ψάξτε το στο google: πιθανότατα, κάποιος έχει ήδη περιγράψει τα πάντα με απλά λόγια ή έχει αφήσει σαφή κώδικα στο GitHub.

Γλωσσάριο

Μερικές χρήσιμες λέξεις και σύμβολα που θα σας βοηθήσουν να συνηθίσετε γρήγορα τα φύλλα δεδομένων. Ό,τι θυμήθηκα τις τελευταίες μέρες, είναι ευπρόσδεκτες οι προσθήκες και οι διορθώσεις.

Ηλεκτρισμός
Vcc, Vdd – «συν», φαγητό
Vss, Vee – «μείον», γη
ρεύμα - ρεύμα
Τάση - Τάση
να βυθιστεί το ρεύμα – λειτουργεί ως «γείωση» για εξωτερικό φορτίο
για την πηγή ρεύματος – τροφοδοσία εξωτερικού φορτίου
ψηλή καρφίτσα νεροχύτη/πηγή – καρφίτσα με αυξημένη «ανοχή» στο φορτίο

IO
H, Υψηλό – στον ακροδέκτη Vcc
L, Χαμηλό – στην καρφίτσα Vss
Υψηλή αντίσταση, Γεια-Ζ, επιπλέων – δεν υπάρχει τίποτα στον πείρο, «υψηλή αντίσταση», είναι ουσιαστικά αόρατο στον έξω κόσμο.
αδύναμο τράβηγμα προς τα πάνω, αδύναμο τράβηγμα προς τα κάτω – ενσωματωμένη αντίσταση pull-up/pull-down, περίπου ισοδύναμη με 50 kOhm (βλ. φύλλο δεδομένων). Χρησιμοποιείται, για παράδειγμα, για να αποτρέψει τον πείρο εισόδου να κρέμεται στον αέρα, προκαλώντας ψευδείς συναγερμούς. Αδύναμος - γιατί είναι εύκολο να τον «διακόψεις».
σπρώχνω τραβώ – λειτουργία εξόδου καρφίτσας, στην οποία εναλλάσσεται μεταξύ τους Ψηλά и Χαμηλός – κανονική OUTPUT από το Arduino.
ανοιχτό σιφώνι – προσδιορισμός της λειτουργίας εξόδου στην οποία η ακίδα μπορεί να βρίσκεται είτε ΧαμηλόςΉ Υψηλή αντίσταση/πλωτό. Επιπλέον, σχεδόν πάντα αυτό δεν είναι μια «πραγματική» ανοιχτή αποστράγγιση· υπάρχουν προστατευτικές δίοδοι, αντιστάσεις και οτιδήποτε άλλο. Αυτός είναι απλώς ένας προσδιορισμός για τη λειτουργία γείωσης/καμία.
αληθινή ανοιχτή αποχέτευση - αλλά πρόκειται για μια πραγματική ανοιχτή αποχέτευση: ο πείρος οδηγεί απευθείας στο έδαφος εάν είναι ανοιχτός ή παραμένει σε κενό αν είναι κλειστός. Αυτό σημαίνει ότι, εάν είναι απαραίτητο, μπορεί να περάσει τάση μεγαλύτερη από Vcc, αλλά το μέγιστο εξακολουθεί να καθορίζεται στο φύλλο δεδομένων της ενότητας Απόλυτες μέγιστες ονομασίες/τάση.

Διεπαφές
σε σειρά – συνδεδεμένο σε σειρά
να αλυσοδέσει – συναρμολογήστε τα τσιπ σε μια αλυσίδα χρησιμοποιώντας μια σειριακή σύνδεση, αυξάνοντας τον αριθμό των εξόδων.
αλλαγή – shift, συνήθως υποδηλώνει λίγο μετατόπιση. Αντίστοιχα, να μετατοπιστεί и να μετατοπιστεί έξω – λήψη και μετάδοση δεδομένων κομμάτι-κομμάτι.
μάνταλο – ένα μάνδαλο που καλύπτει το buffer ενώ τα bits μετατοπίζονται μέσω αυτού. Όταν ολοκληρωθεί η μεταφορά, η βαλβίδα ανοίγει και τα μπιτ αρχίζουν να λειτουργούν.
να ρολόι μέσα – εκτελέστε μεταφορά bit-by-bit, μετακινήστε όλα τα bit στα σωστά σημεία.
διπλό buffer, σκιώδης μητρώο, καταχωρητής προφόρτισης – ονομασίες ιστορικού, όταν το μητρώο πρέπει να μπορεί να δέχεται νέα δεδομένα, αλλά να τα διατηρεί μέχρι κάποιο σημείο. Για παράδειγμα, για να λειτουργεί σωστά το PWM, οι παράμετροί του (κύκλος λειτουργίας, συχνότητα) δεν πρέπει να αλλάζουν μέχρι να τελειώσει ο τρέχων κύκλος, αλλά μπορούν ήδη να μεταφερθούν νέες παράμετροι. Αντίστοιχα, τα τρέχοντα διατηρούνται σε σκιώδης μητρώο, και πέφτουν καινούργια καταχωρητής προφόρτισης, γράφεται στον αντίστοιχο καταχωρητή chip.

Όλα τα πράγματα
προκλιμακωτής – προκλιμακωτή συχνότητας
για να ορίσετε λίγο – ορίστε το bit σε 1
για να καθαρίσετε/επαναφέρετε λίγο – επαναφέρετε το bit στο 0 (επαναφορά – Δυνατότητα φύλλου δεδομένων STM)

Ποιο είναι το επόμενο

Σε γενικές γραμμές, ένα πρακτικό μέρος σχεδιάστηκε εδώ με μια επίδειξη τριών έργων σε STM32 και STM8, που έγιναν ειδικά για αυτό το άρθρο χρησιμοποιώντας φύλλα δεδομένων, με λαμπτήρες, SPI, χρονόμετρα, PWM και διακοπές:

Πώς και γιατί να διαβάζετε φύλλα δεδομένων εάν οι μικροελεγκτές είναι το χόμπι σας

Υπάρχει όμως πολύ κείμενο, οπότε τα έργα στέλνονται στο δεύτερο μέρος.

Η ικανότητα ανάγνωσης φύλλων δεδομένων θα σας βοηθήσει με το χόμπι σας, αλλά είναι απίθανο να αντικαταστήσετε τη ζωντανή επικοινωνία με άλλους χομπίστες σε φόρουμ και συνομιλίες. Για το σκοπό αυτό, θα πρέπει ακόμα να βελτιώσετε τα αγγλικά σας πρώτα από όλα. Επομένως, όσοι τελείωσαν την ανάγνωση θα λάβουν ένα ειδικό βραβείο: δύο δωρεάν μαθήματα στο Skyeng με την πρώτη πληρωμή χρησιμοποιώντας τον κωδικό HABR2.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο