Download - Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Transcript
Page 1: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Page 2: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32

Περίγραμμα Ο μικροελεγκτής M68HC908GP32

Γενικά χαρακτηριστικάΠεριγραφή ακροδεκτώνΧάρτης μνήμηςΕνσωματωμένα περιφερειακά συστήματα

Page 3: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32

Ο μικροελεγκτής M68HC908GP32 Γενικά χαρακτηριστικά

Ο MC68HC908GP32 είναι ένας χαμηλού κόστους και γενικής χρήσης μικροελεγκτής με ενσωματωμένη CPU08.32KB μνήμη προγράμματος (Flash)512Β μνήμη δεδομένων (RAM) 33 ακροδέκτες εισόδου/εξόδου Λειτουργίας χαμηλής κατανάλωσηςΔυνατότητα παροχής τροφοδοσίας 3V ή 5V Μέγιστη εσωτερική συχνότητα λειτουργίας 8MHzΔιαθέτει επίσης αρκετά ενσωματωμένα περιφερειακά συστήματαΔιατίθεται σε τρεις διαφορετικές συσκευασίες

40, 42 και 44 ακροδεκτών (PDIP, SDIP, QFP αντιστοίχως)

Page 4: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32

Ο μικροελεγκτής M68HC908GP32 Περιγραφή ακροδεκτών (40 PDIP)

Παροχή τροφοδοσίας (VDD & VSS) Ακροδέκτες ταλαντωτή

(κρυσταλλικός ταλαντωτής στο OSC) Ακροδέκτης μηδενισμού (RST) Ακροδέκτης εξωτερικής διακοπής (IRQ) Παροχή τροφοδοσίας του CGM (VDDΑ & VSSΑ)

(σύνδεση όπως VDD & VSS) Εξωτερικός πυκνωτής φίλτρου (CGMXFC)

(ακροδέκτης φίλτρου PLL) Παροχή τροφοδοσίας ADC (VDDΑD & VSSΑD)

(σύνδεση όπως VDD & VSS) Θύρα Α (PTA7-PTA0) / KBI Θύρα B (PTB7-PTB0) / ADC Θύρα C (PTC4-PTC0) Θύρα D (PTD5-PTD0) / SPI / TIM Θύρα E (PTE1, PTE0) / SCI

Page 5: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32

Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης

Ο έλεγχος των εσωτερικών κυκλωμάτων του μικροϋπολογιστικού συστήματος πραγματοποιείται μέσα από ειδικούς καταχωρητές που εντοπίζονται στη μνήμη του ολοκληρωμένου M68HC908GP32. Οι καταχωρητές αυτοί ονομάζονται καταχωρητές εισόδου/εξόδου (I/O registers) και διακρίνονται σε 3 κατηγορίες: α) καταχωρητές ελέγχου (control

registers)β) καταχωρητές κατάστασης (status

registers)γ) καταχωρητές δεδομένων (data

registers).

Page 6: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32

Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης

(i/o registers)Διεύθυνση Όνομα καταχωρητή Συντόμευση

0x0000 Port A Data Register PTA

0x0001 Port B Data Register PTB

0x0002 Port C Data Register PTC

0x0003 Port D Data Register PTD

0x0004 Data Direction Register A DDRA

0x0005 Data Direction Register B DDRB

0x0006 Data Direction Register C DDRC

0x0007 Data Direction Register D DDRD

0x0008 Port E Data Register PTE

0x0009 Unimplemented U

0x000A Unimplemented U

0x000B Unimplemented U

0x000C Data Direction Register E DDRE

0x000D Port A Input Pullup Enable Register PTAPUE

0x000E Port C Input Pullup Enable Register PTCPUE

0x000F Port D Input Pullup Enable Register PTDPUE

Page 7: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32

Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης

(i/o registers)Διεύθυνση Όνομα καταχωρητή Συντόμευση

0x0010 SPI Control Register SPCR

0x0011 SPI Status and Control Register SPSCR

0x0012 SPI Data Register SPDR

0x0013 SCI Control Register 1 SCC1

0x0014 SCI Control Register 2 SCC2

0x0015 SCI Control Register 3 SCC3

0x0016 SCI Status Register 1 SCS1

0x0017 SCI Status Register 2 SCS2

0x0018 SCI Data Register SCDR

0x0019 SCI Baud Register SCBR

0x001A Keyboard Status and control Register INTKBSCR

0x001B Keyboard Interrupt Enable Register INTKBIER

0x001C Time Base Module Control Register TBCR

0x001D IRQ Status and Control Register INTSCR

0x001E Configuration Register 2 CONFIG2

0x001F Configuration Register 1 CONFIG1

Page 8: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32

Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης

(i/o registers)Διεύθυνση Όνομα καταχωρητή Συντόμευση

0x0020 Timer 1 Status and Control Register T1SC

0x0021 Timer 1 Counter Register High T1CNTH

0x0022 Timer 1 Counter Register Low T1CNTL

0x0023 Timer 1 Counter Modulo Register High T1MODH

0x0024 Timer 1 Counter Modulo Register Low T1MODL

0x0025 Timer 1 Channel 0 Status and Control T1SC0

0x0026 Timer 1 Channel 0 Register High T1CH0H

0x0027 Timer 1 Channel 0 Register Low T1CH0L

0x0028 Timer 1 Channel 1 Status and Control T1SC1

0x0029 Timer 1 Channel 1 Register High T1CH1H

0x002A Timer 1 Channel 1 Register Low T1CH1L

0x002B Timer 2 Status and Control Register T2SC

0x002C Timer 2 Counter Register High T2CNTH

0x002D Timer 2 Counter Register Low T2CNTL

0x002E Timer 2 Counter Modulo Register High T2MODH

0x002F Timer 2 Counter Modulo Register Low T2MODL

Page 9: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32

Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης

(i/o registers)Διεύθυνση Όνομα καταχωρητή Συντόμευση

0x0030 Timer 2 Channel 0 Status and Control T2SC0

0x0031 Timer 2 Channel 0 Register High T2CH0H

0x0022 Timer 2 Channel 0 Register Low T2CH0L

0x0033 Timer 2 Channel 1 Status and Control T2SC1

0x0034 Timer 2 Channel 1 Register High T2CH1H

0x0035 Timer 2 Channel 1 Register Low T2CH1L

0x0036 PLL Control Register PCTL

0x0037 PLL Bandwidth Register PBWC

0x0038 PLL Multiplier Select High PMSH

0x0039 PLL Multiplier Select Low PMSL

0x003A PLL VCO Range Select Register PMRS

0x003B PLL Reference Divider Select Register PMDS

0x003C Analog-to-Digital Status and Control ADSCR

0x003D Analog-to-Digital Data Register ADR

0x003E Analog-to-Digital Clock Register ADCLK

0x003F Unimplemented U

Page 10: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32

Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης

(i/o registers)Διεύθυνση Όνομα καταχωρητή Συντόμευση

0xFE00 SIM Break Status Register SBSR

0xFE01 SIM Reset Status Register SRSR

0xFE02 SIM Upper Byte Address Register SUBAR

0xFE03 SIM Break Flag Control Register SBFCR

0xFE04 Interrupt Status Register 1 INT1

0xFE05 Interrupt Status Register 2 INT2

0xFE06 Interrupt Status Register 3 INT3

0xFE07 Reserved R

0xFE08 FLASH Control Register FLCR

0xFE09 Break Address Register High BRKH

0xFE0A Break Address Register Low BRKL

0xFE0B Break Status and Control Register BRKSCR

0xFE0C LVI Status Register LVISR

0xFF7E FLASH Block Protect Register FLBPR

0xFFFF COP Control Register COPCTL

0xFE00 SIM Break Status Register SBSR

Page 11: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32

Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης

(vectors)Διεύθυνση Όνομα ανύσματος

0xFFFF Reset Vector (Low)

0xFFFE Reset Vector (High)

0xFFFD SWI Vector (Low)

0xFFFC SWI Vector (High)

0xFFFB IRQ Vector (Low)

0xFFFA IRQ Vector (High)

0xFFF9 PLL Vector (Low)

0xFFF8 PLL Vector (High)

0xFFF7 TIM1 Channel 0 Vector (Low)

0xFFF6 TIM1 Channel 0 Vector (High)

0xFFF5 TIM1 Channel 1 Vector (Low)

0xFFF4 TIM1 Channel 1 Vector (High)

0xFFF3 TIM1 Overflow Vector (Low)

0xFFF2 TIM1 Overflow Vector (High)

0xFFF1 TIM2 Channel 0 Vector (Low)

0xFFF0 TIM2 Channel 0 Vector (High)

Page 12: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32

Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης

(vectors)Διεύθυνση Όνομα ανύσματος

0xFFEF TIM2 Channel 1 Vector (Low)

0xFFEE TIM2 Channel 1 Vector (High)

0xFFED TIM2 Overflow Vector (Low)

0xFFEC TIM2 Overflow Vector (High)

0xFFEB SPI Receive Vector (Low)

0xFFEA SPI Receive Vector (High)

0xFFE9 SPI Transmit Vector (Low)

0xFFE8 SPI Transmit Vector (High)

0xFFE7 SCI Error Vector (Low)

0xFFE6 SCI Error Vector (High)

0xFFE5 SCI Receive Vector (Low)

0xFFE4 SCI Receive Vector (High)

0xFFE3 SCI Transmit Vector (Low)

0xFFE2 SCI Transmit Vector (High)

0xFFE1 Keyboard Vector (Low)

0xFFE0 Keyboard Vector Vector (High)

Page 13: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32

Ο μικροελεγκτής M68HC908GP32 Χάρτης μνήμης

(vectors)Διεύθυνση Όνομα ανύσματος

0xFFDF ADC Conversion Complete Vector (Low)

0xFFDE ADC Conversion Complete Vector (High)

0xFFDD Timebase Vector (Low) Vector (High)

0xFFDC Timebase Vector (High)

Page 14: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32

Ο μικροελεγκτής M68HC908GP32 Ενσωματωμένα περιφερειακά συστήματα

Το υποσύστημα ADC

Το υποσύστημα μετατροπής αναλογικού σήματος σε ψηφιακό (ADC – Analog to Digital Converter) διαθέτει 8 κανάλια εισόδου (δηλαδή δυνατότητα καταγραφής 8 διαφορετικών αναλογικών σημάτων από το εξωτερικό περιβάλλον μέσω των ακροδεκτών της θύρας Β) με 8-bit ακρίβεια. Η διαδικασία μετατροπής πραγματοποιείται με την τεχνική διαδοχικών προσεγγίσεων (successive approximation ADC).

Το υποσύστημα BRK

Το υποσύστημα διακοπής λειτουργίας (BRK – Break Module) προκαλεί διακοπή που σταματά την ομαλή εκτέλεση του προγράμματος σε προκαθορισμένη διεύθυνση μνήμης, για την εξυπηρέτηση της εκτέλεσης ενός ετέρου προγράμματος.

Το υποσύστημα CGMC

Το υποσύστημα παραγωγής ρολογιού (CGMC – Clock Generator Module) δημιουργεί το εσωτερικό ρολόι συγχρονισμού του μικροελεγκτή, ενώ διαθέτει και σύστημα ελέγχου PLL (Phase-Locked-Loop).

Page 15: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32

Ο μικροελεγκτής M68HC908GP32 Ενσωματωμένα περιφερειακά συστήματα

Το υποσύστημα COPΤο υποσύστημα ελέγχου ορθής λειτουργίας υπολογιστή (COP – Computer Operating Properly) εποπτεύει την ορθή λειτουργία του μικροελεγκτή, προκαλώντας επανεκκίνηση στον τελευταίο όταν η ροή προγράμματος «παγώσει» αθέμιτα σε κάποιο σημείο (δηλαδή σε κάποια γραμμή του κώδικα).

Το υποσύστημα IRQΤο υποσύστημα εξωτερικής διακοπής (IRQ – external interrupt) προκαλεί διακοπή στη ροή προγράμματος, όταν ανιχνευτεί αλλαγή τιμής στον ακροδέκτη IRQ του μικροελεγκτή (σήμα που προέρχεται από το εξωτερικό περιβάλλον).

Το υποσύστημα KBIΤο υποσύστημα διακοπής πληκτρολογίου (KBI – Keyboard Interrupt Module) προορίζεται για τον έλεγχο πληκτρολογίου που συνδέεται στους ακροδέκτες της θύρας Α μέσω εξωτερικής διακοπής.

Το υποσύστημα LVIΤο υποσύστημα παρεμπόδισης χαμηλής τάσης (LVI – Low Voltage Inhibit) εποπτεύει το επίπεδο της τάσης στον ακροδέκτη τροφοδοσίας (VDD), προκαλώντας την επανεκκίνηση του μικροελεγκτή όταν η τιμή της πέσει κάτω από ένα συγκεκριμένο όριο.

Page 16: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32

Ο μικροελεγκτής M68HC908GP32 Ενσωματωμένα περιφερειακά συστήματα

Το υποσύστημα SCIΤο υποσύστημα διεπαφής σειριακής επικοινωνίας (SCI – Serial Communication Interface) καθιστά εφικτή την ασύγχρονη σειριακή επικοινωνία του μικροελεγκτή με εξωτερικές μονάδες εισόδου/εξόδου.

Το υποσύστημα SIMΤο υποσύστημα SIM (System Integration Module) ελέγχει (σε συνεργασία με τη CPU08) όλες τις εσωτερικές διεργασίας του μικροελεγκτή (όπως π.χ. τη λειτουργία χαμηλής κατανάλωσης, τους μηχανισμούς διακοπής, κ.τ.λ.).

Το υποσύστημα SPIΤο υποσύστημα σειριακής περιφερειακής διεπαφής (SPI – Serial Peripheral interface) καθιστά εφικτή τη σύγχρονη σειριακή επικοινωνία του μικροελεγκτή με εξωτερικές περιφερειακές συσκευές.

Το υποσύστημα TBMΤο υποσύστημα TBM (Timebase module) παράγει περιοδικά επαναλαμβανόμενη διακοπή στη ροή προγράμματος, σε χρόνους που προκαθορίζει ο προγραμματιστής.

Page 17: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32

Ο μικροελεγκτής M68HC908GP32 Ενσωματωμένα περιφερειακά συστήματα

Το υποσύστημα TIMΤο υποσύστημα ρύθμισης χρόνου (TIM – Timer) διαθέτει δύο μετρητές για την καταγραφή/δημιουργία παλμών, ή ακόμη και την καταμέτρηση χρόνου με υψηλή ακρίβεια. Το υποσύστημα αυτό διαθέτη επίσης και μηχανισμό διαμόρφωσης εύρους παλμού (PWM – Pulse Width Modulation).

Page 18: Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.3 (Ο μικροελεγκτής M68HC908GP32)

Αρχές Προγραμματισμού Χαμηλού Επιπέδου & Εφαρμογές με το Μικροελεγκτή M68HC908GP32

Ευχαριστώ για την προσοχή σας