- Απαιτούμενα υλικά
- Διάγραμμα κυκλώματος
- Μεταφόρτωση του Maple Boot loader στον πίνακα ανάπτυξης STM32
- Προετοιμασία του Arduino IDE και εγκατάσταση των προγραμμάτων οδήγησης
- Προγραμματισμός STM32 (Blue Pill) απευθείας μέσω θύρας USB
Ο πίνακας ανάπτυξης STM32 που στεγάζει τον μικροελεγκτή STM32F103C8 γίνεται όλο και πιο δημοφιλής χάρη στην αρχιτεκτονική του ARM Cortex M3, έχει υψηλή ταχύτητα λειτουργίας και περισσότερες περιφερειακές επιλογές. Επίσης, δεδομένου ότι αυτός ο πίνακας μπορεί να προγραμματιστεί εύκολα χρησιμοποιώντας το Arduino IDE, έχει γίνει μια προτιμώμενη επιλογή για πολλούς χόμπι και μηχανικούς για γρήγορο πρωτότυπο.
Στο προηγούμενο σεμινάριό μας μάθαμε τα βασικά του STM32 Development Board και επίσης το προγραμματίσαμε να αναβοσβήνει ένα LED. Αλλά υπήρχε ένα τεράστιο μειονέκτημα με αυτό. Για να προγραμματίσουμε το Διοικητικό Συμβούλιο χρησιμοποιήσαμε μια μονάδα προγραμματιστή FTDI και έπρεπε επίσης να αλλάξουμε το jumper εκκίνησης 0 μεταξύ και 1 θέσης κατά τη μεταφόρτωση και τη δοκιμή ενός κώδικα, ο οποίος είναι σίγουρα μια αποθαρρυντική εργασία. Επίσης, η θύρα mini-USB στον πίνακα ανάπτυξης αφέθηκε εντελώς αχρησιμοποίητη. Ο λόγος για να γίνει αυτό είναι ότι, όταν αγοράζεται η πλακέτα ανάπτυξης STM32 , δεν συνοδεύεται από έναν έτοιμο φορτωτή εκκίνησης Arduino και ως εκ τούτου η πλακέτα δεν θα εντοπιστεί από τον υπολογιστή σας όταν είναι συνδεδεμένη μέσω του USB.
Ας ελπίσουμε όμως ότι υπάρχει ένας πειραματικός φορτωτής εκκίνησης που αναπτύχθηκε από την LeafLabs για μίνι πίνακες Maple. Αυτός ο φορτωτής εκκίνησης μπορεί να μετακινηθεί στο STM32 μία φορά και στη συνέχεια μπορούμε να χρησιμοποιήσουμε απευθείας τη θύρα USB της πλακέτας STM32 για να ανεβάσουμε προγράμματα όπως κάθε άλλη πλακέτα Arduino. Ωστόσο, αυτός ο φορτωτής εκκίνησης βρίσκεται ακόμη σε στάδιο ανάπτυξης κατά τη στιγμή της τεκμηρίωσης αυτού του σεμιναρίου και δεν συνιστάται για κρίσιμες εφαρμογές. Πριν από τη διαδικασία με αυτό το σεμινάριο βεβαιωθείτε ότι έχετε διαβάσει το προηγούμενο σεμινάριο για να κατανοήσετε τα βασικά αυτού του πίνακα, συμπεριλαμβανομένων λεπτομερειών σχετικά με τις προδιαγραφές και τις pin-out
Απαιτούμενα υλικά
- STM32 - (BluePill) Πίνακας Ανάπτυξης (STM32F103C8)
- Προγραμματιστής FTDI
- Ψωμί
- Σύνδεση καλωδίων
- Φορητός υπολογιστής με Διαδίκτυο
Διάγραμμα κυκλώματος
Για να προγραμματίσουμε την πλακέτα STM32 Blue Pill απευθείας μέσω θύρας USB, πρέπει πρώτα να αναβοσβήσουμε το φορτωτή εκκίνησης Maple στο MCU. Για να το κάνουμε αυτό πρέπει να χρησιμοποιήσουμε έναν πίνακα Serial FTDI. Αυτή η πλακέτα συνδέεται με τον ακροδέκτη Rx και Tx του STM32 όπως φαίνεται παρακάτω.
Ο πείρος Vcc της πλακέτας FTDI συνδέεται με τον πείρο STM32 5V τροφοδοσίας της πλακέτας. Η γείωση συνδέεται με τη γείωση του STM32. Ο ακροδέκτης Rx και Tx της πλακέτας FTDI συνδέεται με τον ακροδέκτη A9 και A10 του STM32 αντίστοιχα. Όπου ο Α9 είναι ο πείρος Tx του STM32 MCU και ο Α10 είναι ο πείρος Rx.
Βεβαιωθείτε ότι ο πείρος εκκίνησης 0 στην πλακέτα έχει ρυθμιστεί σε 1 (λειτουργία προγραμματισμού) κατά τη μεταφόρτωση του φορτωτή εκκίνησης. Μόλις αναβοσβήνει ο φορτωτής εκκίνησης, αυτός ο πείρος μπορεί να αλλάξει στην αρχική του θέση (τρόπος λειτουργίας).
Μεταφόρτωση του Maple Boot loader στον πίνακα ανάπτυξης STM32
Μόλις πραγματοποιήσουμε την παραπάνω σύνδεση, συνδέστε την πλακέτα FTDI στον υπολογιστή σας και ακολουθήστε τα βήματα για να αναβοσβήσετε το φορτωτή εκκίνησης στο STM32.
Βήμα 1: Πρέπει να κατεβάσουμε τα αρχεία δυαδικών αρχείων του προγράμματος φόρτωσης εκκίνησης (αρχείο bin) από τη σελίδα github. Υπάρχουν πολλές εκδόσεις του αρχείου bin, για τον πίνακα Blue Pill χρησιμοποιήστε αυτόν τον σύνδεσμο github και κάντε κλικ στο κουμπί λήψης για να κατεβάσετε το αρχείο bin.
Βήμα 2: Στη συνέχεια πρέπει να κατεβάσουμε και να εγκαταστήσουμε το λογισμικό φορτωτή STM Flash για να αναβοσβήσουμε το αρχείο κάδου λήψης στο STM32. Κάντε κλικ σε αυτόν τον σύνδεσμο για να μπείτε στον ιστότοπο ST και μετακινηθείτε προς τα κάτω και κάντε κλικ στο λογισμικό λήψης
Βήμα 3: Για να κατεβάσετε το λογισμικό πρέπει να εισαγάγετε τη διεύθυνση E-mail σας και ο σύνδεσμος λήψης θα σταλεί στο E-mail σας. Στη συνέχεια, ακολουθήστε τον σύνδεσμο πίσω στον ιστότοπο και κάντε ξανά κλικ στο λογισμικό λήψης και θα ξεκινήσει η λήψη σας. Ναι είναι λίγο απογοητευτικό, αλλά έτσι πρέπει να γίνει. Μην ξεχάσετε να ελέγξετε το φάκελο ανεπιθύμητης αλληλογραφίας για το E-mail, μερικές φορές χρειάζεται μερικά λεπτά για να φτάσει το E-mail.
Βήμα 4: Μετά τη λήψη εγκαταστήστε το λογισμικό, βεβαιωθείτε ότι η πλακέτα STM32 είναι συνδεδεμένη στον υπολογιστή σας μέσω της πλακέτας FTDI και, στη συνέχεια, εκκινήστε το λογισμικό. Το λογισμικό θα εντοπίσει αυτόματα τη θύρα COM εάν δεν χρησιμοποιεί τη Διαχείριση συσκευών και βεβαιωθείτε ότι έχετε επιλέξει τον σωστό αριθμό θύρας COM. Στην περίπτωσή μου είναι COM4. Αφήστε το υπόλοιπο της ρύθμισης όπως φαίνεται παρακάτω.
Βήμα 5: Κάντε κλικ στο κουμπί Επόμενο δύο φορές και το λογισμικό θα εντοπίσει ξανά αυτόματα τις λεπτομέρειες του πίνακα και θα εμφανιστεί όπως φαίνεται παρακάτω. Ο πίνακας που χρησιμοποιούμε είναι STM32F1 με μνήμη flash 128K.
Βήμα 6: Στο επόμενο βήμα, επιλέξτε Λήψη στη συσκευή και περιηγηθείτε στην τοποθεσία όπου κατεβάσαμε το αρχείο κάδου στο βήμα 1 και επιλέξτε το. Κάντε κλικ στο επόμενο.
Βήμα 7: Το λογισμικό θα κατεβάσει ορισμένα απαιτούμενα αρχεία όπως φαίνεται παρακάτω και στη συνέχεια θα ξεκινήσει τη διαδικασία αναβοσβήνει.
Βήμα 8: Μόλις ολοκληρωθεί με επιτυχία η αναβοσβήνει, θα εμφανιστεί η παρακάτω οθόνη. Κάντε κλικ στο κλείσιμο και κλείστε την εφαρμογή. Έχουμε αναβοσβήνει με επιτυχία η πλακέτα STM32 με το φορτωτή εκκίνησης Arduino. Τώρα πρέπει να προετοιμάσουμε το Arduino IDE και να εγκαταστήσουμε τα προγράμματα οδήγησης πριν μπορέσουμε να προγραμματίσουμε την πλακέτα STM32.
Προετοιμασία του Arduino IDE και εγκατάσταση των προγραμμάτων οδήγησης
Ακολουθήστε τα παρακάτω βήματα για να κατεβάσετε και να προετοιμάσετε το Arduino IDE για χρήση με την πλακέτα ανάπτυξης STM 32.
Βήμα 1: - Εάν δεν έχετε εγκαταστήσει ακόμα το Arduino IDE, πραγματοποιήστε λήψη και εγκατάσταση από αυτόν τον σύνδεσμο. Βεβαιωθείτε ότι έχετε επιλέξει το σωστό λειτουργικό σας σύστημα.
Βήμα 2: - Μετά την εγκατάσταση του Arduino IDE ανοίξτε και κατεβάστε τα απαιτούμενα πακέτα για την πλακέτα STM32. Αυτό μπορεί να γίνει επιλέγοντας Αρχείο -> Προτιμήσεις .
Βήμα 3: - Κάνοντας κλικ στις Προτιμήσεις θα ανοίξει το παρακάτω παράθυρο διαλόγου. Στο πρόσθετο πλαίσιο κειμένου URL του Boards Manager επικολλήστε τον παρακάτω σύνδεσμο
dan.drown.org/stm32duino/package_STM32duino_index.json
και πατήστε OK.
Βήμα 4: - Τώρα πηγαίνετε στο εργαλείο -> Πίνακες -> Διαχείριση Διοικητικού Συμβουλίου . Αυτό θα ανοίξει το πλαίσιο διαλόγου Διαχείριση πινάκων, θα αναζητήσει το "STM32F1" και θα εγκαταστήσει το πακέτο που εμφανίζεται.
Βήμα 5: Μετά την εγκατάσταση του πακέτου, μεταβείτε στο C: \ Program Files (x86) Arduino \ hardware \ Arduino_STM32-master \ drivers \ win όπου θα βρείτε τα install_drivers.bat και install_STM_COM_drivers.bat .
Βήμα 6: Κάντε κλικ και στα δύο αρχεία bat και εγκαταστήστε τα προγράμματα οδήγησης. Θα λάβετε μια οθόνη DOS όπως φαίνεται παρακάτω.
Τώρα το Arduino IDE είναι έτοιμο για προγραμματισμό του πίνακα ανάπτυξης STM32 (Blue Pill) και εγκαθίστανται επίσης τα προγράμματα οδήγησης.
Προγραμματισμός STM32 (Blue Pill) απευθείας μέσω θύρας USB
Αφαιρέστε την πλακέτα FTDI και όλες τις υπάρχουσες συνδέσεις από εσάς STM32. Απλώς χρησιμοποιήστε τη θύρα micro-USB στην πλακέτα STM32 για να τη συνδέσετε στον υπολογιστή όπως φαίνεται παρακάτω. Βεβαιωθείτε ότι ο πείρος jumper 0 είναι τοποθετημένος πίσω στο 0 (Λειτουργία λειτουργίας). Στη συνέχεια, δεν χρειάζεται πλέον να αλλάζουμε το jumper για να ανεβάζουμε και να εκτελούμε τα προγράμματα.
Ο υπολογιστής σας πρέπει να είναι σε θέση να ανακαλύψει τον πίνακα τώρα. Περιμένετε για λίγο αν δείτε την εγκατάσταση πρόσθετων προγραμμάτων οδήγησης. Στη συνέχεια, μπείτε στη Διαχείριση συσκευών και ελέγξτε αν η πλακέτα STM32 σας εντοπίζεται στην ενότητα COM και θύρα όπως φαίνεται παρακάτω. Το δικό μου είναι συνδεδεμένο στο COM8 με το όνομα Maple Mini.
Μεταβείτε στα Εργαλεία και μετακινηθείτε προς τα κάτω για να βρείτε τη σειρά Generic STM32F103C όπως φαίνεται παρακάτω. Στη συνέχεια, βεβαιωθείτε ότι η παραλλαγή είναι τύπου 64k Flash , η ταχύτητα της CPU είναι 72MHz και αλλάξτε τη μέθοδο μεταφόρτωσης σε STM32duino Bootloader . Επίσης, επιλέξτε τη σωστή θύρα COM σύμφωνα με αυτήν στη διαχείριση συσκευών.
Αφού γίνουν όλες οι αλλαγές, ελέγξτε την κάτω δεξιά γωνία του Arduino IDE και θα πρέπει να παρατηρήσετε την ακόλουθη ρύθμιση. Η πλακέτα STM32 μου είναι συνδεδεμένη στο COM8, αλλά η δική σας ενδέχεται να διαφέρει
Τώρα το Arduino IDE είναι έτοιμο να προγραμματίσει τους πίνακες ανάπτυξης STM 32 Blue Pill. Ας ανεβάσουμε το Πρόγραμμα δειγματοληψίας από το Arduino IDE στον πίνακα STM32 Blue Pill για να βεβαιωθούμε ότι όλα λειτουργούν σωστά. Το παράδειγμα προγράμματος μπορείτε να βρείτε στη διεύθυνση
Στο παράδειγμα προγράμματος που ανοίγει, πρέπει να κάνουμε μια μικρή αλλαγή. Από προεπιλογή, το πρόγραμμα θα γραφτεί για PB1, αλλά στην πλακέτα μας το ενσωματωμένο LED είναι συνδεδεμένο με PC13, οπότε αντικαταστήστε όλα τα PB1 με PC13 και είμαστε καλοί να συνεχίσουμε. Το πλήρες παράδειγμα προγράμματος που τροποποιείται μπορεί επίσης να βρεθεί στο κάτω μέρος αυτής της σελίδας.
Ο κώδικας μέσα στη λειτουργία βρόχου φαίνεται μόνο παρακάτω, όπου μπορούμε να παρατηρήσουμε ότι ο πείρος PC13 διατηρείται ΥΨΗΛΟΣ (ενεργοποιημένος) για 1000 χιλιοστά του δευτερολέπτου και στη συνέχεια απενεργοποιείται LOW (απενεργοποιημένος) για άλλα 1000 χιλιοστά του δευτερολέπτου και αυτό γίνεται για άπειρους χρόνους από τότε που βρίσκεται σε συνάρτηση βρόχου . Έτσι, το LED φαίνεται να αναβοσβήνει με ένα διάστημα 1000 χιλιοστών του δευτερολέπτου.
digitalWrite (PC13, ΥΨΗΛΟΣ); // ανάψτε το LED (HIGH είναι το επίπεδο τάσης) καθυστέρηση (1000). // περιμένετε ένα δεύτερο digitalWrite (PC13, LOW). // σβήστε το LED κάνοντας την τάση χαμηλή καθυστέρηση (1000) // περιμένετε λίγο
Πατήστε το κουμπί μεταφόρτωσης στο Arduino IDE και το πρόγραμμά σας θα πρέπει να μεταγλωττιστεί και να φορτωθεί. Εάν όλα λειτουργούσαν όπως αναμενόταν, τότε θα πρέπει να δείτε τα παρακάτω στην κονσόλα Arduino IDE.
Εάν το Πρόγραμμα μεταφορτώθηκε με επιτυχία, τότε θα πρέπει να δείτε το πράσινο LED να αναβοσβήνει σε διάστημα 1 δευτερολέπτου, όπως φαίνεται στο παρακάτω βίντεο. Μπορείτε επίσης να παίζετε με το πρόγραμμα για να αυξήσετε ή να μειώσετε την καθυστέρηση. Τώρα μπορείτε να αρχίσετε να χρησιμοποιείτε την πλακέτα ανάπτυξης STM32 (Blue Pill) όπως και άλλες πλακέτες Arduino, δηλαδή δεν χρειάζεται πλέον να αλλάζετε τη θέση των jumpers ή να χρησιμοποιείτε εξωτερικό υλικό για να ανεβάζετε και να δοκιμάζετε προγράμματα.
Ελπίζω να καταλάβατε το σεμινάριο και βρήκατε χρήσιμο να ξεκινήσετε με το STM32 Board. Εάν έχετε κάποιο πρόβλημα αφήστε τα στην ενότητα σχολίων, πείτε μου επίσης ποια έργα πρέπει να δοκιμάσουμε με αυτόν τον πίνακα STM32 στο μέλλον.