Κοινή χρήση τεχνολογίας

Ανωμαλία μεταφοράς χρονισμού Renesas RH850 RTC

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

RH850 Το RTC (ρολόι πραγματικού χρόνου) του MCU υιοθετεί τη μορφή κωδικοποίησης BCD (δυαδική κωδικοποιημένη δεκαδική), υποστηρίζει την αυτόματη αναγνώριση δίσεκτων ετών και έχει λειτουργίες μεταφοράς για δευτερόλεπτα, λεπτά, ώρες, ημέρες, εβδομάδες, μήνες και χρόνια. Ανάμεσά τους, το δεύτερο χωρίζεται σε 60 κουμπιά, η ώρα φέρεται 12 ή 24, η εβδομάδα φέρεται 7, η ημέρα φέρεται 28, 29, 30, 31 ανάλογα με το μήνα, ο μήνας φέρεται 12 και το έτος είναι 00~99.

Πρόσφατα χρησιμοποιούμε το RenesasMCU Το RTC του RH850 αντιμετώπισε πρόβλημα εξαίρεσης μεταφοράς χρονισμού. Κατά την εκτύπωση της μεταβλητής χρόνου μέσω UART, διαπιστώθηκε ότι η μεταφορά δευτερολέπτων και λεπτών δεν ήταν η αναμενόμενη μεταφορά των 60, αλλά εσφαλμένα εμφανίστηκε ως μεταφορά 90. Αυτό το φαινόμενο τράβηξε την προσοχή μας.

Ωστόσο, χρησιμοποιώντας έναν εξομοιωτή για άμεση παρακολούθησηRTCΕξετάζοντας τους εσωτερικούς καταχωρητές SEC, MIN και άλλους καταχωρητές, διαπιστώθηκε ότι έφεραν κανονικά αφού έφτασαν το 0x59, κάτι που δείχνει ότι δεν υπάρχει πρόβλημα με τη λειτουργία χρονισμού του ίδιου του RTC.

Μετά από προσεκτική παρατήρηση, ανακαλύψαμε έναν βασικό κανόνα: όταν τα δευτερόλεπτα υπερβούν το 09, η εμφανιζόμενη τιμή θα μεταπηδήσει απευθείας στο 16 και στη συνέχεια θα συνεχίσει να αυξάνεται. Αυτό το φαινόμενο υποδεικνύει ότι το πρόβλημα μπορεί να βρίσκεται στη μετατροπή της μορφής δεδομένων. Εφόσον το RTC χρησιμοποιεί τη μορφή κωδικοποίησης BCD εσωτερικά, τα επεξεργαζόμαστε ως δεκαδικά δεδομένα όταν τα εξάγουμε στον βοηθό εντοπισμού σφαλμάτων σειριακής θύρας μέσω UART, με αποτέλεσμα αποκλίσεις στην οθόνη.

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

Συνοψίζοντας, ο εσωτερικός καταχωρητής RTC του RH850 MCU υιοθετεί μια μοναδική μορφή κωδικοποίησης BCD, η οποία απαιτεί να δίνουμε ιδιαίτερη προσοχή στη μετατροπή μορφής κατά την επεξεργασία των σχετικών δεδομένων. Διαφορετικά, είναι εύκολο να προκληθούν παρόμοιες παρεξηγήσεις και προβλήματα.