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

Hack a CFA735/CFA835: 4 βήματα
Hack a CFA735/CFA835: 4 βήματα

Βίντεο: Hack a CFA735/CFA835: 4 βήματα

Βίντεο: Hack a CFA735/CFA835: 4 βήματα
Βίντεο: Crystalfontz Intelligent Display Modules Overview 2024, Ιούλιος
Anonim
Hack ένα CFA735/CFA835
Hack ένα CFA735/CFA835

Έχετε ένα έργο που χρειάζεται οθόνη, πληκτρολόγιο και λίγη μνήμη, αλλά το προφορτωμένο υλικολογισμικό στην μονάδα Crystalfontz CFA735 ή CFA835 δεν είναι αυτό που ψάχνετε; Είστε τυχεροί - μπορείτε να χακάρετε αυτές τις ενότητες για να φορτώσετε προσαρμοσμένο υλικολογισμικό.

Οι CFA735 και CFA835 είναι ευέλικτες ευφυείς μονάδες LCD. Τόσο το Crystalfontz CFA735 όσο και το CFA835 βασίζονται στη μονάδα υλικού CFA10052, οπότε κατά τη διάρκεια αυτού του σεμιναρίου το CFA735 ή/και CFA835 θα αναφέρεται ως CFA10052. Το CFA10052 μπορεί να επαναπρογραμματιστεί για να τρέξει το δικό σας προσαρμοσμένο υλικολογισμικό.

  • Μικροελεγκτής STMicroelectronics STM32F401
  • CPU 32-bit Cortex ™ -M4 CPU @ 84 MHz
  • 256K Flash, 64K RAM
  • LCD με οπίσθιο φωτισμό 244 x 68 pixel
  • Ελεγκτής γραφικών LCD Sitronix ST7529 32 σε κλίμακα του γκρι
  • Η τροφοδοσία μεταγωγής Buck-boost επιτρέπει ευρεία περιοχή τάσης τροφοδοσίας
  • Ξεχωριστοί διακόπτες ελέγχου φωτεινότητας LED για οπίσθιο φωτισμό πληκτρολογίου και LCD
  • Πληκτρολόγιο με οπίσθιο φωτισμό 6 κουμπιών
  • 4x δίχρωμα LED (κόκκινο/πράσινο)
  • Διεπαφή USB2
  • υποδοχή κάρτας microSD
  • 5 καρφίτσες IO γενικής χρήσης (GPIO's)
  • Πολλαπλές σειριακές διεπαφές/SPI/I2C/CAN (ανάλογα με τη χρήση GPIO).

Αυτό το σεμινάριο θα σας δείξει πώς να αντικαταστήσετε το υλικολογισμικό που αποστέλλεται σε CFA10052 με νέο υλικολογισμικό που θα:

  1. Εμφάνιση στην οθόνη LCD εναλλασσόμενου πλέγματος, με τρέχοντες οπίσθιους φωτισμούς, αντίθεση LCD και πληροφορίες κατάστασης πληκτρολογίου.
  2. Ελέγξτε τον οπίσθιο φωτισμό και την αντίθεση LCD χρησιμοποιώντας το πληκτρολόγιο.
  3. Αλλάξτε το χρώμα των τεσσάρων LED από κόκκινο σε πράσινο με τη σειρά.
  4. Ενεργοποιήστε τη σειριακή θύρα USART στις ακίδες 1 & 2 της κεφαλίδας-1 (115200 baud) και επαναλάβετε τυχόν ληφθέντα δεδομένα.
  5. Ενεργοποιήστε την εικονική σειριακή θύρα USB και επαναφέρετε όλα τα ληφθέντα δεδομένα πίσω στον κεντρικό υπολογιστή.
  6. Περιλαμβάνει, αλλά δεν επιδεικνύει, πρόσβαση ανάγνωσης/εγγραφής αρχείων uSD.

Φυσικά, μπορείτε να γράψετε το δικό σας υλικολογισμικό και να το φορτώσετε χρησιμοποιώντας αυτά τα βήματα.

ΣΗΜΑΝΤΙΚΗ ΣΗΜΕΙΩΣΗ:

Η μονάδα υλικού Crystalfontz CFA10052 αποστέλλεται προγραμματισμένη με bootloader και υλικολογισμικό CFA735/CFA835. Ο φορητός υπολογιστής εκκίνησης και το υλικολογισμικό CFA735/CFA835 δεν είναι ανοιχτού κώδικα και δεν μπορούν να αντιγραφούν από το CFA10052 από τον χρήστη, ούτε μπορούν να προγραμματιστούν στο CFA10052 από τον χρήστη. Εάν τελικά θέλετε να επιστρέψετε στο υλικολογισμικό CFA735/CFA835, θα πρέπει να το στείλετε πίσω στο Crystalfontz για να το επαναπρογραμματίσετε.

Προμήθειες

  • Crystalfontz CFA10052 (hardware v1.1 ή νεότερη έκδοση) Ενότητα (CFA735 / CFA835)
  • PC (Windows/Linux/OSX) με εγκατεστημένο το βοηθητικό πρόγραμμα STM32CubeIDE και STM32 ST-LINK
  • Διεπαφή προγραμματισμού STMicroelectronics ST-LINK (V2 ή V3)
  • Καλώδιο προγραμματισμού CFA10052 (λεπτομέρειες παρακάτω)
  • Προσαρμοσμένο υλικολογισμικό (ή χρησιμοποιήστε το δικό μας εδώ)
  • Εάν χρησιμοποιείτε Windows 7/8/8.1/10 (ή ισοδύναμες εκδόσεις διακομιστή) και θέλετε να δοκιμάσετε την εικονική σειριακή θύρα USB, θα πρέπει να κάνετε λήψη προγραμμάτων οδήγησης από εδώ. Η σειριακή θύρα USB θα λειτουργήσει χωρίς να απαιτούνται πρόσθετα προγράμματα οδήγησης σε Windows 10+, Linux, OS-X.

Βήμα 1: Συλλογή/Δημιουργία αναλωσίμων

Συλλογή/Δημιουργία Προμηθειών
Συλλογή/Δημιουργία Προμηθειών

Συνιστούμε να χρησιμοποιήσετε το STM32CubeIDE για να φορτώσετε και να χρησιμοποιήσετε αυτό το παράδειγμα έργου υλικολογισμικού. Το STM32CubeIDE είναι ένα δωρεάν IDE βασισμένο στο Eclipse που έχει τροποποιηθεί από την STMicroelectronics για να περιλαμβάνει ειδικά εργαλεία STM32. Μπορείτε να κατεβάσετε το IDE στην ιστοσελίδα STM32CubeIDE.

Για να διατηρήσετε τη σωστή λειτουργία του εργαλείου διαμόρφωσης συσκευής STM, πρέπει να επεξεργαστείτε μόνο το πηγαίο κώδικα που δημιουργήθηκε από το εργαλείο διαμόρφωσης συσκευής μεταξύ των αντιστοίχισης μπλοκ σχολίων "USER CODE BEGIN xxx" και "USER CODE END xxx".

Στη συνέχεια, αποφασίστε αν θα επικοινωνήσετε μαζί μας για ένα καλώδιο προγραμματισμού CFA10052 ή για να φτιάξετε το δικό σας. Δεν πρόκειται να αναλύσουμε λεπτομερώς το καλώδιο σε αυτό το σεμινάριο, αλλά αν θέλετε να φτιάξετε το δικό σας καλώδιο προγραμματισμού CFA10052, μπορείτε να βρείτε τις συνδέσεις στη σελίδα GitHub, ο καλύτερος τρόπος για να γίνει αυτό είναι να ξεκινήσετε με ένα καλώδιο κορδέλας δεκαέξι ακίδων και συνδέστε το στο καλώδιο για το ST Link.

Βήμα 2: Διαγράψτε το υπάρχον υλικολογισμικό

Διαγράψτε το υπάρχον υλικολογισμικό
Διαγράψτε το υπάρχον υλικολογισμικό
Διαγράψτε το υπάρχον υλικολογισμικό
Διαγράψτε το υπάρχον υλικολογισμικό

Εάν η μονάδα CFA10052 είναι φορτωμένη με το παρεχόμενο υλικολογισμικό CFA735 ή CFA835, θα πρέπει πρώτα να διαγράψετε το εξερχόμενο υλικολογισμικό πριν εγκαταστήσετε νέο υλικολογισμικό. Η μνήμη flash προστατεύεται από ανάγνωση και εγγραφή και πρέπει να αφαιρεθεί πριν από τη φόρτωση του προσαρμοσμένου υλικολογισμικού.

Υπάρχουν δύο μέθοδοι για την αφαίρεση του εγκατεστημένου υλικολογισμικού:

  1. Αποσυνδέστε το καλώδιο USB (ή το τροφοδοτικό) από τη μονάδα CFA10052.
  2. Συνδέστε το CFA10052 στο ST-LINK χρησιμοποιώντας το καλώδιο προγραμματισμού (δείτε παραπάνω) και το ST-LINK στον κεντρικό υπολογιστή.
  3. Κρατήστε πατημένα τα πλήκτρα πάνω και κάτω στο CFA10052 ενώ συνδέετε το καλώδιο USB στο CFA10052 (ή τροφοδοτικό). Το CFA10052 θα πρέπει τώρα να εμφανίζει την οθόνη εκκίνησης Crystalfontz.
  4. Εκτελέστε το βοηθητικό πρόγραμμα STM32 ST-LINK. Στο μενού "Στόχος", ανοίξτε το παράθυρο "Option Bytes". Στο πλαίσιο "Προστασία ανάγνωσης", επιλέξτε "Επίπεδο 0". Κάντε κλικ στην επιλογή Εφαρμογή. Το υλικολογισμικό Crystalfontz έχει πλέον αφαιρεθεί και τυχόν προσαρμοσμένο υλικολογισμικό μπορεί τώρα να προγραμματιστεί.

Εναλλακτική μέθοδος (εάν δεν μπορείτε να εισαγάγετε το πρόγραμμα εκκίνησης Crystalfontz κρατώντας πατημένα τα πλήκτρα):

  1. Αποσυνδέστε το καλώδιο USB (ή το τροφοδοτικό) από τη μονάδα CFA10052.
  2. Συνδέστε το σημείο δοκιμής BOOT0 (ένα μικρό μαξιλάρι στο πίσω μέρος της μονάδας CFA10052, κοντά στην υποδοχή H1) σε 3.3V ή 5V.
  3. Συνδέστε το CFA10052 στο ST-LINK χρησιμοποιώντας το καλώδιο προγραμματισμού (δείτε παραπάνω) και το ST-LINK στον κεντρικό υπολογιστή.
  4. Ενεργοποιήστε το CFA10052 (ή συνδέστε το σε τροφοδοσία USB). Η οθόνη πρέπει να είναι κενή.
  5. Εκτελέστε το βοηθητικό πρόγραμμα STM32 ST-LINK. Στο μενού "Στόχος", ανοίξτε το παράθυρο "Option Bytes". Στο πλαίσιο "Προστασία ανάγνωσης", επιλέξτε "Επίπεδο 0". Κάντε κλικ στην επιλογή Εφαρμογή. Το υλικολογισμικό Crystalfontz έχει πλέον αφαιρεθεί και τυχόν προσαρμοσμένο υλικολογισμικό μπορεί τώρα να προγραμματιστεί.
  6. Δεν απαιτείται πλέον σύνδεση του ακροδέκτη BOOT0 σε 3.3V/5V.

Βήμα 3: Μεταγλωττίστε και φορτώστε το υλικολογισμικό σας στο CFA10052

Μεταγλωττίστε και φορτώστε το υλικολογισμικό σας στο CFA10052
Μεταγλωττίστε και φορτώστε το υλικολογισμικό σας στο CFA10052

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

Για να μεταγλωττίσετε το υλικολογισμικό:

  1. Ανοίξτε το STM32CubeIDE
  2. Στο μενού Αρχείο, επιλέξτε Εισαγωγή και, στη συνέχεια, "Εισαγωγή υπαρχόντων έργων στο χώρο εργασίας".
  3. Στο πλαίσιο καταλόγου ρίζας, επιλέξτε τον κατάλογο αυτού του παραδείγματος υλικολογισμικού.
  4. Κάντε κλικ στο κουμπί Τέλος.
  5. Στο Project Explorer, επιλέξτε το έργο cfa10052_example και, στη συνέχεια, ανοίξτε το αρχείο Src και "main.c".
  6. Στο μενού Project, επιλέξτε "Build Project".

Για να προγραμματίσετε και να εκτελέσετε το υλικολογισμικό στο CFA10052:

  1. Αποσυνδέστε το καλώδιο USB (ή το τροφοδοτικό) από τη μονάδα CFA10052.
  2. Συνδέστε το CFA10052 στο ST-LINK χρησιμοποιώντας το καλώδιο προγραμματισμού (δείτε παραπάνω) και το ST-LINK στον κεντρικό υπολογιστή.
  3. Συνδέστε το καλώδιο USB (ή το τροφοδοτικό) στο CFA10052.
  4. Βεβαιωθείτε ότι το έργο υλικολογισμικού έχει δημιουργηθεί (δείτε τα παραπάνω βήματα) και ότι "Δυαδικά" εμφανίζεται στην ενότητα "cfa10052_example" στην Εξερεύνηση έργου.
  5. Εάν τα "Δυαδικά" δεν είναι ορατά, κάντε δεξί κλικ στο έργο "cfa10052_example" και επιλέξτε Ανανέωση.
  6. Επιλέξτε το μενού Εκτέλεση και, στη συνέχεια, "Διαμορφώσεις εντοπισμού σφαλμάτων".
  7. Στο πλαίσιο επιλογής τύπων στόχου εντοπισμού σφαλμάτων στα αριστερά, κάντε δεξιό κλικ στην επιλογή "STM32 Cortex-M Application" και επιλέξτε "Νέα διαμόρφωση".
  8. Θα εμφανιστεί ένα παράθυρο διαμόρφωσης. Οι προεπιλεγμένες ρυθμίσεις είναι ΟΚ. Κάντε κλικ στο κουμπί Εφαρμογή και μετά στο Κλείσιμο.
  9. Στο μενού Εκτέλεση, επιλέξτε "Debug As" και μετά "STM32 Cortex Application". Το STM32CubeIDE θα πρέπει τώρα να συνδεθεί στο ST-LINK και να ανεβάσει και να εκτελέσει το υλικολογισμικό στο CFA10052.

Τα παραπάνω βήματα απαιτούνται μόνο για τη φόρτωση του έργου για πρώτη φορά στο STM32CubeIDE. Αφού γίνουν αλλαγές στον πηγαίο κώδικα του υλικολογισμικού, χρειάζεται μόνο η εκ νέου δημιουργία του έργου (συντόμευση Ctrl-B) και ο προγραμματισμός της CFA10052 (συντόμευση κλειδιού F11).

Το υλικολογισμικό μπορεί επίσης να φορτωθεί μέσω οποιασδήποτε από τις συνήθεις μεθόδους εκκίνησης STM32 (ο εντοπισμός σφαλμάτων είναι διαθέσιμος μόνο μέσω της διεπαφής SWD και ενός ST-LINK). Για παράδειγμα, εάν χρησιμοποιείτε σειριακή σύνδεση, μπορεί να χρησιμοποιηθεί το USART1 (RX = H1-Pin1 και TX = H1-Pin2). Για πιο λεπτομερείς πληροφορίες σχετικά με το πρόγραμμα εκκίνησης STM32 και τις διεπαφές, δείτε το PDF εδώ.

Βήμα 4: Άδειες

Ο πηγαίος κώδικας που παρέχεται από το Crystalfontz παρέχεται χρησιμοποιώντας το The Unlicense, μια άδεια χωρίς κανέναν όρο που αφιερώνει έργα στον δημόσιο τομέα. Έργα χωρίς άδεια, τροποποιήσεις και μεγαλύτερα έργα ενδέχεται να διανεμηθούν υπό διαφορετικούς όρους και χωρίς πηγαίο κώδικα. Ανατρέξτε στο αρχείο UNLICENCE ή στο unlicense.org για λεπτομέρειες.

Οι βιβλιοθήκες STM32CubeIDE που δημιουργήθηκαν στον πηγαίο κώδικα και οι βιβλιοθήκες STMicroelectronics είναι πνευματικά δικαιώματα (γ) 2019 STMicroelectronics. Ολα τα δικαιώματα διατηρούνται. Το στοιχείο λογισμικού έχει άδεια από την ST σύμφωνα με την άδεια BSD 3-Clause, την "Άδεια". Δεν επιτρέπεται να χρησιμοποιείτε αυτά τα αρχεία παρά μόνο σύμφωνα με την Άδεια χρήσης. Μπορείτε να λάβετε ένα αντίγραφο της Άδειας στη διεύθυνση opensource.org/licenses/BSD-3-Clause.

Συνιστάται: