Σελ. Θεωρία : Θεωρητική εισαγωγή στους µικροελεγκτές MSP430. Τίτλος

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Σελ. Θεωρία : Θεωρητική εισαγωγή στους µικροελεγκτές MSP430. Τίτλος"

Transcript

1 Περιεχόµενα Τίτλος Σελ. Θεωρία : Θεωρητική εισαγωγή στους µικροελεγκτές MSP Μικροελεγκτές γενικά Μικροελεγκτές vs. Μικροεπεξεργαστές Οικογένειες MSP ez430-f2013 και βασική πλακέτα IAR Embedded Workbench RF επικοινωνία µε το ez430-rf Χαµηλού κόστους γνωριµία µε τους MSP Άσκηση 1 η : Εισαγωγή στην οικογένεια µικροελεγκτών MSP430F20xx Αρχιτεκτονική MSP Καταχωρητές ιευθυνσιοδότηση Μνήµη Τρόποι λειτουργίας Περιφερειακά Μακροεντολές Άσκηση Άσκηση 2 η : Εισαγωγή στο eζ430-f2013 µε χρήση του IAR Embedded Workbench, ενός αναπτυξιακού περιβάλλοντος για τα MSP Παρουσίαση και Εγκατάσταση ez Έναρξη IAR Embedded Workbench ηµιουργία νέου project Ρυθµίσεις-Compiling Debugging Άσκηση Άσκηση 3 η : Λειτουργίες Εισόδου εξόδου (Digital I/O) Εισαγωγή Καταχωρητές Παραδείγµατα Άσκηση Άσκηση 4 η : Αριθµητικές και λογικές πράξεις Εφαρµογές Πράξεις µε τις ψηφιακές εισόδους Λειτουργία πληκτρολογίου 4x Άσκηση Άσκηση 5 η : Σήµατα διακοπής (Interrupts) Εισαγωγή Καταχωρητές Παραδείγµατα Άσκηση Άσκηση 6 η : Χρονιστές / Απαριθµητές (Timers) Εισαγωγή Basic Clock Module Watchdog timer Timer A Capture-Compare modes

2 Καταχωρητές Σήµατα διακοπής Παραδείγµατα Άσκηση Άσκηση 7 η : Μετατροπέας αναλογικού σήµατος σε ψηφιακό µε Σίγµα έλτα ιαµόρφωση (SD16) A/DC Γενικά Σίγµα έλτα ιαµόρφωση(σ )-Block ιάγραµµα Καταχωρητές του SD16_A Modes - Temp Sensor Παραδείγµατα Άσκηση Άσκηση 8 η : Σειριακή επικοινωνία(usi) Εισαγωγή SPI I 2 C Καταχωρητές Παραδείγµατα Άσκηση Άσκηση 9 η : Εισαγωγή στην RF επικοινωνία µε χρήση του ez430 - RF Εισαγωγή-Παρουσίαση του ez430-rf Εγκατάσταση του ez430-rf Εισαγωγή στον ποµποδέκτη CC Sensor Monitor Visualizer SimpliciTI Παραδείγµατα Άσκηση Παράρτηµα 1 ο : Εισαγωγή στο Code Composer Studio (CCStudio) IDE Εισαγωγή στο Code Composer Studio v4 (IDE) Εγκατάσταση Έναρξη CCStudio ηµιουργία νέου project Ρυθµίσεις Debugging Σχόλια Παράρτηµα 2 ο : Οδήγηση οθόνης υγρών κρυστάλλων 2x Εισαγωγή Pinout Εντολές Αρχικοποίηση και σύνδεση LCD driver header for MSP430(ο κώδικας) Παράρτηµα 3 ο : Βοηθητικές πλακέτες PCB Εισαγωγή Κεντρική πλακέτα προγραµµατισµού Πλακέτα πληκτρολογίου 4x4(keypad) Πλακέτα προγραµµατισµού MSP430x20x DIP Βιβλιογραφία Χρησιµοποιούµενη βιβλιογραφία Έγγραφα και βιβλία Internet Sites

3 Μικροελεγκτές γενικά Ο µικροελεγκτής είναι ένας τύπος επεξεργαστή, ουσιαστικά µια παραλλαγή µικροεπεξεργαστή, ο οποίος µπορεί να λειτουργήσει µε ελάχιστα εξωτερικά εξαρτήµατα, λόγω των πολλών ενσωµατωµένων υποσυστηµάτων που διαθέτει. Χρησιµοποιείται ευρύτατα σε όλα τα ενσωµατωµένα συστήµατα (embedded systems) ελέγχου χαµηλού και µεσαίου κόστους, όπως αυτά που χρησιµοποιούνται σε αυτοµατισµούς, ηλεκτρονικά καταναλωτικά προϊόντα (από ψηφιακές φωτογραφικές µηχανές έως παιχνίδια), ηλεκτρικές συσκευές και κάθε είδους αυτοκινούµενα τροχοφόρα οχήµατα. Με τη µείωση του µεγέθους, του κόστους, και της κατανάλωσης ισχύος έναντι ενός µικροεπεξεργαστή, οι µικροελεγκτές καθιστούν οικονοµικό τον έλεγχο (ηλεκτρονικά) στις πολλές περισσότερες διαδικασίες. Μικροελεγκτές vs. Μικροεπεξεργαστές Στους σύγχρονους µικροεπεξεργαστές για µη ενσωµατωµένα συστήµατα (πχ τους µικροεπεξεργαστές των προσωπικών υπολογιστών), δίνεται έµφαση στην υπολογιστική ισχύ. Η ευελιξία ανάπτυξης διαφορετικών εφαρµογών είναι µεγάλη, καθώς η λειτουργικότητα του τελικού συστήµατος καθορίζεται από τα εξωτερικά περιφερειακά τα οποία διασυνδέονται µε την κεντρική µονάδα (µικροεπεξεργαστή), η οποία δεν είναι εξειδικευµένη. Αντίθετα, στους µικροεπεξεργαστές για ενσωµατωµένα συστήµατα (µικροελεγκτές), οι οποίοι έχουν µικρότερες ή και µηδαµινές δυνατότητες συνεργασίας µε εξωτερικά περιφερειακά, αυτού του είδους, η ευελιξία είναι περιορισµένη, καθώς και η υπολογιστική ισχύς. Οι µικροελεγκτές δίνουν έµφαση στο µικρό αριθµό ολοκληρωµένων κυκλωµάτων που απαιτείται για τη λειτουργία µιας συσκευής, το χαµηλό κόστος και την εξειδίκευση. Αναλυτικά, τα πλεονεκτήµατα των µικροελεγκτών είναι: Αυτονοµία, µέσω της ενσωµάτωσης σύνθετων περιφερειακών υποσυστηµάτων όπως µνήµες και θύρες επικοινωνίας. Έτσι πολλοί µικροελεγκτές δεν χρειάζονται κανένα άλλο ολοκληρωµένο κύκλωµα για να λειτουργήσουν. Η ενσωµάτωση περιφερειακών σηµαίνει ευκολότερη υλοποίηση εφαρµογών λόγω των απλούστερων διασυνδέσεων. Επίσης, οδηγεί σε χαµηλότερη κατανάλωση ισχύος, µεγιστοποιώντας τη φορητότητα και ελαχιστοποιεί το κόστος της συσκευής στην οποία ενσωµατώνεται ο µικροελεγκτής. Χαµηλό κόστος. Μεγαλύτερη αξιοπιστία, και πάλι λόγω των λιγότερων διασυνδέσεων. Μειωµένες εκποµπές ηλεκτροµαγνητικών παρεµβολών και µειωµένη ευαισθησία σε αντίστοιχες παρεµβολές από άλλες ηλεκτρικές και ηλεκτρονικές συσκευές. Το πλεονέκτηµα αυτό προκύπτει από το µικρότερο αριθµό και µήκος εξωτερικών διασυνδέσεων καθώς και τις χαµηλότερες ταχύτητες λειτουργίας. Περισσότεροι διαθέσιµοι ακροδέκτες για ψηφιακές εισόδους-εξόδους (για δεδοµένο µέγεθος ολοκληρωµένου κυκλώµατος), λόγω της µη δέσµευσής τους για τη σύνδεση εξωτερικών περιφερειακών. Μικρό µέγεθος συνολικού υπολογιστικού συστήµατος

4 Οικογένειες MSP430 Οικογένεια MSP430x1xx Η οικογένεια MSP430x1xx είναι η βασική σειρά των MSP430 χωρίς ενσωµατωµένο οδηγό για οθόνη υγρών κρυστάλλων(lcd). Είναι γενικά µικρότερα από της οικογένειας MSP430x3xx. Έχοντας Flash ή ROM µνήµη προσφέρουν 8 MIPS, V τάση λειτουργίας, µέχρι 60 KB Flash, καθώς και ένα ευρύ φάσµα της αναλογικών και ψηφιακών περιφερειακών. Χαρακτηριστικά ισχύος χαµηλά µέχρι... o 0.1 µa RAM retention o 0.7 µa real-time clock mode o 200 µa / MIPS active o Feature Fast Wake-Up From Standby Mode in <6 µs Χαρακτηριστικά Συσκευών o Μνήµη Flash: 1 60 KB o Μνήµη ROM: 1 16 KB o Μνήµη RAM: 512 B 10 KB o Επιλογές GPIO: 14, 22, 48 pins o Επιλογές ADC: Slope, 10 & 12-bit SAR Ενσωµατωµένα περιφερειακά o Analog Comparator o DMA o Hardware Multiplier o SVS o 12-bit DAC Οικογένεια MSP430x2xx Οι µικροελεγκτές της οικογένειας MSP430F2xx είναι παρόµοιοι µε της οικογένειας MSP430x1xx, αλλά λειτουργούν µε χαµηλότερη κατανάλωση ενέργειας, υποστηρίζοντας µέχρι και 16 MHz λειτουργίας. Έχουν και πιο σταθερό ενσωµατωµένο ρολόι (±2%) που τους δίνει την επιλογή να µην χρησιµοποιούν εξωτερικό κρύσταλλο. Έχοντας Flash ή ROM µνήµη προσφέρουν V τάση λειτουργίας. Έχουν ενσωµατωµένο ταλαντωτή (VLO), εσωτερικούς pull-up/pulldown αντιστάτες και επιλογές και λίγων GPIO. Χαρακτηριστικά ισχύος χαµηλά µέχρι... o µa RAM retention o 0.3 µa Standby mode (VLO) o 0.7 µa real-time clock mode o 220 µa / MIPS active o Feature Ultra-Fast Wake-Up From Standby Mode in <1 µs Χαρακτηριστικά Συσκευών o Μνήµη Flash: KB o Μνήµη RAM: 128 B 8 KB o Επιλογές GPIO: 10, 16, 24, 32, 48, 64 pins o Επιλογές ADC: Slope, 10 & 12-bit SAR, 16-bit Sigma Delta Ενσωµατωµένα περιφερειακά o Analog Comparator - 7 -

5 o Hardware Multiplier o DMA o SVS o 12-bit DAC o Op Amps Οικογένεια MSP430xG2xx Στην οικονοµική οικογένεια MSP430G2xx προσφέρονται συσκευές µε µνήµες flash µε 16 MIPS και V τάσης λειτουργίας. Έχουν ενσωµατωµένο ταλαντωτή (VLO), εσωτερικούς pull-up/pull-down αντιστάτες και επιλογές και λίγων GPIO. Γενικά προσφέρουν απόδοση 16-bit σε τιµές 8-bit. Χαρακτηριστικά ισχύος χαµηλά µέχρι...2.2v o µa RAM retention o 0.4 µa Standby mode (VLO) o 0.7 µa real-time clock mode o 220 µa / MIPS active o Ultra-Fast Wake-Up From Standby Mode in <1 µs Χαρακτηριστικά Συσκευών o Μνήµη Flash: KB o Μνήµη RAM: 128 B o Επιλογές GPIO: 10, 16, 24 pins o Επιλογές ADC: Slope, 10-bit SAR Ενσωµατωµένα περιφερειακά o Analog Comparator Οικογένεια MSP430x3xx Η οικογένεια MSP430x3xx είναι η πιο παλιά και σχεδιάστηκε για φορητές εφαρµογές έχοντας ενσωµατωµένο οδηγό για οθόνη υγρών κρυστάλλων(lcd). εν υποστηρίζει µνήµη EEPROM, µόνο ROM και UV-διαγράψιµη και µιας φοράς προγραµµατιζόµενη EPROM. Οι επόµενες οικογένειες υποστηρίζουν µόνο flash και ROM µνήµες. Τάση λειτουργίας V και µνήµες µέχρι 32 KB ROM. Χαρακτηριστικά ισχύος χαµηλά µέχρι... o µa RAM retention o 0.9 µa real-time clock mode o 160 µa / MIPS active o Feature Fast Wake-Up From Standby Mode in <6 µs Χαρακτηριστικά Συσκευών o Μνήµη ROM: 2 32 KB o Μνήµη RAM: 512 B 1 KB o Επιλογές GPIO: 14, 40 pins o Επιλογές ADC: Slope, 14-bit SAR Ενσωµατωµένα περιφερειακά o Οδηγός LCD o Hardware Multiplier - 8 -

6 Οικογένεια MSP430x4xx Οι συσκευές στην οικογένεια MSP430x4xx είναι παρόµοιες µε της MSP430x3xx, και ενσωµατώνουν επίσης οδηγό για LCD, αλλά είναι µεγαλύτερες και πιο ικανές. Έχοντας Flash ή ROM µνήµη προσφέρουν 8-16 MIPS σε V τάση λειτουργίας, ενσωµατώνουν FLL και SVS. Ιδανικά για χαµηλής ισχύος µετρητικά συστήµατα και ιατρικές εφαρµογές. Χαρακτηριστικά ισχύος χαµηλά µέχρι... o µa RAM retention o 0.7 µa real-time clock mode o 200 µa / MIPS active o Feature Fast Wake-Up From Standby Mode in <6 µs Χαρακτηριστικά Συσκευών o Flash/ROM Options: 4 kb 120 KB o RAM Options: 256 B 8 KB o GPIO Options: 14, 32, 48, 56, 68, 72, 80 pins o ADC Options: Slope, 10 &12-bit SAR, 16-bit Sigma Delta Ενσωµατωµένα περιφερειακά o Οδηγός LCD o Analog Comparator o 12-bit DAC o DMA o Hardware Multiplier o Op Amp o USCI Modules Οικογένεια MSP430x5xx Οι συσκευές της οικογένειας MSP430x5xx δουλεύουν µέχρι 25 MHz, έχουν µνήµη flash µέχρι 256 kb και µνήµη RAM µέχρι 16 kb. Έχουν ελάχιστη κατανάλωση φτάνοντας επιδόσεις όπως 25 MIPS σε V τάση λειτουργίας (165 ua/mips). Ενσωµατώνει ένα µοναδικό περιφερειακό διαχείρισης ενέργειας για απόλυτα χαµηλή. Πολλές συσκευές έχουν ενσωµατωµένο οδηγό για USB. Χαρακτηριστικά ισχύος χαµηλά µέχρι... o µa RAM retention o 2.5 µa real-time clock mode o 165 µa / MIPS active o Feature Fast Wake-Up From Standby Mode in <5 µs Χαρακτηριστικά Συσκευών o Flash Options: up to 256 KB o RAM Options: up to 16 KB o ADC Options: 10 & 12-bit SAR Ενσωµατωµένα περιφερειακά o USB o Analog Comparator o DMA o Hardware Multiplier o RTC o USCI o 12-bit DAC - 9 -

7 ez430-f2013 και βασική πλακέτα Το ez430-f2013 είναι ένα πλήρες αναπτυξιακό εργαλείο παρέχοντας το κατάλληλο υλικό και λογισµικό για την αξιολόγηση του MSP430F2013 σε µια βολική µορφή USB stick που χρησιµοποιεί SpyBiWire προγραµµατιστή (2 pins σε αντίθεση µε το κλασικό JTAG που χρησιµοποιεί 4 pins).προσφέρει και τα 14 pins του MSP430F2013 έτοιµα για χρήση και σύνδεση. Για την καλύτερη κατανόηση, ευκολία και λειτουργικότητα σχεδιάστηκε η βασική πλακέτα για την τοποθέτηση του ez430-f2013 και τον έλεγχό του. Στην πλακέτα αυτή έχει τοποθετηθεί µια βάση για την τοποθέτηση του ez430-f2013 καθώς και µια σειρά από buttons για το port 1 του µικροελεγκτή σε συνδυασµό µε led για τον οπτικό έλεγχο των προγραµµάτων

8 IAR Embedded Workbench Το IAR Embedded Workbench για τους µικροελεγκτές MSP430 είναι ένα ολοκληρωµένο περιβάλλον ανάπτυξης (IDE) για τον προγραµµατισµό και την αποσφαλµάτωση ενσωµατωµένων εφαρµογών. Ο περιορισµός του κώδικα σε C / C++ είναι 4 KΒ για τις παραδοσιακές συσκευές MSP430 και 8 KΒ για MSP430X συσκευές µε > 60KB Flash. Με πολύ οικείο γραφικό περιβάλλον και πληθώρα επιλογών βοηθά στην κατανόηση του κώδικα από το χρήστη

9 RF επικοινωνία µε το ez430-rf2500 Το ez430-rf2500 είναι ένα ολοκληρωµένο αναπτυξιακό εργαλείο που περιλαµβάνει όλο το υλικό και το λογισµικό που απαιτείται για την λειτουργία ενός ασύρµατου συστήµατος µε τους MSP430 σε ένα USB stick. Χρησιµοποιεί τον MSP430F22x4 και τον CC2500, έναν πολυκάναλο ποµποδέκτη RF για χαµηλής ισχύος ασύρµατες εφαρµογές. Ο USB προγραµµατιστής του ez430-rf2500 προσφέρει έναν ελεγκτή UART δηµιουργώντας µια θύρα για απευθείας σειριακή επικοινωνία µε το αναπτυξιακό. Επίσης µπορεί να προγραµµατίσει και τις εκδόσεις των ez430-f2013 και ez430-f2012. Στο πακέτο του RF2500 περιέχεται ότι χρειάζεται για µια πρώτη γνωριµία στα ασύρµατα δίκτυα αισθητήρων(wsn). Χαµηλού κόστους γνωριµία µε τους MSP430 Με έναν πρόχειρο υπολογισµό µπορούµε να δούµε πως για µια ολοκληρωµένη επαφή µε τους MSP430 µέσα από µια σειρά ασκήσεων χρησιµοποιώντας τα αναπτυξιακά εργαλεία που παρουσιάστηκαν παραπάνω, το λογισµικό, την βασική πλακέτα που σχεδιάστηκε γι αυτό το σκοπό αλλά και προσθέτοντας κάποια εξαρτήµατα ακόµα όπως:buzzer, keypad, σερβοκινητήρας, LCD κλπ ez430-f2013 $ ez430-rf2500 $ IAR Embedded Workbench Kickstart (4KB) Free Κεντρική πλακέτα προγραµµατισµού(pcb και υλικά) Περίπου 20 Άλλα εξαρτήµατα Μέχρι 20 ΣΥΝΟΛΟ

10 - 13 -

11 - 14 -

12 Αρχιτεκτονική MSP430F20xx Στο κεφάλαιο αυτό παρουσιάζουµε τα βασικά χαρακτηριστικά της οικογένειας µικροεπεξεργαστών msp430x20xx της εταιρίας Texas Instruments. Oι µικροεπεξεργαστές της οικογένειας αυτής διαθέτουν 16-bit RISC αρχιτεκτονική, ποικιλία περιφερειακών και ευέλικτο σύστηµα χρονισµού καθώς επίσης και προγραµµατιζόµενη µνήµη FLASH, η οποία καθιστά εύκολες και γρήγορες τις αλλαγές στον κώδικα. Η διασύνδεση πραγµατοποιείται µε αρχιτεκτονική von Neumann, όπου οι δίαυλοι ΜΑΒ και MDB για την µνήµη διευθυνσιοδότησης και δεδοµένων, είναι κοινοί. Ορισµένες από τις περιφερειακές συσκευές που υποστηρίζονται είναι ένας 12-bit A/D µετατροπέας, timers, USART(s), ένας Watchdog timer, ένας πολλαπλασιαστής υλικού, κ.α. Τα χαρακτηριστικά τους αυτά τους καθιστούν κατάλληλους για διάφορες και απαιτητικές εφαρµογές. Εξίσου σηµαντική είναι η δυνατότητα των επεξεργαστών αυτών να καταναλώνουν λιγότερα από 250 µα σε ενεργό τρόπο λειτουργίας, ενώ µπορούν να αφυπνιστούν σε λιγότερο από 6 µs. Σε κατάσταση αναµονής η κατανάλωση είµαι µικρότερη από 2 µα. Συνεπώς οι msp430 είναι κατάλληλοι για φορητές εφαρµογές µε απαίτηση για πολύ µικρή κατανάλωση. εικ.1 Block διάγραµµα του MSP430F20x3-15 -

13 Καταχωρητές H CPU υποστηρίζει χαρακτηριστικά ειδικά σχεδιασµένα για τις σύγχρονες προγραµµατιστικές τεχνικές όπως η υποστήριξη υψηλού επιπέδου γλωσσών προγραµµατισµού σαν τη C. Ορισµένα από τα χαρακτηριστικά αυτά είναι: 1. RISC αρχιτεκτονική 27 εντολών και 7 µεθόδων διευθυνσιοδότησης. 2. Πλήρης πρόσβαση στους καταχωρητές συµπεριλαµβανοµένων του µετρητή προγράµµατος(pc), του καταχωρητή κατάστασης(sr) και του δείκτη στοίβας(sp). 3. Κάθε εντολή µπορεί να χρησιµοποιηθεί µε κάθε µέθοδο διευθυνσιοδότησης. 4. Λειτουργίες καταχωρητή ενός κύκλου. 5. Ο 16bit δίαυλος διευθύνσεων επιτρέπει απευθείας πρόσβαση σε ολόκληρη τη µνήµη και άµεσο χειρισµό όλων των λέξεων. 6. Η γεννήτρια σταθερών παρέχει τις έξι πιο εύχρηστες άµεσες σταθερές µειώνοντας έτσι τις ανάγκες σε κώδικα. 7. Άµεση µεταφορά από µνήµη σε µνήµη, χωρίς τη µεσολάβηση καταχωρητή. 8. Format εντολών και διευθύνσεων τόσο για χειρισµό λέξεων όσο και bytes. H CPU διαθέτει 16 καταχωρητές των 16bit. Οι καταχωρητές R0,R1,R2 και R3 έχουν ειδικές λειτουργίες ενώ οι καταχωρητές R4- R15 είναι για γενική χρήση. Ο R0 χρησιµοποιείται σαν µετρητής προγράµµατος (PC) και η λειτουργία του είναι να δείχνει την επόµενη προς εκτέλεση εντολή. Ο R1 χρησιµοποιείται σαν δείκτης στοίβας. Η λειτουργία του είναι να αποθηκεύει τη διεύθυνση επιστροφής από κάποια υπορουτίνα ή από ρουτίνα εξυπηρέτησης διακοπής. Οι τρόποι λειτουργίας του µικροελεγκτή ελέγχονται από την τιµή που θα έχει ο R2 στον οποίο θα αναφερθούµε παρακάτω. εικ.2 Καταχωρητές MSP430 Mε τους καταχωρητές R2 και R3 παράγονται έξι σταθερές που χρησιµοποιούνται ευρέως στον προγραµµατισµό, ώστε να µη χρειάζεται επιπλέον κώδικας. Οι υπόλοιποι 12 καταχωρητές χρησιµοποιούνται για γενικό σκοπό. Μπορούν να χρησιµοποιηθούν σαν καταχωρητές δεδοµένων, δείκτες διευθύνσεων ή να περιέχουν κάποιες τιµές και µπορούν να προσπελαστούν µε εντολές λέξης ή byte

14 Μέθοδοι ιευθυνσιοδότησης Εντολές Υπάρχουν 7 µέθοδοι για τον τελεστή πηγής και άλλοι 4 για τον τελεστή προορισµού, οι οποίοι µπορούν να διευθυνσιοδοτήσουν τον πλήρη χώρο διευθύνσεων εικ.3 Μέθοδοι διευθυνσιοδότησης MSP430 Το πλήρες σετ εντολών αποτελείται από 27 βασικές εντολές και άλλες 24 που εξοµοιώνονται. Τα format των βασικών εντολών είναι: 1. ιπλού τελεστή 2. Απλού τελεστή 3. Άλµατος Όλες οι εντολές απλού ή διπλού τελεστή µπορεί να είναι είτε λέξης είτε byte. Λυτό καθορίζεται από την κατάληξη.b ή.w. Οι εντολές byte χρησιµοποιούνται για να προσπελάσουν bytes δεδοµένων ή περιφερειακών. Οι εντολές λέξης χρησιµοποιούνται για να προσπελάσουν λέξεις δεδοµένων ή περιφερειακών

15 εικ.4 εικ.5 εικ.6 Οι εντολές εξοµοίωσης κάνουν τον κώδικα πιο εύκολο να διαβαστεί και να γραφτεί, αλλά αντικαθίστανται αυτόµατα από τον assembler µε βασικές εντολές χωρίς να χαθούν κύκλοι εντολών

16 εικ.7 Περισσότερα για τις εντολές(κύκλοι εντολών κλπ) µπορείτε να βρείτε στο MSP430x2xx Family User s Guide Μνήµη Οι µικροελεγκτές MSP430 έχουν τον ίδιο χώρο διευθύνσεων για τους καταχωρητές, τη flash memory/rom, τη RAM και τα περιφερειακά. Αυτό έχει σαν αποτέλεσµα να χρησιµοποιούν τις ίδιες εντολές για προσπέλαση στη µνήµη και τα περιφερειακά. Τα δεδοµένα µπορούν να προσπελαστούν είτε µε εντολές λέξεων είτε µε εντολές byte. Ο κώδικας εκτελείται από την µνήµη RAM

17 εικ.8 Τα bytes τοποθετούνται σε άρτιες ή περιττές διευθύνσεις, όµως οι λέξεις τοποθετούνται µόνο σε άρτιες διευθύνσεις. Εποµένως όταν χρησιµοποιούµε εντολές λέξεων, µόνο άρτιες διευθύνσεις µπορούν να χρησιµοποιηθούν. Το χαµηλής τάξης byte της λέξης βρίσκεται πάντα σε άρτια διεύθυνση. Το υψηλής τάξης byte βρίσκεται στην επόµενη περιττή διεύθυνση από τη διεύθυνση της λέξης. Για παράδειγµα εάν η λέξη δεδοµένων τοποθετείται στη διεύθυνση xxx6h τότε το χαµηλής τάξης byte της λέξης τοποθετείται στη διεύθυνση xxx6h και το υψηλής τάξης byte της λέξης τοποθετείται στη διεύθυνση xxx7h. εικ

18 Τρόποι λειτουργίας Η οικογένεια MSP430 έχει σχεδιαστεί για εφαρµογές µε σηµαντικές απαιτήσεις για εξαιρετικά χαµηλή κατανάλωση ρεύµατος. Γι αυτό το λόγο χρησιµοποιεί διαφορετικούς τρόπους λειτουργίας χαµηλής κατανάλωσης ισχύος (low-power). Οι τρόποι αυτοί λειτουργίας λαµβάνουν υπόψη τρείς σηµαντικές ανάγκες: 1. Χαµηλή κατανάλωση. 2. Ελαχιστοποίηση της κατανάλωσης των περιφερειακών. 3. ιαθέσιµη επεξεργαστική ισχύς. εικ.10 εικ

19 εικ.12 ιάφορες τεχνικές οδηγούν σε ακόµη χαµηλότερη κατανάλωση ενέργειας. Βασικά προσπαθούµε να µεγιστοποιήσουµε την παραµονή στην κατάσταση LPM3. Η κατανάλωση στην κατάσταση αυτή είναι µικρότερη από 2 µa µε όλες τις διακοπές ενεργές και την λειτουργία του ρολογιού ενεργή. Τα περιφερειακά ενεργοποιούνται µόνο όταν είναι απαραίτητο. εικ.13 εικ

20 Περιφερειακά Μπορούµε να αναφερθούµε και να κατατάξουµε τα περιφερειακά συστήµατα της οικογένειας µικροελεγκτών MSP430 σε 4 κατηγορίες: 1. Timers Basic Clock Module / Basic Timer1 / Real-Time Clock(RTC) Watchdog (WDT/+) Timer_A / Timer_B 2. Communication Interfaces Universal Serial Interface(USI) o I 2 C/SPI Universal Serial Communication Interface(USCI) o USCI_A (UART/IrDA/SPI) o USCI_B (I 2 C/SPI) 3. ADCs Comparator_A/Slope ADC ADC10 ADC12 SD16/ SD16_A 4. Επιπρόσθετα περιφερειακά LCD Modules Op-amps Η οµάδα των MSP430 που θα ασχοληθούµε εµφανίζεται στον παρακάτω πίνακα. Μακροεντολές εικ.15 Οι µακροεντολές εµφανίζονται στον προγραµµατισµό των µικροελεγκτών. Τόσο στην C αλλά και στην Assembly, όπως θα δούµε στα επόµενα εργαστηριακά µαθήµατα πρέπει να ορίσουµε τη βιβλιοθήκη µακροεντολών του µικροελεγκτή που θα προγραµµατίσουµε, την οποία θα πρέπει να είµαστε σε θέση να διαβάζουµε κατανοώντας τους ορισµούς των καταχωρητών και τις τιµές τους. Άσκηση 1. Αναγνωρίστε από το datasheet του µικροελεγκτή που θα χρησιµοποιηθεί στις επόµενες εργαστηριακές ασκήσεις τα πλήρη ηλεκτρικά χαρακτηριστικά και καταγράψτε τα. 2. Αναγνωρίστε από το User s Guide του µικροελεγκτή που θα χρησιµοποιηθεί στις επόµενες εργαστηριακές ασκήσεις τα περιφερειακά που υποστηρίζει και καταγράψτε τα

21 - 24 -

22 Παρουσίαση του ez430-f2013 Το ez430-f2013 είναι ένα πλήρες αναπτυξιακό εργαλείο παρέχοντας το κατάλληλο υλικό και λογισµικό για την αξιολόγηση του MSP430F2013 σε µια βολική µορφή USB stick που χρησιµοποιεί SpyBiWire προγραµµατιστή (2 pins σε αντίθεση µε το κλασικό JTAG που χρησιµοποιεί 4 pins) Προσφέρει και τα 14 pins του MSP430F2013 έτοιµα για χρήση και σύνδεση. Θα χρησιµοποιήσουµε την αναπτυξιακή πλακέτα που υπάρχει στο εργαστήριο για τις παρακάτω ασκήσεις. Εγκατάσταση του ez430-f Αφού έχετε εγκαταστήσει το IAR Embedded Workbench (τοποθετήστε το CD που περιέχεται στο πακέτο και ακολουθήστε τα βήµατα στο µενού που ανοίγει) τοποθετήστε το ez430-f2013 σε µια θύρα USB του Η/Υ. 2. Όταν ξεκινήσει ο οδηγός της εγκατάστασης νέου υλικού δώστε σαν κατάλογο εύρεσης προγράµµατος οδήγησης τον: C:\Program Files\IAR Systems\Embedded Workbench 4.0\430\drivers\TIUSBFET\WinXP Έναρξη IAR Embedded Workbench Για να ανοίξουµε το IAR Embedded Workbench: Έναρξη όλα τα προγράµµατα IAR Systems IAR Embedded Workbench KickStart for MSP430 V4 IAR Embedded Workbench

23 ηµιουργία νέου project IAR Embedded Workbench integrated development environment (IDE) Η δοµή του IAR Embedded Workbench αποτελείται ιεραρχικά από: Workspace (που περιέχει project-projects) Project (που περιέχει file-files) File εικ. 1 Όταν ανοίγει το πρόγραµµα υπάρχει ήδη ένα έτοιµο Workspace 2. Create new project in current workspace 3. Empty project OK 4. Save(π.χ. project1) εικ. 2 εικ File Save Workspace(π.χ. tutorials) Save

24 Ρυθµίσεις-Compiling 6. Καλό θα ήταν σε αυτό το σηµείο να κάνουµε τις ρυθµίσεις αρχικοποίησης της συσκευής µας ώστε να συνεργάζεται µε το project. εξί κλικ στο project1 Debug Options ή Menu Project Options και κάνουµε τις ρυθµίσεις όπως στο σχήµα. εικ. 4 Για να επιλέξουµε αν θέλουµε να περάσουµε το πρόγραµµα στον µικροελεγκτή ή αν θέλουµε να κάνουµε προσοµοίωση µόνο στον υπολογιστή επιλέγουµε την κατάλληλη επιλογή στην καρτέλα Debugger FET Debugger Πρόγραµµα στον µικροελεγκτή ή Simulator Προσοµοίωση και ΟΚ. εικ Στη συνέχεια πρέπει να προσθέσουµε αρχεία µε τον εκτελέσιµο κώδικα(είτε σε Assembly, είτε σε C ή C++). εξί κλικ στο project1 Debug Add Add Files. Έστω ότι προσθέτουµε το αρχείο msp430x20x3_p1_01.c και το βλέπουµε στον editor(δεξί µεγάλο παράθυρο) µε διπλό κλικ. εικ Τώρα είµαστε έτοιµοι να κάνουµε compile:project Rebuild all. Προσέχουµε για λάθη στο παράθυρο µηνυµάτων!!!! εικ

25 9. Συνεχίζουµε µε Project Debug όπου βλέπουµε την παρακάτω οθόνη Debugging εικ. 8 Μπορούµε να ξεχωρίσουµε τα επιµέρους τµήµατα, εκτός από αυτά που ήδη γνωρίζουµε, σε: Γραµµή εργαλείων ροής του προγράµµατος(για το Debug) Disassembly Το Disassembly είναι ένα από τα πολλά «εργαλεία» που µπορούµε να δούµε µέσω του µενού View Τα πιο χρήσιµα εργαλεία και οι περιγραφές τους είναι: Breakpoints είχνει τα σηµεία ελέγχου που έχουµε ορίσει στο debugging Disassembly Ο κώδικάς µας µεταφρασµένος σε assembly Memory Γραφική απεικόνιση της µνήµης του µικροελεγκτή Register Οι καταχωρητές του µικροελεγκτή ανά οµάδες Watch Βλέπουµε τιµές µεταβλητών/καταχωρητών Locals είχνει αυτόµατα τιµές για τοπικές µεταβλητές Auto είχνει αυτόµατα τιµές ανάλογα µε τη ροή του προγράµµατος Live Watch Παίρνει δείγµατα συνέχεια για µεταβλητές/καταχωρητές, ακόµα και κατά τη διάρκεια εκτέλεσης του προγράµµατος Quick Watch Ένα γρήγορο δείγµα τιµής µεταβλητής /καταχωρητή Call Stack Εικονική αναπαράσταση του σωρού ανά ρουτίνες Terminal I/O Τερµατικό εισόδου/εξόδου Stack Απεικόνιση του σωρού του µικροελεγκτή Η γραµµή εργαλείων µε τα στοιχεία της µας επιτρέπουν τον έλεγχο του Debug. Τα στοιχεία και οι επιµέρους λειτουργίες τους είναι: εικ

26 10. Όπως βλέπουµε ο κέρσορας βρίσκεται στην πρώτη εκτελέσιµη γραµµή του προγράµµατός. Έχουµε δύο επιλογές: Άµεση εκτέλεση Βηµατική εκτέλεση 11. Βηµατική εκτέλεση προγράµµατος Ανοίγουµε το µενού των καταχωρητών από το View Register Πατώντας το Next statement βλέπουµε ότι εκτελέστηκε η πρώτη γραµµή του προγράµµατος και ο έλεγχος πέρασε στη δεύτερη γραµµή που είναι έτοιµη να εκτελεστεί. 12. Σε κάθε εντολή µπορούµε να ελέγχουµε τους καταχωρητές που εµπλέκονται, οι οποίοι εµφανίζονται µε έντονο χρώµα στο µενού Registers 13. Για να σταµατήσουµε τη διαδικασία του Debugging πατάµε Άσκηση 1. Πραγµατοποιείστε τα παραπάνω βήµατα ρυθµίζοντας κατάλληλα το IAR Embedded Workbench για να κάνετε προσοµοίωση στον MSP430F2013. Τρέξτε βηµατικά το πρόγραµµα και παρατηρείστε τις εγγραφές που γίνονται στους καταχωρητές. 2. Επαναλάβετε τα βήµατα µεταφέροντας το πρόγραµµα στον µικροελεγκτή. Καταγράψτε διαφορές. 3. Ανοίξτε το Workspace Flashing the LED από το παράθυρο στην εκκίνηση του IAR Embedded Workbench(εικ. 1). Example applications Flashing the LED Open Επιλέξτε τον κατάλογο που θα αποθηκευτούν τα αρχεία που θα δηµιουργηθούν Select Επιλέξτε κατάλληλο Project (εικ. 10) για τον µικροελεγκτή MSP430CG4619 και κάντε προσοµοίωση µε βηµατική εκτέλεση. 4. Επιλέξτε από το Flashing the LED το κατάλληλο πρόγραµµα σε γλώσσα C για τον µικροελεγκτή του ez430. (χρησιµοποιείστε πρόγραµµα ρυθµισµένο για προγραµµατιστή µε SpyBiWire. εικ

27 - 30 -

28 Εισαγωγή Οι µικροελεγκτές MSP430 έχουν µέχρι 8 ψηφιακές βαθµίδες εισόδου-εξόδου (I/O-ports), P1 έως P7. Κάθε port αποτελείται από 8 I/O pins. Κάθε I/O pin ρυθµίζεται ανεξάρτητα από τα υπόλοιπα σαν είσοδος ή έξοδος και µπορούµε να διαβάσουµε ή να γράψουµε την τιµή του ανεξάρτητα από τα άλλα. Επίσης µπορούµε να ορίζουµε στο καθένα εσωτερικούς αντιστάτες(pullup/pulldown). Τα P1 και P2 έχουν δυνατότητα σηµάτων διακοπής(interrupts). O F2013, µε τον οποίο κατά βάση θα ασχοληθούµε, έχει µόνο τα P1 και P2 διαθέσιµα. Από αυτά µπορούµε να διαχειριστούµε συνολικά 10 pins, τα 8 του P1 και τα P2.6 και P2.7 από το P2. Οι λειτουργίες των ports ορίζονται από τις τιµές των αντίστοιχων καταχωρητών. Καταχωρητές 1. PxIN Η τιµή των bits του καταχωρητή αντιστοιχεί στην τιµή που έχουν τα bits του port στην είσοδό τους όταν έχουν ρυθµιστεί ως είσοδοι. Bit=0 λογικό 0(low input) Bit=1 λογικό 1(high input) 2. PxOUT Η τιµή των bits του καταχωρητή αντιστοιχεί στην τιµή που πάρουν τα bits του port στην έξοδό τους όταν έχουν ρυθµιστεί ως έξοδοι χωρίς εσωτερικούς αντιστάτες. Bit=0 λογικό 0(low output) Bit=1 λογικό 1(high output) Με εσωτερικούς αντιστάτες ενεργοποιηµένους:. Bit=0 pulldown αντιστάτης Bit=1 pullup αντιστάτης 3. PxDIR Η τιµή των bits του καταχωρητή ορίζουν το κάθε pin σαν είσοδο(input) ή έξοδο(output)

29 Bit=0 input Bit=1 output 4. PxSEL Κάποια από τα pins έχουν εκτός από την κύρια λειτουργία τους (Ι/Ο) και δευτερεύουσες λειτουργίες µιας και χρησιµοποιούνται από περιφερειακές διατάξεις. Η τιµή των bits του καταχωρητή ορίζουν τη λειτουργία του αντίστοιχου pin: κύρια, δευτερεύουσα. Bit=0 κύρια λειτουργία pin Bit=1 δευτερεύουσα λειτουργία pin 5. PxREN Η τιµή των bits του καταχωρητή ενεργοποιεί/απενεργοποιεί στο κάθε pin τους εσωτερικούς αντιστάτες. Bit=0 ανενεργοί εσωτερικοί αντιστάτες Bit=1 ενεργοί εσωτερικοί αντιστάτες εικ. 1 εικ. 2 Με τους υπόλοιπους καταχωρητές που έχουν να κάνουν µε τα σήµατα διακοπής των port θα ασχοληθούµε σε επόµενο εργαστήριο

30 Παραδείγµατα 1. Αναβοσβήνει στο port 1 το pin 0 (P1.0) µε assembly #include "msp430x20x3.h" ; ORG 0F800h ; Program Reset ; RESET mov.w #0F80h,SP ; Initialize stack pointer StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop WDT SetupP1 bis.b #001h,&P1DIR ; P1.0 output Mainloop xor.b #001h,&P1OUT ; Toggle P1.0 Wait mov.w #050000,R15 ; Delay to R15 L1 dec.w R15 ; Decrement R15 jnz L1 ; Delay over? jmp Mainloop ; Again ; ; Interrupt Vectors ; ORG 0FFFEh ; MSP430 RESET Vector DW RESET ; END 2. Αναβοσβήνει στο port 1 το pin 0 (P1.0) µε C #include <msp430x20x3.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P1DIR = 0x01; // Set P1.0 to output direction for (;;) { volatile unsigned int i; P1OUT ^= 0x01; // Toggle P1.0 using exclusive-or i = 50000; // Delay do (i--); while (i!= 0);

31 Άσκηση 1. Παρατηρήστε τα παραδείγµατα. Καταγράψτε τις διαφορές και τις οµοιότητες ανάµεσα στα δύο προγράµµατα και εντοπίστε τη δοµή της κάθε γλώσσας προγραµµατισµού. 2. ηµιουργήστε ένα workspace στο IAR Embedded Workbench µε το όνοµα askhsh3 Προσθέστε ένα project για assembly µε όνοµα askhsh3-asm στο workspace askhsh3 και τοποθετήστε τον κώδικα του παραδείγµατος 1 στο αρχείο asm.s43 Προσθέστε ένα project για C µε όνοµα askhsh3-c στο workspace askhsh3 και τοποθετήστε τον κώδικα του παραδείγµατος 2 στο αρχείο main.c Εντοπίστε τους χώρους µνήµης που ορίζουν τα δύο προγράµµατα και καταγράψτε τα όριά τους. Τρέξτε βηµατικά και τα δύο. Παρατηρήστε και καταγράψτε τι κάνουν τα προγράµµατα. 3. Αλλάξτε την καθυστέρηση στα προγράµµατα σύµφωνα µε τον Α.Μ. σας και ρυθµίστε κατάλληλα ώστε να ανάβει/σβήνει pin στο P1 σύµφωνα µε το πρώτο ψηφίου του Α.Μ. σας(π.χ. Α.Μ.=28816=delay και θα ανάβει/σβήνει το P1.2) 4. Ρυθµίστε κατάλληλα ώστε να ανάβουν/σβήνουν µονά ή ζυγά pinς στο P1 σύµφωνα µε το τελευταίο ψηφίου του Α.Μ. σας(π.χ. Α.Μ.=28816 θα ανάβουν/σβήνουν τα ζυγά pins του P1, δηλ P1.0,2,4,6) 5. Τροποποιείστε τα προγράµµατα κατάλληλα ώστε να υλοποιούν το εξής πρόγραµµα: Έστω Α.Μ το οποίο έχει 5 ψηφία µε ψηφίο0=6 ψηφίο4=2. Όπου ψηφίοx εκτός ορίων παίρνουµε ψηφίοx/2(ακέραιος) εικ.3 6. ηµιουργήστε κατάλληλο πρόγραµµα το οποίο θα προσοµοιώνει το σήµα κινδύνου SOS. Υπενθυµίζουµε: εικ. 4 Χρησιµοποιήστε σαν έξοδο την P1.0 και αν t=χρόνος διάρκειας τελείας τότε 3*t=χρόνος διάρκειας παύλας

32 - 35 -

33 - 36 -

34 Πράξεις µε τις ψηφιακές εισόδους Στην άσκηση αυτή θα ασχοληθούµε µε αριθµητικές αλλά και λογικές πράξεις µε τον MSP430 σε assembly αλλά και C. Μερικές από τις εντολές αριθµητικών και λογικών πράξεων στην assembly: ADD - Add without carry ADDC - Add with carry SUB - Sub without carry SUBC - Sub with carry AND - Logical AND XOR - Logical XOR RRC- Rotate right with carry RLC- Rotate left with carry INC- Increment by 1 DEC- Decrement by 1 Έστω ότι θέλουµε να προσθέσουµε δύο δεκαεξαδικούς αριθµούς(35η και 27Η) και το αποτέλεσµα να το δούµε σαν έξοδο στο P1: Σε assembly: Σε C: mov.b #35h,R4 int a=0x27; mov.b #27h,R5 int b=0x35; add R4,R5 a=a+b; bis.b R5,&P1OUT P1OUT = a; Ενηµερωθείτε για τις εντολές αριθµητικών πράξεων τόσο από το πρώτο µέρος του φυλλαδίου, όσο και από το MSP430x2xx Family User s Guide Ενηµερωθείτε για τον τρόπο που χειρίζεται η C αριθµητικές και λογικές πράξεις Λειτουργία πληκτρολογίου 4x4 Μια ολοκληρωµένη ιδέα για να κατανοήσουµε τη χρήση των πράξεων γενικότερα σε Ι/Ο είναι το πληκτρολόγιο γενικής χρήσης(keypad) σαν αυτό που χρησιµοποιείται στα τηλέφωνα, σε συναγερµούς, τηλεχειριστήρια κλπ. εικ.1 Keypad 3 x

35 Στα πλαίσια της άσκησης παρουσιάζουµε ένα keypad 4x4 µε τις παρακάτω συνδέσεις και πλήκτρα: Το οποίο λειτουργεί βάση του επόµενου διαγράµµατος ροής: εικ

36 Ο κώδικας που το υλοποιεί σε C: #include <msp430x20x3.h> #include <stdio.h> int scan(void); int nextkey(char pr1); char const KEY[4][4] = {{'7','8','9','F', {'4','5','6','E', {'1','2','3','D', {'0','A','B','C'; void main( void ) {char press; WDTCTL = WDTPW + WDTHOLD; P1OUT = 0x00; P1DIR = 0xF0; while(1) {press = scan(); printf("%c",press); nextkey(press); int scan(void) {int i,j; char pressed=' '; P1OUT = 0x10; for( i = 0; i < 4; i++) { int k=1; for( j = 0; j < 4; j++) {if (P1IN == P1OUT + k) {pressed=key[i][j]; break; k=(k<<1); if( pressed!= ' ' ) break; P1OUT = (P1OUT << 1); return(pressed); int nextkey(char pr1) {char press2; while(1) {press2 = scan(); if( pr1 == press2 ) { else break; return(0);

37 ΑΣΚΗΣΗ 1. Αφού ενηµερωθείτε για τις εντολές αριθµητικών και λογικών πράξεων στην assembly δηµιουργήστε ένα Workspace στο IAR Workbench για την άσκηση και σε αυτό εισάγετε projects που θα δείχνουν τη λειτουργία της κάθε µιας από της εντολές: SUB, CMP, DADD, SWPB, INV. Παρατηρήστε τη συµπεριφορά τους στο debugger και σχολιάστε. 2. Ενηµερωθείτε για τις αντίστοιχες εντολές στη C και δηµιουργήστε αντίστοιχο Workspace µε το προηγούµενο µε projects σε C. Παρατηρήστε τη συµπεριφορά τους στο debugger και σχολιάστε. 3. Γράψτε κατάλληλο πρόγραµµα το οποίο θα ελέγχει την είσοδο στο P1 και : Α)Αν είναι ενεργοποιηµένη η είσοδος P0.0 να ενεργοποιείται η P0.6 Α)Αν είναι ενεργοποιηµένη η είσοδος P0.1 να ενεργοποιείται η P0.7 ΝΑ γραφεί σε assembly και C και να ελεγχθεί η λειτουργία τους 4. Ενηµερωθείτε για τις επαναληπτικές δοµές καθώς και για τις δοµές δεδοµένων στη C και µετά περιγράψτε τη λειτουργία του παρακάτω προγράµµατος: #include "msp430x20x3.h" #include "stdio.h" void main(void){ int i,j,tmp; int a[20]= {0x000C,0x0C62,0x0180,0x0D4A,0x00F0,0x0CCF,0x0C35,0x096E,0x02E4, 0x0BDB,0x0788,0x0AD7,0x0AC9,0x0D06,0x00EB,0x05CC,0x0AE3,0x05B7, 0x001D,0x0000; for (i=0; i<19; i++){ for (j=0; j<19-i; j++){ if (a[j+1] < a[j]) { tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; printf("changed %d",a[j]); printf(" with %d",a[j+1]); printf("\n"); for(int i = 0; i < 20; ++i){ printf("%d",a[i]); printf("\n"); while(1); 5. Εξηγήστε το διαγράµµατος ροής του πληκτρολογίου 4x4. Εξοµοιώστε και ελέγξτε τη λειτουργία του. Τροποποιείστε τον κώδικα κατάλληλα ώστε να µπορεί ύστερα από σωστή πληκτρολόγηση να εµφανίζει τις φράσεις ELECTRONICS DEPARTMENT και T.E.I. PIREA. Τέλος τροποποιείστε ξανά και τυπώστε το ονοµατεπώνυµό σας µε λατινικούς χαρακτήρες

38 - 41 -

39 - 42 -

40 Εισαγωγή Τα σήµατα διακοπής συνιστούν, ουσιαστικά, µια τεχνική αντίδρασης του µικροεπεξεργαστή. Σύµφωνα µε αυτήν, η CPU διακόπτει τη συνηθισµένη λειτουργία της, για να ανταποκριθεί αποτελεσµατικά σε ασύγχρονα γεγονότα ιδιαίτερης σηµασίας. Τέτοια γεγονότα µπορεί να είναι η διακοπή τροφοδοσίας, ένας συναγερµός, η παρέλευση ενός καθορισµένου χρονικού διαστήµατος ή ακόµα δεδοµένα έτοιµα για αποστολή από/σε κάποια περιφερειακή διάταξη κ.α. Στο υπολογιστικό σύστηµα των MSP430 αναγνωρίζουµε τριών ειδών σήµατα διακοπής: 1. System Reset 2. (Non) - maskable NMI (Υποχρεωτικό σήµα διακοπής) 3. Maskable (Προγραµµατιζόµενο σήµα διακοπής) Τα οποία υπηρετούνται βάση του παρακάτω διαγράµµατος: Καταχωρητές εικ.1 P1 και P2 Interrupts Κάθε pin στα P1 και P2 έχουν δυνατότητα ενεργοποίησης σηµάτων διακοπής ρυθµιζόµενα από τους καταχωρητές PxIFG, PxIE, και PxIES 1. PxIFG Bit=0 δεν εκκρεµεί σήµα διακοπής Bit=1 εκκρεµεί σήµα διακοπής 2. PxIES Bit=0 Ο PxIFG έχει ορίζεται για µετάβαση 0 1 Bit=1 Ο PxIFG έχει ορίζεται για µετάβαση PxIE Κάθε PxIE bit ενεργοποιεί το αντίστοιχο PxIFG bit Bit=0 Σήµα διακοπής απενεργοποιηµένο Bit=1 Σήµα διακοπής ενεργοποιηµένο Watchdog Timer Interrupts Αν και µε τον Watchdog timer θα ασχοληθούµε στο επόµενο µάθηµα θα δούµε κάποια παραδείγµατα που έχουν να κάνουν µε τα σήµατα διακοπής του που ορίζονται σχετικά εύκολα

41 Παραδείγµατα Ορισµός του P1.4 ώστε να δηµιουργεί ένα σήµα διακοπής για µετάβασή του από 1 σε 0 και υπηρέτησή του αλλάζοντας την κατάσταση του P1.0 Παράδειγµα 1(assembly) #include "msp430x20x3.h" ; ORG 0F800h ; Program Reset ; RESET mov.w #0280h,SP ; Initialize stack pointer StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop WDT SetupP1 mov.b #001h,&P1DIR ; P1.0 output, else input mov.b #010h,&P1OUT ; P1.4 set, else reset bis.b #010h,&P1REN ; P1.4 pullup bis.b #010h,&P1IE ; P1.4 Interrupt enabled bis.b #010h,&P1IES ; P1.4 hi/low edge bic.b #010h,&P1IFG ; P1.4 IFG Cleared ; Mainloop bis.w #LPM4+GIE,SR ; LPM4, enable interrupts nop ; Required only for debugger ; ; P1_ISR; Toggle P1.0 Output ; xor.b #001h,&P1OUT ; P1.0 = toggle bic.b #010h,&P1IFG reti ; P1.4 IFG Cleared ; Return from ISR ; ; ; Interrupt Vectors ; ORG 0FFFEh ; MSP430 RESET Vector DW RESET ; ORG 0FFE4h ; P1.x Vector DW P1_ISR ; END Στο παραπάνω παράδειγµα βλέπουµε: 1. Τον τρόπο µε τον οποίο ορίζονται οι καταχωρητές για να υπηρετηθεί ένα σήµα διακοπής στο P Τον τρόπο που ορίζουµε τις καταστάσεις χαµηλής κατανάλωσης στον MSP Το πώς ορίζονται οι ρουτίνες υπηρέτησης των σηµάτων διακοπής

42 Παράδειγµα 1(C) #include <msp430x20x3.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P1DIR = 0x01; // P1.0 output, else input P1OUT = 0x10; // P1.4 set, else reset P1REN = 0x10; // P1.4 pullup P1IE = 0x10; // P1.4 interrupt enabled P1IES = 0x10; // P1.4 Hi/lo edge P1IFG &= ~0x10; // P1.4 IFG cleared _BIS_SR(LPM4_bits + GIE); #pragma vector=port1_vector interrupt void Port_1(void) { P1OUT ^= 0x01; P1IFG &= ~0x10; // Enter LPM4 w/interrupt // Port 1 interrupt service routine // P1.0 = toggle // P1.4 IFG cleared Τις περισσότερες φορές απενεργοποιούµε τον watchdog timer. Στα παρακάτω παραδείγµατα θα δούµε τι γίνεται όταν δεν τον απενεργοποιούµε και τον χρησιµοποιήσουµε για να δηµιουργεί σήµατα διακοπής. Παράδειγµα 2(C) #include <msp430x20x3.h> void main(void) { WDTCTL = WDT_MDLY_32; IE1 = WDTIE; P1DIR = 0x01; _BIS_SR(LPM0_bits + GIE); #pragma vector=wdt_vector interrupt void watchdog_timer(void) { P1OUT ^= 0x01; // Set Watchdog Timer interval to ~30ms // Enable WDT interrupt // Set P1.0 to output direction // Enter LPM0 w/ interrupt // Watchdog Timer interrupt routine // Toggle P1.0 using exclusive-or

43 Παράδειγµα 2(assembly) #include "msp430x20x3.h" ; ORG 0F800h ; Program Reset ; RESET mov.w #0280h,SP ; Initialize stackpointer SetupWDT mov.w #WDT_MDLY_32,&WDTCTL ; WDT ~30ms interval bis.b #WDTIE,&IE1 ; Enable WDT interrupt SetupP1 bis.b #001h,&P1DIR ; P1.0 output Mainloop bis.w #CPUOFF+GIE,SR ; CPU off, enable interrupts nop ; Required only for debugger ; WDT_ISR; Toggle P1.0 ; xor.b #001h,&P1OUT ; Toggle P1.0 reti ; ; ORG 0FFFEh ; MSP430 RESET Vector DW RESET ; ORG 0FFF4h ; WDT Vector DW WDT_ISR ; END Παράδειγµα 3(C) #include <msp430x20x3.h> void main(void) { WDTCTL = WDT_ARST_1000; P1DIR = 0x01; P1OUT ^= 0x01; // Toggle P1.0 _BIS_SR(LPM3_bits); Παράδειγµα 3(assembly) // Set Watchdog Timer timeout 1s // Set P1.0 to output #include "msp430x20x3.h" ; ORG 0F800h ; Program Reset ; RESET mov.w #0280h,SP ; Initialize stackpointer SetupWDT mov.w #WDT_ARST_1000,&WDTCTL ;Watchdog timeout 1s bis.b #001h,&P1DIR ; P1.0 output xor.b #001h,&P1OUT ; Toggle P1.0 bis.w #LPM3,SR ; Mainloop jmp $ ; ORG 0FFFEh ; MSP430 RESET Vector DW RESET ; END

44 Άσκηση 1. Ενηµερωθείτε από το manual του µικροελεγκτή για τον αλγόριθµο υπηρέτησης των σηµάτων διακοπής. Σχεδιάστε το διάγραµµα ροής του. 2. Εξηγήστε αναλυτικά τη λειτουργία του παραδείγµατος 1 και τροποποιείστε κατάλληλα ώστε να ενεργοποιεί σήµατα διακοπής στη µετάβαση 0 σε ηµιουργείστε κατάλληλο workspace για την άσκηση µε projects τα παραδείγµατα 2 & 3(σε assembly και C). Σχολιάστε τη λειτουργία τους. 4. Τροποποιείστε κατάλληλα το παράδειγµα 3 αλλάζοντας την καθυστέρηση δηµιουργίας σήµατος διακοπής

45 - 48 -

46 Εισαγωγή Όταν µιλάµε για χρονιστές/απαριθµητές (timers) σε µικροελεγκτές εννοούµε εκείνες τις µονάδες που µας επιτρέπουν να µετράµε χρόνο, δηλ. να απαριθµούµε την τιµή ενός καταχωρητή έως ότου φτάσει αυτή είτε σε µια δεδοµένη τιµή, είτε στη µέγιστη τιµή που µπορεί να πάρει, είτε µηδενιστεί. Γενικότερα είναι ένα πολύ σηµαντικό εργαλείο σε εφαρµογές που θέλουµε να λειτουργούν σε πραγµατικό χρόνο. Μας προσφέρουν κάποιες ευκολίες σε ενσωµατωµένες εφαρµογές όπως: 1. Εύκολη µέτρηση συγκεκριµένου χρόνου µε ακρίβεια 2. Αυτόµατο περιοδικό ξύπνηµα του µικροελεγκτή 3. Αλλάζοντας τις απλές καθυστερήσεις µε χρήση ενός timer µπορούµε να «κοιµίζουµε» τον µικροελεγκτή για χαµηλότερη κατανάλωση ενέργειας. Στην οικογένεια των MSP430x2xx µπορούµε να δούµε τα παρακάτω περιφερειακά χρονιστών/απαριθµητών: 1. Basic Clock Module+ BCS+ 2. Watchdog Timer WDT+ 3. Timer_A Basic Clock Module+ (BCS+) / Block ιάγραµµα Είναι το βασικό σύστηµα που ορίζει το χρονισµό του µικροελεγκτή και υποστηρίζει 3 διαφορετικά σήµατα για το χρονισµό του: 1. Εξωτερικός κρύσταλλος. Υποστηρίζονται ανάλογα το µοντέλο είτε χαµηλής συχνότητας µε δύο επιλογές (LF:32768 Ηz και HF:400KHz - 16 ΜΗz) (LFXT1CLK), είτε µεγαλύτερης συχνότητας (400KHz - 16 ΜΗz) (XT2CLK), είτε και τα δύο. 2. Εσωτερικός ψηφιακός ταλαντωτής (DCOCLK) 3. Εσωτερικός ταλαντωτής χαµηλής συχνότητας (περίπου 12 ΚΗz) (VLOCLK) Τα οποία οδηγούν ελεγχόµενα από το πρόγραµµα 3 διαφορετικούς χρονιστές για τη λειτουργία του µικροελεγκτή: 1. ACLK: Βοηθητικό ρολόι για τα περιφερειακά. Οδηγείται είτε από το LFXT1CLK, είτε από το VLOCLK. 2. MCLK: Κύριο ρολόι για την CPU. Οδηγείται από ένα από τα LFXT1CLK, VLOCLK, XT2CLK ή DCOCLK. 3. SMCLK: ευτερεύον ρολόι. Οδηγείται από ένα από τα LFXT1CLK, VLOCLK, XT2CLK ή DCOCLK. Στην αρχική κατάσταση του µικροελεγκτή το ACLK οδηγείται από το LFXT1CLK σε LF και τα MCLK και SMCLK οδηγούνται από τον DCOCLK µε συχνότητα περίπου 1 ΜΗz

47 Το DCOCLK ρυθµίζεται βάση τριών καταχωρητών: 1. RSELx: ορίζει την γραφική ορισµού 2. DCOx : ορίζει µία από τις 8 περιοχές πάνω στην RSELx 3. MODx: επιλέγουµε από 5 τιµές ανάµεσα σε DCOx και DCOx+1 Κάθε µικροελεγκτής έχει ορισµένες τιµές έτοιµες σαν ορισµένες σταθερές στο λεξιλόγιό του. π.χ. για τον F2013 οι τιµές CALDCO_8MHZ και CALBC1_8MHZ στους καταχωρητές BCSCTL1 και DCOCTL δίνουν συχνότητα 8 ΜΗz για το DCOCLK

48 Watchdog Timer WDT+ / Block ιάγραµµα Είναι ένας χρονιστής που έχει σαν ρόλο τον έλεγχο του προγράµµατος και σε περίπτωση που κάτι δεν δουλεύει σωστά και έχει κολλήσει κάνει επαναφορά του µικροελεγκτή και του προγράµµατος(reset). Χαρακτηριστικά: 1. Λειτουργία χρονιστή(timer) ή ελεγκτή(watchdog) 2. 4 προγραµµατιζόµενα χρονικά διαστήµατα ελέγχου 3. Έλεγχος του ακροδέκτη RST/NMI και της λειτουργίας του. 4. Επιλογή ρολογιού οδήγησης για τον WDT+ Στην αρχική κατάσταση του µικροελεγκτή το WDT+ λειτουργεί σαν ελεγκτής (watchdog mode) οδηγούµενος από το DCOCLK και κάνει reset τον µικροελεγκτή κάθε κύκλους εντολής. Timer_A Εισαγωγή / Block ιάγραµµα Χαρακτηριστικά: 1. Υποστηρίζει 4 τρόπους λειτουργίας:

49 2. Επιλογή σήµατος χρονισµού από το πρόγραµµα 3. Μέχρι 3 προγραµµατιζόµενους καταχωρητές capture/compare 4. υνατότητα εξόδων µε προγραµµατιζόµενα PWM σήµατα 5. υνατότητα ελεγχόµενων interrupt 6. Ασύγχρονη είσοδος και έξοδος σηµάτων Capture / Compare Βlocks Το capture block χρησιµοποιείται για να µετρήσουµε την περίοδο χρονικών γεγονότων. Το compare block χρησιµοποιείται σαν γεννήτρια παλµών ή σηµάτων διακοπής σε δεδοµένες χρονικές στιγµές. Το σήµα εξόδου από τα capture/compare blocks µπορεί να προγραµµατιστεί ως ένα από 8 modes. Με δεδοµένα τους 3 ενεργούς τρόπους λειτουργίας του Timer_A παρακάτω βλέπουµε τις κυµατοµορφές εξόδου για τα 8 modes

50 Καταχωρητές

51 Σήµατα ιακοπής Ανάλογα µε τη λειτουργία του χρονιστή µπορούµε να χρησιµοποιήσουµε/λάβουµε διαφορετικά σήµατα διακοπής. 1. Capture mode : Το CCIFG (capture/compare interrupt flag) ενεργοποιείται όταν η τιµή του timer καταγραφθεί στον καταχωρητή TACCRx. 2. Compare mode : Το CCIFG ενεργοποιείται όταν η τιµή του µετρητή TAR γίνει ίση µε την τιµή που θέσουµε στον καταχωρητή TACCRx. 3. Γενικότερα µπορούµε να ορίσουµε την τιµή του CCIFG µέσα από το πρόγραµµα Παραδείγµατα Παράδειγµα 1(BCS+) #include <msp430x20x3.h> void main(void) { WDTCTL = WDTPW +WDTHOLD; // Stop Watchdog Timer if (CALBC1_1MHZ ==0xFF CALDCO_1MHZ == 0xFF) {while(1); BCSCTL1 = CALBC1_1MHZ; // Set range 1 MHz DCOCTL = CALDCO_1MHZ; // Set DCO step + modulation P1DIR = 0x13; // P1.0,1 and P1.4 outputs P1SEL = 0x11; // P1.0,4 ACLK, SMCLK output while(1) { P1OUT = 0x02; // P1.1 = 1 P1OUT &= ~0x02; // P1.1 =

52 Παράδειγµα 2(WDT+) Βλέπουµε τι γίνεται όταν δεν απενεργοποιούµε τον watchdog timer. #include <msp430x20x3.h> void main(void) { P1DIR = 0x01; // Set P1.0 to output P1OUT ^= 0x01; // Toggle P1.0 _BIS_SR(LPM4_bits); // Stop all clocks Παράδειγµα 3(WDT+) Επίδειξη δυνατοτήτων του watchdog timer. #include <msp430x20x3.h> void main(void) { // WDT is clocked by fsmclk (1 MHz) WDTCTL = WDT_MRST_32; // ~32ms interval (default) //WDTCTL = WDT_MRST_8; // ~8ms //WDTCTL = WDT_MRST_0_5; // ~0.5ms //WDTCTL = WDT_MRST_0_064; // ~0.064ms // WDT is clocked by faclk (32 KHz) //WDTCTL = WDT_ARST_1000; // 1000ms //WDTCTL = WDT_ARST_250; // 250ms //WDTCTL = WDT_ARST_16; // 16ms //WDTCTL = WDT_ARST_1_9; // 1.9ms P1DIR = 0x01; P1OUT ^=0x01; _BIS_SR(LPM0_bits + GIE); // Enter LPM3 w/interrupt Παράδειγµα 4(WDT+) #include "msp430x20x3.h" ; ORG 0F800h ; Program Reset ; RESET mov.w #0280h,SP ; Initialize stackpointer Setup mov.w #WDT_ADLY_250,&WDTCTL ; WDT 250ms, ACLK bis.b #WDTIE,&IE1 ; Enable WDT interrupt SetupP1 bis.b #001h,&P1DIR ; P1.0 output ; Mainloop bis.w #LPM3+GIE,SR ; Enter LPM3, interrupts enabled nop ; Required only for debugger ; WDT_ISR ;Toggle P1.0 ; xor.b #001h,&P1OUT ; Toggle P1.0 reti ; ;

53 ; Interrupt Vectors ; ORG 0FFFEh ; MSP430 RESET Vector DW RESET ; ORG 0FFF4h ; WDT Vector DW WDT_ISR ; END Παράδειγµα 5(Timer_A) Toggle P1.1/TA0, Up Mode, 32kHz ACLK #include <msp430x20x3.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; P1DIR = 0x02; P1SEL = 0x02; CCTL0 = OUTMOD_4; CCR0 = 10-1; TACTL = TASSEL_1 + MC_1; _BIS_SR(LPM3_bits); // Stop WDT // P1.1 output // P1.1 option select // CCR0 toggle mode // ACLK, upmode // Enter LPM3 w/interrupt Παράδειγµα 6(Timer_A) Toggle P1.0-2, Cont. Mode, DCO SMCLK P1.1 = CCR0 ~ 1MHz/(2*200) ~2500Hz P1.2 = CCR1 ~ 1MHz/(2*1000) ~500Hz P1.0 = overflow ~ 1MHz/(2*65536) ~8Hz #include <msp430x20x3.h> void main(void) {WDTCTL = WDTPW + WDTHOLD; P1SEL = 0x06; P1DIR = 0x07; CCTL0 = OUTMOD_4 + CCIE; CCTL1 = OUTMOD_4 + CCIE; TACTL = TASSEL_2 + MC_2 + TAIE; _BIS_SR(LPM0_bits + GIE); // Stop WDT // P1.1 - P1.2 option select // P1.0 - P1.2 outputs // CCR0 toggle, interrupt enabled // CCR1 toggle, interrupt enabled // SMCLK, Contmode, int enabled // Enter LPM0 w/ interrupt #pragma vector=timera0_vector interrupt void Timer_A0 (void) { CCR0 += 200; // Add Offset to CCR0 // Timer A0 interrupt service routine #pragma vector=timera1_vector interrupt void Timer_A1(void) {switch( TAIV ) {case 2: CCR1 += 1000; break; // Add Offset to CCR1 case 10: P1OUT ^= 0x01; break; // Timer_A2 Interrupt Vector (TAIV) // Timer_A3 overflow

54 Παράδειγµα 7(Timer_A) Toggle P1.1/TA0, Up/Down Mode, 32 khz ACLK P1.1 = 32768/20 = khz #include <msp430x20x3.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; P1DIR = 0x02; P1SEL = 0x02; CCTL0 = OUTMOD_4; CCR0 = 5; TACTL = TASSEL_1 + MC_3; _BIS_SR(LPM3_bits); // Stop WDT // P1.1 output // P1.1 option select // CCR0 toggle mode // ACLK, up-down mode // Enter LPM3 Παράδειγµα 8(Timer_A) Γεννήτρια συχνοτήτων χρησιµοποιώντας τον Timer_A2 σε up mode, reset/set(pwm) #include <msp430x20x3.h> void main( void ) { void d0(); void re(); // ήλωση Υπορουτινών void mi(); void fa(); void sol(); void la(); void si(); WDTCTL = WDTPW WDTHOLD; P1DIR = BIT2; // Έξοδος bit για buzzer P1SEL = BIT2; // Ενεργοποίηση του bit2 για TA0 CCTL1 = OUTMOD_7; // Reset/set for(;;) { while(p1in!= 0x00) // Είναι κάτι πατηµένο? { if( P1IN == BIT0 ) {d0(); if( P1IN == BIT1 ) {re(); if( P1IN == BIT3 ) {mi(); if( P1IN == BIT4 ) {fa(); if( P1IN == BIT5 ) {sol(); if( P1IN == BIT6 ) {la(); if( P1IN == BIT7 ) {si(); TACTL = MC_0; // Κλείσε τον Timer

55 void d0() { CCR0 = ; // Περίοδος CCR1 = 501; // Duty Cycle 50% TACTL = TASSEL_2 MC_1; // Up mode, SMCLK void re() { CCR0 = 894-1; CCR1 = 447; TACTL = TASSEL_2 MC_1; void mi() { CCR0 = 796-1; CCR1 = 398; TACTL = TASSEL_2 MC_1; void fa() { CCR0 = 750-1; CCR1 = 375; TACTL = TASSEL_2 MC_1; void sol() { CCR0 = 669-1; CCR1 = 335; TACTL = TASSEL_2 MC_1; void la() { CCR0 = 596-1; CCR1 = 298; TACTL = TASSEL_2 MC_1; void si() { CCR0 = 532-1; CCR1 = 266; TACTL = TASSEL_2 MC_1; Άσκηση 1. Ενηµερωθείτε από το User s Guide της οικογένειας µικροελεγκτών MSP430x2xx για τα περιφερειακά που αναφέρθηκαν στην εισαγωγή της άσκησης(bcs+, WDT+, Timer_A2). Χαρακτηριστικά, λειτουργία, καταχωρητές. 2. Ενηµερωθείτε από το Datasheet του µικροελεγκτή MSP430x20x για τα pins που συσχετίζονται µε τα BCS+, WDT+ και Timer_A2. 3. ηµιουργείστε κατάλληλο workspace µε project το παράδειγµα 1. Εφαρµόστε στο αναπτυξιακό και σχολιάστε τη λειτουργία του. Μετρήστε τις συχνότητες που δηµιουργήθηκαν. Ύστερα τροποποιήστε το πρόγραµµα µε εναλλακτικές συχνότητες λειτουργίας και µετρήστε ξανά τις συχνότητες. 4. ηµιουργείστε κατάλληλο workspace µε projects τα παραδείγµατα 2, 3 & 4. Εφαρµόστε στο αναπτυξιακό και σχολιάστε τη λειτουργία τους

56 Τροποποιήστε το παράδειγµα 2 αλλάζοντας µε τους υπόλοιπους δυνατούς συνδυασµούς και σχολιάστε. Εξηγήστε πως λειτουργεί το παράδειγµα 3 και που µπορεί να χρησιµοποιηθεί. 5. ηµιουργείστε κατάλληλο workspace µε projects τα παραδείγµατα 5, 6 & 7. Καταλάβετε πως εγγράφονται οι καταχωρητές για διαφορετικές λειτουργίες και πως υπηρετούνται σήµατα διακοπής του Timer_A2. Τροποποιείστε τους καταχωρητές κατά βούληση. Εφαρµόστε στο αναπτυξιακό και σχολιάστε τη λειτουργία τους. 6. ηµιουργείστε κατάλληλο workspace µε projects το παράδειγµα 8. Εφαρµόστε στο αναπτυξιακό και σχολιάστε τη λειτουργία του. ηµιουργήστε νέο κώδικα µε βάση το παράδειγµα 8 που θα εναλλάσσει τις συχνότητες αυτόµατα κάθε 1 sec δηλ. ΝΤΟ-ΡΕ-ΜΙ-ΦΑ-ΣΟΛ-ΛΑ-ΣΙ-ΝΤΟ Ενηµερωθείτε για τη χρήση και λειτουργία των σερβοκινητήρων. Ύστερα δηµιουργήστε κατάλληλο κώδικα που θα φτιάχνει τις παρακάτω κυµατοµορφές. Χρησιµοποιείστε τον Timer_A2 σε κατάλληλο mode και κυµατοµορφή εξόδου. Ρυθµίστε κατάλληλα τους καταχωρητές για την περίοδο και το εύρος του παλµού. Ρυθµίστε στον κώδικά σας την επιλογή του παλµού στην έξοδο ανάλογα του button που θα πατηθεί

57 - 60 -

58 A/DC Γενικά Όταν µιλάµε για έναν µετατροπέα αναλογικού σήµατος σε ψηφιακό (A/D ή A to D) εννοούµε µια ηλεκτρονική διάταξη που δέχεται συνεχή αναλογικά σήµατα και τα µετατρέπει σε διακριτούς αριθµούς. Η αντίστροφη διαδικασία ονοµάζεται µετατροπή ψηφιακού σήµατος σε αναλογικό. Πρακτικά ένας A/D δέχεται µια συνεχή τάση και τη µετατρέπει σε έναν ψηφιακό αριθµό ανάλογα µε το µέγεθος της τάσης. Σίγµα έλτα ιαµόρφωση (Σ ) - Block ιάγραµµα Η διαµόρφωση Σ είναι µια τεχνική κωδικοποίησης σηµάτων χρησιµοποιώντας διαµόρφωση πυκνότητας παλµού(pdm). Χρησιµοποιείται σε διάφορες εφαρµογές όπως A/D, D/A, συνθέτες συχνότητας, switching τροφοδοτικά και έλεγχος κινητήρων. Χρησιµοποιώντας Σ σε έναν A/D µπορούµε να πετύχουµε υψηλή ανάλυση. Σε ένα απλοποιηµένο σχηµατικό διάγραµµα µε Σ/ για A/D βλέπουµε έναν ελεγχόµενο από τάση ταλαντωτή και ένα µετρητή των παλµών του ταλαντωτή. Επειδή η ανατροφοδότηση του ταλαντωτή έχει τη µορφή της συνάρτησης Dirac ή και ο µετρητής συνήθως αναγράφεται ως Σ, προκύπτει και το Σ/. Πολλές φορές στην πράξη χρησιµοποιούνται 2 ης και µεγαλύτερης τάξης διαµορφωτές. Στον MSP430F2013 υπάρχει ενσωµατωµένος ένας µετατροπέας A/D µε Σ/ προσφέροντας : Ανάλυση 16 bit Σ/ Μέχρι 8 διαφορικές αναλογικές είσοδοι Ενσωµατωµένο αισθητήριο θερµοκρασίας Ελεγχόµενη από τον χρήστη τάση αναφοράς 1,2V

59 Επειδή το SD16_A module έχει σχεδιαστεί για να ικανοποιεί εφαρµογές χαµηλής κατανάλωσης όταν δεν κάνει A/D µετατροπή, απενεργοποιείται και ενεργοποιείται ξανά στην επόµενη µετατροπή. Προσοχή: Η εσωτερική τάση αναφοράς δεν απενεργοποιείται αυτόµατα!!! Καταχωρητές του SD16_A

60 Modes - Temp Sensor Αναφέρθηκε παραπάνω ότι υποστηρίζονται µέχρι 8 αναλογικές είσοδοι. Απ αυτές οι 5 πρώτες (Α0-Α4) είναι ελεύθερες για εξωτερική χρήση ενώ από τις υπόλοιπες η Α5 είναι ένας διαιρέτης της τάσης, η Α6 είναι ένα αισθητήριο θερµοκρασίας και η Α7 είναι ένα βραχυκύκλωµα που χρησιµοποιείται όταν χρειάζεται καλιµπράρισµα. Επίσης ανάλογα την εφαρµογή µπορούµε να επιλέξουµε τη σχέση που θα έχει η αναλογική µας είσοδος µε την ψηφιακή έξοδο από 3 διαφορετικές σχέσεις(modes) Για να χρησιµοποιήσουµε το ενσωµατωµένο αισθητήριο θερµοκρασίας πρέπει να ορίσουµε τους κατάλληλους καταχωρητές: SD16INCHx = 110 και SD16REFON = 1 και για να πάρουµε πρακτικά αποτελέσµατα πρέπει να γνωρίζουµε την απόκριση του αισθητηρίου από την παρακάτω γραφική

61 Παραδείγµατα Παράδειγµα 1 Ανάβει το led στο P1.0 όταν η τάση στην αναλογική είσοδο Α1 είναι µεγαλύτερη από 0.3 V. #include <msp430x20x3.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P1DIR = 0x01; // Set P1.0 to output direction SD16CTL = SD16REFON + SD16SSEL_1;// 1.2V ref, SMCLK SD16INCTL0 = SD16INCH_1; // A1+/- SD16CCTL0 = SD16UNI + SD16IE; // 256OSR, unipolar, interrupt enable SD16AE = SD16AE2; // P1.1 A1+, A1- = VSS SD16CCTL0 = SD16SC; // Set bit to start conversion _BIS_SR(LPM0_bits + GIE); #pragma vector = SD16_VECTOR interrupt void SD16ISR(void) { if (SD16MEM0 < 0x7FFF) // SD16MEM0 > 0.3V?, clears IFG P1OUT &= ~0x01; else P1OUT = 0x01; Παράδειγµα 2 #include <msp430x20x3.h> #include <stdio.h> #define ADCDeltaOn 31 static unsigned int LastADCVal; void main(void) { BCSCTL2 = DIVS_3; WDTCTL = WDT_MDLY_32; IE1 = WDTIE; P1DIR = 0x01; // ~0.5 Deg C delta // holds ADC temperature result // SMCLK/8 // WDT Timer interval // Enable WDT interrupt // P1.0 to output direction SD16CTL = SD16REFON +SD16SSEL_1;// 1.2V ref, SMCLK SD16INCTL0 = SD16INCH_6; // A6+/- SD16CCTL0 = SD16SNGL + SD16IE ; // Single conv, interrupt _BIS_SR(LPM0_bits + GIE); // Enter LPM0 with interrupt #pragma vector=sd16_vector interrupt void SD16ISR(void) { int Celsius; if (SD16MEM0 <= LastADCVal + ADCDeltaOn) { Celsius = ((SD16MEM0-0x8000)/72)-273;//hex to Celsius convert P1OUT &= ~0x01;

62 printf("%x %d\n",sd16mem0,celsius); //print results else { Celsius = ((SD16MEM0-0x8000)/72)-273;//hex to Celsius convert P1OUT = 0x01; // LED on LastADCVal = SD16MEM0; printf("%x %d\n",sd16mem0,celsius); //print results // Watchdog Timer interrupt service routine #pragma vector=wdt_vector interrupt void watchdog_timer(void) { SD16CCTL0 = SD16SC; // Start SD16 conversion Άσκηση 1. Ενηµερωθείτε από το User s Guide της οικογένειας µικροελεγκτών MSP430x2xx για τα περιφερειακά που υποστηρίζουν A/D. 2. Ενηµερωθείτε για τη διαµόρφωση Σ/ γενικά αλλά και ειδικά στους MSP430. Πως λειτουργεί, χαρακτηριστικά, block διάγραµµα (δοµικό διάγραµµα), καταχωρητές, ενεργοποίηση, είσοδοι, µετατροπή, temp sensor. 3. Ενηµερωθείτε για το πώς συντάσσεται και χρησιµοποιείται η εντολή printf στη γλώσσα C. Τι ορίσµατα δέχεται και πως παραµετροποιείται. 4. ηµιουργείστε κατάλληλο workspace µε project το παράδειγµα 1. είτε τον τρόπο που ορίζονται οι καταχωρητές. Σχολιάστε τη λειτουργία του. Τροποποιείστε κατάλληλα για τάσεις 0,2V και 0,5V και διαφορετικά modes εξόδου και δείτε στην πράξη τι αλλάζει. 5. Προσθέστε στο workspace για το ερώτηµα 4 project µε το παράδειγµα 2. Για να δείτε τη λειτουργία του ενεργοποιείστε το Terminal I/O όταν κάνετε debug. Σχολιάστε τη λειτουργία του και βρείτε το ποσοστό του σφάλµατος στη µέτρηση, αν υπάρχει. Βρείτε πως διαµορφώνεται η εξίσωση µετατροπής της τιµής του A/D σε ο C. 6. Αν µπορείτε βελτιστοποιείστε το παράδειγµα 2 σε ότι χρειάζεται

63 - 66 -

64 Εισαγωγή Στην εισαγωγή των µικροελεγκτών MSP430 αναφέρθηκαν και τα περιφερειακά που υποστηρίζει. Θα ασχοληθούµε µε τα περιφερειακά για σειριακή επικοινωνία που στην οικογένεια MSP430F20xx είναι ένα, το USI(Universal Serial Interface). Η καρδιά του USI αποτελείται από έναν shift register που σε συνδυασµό µε το ενσωµατωµένο υλικό στον µικροελεγκτή και ελάχιστο κώδικα από τον χρήστη µπορεί να ενεργοποιήσει είτε το SPI είτε το I 2 C πρωτόκολλο. SPI(Serial Peripheral Interface Bus) Το SPI είναι ένα σύγχρονο πρωτόκολλο σειριακής επικοινωνίας δύο κατευθύνσεων (full-duplex). Υποστηρίζει λειτουργία master/slave και η οικογένεια MSP430F20xx υποστηρίζει βασικά 3-wire αλλά και 4-wire SPI:

65 I 2 C (Inter-Integrated Circuit) Το I2C είναι ένα σειριακό πρωτόκολλο επικοινωνίας. Υποστηρίζει λειτουργία πολλών master/slave και λειτουργεί µε δύο σήµατα(καλώδια). Καταχωρητές Παραδείγµατα 1. SPI full-duplex 3-wire Master #include <msp430x20x3.h> void main(void) { volatile unsigned int i; WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P1OUT = 0x10; // P1.4 set, else reset P1REN = 0x10; // P1.4 pullup P1DIR = 0x01; // P1.0 output, else input USICTL0 = USIPE7 + USIPE6 + USIPE5 + USIMST + USIOE; // Port, SPI master USICTL1 = USIIE; // Counter interrupt, flag remains set USICKCTL = USIDIV_4 + USISSEL_2; // /16 SMCLK USICTL0 &= ~USISWRST; // USI released for operation USISRL = P1IN; // init-load data P1DIR = 0x04; // Reset Slave P1DIR &= ~0x04; for (i = 0xFFF; i > 0; i--); // Time for slave to ready USICNT = 8; // init-load counter _BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt // USI interrupt service routine #pragma vector=usi_vector interrupt void universal_serial_interface(void)

66 { if (0x10 & USISRL) P1OUT = 0x01; else P1OUT &= ~0x01; USISRL = P1IN; USICNT = 8; // re-load counter 2. SPI full-duplex 3-wire Slave #include "msp430x20x3.h" ; ORG 0F800h ; Program Reset ; RESET mov.w #0280h,SP ; Initialize stackpointer StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop watchdog timer SetupP1 mov.b #010h,&P1OUT ; P1.4 set, else bis.b #010h,&P1REN ; P1.4 pullup bis.b #001h,&P1DIR ;SetupUSI bis.b #USIPE7+USIPE6+USIPE5+USIOE,&USICTL0; Port, SPI slave bis.b #USIIE,&USICTL1 ; Counter interrupt, flag remains bic.b #USISWRST,&USICTL0 ; Enable USI mov.b &P1IN,&USISRL ; init-load TX data mov.b #08h,&USICNT ; init-load counter, clear flag ;Mainloop bis.b #LPM4+GIE,SR nop ; LPM4 w/ interrupts enabled ; Required for debugger only ; ; USI_ISR; ; mov.b &USISRL,R4 ; Temp save RX'ed char mov.b &P1IN,&USISRL ; mov.b #08h,&USICNT ; re-load counter, clear flag bic.b #01h,&P1OUT ; bit.b #010h,R4 ; jnc L2 ; L1 bis.b #01h,&P1OUT ; L2 reti ; Exit ISR ; ; ; Interrupt Vectors Used MSP430x20x2/3 ; ORG 0FFFEh ; MSP430 RESET Vector DW RESET ; ORG 0FFE8h ; USICNT DW USI_ISR ; END

67 3. I 2 C Master Receiver, single byte #include "msp430x20x3.h" #define I2CState R4 #define slav_data R5 #define slav_add R6 ; RSEG CSTACK ; Define stack segment ; RSEG CODE ; Assemble to Flash memory EVEN ; RESET mov.w #SFE(CSTACK),SP ; Initialize stackpointer StopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop watchdog timer CheckCal cmp.b #0FFh,&CALBC1_1MHZ ; Calibration constants erased? jeq Trap cmp.b #0FFh,&CALDCO_1MHZ jne Load Trap jmp $ ; Trap CPU!! Load mov.b &CALBC1_1MHZ,&BCSCTL1 ; Set DCO to 1MHz mov.b &CALDCO_1MHZ,&DCOCTL SetupP1 mov.b #0xC0,&P1OUT ; P1.6&P1.7 Pullups bis.b #0xC0,&P1REN ; P1.6&P1.7 Pullups mov.b #0xFF,&P1DIR ; unused pins as output SetupP2 mov.b #0x00,&P2OUT mov.b #0xFF,&P2DIR SetupUSI mov.b #USIPE6+USIPE7+USIMST+USISWRST,&USICTL0 ;Port, I2C master mov.b #USIIE+USII2C,&USICTL1 ; Counter interrupt, enable I2C mov.b #USIDIV_3+USISSEL_2+USICKPL,&USICKCTL ; SCL=SMCLK/8(~120KHz) bis.b #USIIFGCC,&USICNT ; bic.b #USISWRST,&USICTL0 ; Enable USI bic.b #USIIFG,&USICTL1 ; Clear pending flag clr.w I2CState clr.b slav_data mov.b #0x91,slav_add Mainloop bis.b #USIIFG,&USICTL1 ; Set flag and start communication bis.w #LPM0+GIE,SR ; Enter LPM0, enable interrupts nop ; Used for debugger call #Delay ; Delay between commn. cycles jmp Mainloop ; USI_ISR ; ; add.w I2CState,PC ; I2C State Machine jmp STATE0 jmp STATE2-70 -

68 jmp STATE4 jmp STATE6 jmp STATE8 jmp STATE10 STATE0 bis.b #0x01,&P1OUT ; LED on: sequence start clr.b &USISRL ; Generate start condition bis.b #USIGE+USIOE,&USICTL0 ; bic.b #USIGE,&USICTL0 ; & send address to slave mov.b slav_add,&usisrl ; and transmit address R/W =1 mov.b &USICNT,R8 ; Bit counter = 8, Tx adress and.b #0xE0,R8 add.b #0x08,R8 mov.b R8,&USICNT mov.w #2,I2CState ; Go to next state rx address (N)ACK bic.b #USIIFG,&USICTL1 ; clear pending flag reti STATE2 ; Receive Address Ack/Nack bit bic.b #USIOE,&USICTL0 ; SDA = input bis.b #0x01,&USICNT ; Bit counter = 1, rx (N)ACK mov.w #4,I2CState ; Go to next state, chk (N)ACK bic.b #USIIFG,&USICTL1 reti STATE4 ; Process Address (N)Ack & data Rx bit.b #0x01,&USISRL ; if NACK received jnc Data_Rx ; else ACK received bis.b #USIOE,&USICTL0 clr.b &USISRL bis.b #0x01,&USICNT ; bit counter = 1, SCL high, SDA low mov.w #10,I2CState ; Go to next state, generate stop bis.b #0x01,&P1OUT ; Turn on LED : error bic.b #USIIFG,&USICTL1 reti Data_Rx bis.b #8,&USICNT ; bit counter = 8, Rx data mov.w #6,I2CState ; goto next state: Test data, (N)ACK bic.b #0x1,&P1OUT ; LED off bic.b #USIIFG,&USICTL1 reti STATE6 ; Send Data (N)Ack bit bis.b #USIOE,&USICTL0 ; SDA = output cmp.b slav_data,&usisrl ; if data valid jnz Data_NACK ; data invalid, goto NACK loop clr.b &USISRL ; send ACK inc.b slav_data ; Increment slave data bic.b #0x01,&P1OUT ; LED off jmp STATE6_Exit Data_NACK mov.b #0xFF,&USISRL ; Send NACK bis.b #0x1,&P1OUT ; LED on:error

69 STATE6_Exit bis.b #0x1,&USICNT ; Bit counter = 1, send NACK bit mov.w #8,I2CState ; goto next state, prep stop bic.b #USIIFG,&USICTL1 reti STATE8 ; Pre stop condition bis.b #USIOE,&USICTL0 ; SDA =output clr.b &USISRL bis.b #0x01,&USICNT ; Bit counter = 1, SCL high, SDA low mov.w #10,I2CState ; Go to next state, generate stop bic.b #USIIFG,&USICTL1 reti STATE10 ; Generate stop condition mov.b #0xFF,&USISRL ; USISRL=1 to release SDA bis.b #USIGE,&USICTL0 ; Transparent latch enabled bic.b #USIGE+USIOE,&USICTL0 ; Latch/SDA output disabled mov.w #0,I2CState ; Reset state machine for next Tx bic.w #LPM0,0(SP) ; Exit active for next transfer bic.b #USIIFG,&USICTL1 reti ; Delay ; Delay between communication cycles ; mov.w #0xFFFF,R7 DL1 dec.w R7 jnz DL1 ret ; ; Interrupt Vectors Used MSP430x2013 ; COMMON INTVEC ORG RESET_VECTOR ; MSP430 RESET Vector DW RESET ; ORG USI_VECTOR ; USICNT DW USI_ISR ; END 4. I 2 C Slave Transmitter, single byte #include <msp430x20x3.h> char SLV_Data = 0; // Variable for transmitted data char SLV_Addr = 0x90; // Address is 0x48<<1 for R/W int I2C_State = 0; // State variable void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog if (CALBC1_1MHZ ==0xFF CALDCO_1MHZ == 0xFF) {

70 while(1); // If calibration constants erased // do not load, trap CPU!! BCSCTL1 = CALBC1_1MHZ; // Set DCO DCOCTL = CALDCO_1MHZ; P1OUT = 0xC0; // P1.6 & P1.7 Pullups P1REN = 0xC0; // P1.6 & P1.7 Pullups P1DIR = 0xFF; // Unused pins as outputs P2OUT = 0; P2DIR = 0xFF; USICTL0 = USIPE6+USIPE7+USISWRST; // Port & USI mode setup USICTL1 = USII2C+USIIE+USISTTIE; // Enable I2C mode & USI interrupts USICKCTL = USICKPL; // Setup clock polarity USICNT = USIIFGCC; // Disable automatic clear control USICTL0 &= ~USISWRST; // Enable USI USICTL1 &= ~USIIFG; // Clear pending flag _EINT(); while(1) { LPM0; // CPU off, await USI interrupt _NOP(); // Used for IAR //****************************************************** // USI interrupt service routine //****************************************************** #pragma vector = USI_VECTOR interrupt void USI_TXRX (void) { if (USICTL1 & USISTTIFG) // Start entry? { P1OUT = 0x01; // LED on: Sequence start I2C_State = 2; // Enter 1st state on start switch(i2c_state) { case 0: //Idle, should not get here break; case 2: //RX Address USICNT = (USICNT & 0xE0) + 0x08; // Bit counter = 8, RX Address USICTL1 &= ~USISTTIFG; // Clear start flag I2C_State = 4; // Go to next state: check address break; case 4: // Process Address and send (N)Ack if (USISRL & 0x01) // If read... SLV_Addr++; // Save R/W bit USICTL0 = USIOE; // SDA = output if (USISRL == SLV_Addr) // Address match? { USISRL = 0x00; // Send Ack P1OUT &= ~0x01; // LED off

71 I2C_State = 8; else { USISRL = 0xFF; P1OUT = 0x01; I2C_State = 6; USICNT = 0x01; break; case 6: // Prep for Start condition USICTL0 &= ~USIOE; SLV_Addr = 0x90; I2C_State = 0; break; case 8: // Send Data byte USICTL0 = USIOE; USISRL = SLV_Data; USICNT = 0x08; I2C_State = 10; break; case 10: // Receive Data (N)Ack USICTL0 &= ~USIOE; USICNT = 0x01; I2C_State = 12; break; case 12: // Process Data Ack/NAck if (USISRL & 0x01) { P1OUT = 0x01; else { P1OUT &= ~0x01; SLV_Data++; // Prep for Start condition USICTL0 &= ~USIOE; SLV_Addr = 0x90; I2C_State = 0; break; USICTL1 &= ~USIIFG; // Go to next state: TX data // Send NAck // LED on: error // Go to next state: prep for next Start // Bit counter = 1, send (N)Ack bit // SDA = input // Reset slave address // Reset state machine // SDA = output // Send data byte // Bit counter = 8, TX data // Go to next state: receive (N)Ack // SDA = input // Bit counter = 1, receive (N)Ack // Go to next state: check (N)Ack // If Nack received... // LED on: error // Ack received // LED off // Increment Slave data // SDA = input // Reset slave address // Reset state machine // Clear pending flags

72 Άσκηση 1. Ενηµερωθείτε για τα σειριακά πρωτόκολλα SPI και I 2 C: αρχή λειτουργίας, σήµατα και υλοποίηση. 2. Ενηµερωθείτε από το User s Guide του µικροελεγκτή για τα περιφερειακά που υποστηρίζουν σειριακή επικοινωνία: ενεργοποίηση, λειτουργίες, καταχωρητές. 3. ηµιουργείστε κατάλληλο workspace για την άσκηση µε projects τα παραδείγµατα 1, 2, 3 & 4. Εφαρµόστε στο αναπτυξιακό και σχολιάστε τη λειτουργία τους. 4. Πραγµατοποιήστε κατάλληλη συνδεσµολογία των αναπτυξιακών ανά δύο, έτσι ώστε να υποστηρίζουν το πρωτόκολλο SPI(3-wire). Ύστερα φορτώστε κατάλληλο κώδικα υλοποιώντας το πρωτόκολλο έχοντας master/slave σύνδεση. είτε τη λειτουργία του στην πράξη. 5. Πραγµατοποιήστε κατάλληλη συνδεσµολογία των αναπτυξιακών ανά δύο, έτσι ώστε να υποστηρίζουν το πρωτόκολλο I 2 C(2-wire). Ύστερα φορτώστε κατάλληλο κώδικα υλοποιώντας το πρωτόκολλο έχοντας master/slave σύνδεση και µεταφορά δεδοµένων από το master στο slave. Τροποποιήστε κατάλληλα για µεταφορά δεδοµένων από το slave στο master. είτε τη λειτουργία του στην πράξη

73 - 76 -

74 Εισαγωγή Παρουσίαση του ez430-rf2500 Το ez430-rf2500 είναι ένα ολοκληρωµένο αναπτυξιακό εργαλείο που περιλαµβάνει όλο το υλικό και το λογισµικό που απαιτείται για την λειτουργία ενός ασύρµατου συστήµατος µε τους MSP430 σε ένα USB stick. Χρησιµοποιεί τον MSP430F22x4 και τον CC2500, έναν πολυκάναλο ποµποδέκτη RF για χαµηλής ισχύος ασύρµατες εφαρµογές. Ο USB προγραµµατιστής του ez430-rf2500 προσφέρει έναν ελεγκτή UART δηµιουργώντας µια θύρα για απευθείας σειριακή επικοινωνία µε το αναπτυξιακό. Επίσης µπορεί να προγραµµατίσει και τις εκδόσεις των ez430-f2013 και ez430- F

75 Εγκατάσταση του ez430-rf Αφού έχουµε ήδη εγκαταστήσει το Sensor Monitor Visualizer (τοποθετήστε το CD που περιέχεται στο πακέτο και ακολουθήστε τα βήµατα στο µενού που ανοίγει) τοποθετήστε το ez430- RF2500 σε µια θύρα USB του Η/Υ. 2. Τα Windows το εγκαθιστούν αυτόµατα. 3. Επίσης βρίσκουν και ένα καινούριο υλικό, το MSP430 Application UART. 4. Στο παράθυρο της εγκατάστασης του καινούριου υλικού επιλέγουµε αυτόµατη εγκατάσταση και είµαστε έτοιµοι να προχωρήσουµε. Εισαγωγή στον ποµποδέκτη CC2500 Ο CC2500 συνδέεται και ελέγχεται µέσω ενός ελεγκτή SPI, Και στο RF2500 έτσι είναι συνδεδεµένο, έτοιµο για προγραµµατισµό

76 Sensor Monitor Visualizer Στο πακέτο του RF2500 περιέχεται ότι χρειάζεται για µια πρώτη γνωριµία στα ασύρµατα δίκτυα αισθητήρων(wsn). Σ αυτό το παράδειγµα ορίζονται δύο συσκευές. Μία ως Access Point και µία ως End Device, οι οποίες διαβάζουν από τον ενσωµατωµένο στον µικροελεγκτή αισθητήρα θερµοκρασίας δεδοµένα, τα οποία στέλνονται στο Access Point και εκµεταλλεύονται από το υπάρχον λογισµικό στο πακέτο για την απεικόνιση του δικτύου. 1. Ανοίγουµε και αποθηκεύουµε τον φάκελο µε τον κώδικα στην επιφάνεια εργασίας(από το CD που περιέχεται στο πακέτο) 2. Ανοίγουµε το workspace ez430-rf2500 Sensor Monitor Demo v1.xx.eww και επιλέγουµε ως ενεργό το project End Device. 3. Ρυθµίζουµε κατάλληλα και περνάµε το πρόγραµµα στη συσκευή. 4. Αφαιρούµε την πλακέτα από τον προγραµµατιστή και τη συνδέουµε στη βάση µε τις µπαταρίες. 5. Τοποθετούµε την άλλη πλακέτα στον προγραµµατιστή, επιλέγουµε ως ενεργό το project Access Point. 6. Ρυθµίζουµε κατάλληλα και περνάµε το πρόγραµµα στη συσκευή. 7. Κλείνουµε το IAR Embedded Workbench αφήνοντας την συσκευή σε λειτουργία και τρέχουµε το ez430-rf2500 Sensor Monitor από την επιφάνεια εργασίας και ενεργοποιούµε την πλακέτα που τροφοδοτείται από τις µπαταρίες αλλάζοντας θέση στο jumper.βλέπουµε την παρακάτω εικόνα: Μπορούµε να ρυθµίζουµε περισσότερα από ένα End Device και τότε θα δούµε κάτι τέτοιο: Παραπάνω είδαµε ένα εικονικό περιβάλλον απόδοσης του δικτύου και των τιµών που λαµβάνει το Access Point. Ας δούµε σε βαθύτερο επίπεδο τι γίνεται:

77 1. Έναρξη Όλα τα προγράµµατα Βοηθήµατα Επικοινωνίες HyperTerminal.exe 2. Name: Msp430 UART, επιλέγουµε το port που αντιστοιχεί στο MSP430 Application UART και ρυθµίζουµε ως εξής: SimpliciTI Το SimpliciTI είναι ένα πρωτόκολλο δικτύου RF για µικρά RF δίκτυα. Έχει σχεδιαστεί για εύκολη εφαρµογή και ανάπτυξη µε τα RF αναπτυξιακά εργαλεία της Texas Instruments όπως το ez430-rf2500 υποστηρίζοντας τις οικογένειες ποµποδεκτών CC1XXX/CC25XX/CC430. Όλα τα απαραίτητα εργαλεία(κώδικες κλπ) υπάρχουν διαθέσιµα και στο CD που περιέχεται στο πακέτο. Παράδειγµα ενός SimpliciTI δικτύου

78 Παραδείγµατα Για τη δηµιουργία ενός project που να υποστηρίζει RF επικοινωνία στο IAR Embedded Workbench πρέπει να ενσωµατώσουµε τους κατάλληλους οδηγούς. 1. ηµιουργούµε ένα project κατά τα γνωστά 2. Στις ρυθµίσεις για το project C/C++ Compiler Preprocessor προσθέτουµε τους απαραίτητους κώδικες από το SimpliciTI Additional include directories Defined symbols \bsp Board Support Package Οδηγοί αρχικοποίησης MRFI_CC2500 \bsp\drivers buttons & leds \bsp\boards\ez430rf Ορισµός συσκευής Ορισµός RF συσκευής \mrfi Minimal RF Interface Οδηγοί αρχικοποίησης 3. ηµιουργήστε την παρακάτω δοµή για το project δηµιουργώντας φακέλους και προσθέτοντας τα κατάλληλα αρχεία. 4. Προσθέστε τον κυρίως κώδικα π.χ. main.c στον φάκελο Application

79 Παράδειγµα 1 Ανάβει σταθερά τα δύο ενσωµατωµένα led #include "msp430x22x4.h" int main( void ) { WDTCTL = WDTPW + WDTHOLD; P1DIR = 0x03; P1OUT = 0x03; while(1); Παράδειγµα 2 Αφού τοποθετηθεί σε τουλάχιστον δύο RF2500 και τροφοδοτηθούν τότε πατήστε το ενσωµατωµένο button σε ένα από τα δύο. #include "mrfi.h" int main(void) { BSP_Init(); P1REN = 0x04; P1IE = 0x04; MRFI_Init(); MRFI_WakeUp(); MRFI_RxOn(); bis_sr_register(gie+lpm4_bits); void MRFI_RxCompleteISR() { P1OUT ^= 0x02; #pragma vector=port1_vector interrupt void Port_1 (void) { P1IFG &= ~0x04; mrfipacket_t packet; packet.frame[0]=8+20; MRFI_Transmit(&packet, MRFI_TX_TYPE_FORCED); P1OUT ^= 0x01; BSP_Init() MRFI_Init() Απενεργοποιεί τον watchdog timer, ορίζει συχνότητα λειτουργίας του MCLK στα 8MHz, τα Led σαν εξόδους και το button σαν είσοδο. Ενεργοποιεί την σύνδεση του µικροελεγκτή µε τον ποµποδέκτη (SPI) και αρχικοποιεί κατάλληλα τους καταχωρητές του CC2500. MRFI_WakeUp() Ξεκινά την RF επικοινωνία ενεργοποιώντας τον κρύσταλλο στο CC

80 Παράδειγµα 3 #include "radios/family1/mrfi_spi.h" #include "mrfi.h" uint8_t index_output = 9; mrfipacket_t packettosend; int main(void) {BSP_Init(); MRFI_Init(); P3SEL = 0x30; UCA0CTL1 = UCSSEL_2; UCA0BR0 = 0x41; UCA0BR1 = 0x3; UCA0MCTL = UCBRS_2; UCA0CTL1 &= ~UCSWRST; // P3.4,5 = USCI_A0 TXD/RXD // SMCLK // 9600 from 8Mhz // Initialize USCI state machine IE2 = UCA0RXIE; // Enable USCI_A0 RX interrupt MRFI_WakeUp(); MRFI_RxOn(); index_output=0; bis_sr_register(gie+lpm4_bits); void MRFI_RxCompleteISR() {uint8_t i; P1OUT ^= 0x02; mrfipacket_t packet; MRFI_Receive(&packet); char output[] = {" "; for (i=9;i<29;i++) { output[i-9]=packet.frame[i]; if (packet.frame[i]=='\r') {output[i-9]='\n'; output[i-8]='\r'; TXString(output, (sizeof output)); #pragma vector=usciab0rx_vector interrupt void USCI0RX_ISR(void) {char rx = UCA0RXBUF; uint8_t i; packettosend.frame[index_output]=rx; index_output++; if (rx=='\r' index_output==29) { packettosend.frame[0]=28; MRFI_Transmit(&packetToSend, MRFI_TX_TYPE_FORCED); index_output = 9; for(i=9;i<29;i++) { packettosend.frame[i]=' '; P1OUT ^= 0x01; P1OUT ^= 0x02; TXString(&rx, 1);

81 Το παραπάνω παράδειγµα είναι µια ολοκληρωµένη σύνθεση RF επικοινωνίας. Ενεργοποιεί το ενσωµατωµένο UART και στέλνει µηνύµατα από ένα τερµατικό παράθυρο στον buffer του CC2500, το οποίο µε τη σειρά του το στέλνει στο άλλο CC2500 που προωθεί το µήνυµα σε ένα άλλο τερµατικό παράθυρο. ΑΣΚΗΣΗ 1. Ενηµερωθείτε από το manual του µικροελεγκτή για τα χαρακτηριστικά του(ηλεκτρικά χαρακτηριστικά, καταχωρητές, περιφερειακά). Ενηµερωθείτε από το manual του ποµποδέκτη για τα χαρακτηριστικά του(ηλεκτρικά χαρακτηριστικά, καταχωρητές, συχνότητα εκποµπής, ισχύς εκποµπής, περιφερειακά). Ενηµερωθείτε για το πρωτόκολλο SimpliciTI. 2. Προτείνεται τρόπους υπολογισµού της κατανάλωσης ισχύος του αναπτυξιακού χρησιµοποιώντας τη βάση µε τις µπαταρίες. 3. ηµιουργήστε κατάλληλο workspace για την άσκηση µε project το παράδειγµα 1. Σε νέο project στο ίδιο workspace τροποποιείστε το παράδειγµα 1 έτσι ώστε να ενεργοποιούνται τα led όταν πατηθεί το ενσωµατωµένο button. 4. ηµιουργήστε κατάλληλο workspace για RF επικοινωνία µε project το παράδειγµα 2. είτε στην πράξη πως λειτουργεί ο κώδικας και εξηγήστε. Προτείνετε τρόπους βελτιστοποίησης. 5. Αφού ενηµερωθήκατε για τη συχνότητα εκποµπής του αναπτυξιακού τροποποιείστε το project µε το παράδειγµα 2 προσθέτοντας τις παρακάτω γραµµές κώδικα όπου χρειάζεται αφού τις συµπληρώσετε µε τις κατάλληλες τιµές: #include "radios/family1/mrfi_spi.h".... mrfispiwritereg(channr,???? ); Εξηγήστε πως βοηθά αυτό στη λειτουργία του προγράµµατος. 6. Αφού ενηµερωθήκατε για τη εκποµπή ισχύς του ποµποδέκτη τροποποιείστε το project µε το παράδειγµα 2 προσθέτοντας τις παρακάτω γραµµές όπου χρειάζεται και ελέγξτε τη λειτουργία του για διάφορες τιµές: #include "radios/family1/mrfi_spi.h".... mrfispiwritereg(patable,???? ); Εξηγήστε πως επιδρά στη λειτουργία του ποµποδέκτη. 7. ηµιουργήστε κατάλληλο workspace για RF επικοινωνία µε project το παράδειγµα 3. είτε τη λειτουργία του. Εξηγήστε µε διάγραµµα ροής. Βελτιστοποιήστε αν χρειάζεται χρησιµοποιώντας και τις παραπάνω γραµµές κώδικα

82 - 85 -

83 - 86 -

84 Εισαγωγή στο Code Composer Studio v4 (IDE) Το Code Composer Studio (CCStudio) είναι ένα ολοκληρωµένο περιβάλλον ανάπτυξης για DSPs και µικροελεγκτές της ΤΙ. Περιλαµβάνει µια σουίτα εργαλείων που χρησιµοποιούνται για την ανάπτυξη και τον εντοπισµό σφαλµάτων στις ενσωµατωµένες εφαρµογές. Περιλαµβάνει µεταγλωττιστές για κάθε µία από τις οικογένειες της ΤΙ, συντάκτη πηγαίου κώδικα, εντοπισµό σφαλµάτων και πολλά άλλα χαρακτηριστικά. Το CCStudio επιτρέπει στον χρήστη να αναπτύσσει πιο γρήγορα την εφαρµογή του ενώ διασφαλίζει την λειτουργικότητά της χάρη στα εξελιγµένα εργαλεία του. Εγκατάσταση 1. Θα βρείτε το αρχείο εγκατάστασης του CCStudio είτε στο cd που περιέχεται στα αναπτυξιακά εργαλεία της TI είτε τη νεότερη έκδοση στο 2. Έχει αρκετά εύκολη διαδικασία εγκατάστασης Έναρξη CCStudio Για να ανοίξουµε το CCStudio: Έναρξη όλα τα προγράµµατα Texas Instruments Code Composer Studio v4 Code Composer Studio v4 Core Edition

85 ηµιουργία νέου project - Ρυθµίσεις Η δοµή του CCStudio(όπως και του IAR IDE) αποτελείται ιεραρχικά από: Workspace (που περιέχει project-projects) Project (που περιέχει file-files) File Στην πρώτη οθόνη που βλέπουµε επιλέγουµε το φάκελο του workspace που θα εργαστούµε και έπειτα βλέπουµε την αρχική οθόνη του CCStudio. 1. File New CCS Project

86 2. π.χ. New Project Next 3. Επιλέγουµε Full C/C++ Indexer Next

87 4. Ορίζουµε στο παράθυρο τις ρυθµίσεις σύµφωνα µε τον µικροελεγκτή που θέλουµε να προγραµµατίσουµε. Αν το πρόγραµµα µας θα είναι σε assembly πρέπει να επιλέξουµε Treat as an Assembly-only project. 5. Finish Βλέπουµε το νέο project στο αριστερό παράθυρο του CCStudio. 6. Εισάγουµε το αρχείο µε τον κώδικα που θέλουµε π.χ. msp430x20x3_1.c κάνοντας δεξί κλικ στο New project [Active Debug] Add Files to Project... msp430x20x3_1.c και Open. και το βλέπουµε µε διπλό κλικ. 7. Τώρα είµαστε έτοιµοι να κάνουµε compile:menu Project Rebuild all. Προσέχουµε για λάθη στο παράθυρο µηνυµάτων!!!! 8. Συνεχίζουµε µε Target Debug Active Project αφού συνδέσουµε κατάλληλα τον µικροελεγκτή που θα προγραµµατίσουµε και βλέπουµε την παρακάτω οθόνη:

88 Debugging Tα «εργαλεία» µπορούµε να τα δούµε µέσω του µενού View 1. Όπως βλέπουµε ο κέρσορας βρίσκεται στην πρώτη εκτελέσιµη γραµµή του προγράµµατός. Έχουµε δύο επιλογές: Άµεση εκτέλεση Βηµατική εκτέλεση 2. Βηµατική εκτέλεση προγράµµατος Ανοίγουµε το µενού των καταχωρητών από το View Registers Πρακτικά πατώντας Target Step Into βλέπουµε ότι εκτελέστηκε η πρώτη γραµµή του προγράµµατος και ο έλεγχος πέρασε στη δεύτερη γραµµή που είναι έτοιµη να εκτελεστεί. 3. Σε κάθε εντολή µπορούµε να ελέγχουµε τους καταχωρητές που εµπλέκονται, οι οποίοι εµφανίζονται στο µενού Registers ανά οµάδες. 4. Για να σταµατήσουµε τη διαδικασία του Debugging πατάµε Target Terminate All Σχόλια Γενικά το CCStudio είναι ένα αναπτυξιακό περιβάλλον µε πολλές δυνατότητες. Σε σύγκριση µε το IAR(IDE) υστερεί σε ένα βασικό κοµµάτι, δεν υποστηρίζει simulation(προσοµοίωση), αλλά υπερτερεί σε άλλα. Υποστηρίζει αυτόµατη σύνδεση για νεότερες εκδόσεις διορθώνοντας τυχόν λάθη µε πολύ καλή υποστήριξη, έχει πολύ καλό σύστηµα βοήθειας για όλες τις λειτουργίες του και σε σχέση µε το IAR(IDE) υποστηρίζει 16ΚΒ κώδικα στον compiler για C/C++. Γενικά στέκεται αρκετά καλά σε επίπεδο λειτουργιών και επιλογών του debugger δίνοντας την ευκολία που χρειάζεται µε τα τόσα εργαλεία. Ας µην ξεχνάµε ότι βασίζεται στο γνωστό αναπτυξιακό περιβάλλον ανοιχτού κώδικα Eclipse, το οποίο είναι δοκιµασµένο και σταθερό στο χρόνο

89 - 92 -

90 Εισαγωγή Μια οθόνη υγρών κρυστάλλων (LCD), είναι µια λεπτή, επίπεδη ηλεκτρονική οθόνη που χρησιµοποιεί τις ιδιότητες των υγρών κρυστάλλων (LCS). Οι υγροί κρύσταλλοι δεν εκπέµπουν φως άµεσα. Απαιτείται εποµένως µια φωτεινή πηγή για να λειτουργήσουν και γι αυτό έχουν χαρακτηριστεί ως «παθητικές» οθόνες. Οι πιο κοινές οθόνες LCD βασίζονται στην κλασική Hitachi HD44780 ή σε άλλες συµβατές µε την HD Παρακάτω, θα δούµε οθόνες LCD χαρακτήρων και τη διασύνδεση τους µε τον µικροελεγκτή MSP430F2013 µε 4-bit. Pinout Παρακάτω βλέπουµε το pinout για µια οθόνη χαρακτήρων LCD 2x

91 Εντολές Από τον παραπάνω πίνακα βγαίνουν οι παρακάτω εντολές για πιο εύκολη µεταχείριση µε τον µικροελεγκτή

92 Αρχικοποίηση και σύνδεση Ανάλογα µε το µοντέλο µπορεί και να µπορεί να λειτουργήσει και µε τροφοδοσία 3.7V. Αν δεν γίνεται αυτό θα πρέπει να χρησιµοποιηθεί κατάλληλη διάταξη(π.χ. buffer) για να λειτουργήσει µε τάση 5V. Γενικά εκτός από την τροφοδοσία η σύνδεση µε τον µικροελεγκτή γίνεται συνδέοντας µόνο 4-bits δεδοµένων και 2 ακόµα για Enable/Register Select. Το Read/Write το συνδέουµε στο ground αφού µόνο γράφουµε. Παρακάτω βλέπουµε τη ρουτίνα αρχικοποίησης για λειτουργία 4-bit

93 Ή πιο απλά : Καθυστέρηση τουλάχιστον 15mS Send the first init value (0x30) Καθυστέρηση τουλάχιστον 4,1mS Send second init value (0x030) Καθυστέρηση τουλάχιστον 100nS Send third init value (0x30) Καθυστέρηση τουλάχιστον 1mS Select bus width (0x20 for 4-bit) Καθυστέρηση τουλάχιστον 1mS Select bus width (0x28 for 4-bit) Καθυστέρηση τουλάχιστον 1mS Send (0x0E) Καθυστέρηση τουλάχιστον 1mS Send (0x06) Καθυστέρηση τουλάχιστον 1mS Send (0x01) 1 η γραµµή 8 bit 1 η γραµµή 4 bit 2 η γραµµή 4 bit Display on/cursor on Κύλιση κειµένου δεξιά Clear LCD Υπάρχει βέβαια και πιο εύκολος τρόπος να υπολογίσουµε τις καθυστερήσεις σωστά προκειµένου να στείλουµε την επόµενη εντολή. Η οθόνη όσο εκτελεί την κάθε εντολή έχει ενεργοποιηµένο αυτό που ονοµάζουµε (busy Flag) το οποίο είναι πρακτικά το Data Bus 7 ή DB7 ή D7. ηµιουργούµε λοιπόν µια ρουτίνα που να ελέγχει πότε απενεργοποιείτε το busy Flag για να στείλει την επόµενη εντολή. LCD driver header for MSP430(ο κώδικας) Ο παρακάτω κώδικας µπορεί να αποθηκευτεί ως lcd.h και να χρησιµοποιηθεί σαν include στον κώδικά µας που θέλουµε να εµφανίζει δεδοµένα σε µια lcd π.χ. #include <msp430x20x3.h> #include <lcd.h> void main( void ) { lcd_init (); putstr("hello"); line2(); putstr("world"); Περιέχει υπορουτίνες για ότι µπορεί να χρειαστούµε για να χειριστούµε µια lcd όπως: void lcd_init (void); //Αρχικοποίηση void lcd_cmd (char cmd); //Στέλνει εντολή void lcd_data (char dat); //Τυπώνει έναν χαρακτήρα void putstr (char *str); //Τυπώνει λέξη στην θέση που βρίσκεται ο κέρσορας void int_str (int i,char *s); //Μετατρέπει Integer to String void line2 (void); //Πηγαίνει τον κέρσορα στην γραµµή 2 void wr_buffer (void); //Γράφει ότι περιέχει ο buffer(32 θέσεις µνήµης) void clr_buffer (void); // ιαγράφει τις θέσεις µνήµης του buffer void delay (void); //Η καθυστέρηση όπως περιγράφηκε παραπάνω

94 /* MSP430 LCD. P1.5 RS (4) P1.7 E (6) P1.0 D4 (11) P1.1 D5 (12) P1.2 D6 (13) P1.3 D7 (14) GND GND (1) and R/W (5) Vcc Vcc (2) potentiometer needed at the contrast pin (3) */ #include <msp430x20x3.h> #define LCD_EN 0x80 //P1.7 #define LCD_RS 0x20 //P1.5 #define lcd_port P1OUT #define INPUT P1DIR=0x00 #define OUTPUT P1DIR=0xFF #define CLEAR_LCD lcd_cmd (0X01) //Clears the LCD // Global Variable declarations char disp[32]; // Buffer to hold characters to be displayed on the LCD void lcd_init (void); //Initialization of the LCD void lcd_cmd (char cmd); //Send command to LCD void lcd_data (char dat); //Print one character void putstr (char *str); //Print string from current cursor location void int_str (int i,char *s); //Convert Integer to String void line2 (void); //Takes cursor to line 2 of LCD void wr_buffer (void); //Write the message buffer onto the LCD void clr_buffer (void); //Clears message Buffer to blank spaces void delay (void); //The delay function void lcd_init (void){ //Initialization of the LCD OUTPUT; lcd_port = 0xFF; delay(); lcd_port = 0x03+LCD_EN; lcd_port = 0x03; delay(); lcd_port = 0x03+LCD_EN; lcd_port = 0x03; delay(); lcd_port = 0x03+LCD_EN; lcd_port = 0x03; delay(); lcd_port = 0x02+LCD_EN; lcd_port = 0x02; delay(); lcd_cmd(0x28); // 4-bit mode - 2 line - 5x7 font. lcd_cmd(0x0e); // Display no cursor - no blink. lcd_cmd(0x06); // Automatic Increment - No Display shift. lcd_cmd(0x80); // Address DDRAM with 0 offset 80h. CLEAR_LCD; INPUT;

95 void lcd_cmd (char cmd){ //Send command to LCD OUTPUT; lcd_port = ((cmd >> 4) & 0x0F) LCD_EN; lcd_port = ((cmd >> 4) & 0x0F); lcd_port = (cmd & 0x0F) LCD_EN; lcd_port = (cmd & 0x0F); delay(); INPUT; void lcd_data (char dat){ //Print one character OUTPUT; lcd_port = (((dat >> 4) & 0x0F) LCD_EN LCD_RS); lcd_port = (((dat >> 4) & 0x0F) LCD_RS); lcd_port = ((dat & 0x0F) LCD_EN LCD_RS); lcd_port = ((dat & 0x0F) LCD_RS); delay(); INPUT; void putstr (char *str){ while (*str){ lcd_data(*str++); void int_str(int i,char *s){ char *p; p=s; if(i >= 200) p[0]= 2; else if(i >= 100) p[0]= 1; else p[0]= 0; p[2]=i%10; i-=p[2]; i/=10; p[1]=i%10; p[3] = 0; p[2]+=0x30; p[1]+=0x30; p[0]+=0x30; //Print string from current cursor location //Convert Integer to String void line2 (void){ lcd_cmd (0XC0); delay(); //Takes cursor to line 2 of LCD

96 void wr_buffer (void){ //Write the message buffer onto the LCD char index; CLEAR_LCD; for(index = 0; index < 16; index++){ lcd_data(disp[index]); line2(); for(index = 16; index < 32; index++){ lcd_data(disp[index]); void clr_buffer (void){ for(char x = 0; x <32; x++) disp[x] = ' '; //Clears message Buffer to blank spaces void delay (void){ INPUT; while(0x08 & P1IN) OUTPUT; //The delay function

97

98 Εισαγωγή Για την καλύτερη κατανόηση των ασκήσεων και για ευκολία και λειτουργικότητα σχεδιάστηκαν τρία PCB. Το πρώτο είναι η βασική πλακέτα για την τοποθέτηση του ez430-f2013 και τον έλεγχό του, το δεύτερο είναι ένα keypad 4x4 για την αντίστοιχη εφαρµογή και το τρίτο είναι µια βάση για τους MSP430x20x σε DIP14 πακέτο η οποία µας επιτρέπει τον προγραµµατισµό τους µέσω του προγραµµατιστή του ez430 και συνδυάζεται µε την βασική µας πλακέτα. Κεντρική πλακέτα προγραµµατισµού Στην πλακέτα αυτή έχει τοποθετηθεί µια βάση για την τοποθέτηση του ez430-f2013 καθώς και µια σειρά από buttons για το port 1 του µικροελεγκτή σε συνδυασµό µε led για τον οπτικό έλεγχο των προγραµµάτων. Επίσης, έχει τοποθετηθεί ένας κρύσταλλος 32768Ηz για τον χρονισµό του µικροελεγκτή όταν ζητηθεί από το πρόγραµµα όπως και ένα ποτενσιόµετρο αν ζητηθεί είσοδος τάσης στο port(περισσότερο για τη µετατροπή αναλογικού σε ψηφιακό σήµα). Τέλος υπάρχει µια µπαταρία τύπου CR2032(3.3V) για την τροφοδοσία του µικροελεγκτή όπως και ένα κύκλωµα τροφοδοσίας που δέχεται από εξωτερικό τροφοδοτικό 5V στον αντάπτορα στο κάτω µέρος και µέσω του σταθεροποιητή τροφοδοτεί το κύκλωµα µε 3.3V

99 Πλακέτα πληκτρολογίου 4x4(keypad) Η πλακέτα αυτή σχεδιάστηκε για την πραγµατοποίηση της εφαρµογής του πληκτρολογίου 4x4 της άσκησης 4 και συνδέεται µέσω µιας καλωδιοταινίας µε την κεντρική πλακέτα

100 Πλακέτα προγραµµατισµού MSP430x20x DIP Η πλακέτα αυτή δέχεται στη βάση της πάνω όψης µικροελεγκτές MSP430 σε DIP14 που µέσω των pins αριστερά µπορούν να προγραµµατιστούν από τον προγραµµατιστή του ez430-f2013. Επίσης µέσω των pins στην κάτω όψη τοποθετείται στην κεντρική πλακέτα για την ευκολία και των έλεγχο του προγραµµατισµού. Τέλος µε ένα jumper στο κάτω µέρος επιλέγουµε την τροφοδοσία του µικροελεγκτή(usb οριζόντια)

Άσκηση 2 η : Εισαγωγή στο eζ430-f2013 με χρήση του IAR Embedded Workbench, ενός αναπτυξιακού περιβάλλοντος για τα MSP430

Άσκηση 2 η : Εισαγωγή στο eζ430-f2013 με χρήση του IAR Embedded Workbench, ενός αναπτυξιακού περιβάλλοντος για τα MSP430 Περιεχόμενα Τίτλος...... Άσκηση 1 η : Εισαγωγή στην οικογένεια μικροελεγκτών MSP430F20xx 3 Αρχιτεκτονική MSP430..................................... 4 Καταχωρητές.................................................

Διαβάστε περισσότερα

ΜΕΡΟΣ 1. Διακοπές (Interrupts)

ΜΕΡΟΣ 1. Διακοπές (Interrupts) Εργαστήριο Μικροελεγκτών 6η ΑΣΚΗΣΗ ΗΜΕΡΟΜΗΝΙΑ ΟΝΟΜΑ ΕΠΩΝΥΜΟ ΑΜ ΕΞΑΜΗΝΟ ΣΚΟΠΟΣ ΕΡΓΑΣΤΗΡΙΟΥ Διακοπές (Interrupts) Τρόπο Λειτουργίας (Operating Modes) ΜΕΡΟΣ 1. Διακοπές (Interrupts) 1. Εισαγωγή 1. Μια διακοπή

Διαβάστε περισσότερα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

Διαβάστε περισσότερα

Μαθαίνοντας το hardware του αναπτυξιακού

Μαθαίνοντας το hardware του αναπτυξιακού 1. ΑΣΚΗΣΗ 1 Μαθαίνοντας το hardware του αναπτυξιακού Προϋποθέσεις Το εργαστήριο αυτό προϋποθέτει το διάβασμα και χρήση των εξής: Αρχείο mcbstr9.chm HTML, που δίδεται με τα υπόλοιπα αρχεία του εργαστηρίου.

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ ΕΙΣΑΓΩΓΗ Θέµατα ❸Συστήµατα Η/Υ (αναφορά) ❸Γλώσσα υπολογιστών ❸Γλώσσες προγραµµατισµού (low-high level) ❸Low level VS high level programming ❸Βασικά µέρη Η/Υ ❸Μικροϋπολογιστές (µc µp) ❸Αρχιτεκτονική µικροελεγκτών

Διαβάστε περισσότερα

Embedded Systems Laboratory LAB 06 CLKS-a

Embedded Systems Laboratory LAB 06 CLKS-a Embedded Systems Laboratory LAB 06 CLKS-a Μετρητές (Timers) και Ρολόγια (Clocks) Στο τρέχον εργαστήριο θα ασχοληθούµε µε τις πηγές και τις γραµµές χρονισµού του MSP430F2013. Η διάταξη των επαφών που µας

Διαβάστε περισσότερα

Ενσωµατωµένα Συστήµατα

Ενσωµατωµένα Συστήµατα Ενσωµατωµένα Συστήµατα για εφαρµογές πραγµατικού χρόνου Μικροελεγκτής Arduino Ιωάννης Καλόµοιρος Αναπληρωτής Καθηγητής Τµήµα Μηχανικών Πληροφορικής Μάθηµα 7ο Τι είναι το Arduino... Ένα open-hardware σύστηµα

Διαβάστε περισσότερα

ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ. Τίτλος Μαθήματος. Διαλέξεις - Θεωρητική Διδασκαλία, Εποπτευόμενο Εργαστήριο Επίδειξη, Μελέτες (Projects)

ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ. Τίτλος Μαθήματος. Διαλέξεις - Θεωρητική Διδασκαλία, Εποπτευόμενο Εργαστήριο Επίδειξη, Μελέτες (Projects) ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ Τίτλος Μαθήματος Μικροελεγκτές και Ενσωματωμένα συστήματα Ανάπτυξη και Εφαρμογές Κωδικός Μαθήματος Μ2 Θεωρία / Εργαστήριο Θεωρία + Εργαστήριο Πιστωτικές μονάδες 4 Ώρες Διδασκαλίας 2Θ+1Ε

Διαβάστε περισσότερα

Προγραμματισμός σε C και προγραμματισμός Μακροεντολών με τον ΕΖ430

Προγραμματισμός σε C και προγραμματισμός Μακροεντολών με τον ΕΖ430 Προγραμματισμός σε C και προγραμματισμός Μακροεντολών με τον ΕΖ430 Άσκηση 1. Πολλαπλασιασμός και διαίρεση με ολίσθηση bits. Οι πολλαπλασιασμοί και οι διαιρέσεις είναι περίπλοκες διαδικασίες για υλοποίηση

Διαβάστε περισσότερα

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για: Σελίδα 1 από 11 Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για: την επικοινωνία, µε τα υπόλοιπα ολοκληρωµένα κυκλώµατα του υπολογιστικού συστήµατος. την παροχή τροφοδοσίας

Διαβάστε περισσότερα

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων Εργαστήριο ενσωματωμένων συστημάτων Παρουσίαση 1: Εισαγωγή στα ενσωματωμένα συστήματα (embedded systems) Εργαστήριο Αυτομάτου Ελέγχου Ενσωματωμένα συστήματα (Embedded Systems) Ενσωματωμένα συστήματα (Embedded

Διαβάστε περισσότερα

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Μαθηµα 2 ηµήτρης Λιούπης 1 Intel SA-1110 µc StrongARM core. System-on-Chip. Εξέλιξη των SA-110 και SA-1100. 2 ARM cores ARM: IP (intellectual

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ 1.1 ΕΙΣΑΓΩΓΗ ΣΤΑ ΑΝΑΛΟΓΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ 1 1.1.1 Αναλογικά σήματα 1 1.1.2 Οι αντιστάσεις 3 1.1.3 Οι πυκνωτές 7 1.1.4 Τα πηνία 11 1.1.5 Οι δίοδοι 13 1.1.6

Διαβάστε περισσότερα

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Τι εννοούμε με τον όρο υπολογιστικό σύστημα και τι με τον όρο μικροϋπολογιστικό σύστημα; Υπολογιστικό

Διαβάστε περισσότερα

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε

Διαβάστε περισσότερα

Τ.Ε.Ι. ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ. Ασκήσεις 1-2 Εισαγωγή

Τ.Ε.Ι. ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ. Ασκήσεις 1-2 Εισαγωγή Τ.Ε.Ι. ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΒΙΟΜΗΧΑΝΙΚΟΙ ΑΥΤΟΜΑΤΙΣΜΟΙ Εφαρµογές Προγραµµατιζόµενων Λογικών Ελεγκτών-Εργαστήριο Εργαστηριακός Συνεργάτης: Βέλλος Κων/νος Ασκήσεις 1-2 Εισαγωγή

Διαβάστε περισσότερα

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Παρακάτω δίνονται μερικοί από τους ακροδέκτες που συναντάμε στην πλειοψηφία των μικροεπεξεργαστών. Φτιάξτε έναν πίνακα που να

Διαβάστε περισσότερα

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας, Μικροεπεξεργαστές Σημειώσεις Μαθήματος 2013-14 Υπεύθυνος: Δρ Άρης Παπακώστας, Interrupts - Διακοπές Είναι ένας τρόπος για να διακοπεί η ροή ενός προγράμματος έτσι ώστε να εξυπηρετηθεί ένα έκτακτο γενογός

Διαβάστε περισσότερα

WDT και Power Up timer

WDT και Power Up timer Ο ΜΙΚΡΟΕΛΕΓΚΤΗΣ PIC O μικροελεγκτής PIC κατασκευάζεται από την εταιρεία Microchip. Περιλαμβάνει τις τρεις βασικές κατηγορίες ως προς το εύρος του δίαυλου δεδομένων (Data Bus): 8 bit (σειρές PIC10, PIC12,

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ

ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ Σκοπός της άσκησης Οι φοιτητές θα εξοικειωθούν με την πλακέτα του μικροελεγκτή και θα αναγνωρίσουν τα βασικά της στοιχεία. Επίσης θα εξοικειωθούν

Διαβάστε περισσότερα

Συστήματα Μικροεπεξεργαστών

Συστήματα Μικροεπεξεργαστών Εργαστήριο 1 ο Εισαγωγή στον AVR Περίγραμμα Εργαστηριακής Άσκησης Εισαγωγή... 2 Κατηγορίες μικροελεγκτών AVR... 2 Εξοικείωση με το περιβάλλον AVR Studio 4... 3 Βήμα 1ο: Δημιουργία νέου έργου (project)...

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΕΛΕΓΚΤΩΝ

ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΕΛΕΓΚΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΕΛΕΓΚΤΩΝ ATMEL AVR8 ΠΟΡΛΙΔΑΣ ΔΗΜΗΤΡΙΟΣ ATMEL AVR Atmega16 Χαρακτηριστικά Μικροελεγκτής 8-bit υψηλής απόδοσης και χαμηλής κατανάλωσης Προοδευμένη αρχιτεκτονική RISC (Reduced instruction

Διαβάστε περισσότερα

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων Εργαστήριο ενσωματωμένων συστημάτων Παρουσίαση 2: Βασικός Προγραμματισμός Arduino (AVR) Εργαστήριο Αυτομάτου Ελέγχου Η πλατφόρμα Arduino UNO Microcontroller: ATmega328 Operating Voltage: 5V Digital I/O

Διαβάστε περισσότερα

2. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΤΩΝ ΘΥΡΩΝ ΕΙΣΟ ΟΥ/ΕΞΟ ΟΥ ΤΟΥ PIC16F877-ΑΡΙΘΜΗΤΙΚΕΣ ΕΝΤΟΛΕΣ

2. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΤΩΝ ΘΥΡΩΝ ΕΙΣΟ ΟΥ/ΕΞΟ ΟΥ ΤΟΥ PIC16F877-ΑΡΙΘΜΗΤΙΚΕΣ ΕΝΤΟΛΕΣ 1 2. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΤΩΝ ΘΥΡΩΝ ΕΙΣΟ ΟΥ/ΕΞΟ ΟΥ ΤΟΥ PIC16F877-ΑΡΙΘΜΗΤΙΚΕΣ ΕΝΤΟΛΕΣ Σκοπός της άσκησης: εξοικείωση µε τις θύρες εισόδου/εξόδου ενός µικροελεγκτή 2. Θεωρητικό Μέρος 2.1.1 Θύρες εισόδου / εξόδου

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ... 11

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ... 11 ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ... 11 1. ΑΣΚΗΣΗ 1... 13 Προϋποθέσεις... 13 Εισαγωγή... 13 1.1 Το Υλικό του Αναπτυξιακού (Hardware)... 14 1.1.1 Διαβάζοντας το σχηματικό... 16 1.1.2 STR912FAW44XB... 16 1.1.3 Χάρτης

Διαβάστε περισσότερα

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

Διαβάστε περισσότερα

Περιεχόµενα. I Βασικές Γνώσεις 1

Περιεχόµενα. I Βασικές Γνώσεις 1 Περιεχόµενα I Βασικές Γνώσεις 1 1 Μοντελοποίηση Προγραµµάτων 3 1.1 Ψευδογλώσσα....................... 6 1.2 Διαγράµµατα Ροής..................... 6 1.3 Παραδείγµατα σε Ψευδογλώσσα και Διαγράµµατα Ροής.

Διαβάστε περισσότερα

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:

Διαβάστε περισσότερα

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 3 : Μια άποψη του κορυφαίου επιπέδου λειτουργίας και διασύνδεσης του υπολογιστή Καρβούνης Ευάγγελος Η έννοια

Διαβάστε περισσότερα

Βασικές Έννοιες της Πληροφορικής

Βασικές Έννοιες της Πληροφορικής Βασικές Έννοιες της Πληροφορικής Ηλεκτρονικός Υπολογιστής Αυτόματη ηλεκτρονική μηχανή που δέχεται, φυλάσσει, επαναφέρει, επεξεργάζεται και παρουσιάζει πληροφορίες σύμφωνα με προκαθορισμένες εντολές. Δεδομένα

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017)

ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017) ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017) Περιγραφή της Άσκησης Ο σκοπός της πρώτης άσκησης είναι κυρίως η εξοικείωση με το περιβάλλον προγραμματισμού του Arduino, γι αυτό και δεν είναι ιδιαίτερα σύνθετη. Αρχικά, θα

Διαβάστε περισσότερα

12. Διακοπές Interrupts (IRQ)

12. Διακοπές Interrupts (IRQ) 2. Διακοπές Interrupts (IRQ) Πίνακας Ι. Χειρισμός διακοπών στον ATmega6. A/A Program address Source Vector Interrupt definition External Pin, Power-on Reset, Brown-outReset, Watchdog Reset, and JTAG AVR

Διαβάστε περισσότερα

δειγμα ΠΕΡΙΕΧΟΜΕΝΑ 2. Τεχνολογία και P.L.C Βλέποντας το Hardware του Twido P.L.C Γενική δοµή ενός συστήµατος αυτοµατισµού 14

δειγμα ΠΕΡΙΕΧΟΜΕΝΑ 2. Τεχνολογία και P.L.C Βλέποντας το Hardware του Twido P.L.C Γενική δοµή ενός συστήµατος αυτοµατισµού 14 ΠΕΡΙΕΧΟΜΕΝΑ Σελίδα 1. Eισαγωγή 11 2. Τεχνολογία και P.L.C. 13 2.1. Γενική δοµή ενός συστήµατος αυτοµατισµού 14 2.1.1. Σύστηµα αυτοµατισµού 14 2.1.2. ιάφορες Τεχνολογίες 19 2.1.3. Προγραµµατιζόµενος Λογικός

Διαβάστε περισσότερα

Σηµαντικές παρατηρήσεις σχετικά µε το backround:

Σηµαντικές παρατηρήσεις σχετικά µε το backround: ΠΕΡΙΓΡΑΦΗ ΛΕΙΤΟΥΡΓΙΑΣ SOFTWARE SAE10 Το software της αναγγελίας ορόφων είναι απαραίτητο για τη δηµιουργία των USB flash που θα χρησιµοποιηθούν στην πλακέτα SAE10. Προσφέρει ταχύτητα, ευελιξία και πολλές

Διαβάστε περισσότερα

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07 Ενότητα 4 Εισαγωγή στην Πληροφορική Κεφάλαιο 4Α: Αναπαράσταση πληροφορίας Κεφάλαιο 4Β: Επεξεργαστές που χρησιµοποιούνται σε PCs Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή

Διαβάστε περισσότερα

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Πλατφόρμες ενσωματωμένων συστημάτων Διδάσκων: Παναγιώτης Καρκαζής Περίγραμμα - Δίαυλοι επικοινωνίας - Μνήμες -Συσκευές Ι/Ο Timers Counters keyboards Leds 7 segment display

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΕΣ ΤΗΛΕΠIΚΟΙΝΩΝΙΑΚΩΝ ΔΙΑΤΑΞΕΩΝ

ΕΦΑΡΜΟΓΕΣ ΤΗΛΕΠIΚΟΙΝΩΝΙΑΚΩΝ ΔΙΑΤΑΞΕΩΝ ΕΦΑΡΜΟΓΕΣ ΤΗΛΕΠIΚΟΙΝΩΝΙΑΚΩΝ ΔΙΑΤΑΞΕΩΝ ΟΙΚΟΝOΜΟΥ ΧΑΡΗΣ (6424) ΦΩΚΟΣ ΝΙΚΟΛΑΟΣ(6592) ΚΑΜΒΥΣΗΣ ΝΙΚΟΛΑΟΣ(7178) 2013-2014 ΠΕΡΙΕΧΟΜΕΝΑ Σκοπός της εργασίας Ανάλυση Arduino Uno Δημιουργία πληροφορίας Αποστολή και

Διαβάστε περισσότερα

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΦΩΤΙΑ ΗΣ Α. ΗΜΗΤΡΗΣ M.Sc. ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ ΙΑΚΟΠΕΣ (INTERRUPTS) ΟΙ ΙΑΚΟΠΕΣ ΕΙΝΑΙ «ΣΥΜΒΑΝΤΑ», ΕΣΩΤΕΡΙΚΑ

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Α ) Ενσωματωμένα Συστήματα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

Καθολική Σειριακή Διεπιφάνεια (Universal Serial Interface)

Καθολική Σειριακή Διεπιφάνεια (Universal Serial Interface) Καθολική Σειριακή Διεπιφάνεια (Universal Serial Interface) Εισαγωγή Η καθολική σειριακή διεπιφάνεια (universal serial interface, USI) παρέχει SPI (Serial peripheral interface) και I 2 C (Inter integrated

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 121 ΕΡΓΑΣΤΗΡΙΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΝΗΜΗ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΖΟΜΕΝΗ ΛΟΓΙΚΗ ΥΠΕΥΘΥΝΟΣ ΕΡΓΑΣΤΗΡΙΩΝ: ΧΡΥΣΟΣΤΟΜΟΣ ΧΡΥΣΟΣΤΟΜΟΥ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2001 ΕΠΛ 121 ΕΡΓΑΣΤΗΡΙΑ ΨΗΦΙΑΚΩΝ

Διαβάστε περισσότερα

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό.

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό. Ερωτήσεις θεωρίας MY Μέρος Α. Υλικό. 1. Η μνήμη ROM είναι συνδυαστικό ή ακολουθιακό κύκλωμα; 2. α) Να σχεδιαστεί μία μνήμη ROM που να δίνει στις εξόδους της το πλήθος των ημερών του μήνα, ο αριθμός του

Διαβάστε περισσότερα

1. Περιβάλλον εργασίας παραδείγματα σύνταξης

1. Περιβάλλον εργασίας παραδείγματα σύνταξης 1. Περιβάλλον εργασίας παραδείγματα σύνταξης Θα χρειαστούμε τα προγράμματα Atmel Studio 7.0 (http://www.atmel.com/) και khazama AVR Programmer (http://khazama.com/project/programmer/). Τα προγράμματα διατίθενται

Διαβάστε περισσότερα

Είναι το πρωτόκολλο RS232 που χρησιμοποιείται στις σειριακές θύρες COM με τη διαφορά ότι εκτελείται σε επίπεδο τάσεων TTL. 2

Είναι το πρωτόκολλο RS232 που χρησιμοποιείται στις σειριακές θύρες COM με τη διαφορά ότι εκτελείται σε επίπεδο τάσεων TTL. 2 16. USART Οι AVR διαθέτουν ενσωματωμένη διάταξη για υποστήριξη σειριακής επικοινωνίας USART 1 (Universal Synchronous and Asynchronous serial Receiver and Transmitter). Η ενσωματωμένη διάταξη μας εξυπηρετεί

Διαβάστε περισσότερα

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από: Σελίδα 1 από 12 Απαντήσεις στο φυλλάδιο 55 Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από: (α) Κεντρική Μονάδα Επεξεργασίας. (β) Κύρια Μνήµη. (γ) Μονάδες εισόδου. (δ) Μονάδες εξόδου. (ε) Βοηθητική

Διαβάστε περισσότερα

10. Πληκτρολόγιο matrix 4x4

10. Πληκτρολόγιο matrix 4x4 10. Πληκτρολόγιο matrix 4x4 Το πληκτρολόγιο matrix 4x4 αποτελείται από 16 πλήκτρα διακόπτες τα οποία είναι συνδεδεμένα μεταξύ τους ανά 4 σε τέτοια διάταξη ώστε, με το ένα άκρο τους να σχηματίζουν 4 σειρές

Διαβάστε περισσότερα

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο 2006-2007 Εκφώνηση Εργαστηρίου Στο εργαστήριο του µαθήµατος σας ζητείται να σχεδιάσετε, να υλοποιήσετε και να επαληθεύσετε

Διαβάστε περισσότερα

Εφαρμογές Arduino Σεμινάριο Ηλεκτρονικού Τομέα

Εφαρμογές Arduino Σεμινάριο Ηλεκτρονικού Τομέα Εφαρμογές Arduino Σεμινάριο Ηλεκτρονικού Τομέα 1ο ΕΠΑΛ Περάματος 7ο ΕΚ Πειραιά Πλακέτα Arduino Το 2005 oι Massimo Banzi και David Cueartielles στο Ivrea Δημιουργούν την υπολογιστική πλατφόρμα Arduino.

Διαβάστε περισσότερα

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

Διαβάστε περισσότερα

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή 8.1 Τακτική σάρωση (Polling) Ας υποθέσουμε ότι έχουμε ένα πληκτρολόγιο συνδεδεμένο σε ένα υπολογιστικό σύστημα. Το πληκτρολόγιο είναι μια μονάδα εισόδου.

Διαβάστε περισσότερα

Προηγμένοι Μικροεπεξεργαστές. Φροντιστήριο 4 Real Mode Interrupts

Προηγμένοι Μικροεπεξεργαστές. Φροντιστήριο 4 Real Mode Interrupts Προηγμένοι Μικροεπεξεργαστές Φροντιστήριο 4 Real Mode Interrupts Επισκόπηση Μορφές control tranfer Γενικά μη προγραμματισμένες Ασυγχρονα προς την εκτέλεση του προγράμματος Hardware interrupts Σύγχρονα

Διαβάστε περισσότερα

Οργάνωση Υπολογιστών (IΙI)

Οργάνωση Υπολογιστών (IΙI) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

Διαβάστε περισσότερα

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο 2006-2007 Εκφώνηση Εργαστηρίου Στο εργαστήριο του µαθήµατος σας ζητείται να σχεδιάσετε, να υλοποιήσετε και να επαληθεύσετε

Διαβάστε περισσότερα

Εφαρμογές μικροελεγκτών

Εφαρμογές μικροελεγκτών Μικροελεγκτές Έναν ορισμό που θα μπορούσαμε να δώσουμε για τους μικροελεγκτές είναι ο εξής: Μικροελεγκτής είναι ένα προγραμματιζόμενο ολοκληρωμένο κύκλωμα το οποίο διαθέτει επεξεργαστή, μνήμη, διάφορα

Διαβάστε περισσότερα

ΠΕΡΙΓΡΑΦΗ ΥΛΙΚΟΥ AVR 1. ΕΙΣΑΓΩΓΗ 1.1 ΓΕΝΙΚΗ ΔΟΜΗ 1.2 ΟΙΚΟΓΕΝΕΙΕΣ 1.3 ΤΥΠΟΙ 1.4 ΕΡΓΑΛΕΙΑ

ΠΕΡΙΓΡΑΦΗ ΥΛΙΚΟΥ AVR 1. ΕΙΣΑΓΩΓΗ 1.1 ΓΕΝΙΚΗ ΔΟΜΗ 1.2 ΟΙΚΟΓΕΝΕΙΕΣ 1.3 ΤΥΠΟΙ 1.4 ΕΡΓΑΛΕΙΑ ΠΕΡΙΓΡΑΦΗ ΥΛΙΚΟΥ AVR 1. ΕΙΣΑΓΩΓΗ 1.1 ΓΕΝΙΚΗ ΔΟΜΗ 1.2 ΟΙΚΟΓΕΝΕΙΕΣ 1.3 ΤΥΠΟΙ 1.4 ΕΡΓΑΛΕΙΑ Oι βασικές αρχές λειτουργίας των RISC είναι : Εντολές ενός κ.μ. με κατάλληλη σχεδίαση της μονάδας διοχέτευσης Μεγάλος

Διαβάστε περισσότερα

10. Πληκτρολόγιο matrix 4x4

10. Πληκτρολόγιο matrix 4x4 10. Πληκτρολόγιο matrix 4x4 Το πληκτρολόγιο matrix 4x4 αποτελείται από 16 πλήκτρα διακόπτες τα οποία είναι συνδεδεμένα μεταξύ τους ανά 4 σε τέτοια διάταξη ώστε, με το ένα άκρο τους να σχηματίζουν 4 σειρές

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 3 ΑΣΚΗΣΗ 3. Μηχανικοί ιακόπτες. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

ΑΣΚΗΣΗ 3 ΑΣΚΗΣΗ 3. Μηχανικοί ιακόπτες. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ ΑΣΚΗΣΗ 3 Μηχανικοί ιακόπτες Σκοπός της άσκησης Εισαγωγή δεδοµένων στο µc από το περιβάλλον µέσω SW (Switch) Είδη SW στο εµπόριο ιασύνδεση SW (κατάσταση ηλ. σήµα) Έλεγχος κατάστασης SW Το πρόβληµα των αναπηδήσεων

Διαβάστε περισσότερα

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων Εργαστήριο ενσωματωμένων συστημάτων Παρουσίαση 2: Βασικός Προγραμματισμός Arduino (AVR) Εργαστήριο Αυτομάτου Ελέγχου Η πλατφόρμα Arduino Microcontroller: ATmega328 Operating Voltage: 5V Digital I/O Pins:

Διαβάστε περισσότερα

ΤΕΙ Κρήτης, Παράρτηµα Χανίων

ΤΕΙ Κρήτης, Παράρτηµα Χανίων ΠΣΕ, Τµήµα Τηλεπικοινωνιών & ικτύων Η/Υ Εργαστήριο ιαδίκτυα & Ενδοδίκτυα Η/Υ ( ηµιουργία συστήµατος µε ροint-tο-ροint σύνδεση) ρ Θεοδώρου Παύλος Χανιά 2003 Περιεχόµενα 1 ΕΙΣΑΓΩΓΗ...2 2 ΤΟ ΚΑΝΑΛΙ PΟINT-TΟ-PΟINT...2

Διαβάστε περισσότερα

Σηµαντικές παρατηρήσεις σχετικά µε το backround:

Σηµαντικές παρατηρήσεις σχετικά µε το backround: ΠΕΡΙΓΡΑΦΗ ΛΕΙΤΟΥΡΓΙΑΣ SOFTWARE SAE10 Το software της αναγγελίας ορόφων είναι απαραίτητο για τη δηµιουργία των USB flash που θα χρησιµοποιηθούν στην πλακέτα SAE10. Προσφέρει ταχύτητα, ευελιξία και πολλές

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

Διαβάστε περισσότερα

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες. Γλώσσες Περιγραφής Μοντέλα Ένα µοντέλο ενός κυκλώµατος είναι µία αναπαράσταση που παρουσιάζει χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες. Τα τυπικά µοντέλα έχουν καλά ορισµένη σύνταξη. Τα αυτόµατα

Διαβάστε περισσότερα

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο 2007-2008 Εκφώνηση Εργαστηρίου Στο εργαστήριο του µαθήµατος σας ζητείται να σχεδιάσετε, να υλοποιήσετε και να επαληθεύσετε

Διαβάστε περισσότερα

ΜΑΘΗΜΑ: ΜΙΚΡΟΕΛΕΓΚΤΕΣ

ΜΑΘΗΜΑ: ΜΙΚΡΟΕΛΕΓΚΤΕΣ ΜΑΘΗΜΑ: ΜΙΚΡΟΕΛΕΓΚΤΕΣ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΩΝ ΕΞΕΤΑΣΕΩΝ ΙΑΝΟΥΑΡΙΟΥ 2011 Καθηγητής: Νικολαΐδης Νικ. Ημ/νία εξέτασης: 28-1-2011 ΘΕΜΑ 1 Να σχεδιαστεί μία μνήμη ROM που να περιέχει το κείμενο "MICRO". Ο ASCII κωδικός

Διαβάστε περισσότερα

Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32. Αρχείο καταχωρητών και Χάρτης Μνήµης

Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32. Αρχείο καταχωρητών και Χάρτης Μνήµης ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών Εισαγωγή στους Μικροεπεξεργαστές MIPS-32 ( ιάλεξη 1) ιδάσκων: Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών

Διαβάστε περισσότερα

Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες

Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες Στην 4 η εργαστηριακή άσκηση θα ασχοληθούμε με την ιεραρχική σχεδίαση. Συγκεκριμένα θα μάθουμε να σχεδιάζουμε απλές οντότητες τις οποίες

Διαβάστε περισσότερα

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor Προηγμένοι Μικροεπεξεργαστές Εργαστήριο 4 - Editor Περιγραφή Υλοποίηση ενός υποτυπώδους editor που θα: Διαβάζει ένα προκαθορισμένο αρχείο Θα το απεικονίζει στην οθόνη Θα κάνει highlight με έναν ελεγχόμενο

Διαβάστε περισσότερα

ΗΥ220: Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης Χειµερινό Εξάµηνο

ΗΥ220: Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης Χειµερινό Εξάµηνο ΗΥ220: Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης Χειµερινό Εξάµηνο 2017 2018 Εργαστήριο 2 (2 εβδοµάδες) Εβδοµάδα 27/11 έως 01/12 (αναλόγως το εργαστηριακό τµήµα που

Διαβάστε περισσότερα

ίοδοι Εκποµπής Φωτός

ίοδοι Εκποµπής Φωτός ΑΣΚΗΣΗ 2 ίοδοι Εκποµπής Φωτός Σκοπός της άσκησης Εξαγωγή δεδοµένων στο περιβάλλον µέσω LED (Light Emitter Diode) ιασύνδεση LED Έλεγχος κατάστασης LED Χρόνος εκτέλεσης εντολών της MCU Υλοποίηση τεχνητής

Διαβάστε περισσότερα

Πλακέτα Arduino. 1ο ΕΠΑΛ Περάματος - 7ο ΕΚ Πειραιά

Πλακέτα Arduino. 1ο ΕΠΑΛ Περάματος - 7ο ΕΚ Πειραιά Πλακέτα Arduino Το 2005 oι Massimo Banzi και David Cueartielles στο Ivrea Δημιουργούν την υπολογιστική πλατφόρμα Arduino. Το Arduino είναι βασισμένο σε μια απλή μητρική πλακέτα ανοικτού κώδικα, με ενσωματωμένο

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 201 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

Ψηφιακή Επεξεργασία Σήματος

Ψηφιακή Επεξεργασία Σήματος ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ψηφιακή Επεξεργασία Σήματος Ενότητα Α: Περιγραφή και Τεχνικά Χαρακτηριστικά της κάρτας TMS320C5505 ezdsp Όνομα Καθηγητή: Ραγκούση

Διαβάστε περισσότερα

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

Διαβάστε περισσότερα

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Εισαγωγή Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Σκοπός του εργαστηρίου είναι να κατανοήσουµε τους τρόπους προσπέλασης της µνήµης (µέθοδοι διευθυνσιοδότησης) σε ένα υπολογιστικό σύστηµα. Η Μνήµη 1 Ψηφιακή Λογική 4

Διαβάστε περισσότερα

Οργάνωση Υπολογιστών (Ι)

Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

Διαβάστε περισσότερα

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή Κεφάλαιο 3 Το υλικό του υπολογιστή Εισαγωγή Τµήµατα του Η/Υ καιοργάνωση Μονάδα Κεντρικής Μνήµης Κεντρική Μονάδα Επεξεργασίας (CPU) Μονάδα Εισόδου Εξόδου ίαυλοι Επικοινωνίας Εναλλακτικές αρχιτεκτονικές

Διαβάστε περισσότερα

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ 1.1 ΕΙΣΑΓΩΓΙΚΗ ΑΝΑΦΟΡΑ ΣΤΑ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ 1 1.1.1 Σήματα ψηφιακών συστημάτων 1 1.1.2 Παράλληλη και σειριακή μεταφορά πληροφορίας 2 1.1.3 Λογική τριών

Διαβάστε περισσότερα

8051 Interrupt Ports. Name Alternate Function

8051 Interrupt Ports. Name Alternate Function Σκοπόςτης Διάλεξης Εισαγωγήστις πηγές διακοπών (interrupts) και στον τρόπο που αυτές είναι διαχειρίσιμες από την αρχιτεκτονική 8051 Πώς συνδέονται οι διακόπτες και τα πληκτρολόγια σε ένα μικροϋπολογιστή

Διαβάστε περισσότερα

; Οι HL δείχνουν την επόµενη θέση µνήµης MVI A, 38H CMP H JNZ DO_FLMEM ; POP B. ; Ανάκτηση καταχωρητών απο το σωρό.

; Οι HL δείχνουν την επόµενη θέση µνήµης MVI A, 38H CMP H JNZ DO_FLMEM ; POP B. ; Ανάκτηση καταχωρητών απο το σωρό. ΑΣΚΗΣΗ 1 η 1. Να γραφεί πρόγραµµα σε µνηµονική γλώσσα assembly 8085, υπό µορφή υπορουτίνας, (µε τις απαραίτητες αρχικοποιήσεις), που να γεµίζει τις θέσεις µνήµης RAM από 3400-37FF Hex, µε περιεχόµενα αυξηµένα

Διαβάστε περισσότερα

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) Συσκευές αποθήκευσης Ένας υπολογιστής προκειµένου να αποθηκεύσει δεδοµένα χρησιµοποιεί δύο τρόπους αποθήκευσης: Την Κύρια Μνήµη Τις συσκευές µόνιµης αποθήκευσης (δευτερεύουσα

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016)

ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016) ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016) Περιγραφή της Άσκησης Στόχος της άσκησης είναι η δημιουργία ενός συστήματος διαχείρισης φωτισμού. Μία φωτομεταβαλλόμενη αντίσταση (LDR) θα διαπιστώνει την ποσότητα του φωτός

Διαβάστε περισσότερα

THERMOMETER TC-101 ΕΓΧΕΙΡΙ ΙΟ ΕΓΚΑΤΑΣΤΑΣΗΣ ΚΑΙ ΧΡΗΣΗΣ. 7/12/2011 AUTOGUARD-PG Σελ.1 7/12/2011 AUTOGUARD-PG Σελ.2

THERMOMETER TC-101 ΕΓΧΕΙΡΙ ΙΟ ΕΓΚΑΤΑΣΤΑΣΗΣ ΚΑΙ ΧΡΗΣΗΣ. 7/12/2011 AUTOGUARD-PG Σελ.1 7/12/2011 AUTOGUARD-PG Σελ.2 THERMOMETER TC-101 ΕΓΧΕΙΡΙ ΙΟ ΕΓΚΑΤΑΣΤΑΣΗΣ ΚΑΙ ΧΡΗΣΗΣ 7/12/2011 AUTOGUARD-PG Σελ.1 7/12/2011 AUTOGUARD-PG Σελ.2 1. Γενικά Είναι ένα σύστηµα µέτρησης θερµοκρασίας πολλών σηµείων και τηλεειδοποίησης µέσω

Διαβάστε περισσότερα

Η συχνότητα f των παλµών 0 και 1 στην έξοδο Q n είναι. f Qn = 1/(T cl x 2 n+1 )

Η συχνότητα f των παλµών 0 και 1 στην έξοδο Q n είναι. f Qn = 1/(T cl x 2 n+1 ) ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 9 ΥΑ ΙΚΟΙ ΑΠΑΡΙΘΜΗΤΕΣ Σκοπός: Η µελέτη της λειτουργίας των απαριθµητών. Υλοποίηση ασύγχρονου απαριθµητή 4-bit µε χρήση JK Flip-Flop. Κατανόηση της αλλαγής του υπολοίπου

Διαβάστε περισσότερα

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων. Α Γενικού Λυκείου Κεφάλαιο 1 1.1 Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων. Ιδιαίτερη θέση έχουν οι Υπολογιστικές συσκευές. Μηχανισμός

Διαβάστε περισσότερα

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual MILE Simulator Version 1.0 User's Manual Νοέμβριος, 2011 Περιεχόμενα 1. Εισαγωγή στον προσομοιωτή...2 1.1 Εγκατάσταση...2 1.2 Βοήθεια Διευκρινήσεις...2 2. Ξεκινώντας με τον προσομοιωτή...3 2.1 Το memory

Διαβάστε περισσότερα

Μετρήσεις και συλλογή δεδομένων (Data acquisition) με μικροελεγκτές. Εισαγωγή στο Arduino. Ηλεκτρομηχανολογικός εξοπλισμός διεργασιών

Μετρήσεις και συλλογή δεδομένων (Data acquisition) με μικροελεγκτές. Εισαγωγή στο Arduino. Ηλεκτρομηχανολογικός εξοπλισμός διεργασιών Μετρήσεις και συλλογή δεδομένων (Data acquisition) με μικροελεγκτές Εισαγωγή στο Arduino Ηλεκτρομηχανολογικός εξοπλισμός διεργασιών Τι είναι Μικροελεγκτής; Ηλεκτρονική συσκευή που διαχειρίζεται ηλεκτρονικά

Διαβάστε περισσότερα

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ. ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ d.fotiadis@kastoria.teikoz.gr

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ. ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ d.fotiadis@kastoria.teikoz.gr Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΦΩΤΙΑ ΗΣ Α. ΗΜΗΤΡΗΣ M.Sc. ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ (Σ.Τ.ΕΦ.) ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ d.fotiadis@kastoria.teikoz.gr Ασύγχρονη σειριακή

Διαβάστε περισσότερα

Γνωριμία με το Arduino

Γνωριμία με το Arduino Γνωριμία με το Arduino Τι είναι το Arduino; Το arduino είναι ένας μικρός υπολογιστής σε μέγεθος παλάμης που περιλαμβάνει ένα μικροελεγκτή (για εκτέλεση εντολών) και ένα σύνολο εισόδων/εξόδων για επικοινωνία

Διαβάστε περισσότερα

Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal Display

Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal Display Οδηγώντας μια οθόνη υγρών κρυστάλλων Liquid Crystal Display Σχηματικό Διάγραμμα μιας Οθόνης Υγρών Κρυστάλλων To Lcd εσωτερικά έχει έναν controller που είναι υπεύθυνος για την επεξεργασία τον δεδομένων

Διαβάστε περισσότερα

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Γ ΕΠΑΛ 14 / 04 / 2019

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Γ ΕΠΑΛ 14 / 04 / 2019 Γ ΕΠΑΛ 14 / 04 / 2019 ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΘΕΜΑ 1 ο 1. Να γράψετε στο τετράδιό σας το γράμμα καθεμιάς από τις παρακάτω προτάσεις και δίπλα τη λέξη ΣΩΣΤΟ, αν είναι σωστή ή τη λέξη ΛΑΘΟΣ, αν είναι λανθασμένη.

Διαβάστε περισσότερα

ε. Ένα κύκλωμα το οποίο παράγει τετραγωνικούς παλμούς και απαιτείται εξωτερική διέγερση ονομάζεται ασταθής πολυδονητής Λ

ε. Ένα κύκλωμα το οποίο παράγει τετραγωνικούς παλμούς και απαιτείται εξωτερική διέγερση ονομάζεται ασταθής πολυδονητής Λ ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΕΠΑΛ (ΟΜΑΔΑ Α ) & ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΣΑΒΒΑΤΟ 16/04/2016 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ (ΣΥΣΤΗΜΑΤΑ ΨΗΦΙΑΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ) ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΠΕΝΤΕ (5) ΕΝΔΕΙΚΤΙΚΕΣ

Διαβάστε περισσότερα

Το εσωτερικό ενός PC. Τεχνολογία Η/Υ & Πληροφοριών - 05 Κεντρική μονάδα Χουρδάκης Μανόλης

Το εσωτερικό ενός PC. Τεχνολογία Η/Υ & Πληροφοριών - 05 Κεντρική μονάδα Χουρδάκης Μανόλης Το εσωτερικό ενός PC 1 Το κουτί του PC (περίβλημα) περιέχει όλα τα βασικά μέρη του συστήματος Δύο κατηγορίες κουτιών: Desktop και Tower Mini tower Midi tower Full tower Κεντρική μονάδα Ο τύπος του κουτιού

Διαβάστε περισσότερα

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή Εισαγωγή Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ Σκοπός του εργαστηρίου είναι να γνωρίσουµε την εσωτερική δοµή και αρχιτεκτονική της κεντρικής µονάδας επεξεργασίας, να κατανοήσουµε τον τρόπο µε τον οποίο λειτουργεί

Διαβάστε περισσότερα

«ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ» ΕΣΩΤΕΡΙΚΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ

«ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ» ΕΣΩΤΕΡΙΚΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ «ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ» ΕΣΩΤΕΡΙΚΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ 8085 ΧΟΝΔΡΙΚΟ ΔΙΑΓΡΑΜΜΑ 8085 CPU ΟΙ ΚΑΤΑΧΩΡΗΤΕΣ ΤΟΥ 8085 Ο ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΗΣ ΕΝΤΟΛΩΝ Η ΑΡΙΘΜΗΤΙΚΗ ΚΑΙ ΛΟΓΙΚΗ ΜΟΝΑΔΑ ΟΙ «ΣΗΜΑΙΕΣ» FLAGS Η ΜΟΝΑΔΑ

Διαβάστε περισσότερα

Ενσωματωμένα Συστήματα

Ενσωματωμένα Συστήματα Ενσωματωμένα Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ ARDUINO Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μελετώντας το μάθημα θα μπορείς να ξέρεις τη λειτουργία του Polling να ξέρεις

Διαβάστε περισσότερα

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ CPUs Διδάσκων: Παναγιώτης Καρκαζής Περίγραμμα -Συσκευές Ι/Ο - Διακοπές, Εξαιρέσεις, Παγίδες -Καταστάσεις λειτουργίας -Συνεπαξεργαστές mechanism Συσκευές Ι/Ο Οι συσκευές

Διαβάστε περισσότερα