|
Οι μικροελεγκτές χρησιμοποιούνται κατά κόρο στα ηλεκτρονικά.
Ενσωματώνουν πολλές λειτουργίες καθιστώντας έτσι απλούστερο και ευκολότερο τον
σχεδιασμό πλακετών στις εφαρμογές. Υπάρχουν διάφοροι τύποι μικροελεγκτών και
εργαλεία για προγραμματισμό και ανάπτυξη εφαρμογών. Οι μικροελεγκτές AVR της
ATMEL είναι
σχετικά φθηνοί και βρίσκονται διαθέσιμα πολλά ελεύθερα εργαλεία, έτσι ώστε μπορείτε να ξεκινήσετε ο
ενδιαφερόμενος ακλουθώντας τα βήματα που περιγράφονται.
1. Επιλογή υλικού
Το υλικό που χρειάζεται μπορεί να αγοραστεί ή να
κατασκευαστεί. Στον τομέα κατασκευών παρουσιάζεται μια αναπτυξιακή πλακέτα με
τον μικροελεγκτή ATmega32 και ένας προγραμματιστής
In System Programmer USB. Η κατασκευή της αναπτυξιακής πλακέτας είναι σχετικά
εύκολη και τα υλικά μπορούν να βρεθούν σε κάθε κατάστημα ηλεκτρονικών και με
χαμηλή κόστος. Ο προγραμματιστής παρουσιάζει μια μικρή δυσκολία εξαιτίας των SMD που
χρησιμοποιούνται, αλλά μπορεί να χρησιμοποιηθεί ο προγραμματιστής που περιγράφεται
στη σελίδα του αναπτυξιακού. Ο προγραμματισμός σε αυτή την περίπτωση θα γίνεται
από τη σειριακή θύρα του αναπτυξιακού και τη σειριακή θύρα του υπολογιστή ή από θύρα USB χρησιμοποιώντας ειδικό καλώδιο μετατροπής με το οποίο η συνεργασία γίνεται χωρίς πρόβλημα. Σε κάθε περίπτωση πριν τοποθετηθεί στην πλακέτα του ο Tiny2313 θα χρειαστεί να προγραμματιστεί σε κάποιο έτοιμο αναπτυξιακό-προγραμματιστή. Εναλλακτικά μπορεί να χρησιμοποιηθεί ένας πολύ απλός προγραμματιστής που συνδέεται στην παράλληλη θύρα
του υπολογιστή. Βασική προϋπόθεση να υπάρχει φυσική παράλληλη θύρα γιατί δεν
μπορεί να λειτουργήσει με καλώδιο μετατροπής USB σε LPT. Για τον προγραμματισμό σε αυτή την περίπτωση θα χρειαστεί το πρόγραμμα PonyProg το οποίο θα παρουσιαστεί στη συνέχεια.
2. Eγκατάσταση λογισμικού
Το
λογισμικό που χρειάζεται μπορεί να βρεθεί στο διαδίκτυο και διατίθεται δωρεάν.
Η ATMEL προσφέρει, με απλή εγγραφή, το AVR Studio το οποίο
είναι μια ολοκληρωμένη σουίτα ανάπτυξης. Η εγκατάσταση του προγράμματος είναι απλή και δεν παρουσιάζει καμία δυσκολία. Στο διαδίκτυο
διατίθεται επίσης δωρεάν το WinAVR που είναι μεταγλωττιστής C και ενσωματώνεται στο AVR Studio, έτσι ώστε να είναι δυνατή η ανάπτυξη σε γλώσσα C, η οποία προσφέρει αρκετές ευκολίες. Αν και τα δύο αυτά προγράμματα
είναι αρκετά για ανάπτυξη και προγραμματισμό εφαρμογών, είναι χρήσιμο να
εγκατασταθούν δύο ακόμα προγράμματα με τα οποία γίνεται εύκολα η αναγνώριση και
η ρύθμιση των μικροελεγκτών. Το πρώτο είναι το AvrOspII το
οποίο δεν χρειάζεται εγκατάσταση (είναι μόνο ένα εκτελέσιμο αρχείο) και το δεύτερο είναι
το PonyProg.
3. Ξεκίνημα του AVR Studio, κώδικας σε C - μεταγλωττισμός
Μετά την εγκατάσταση του AVR Studio και του WinAVR η πλήρης
πλέον σουίτα είναι έτοιμη να χρησιμοποιηθεί. Καλούμε το AVR Studio
‘’Start->Programs->Atmel AVR Tools->AVR Studio 4’’ και επιλέγουμε ‘’New Project’’. Στο επόμενο παράθυρο επιλέγουμε από το ‘’Project type:’’ το ‘’AVR GCC’’, τσεκάρουμε τα ‘’Create initial file’’
και ‘’Create folder’’, καθορίζουμε στο ‘’Location:’’ τον φάκελο που θα αποθηκευτεί το Project και στο ‘’Project name:’’ το όνομά του και πατάμε ‘’Next>>’’. Στο παράθυρο
που ακολουθεί επιλέγουμε από το ‘’Debug platform:’’ το ‘’AVR Simulator’’ και από το ‘’Device:’’ τον μικροελεγκτή που θα χρησιμοποιήσουμε (στο παράδειγμα επιλέξαμε
τον ‘’ATmega32A’’) και πατάμε ‘’Finish’’. Στο επόμενο
παράθυρο εμφανίζεται ένας Editor στον οποίο ξεκινάμε να γράφουμε την εφαρμογή. Σε αυτό
το σημείο πρέπει να τονιστεί ότι είναι χρήσιμο να έχει γίνει μια ανάγνωση του Data Sheet του μικροελεγκτή που πρόκειται
να χρησιμοποιηθεί καθώς και ενός εισαγωγικού σημειώματος για γλώσσα
προγραμματισμού C. Η πρώτη
εφαρμογή είναι LED που αναβοσβήνουν. Γράφουμε στον Editor τον κώδικα που παρουσιάζεται:
#include <avr/io.h> // Συμπεριλαμβάνεται η κύρια βιβλιοθήκη
void Delay (unsigned long count) // Ρουτίνα "Delay" με μεταβλητή count μη προσημασμένο long
{
while (count--); // Αντίστροφη μέτρηση της τιμής που ορίζεται κατά την κλήση της
} //
ρουτίνας και παραμονή στο βρόχο μέχρι να μηδενίσει ο count
int main(void) // Αρχίζει ο κυρίως κώδικας
{
DDRB = 0b11111111; // Ορίζονται όλα τα bit του PORTB έξοδοι
PORTB = 0b11111111; // Όλοι οι έξοδοι περνάνε σε λογικό 1 ώστε αρχικά τα LED να είναι σβησμένα
while (1) // Ξεκινάει επαναλαμβανόμενος βρόχος
{
PORTB = ~PORTB; // Αντιστροφή εξόδων
Delay (10000); // Καθυστέρηση
}
}
Πριν προχωρήσουμε
με τον μεταγλωττισμό πρέπει να ελέγξουμε ορισμένες ρυθμίσεις. Επιλέγουμε ‘’Project->Configuration Options’’ και ελέγχουμε να είναι επιλεγμένα στο ‘’Device:’’ ο τύπος του μικροελεγκτή που χρησιμοποιούμε και στο ‘’Optimization:’’ ‘’-O0’’. Στη συνέχεια κάνουμε τον
μεταγλωττισμό του κώδικα και την κατασκευή του αρχείου ‘’.hex’’. Επιλέγουμε: ‘’Build->Build’’
ή πατάμε το F7 και αυτόματα γίνονται από το
πρόγραμμα οι απαραίτητες μεταροπές. Στο τέλος ελέγχουμε στο κάτω μέρος της οθόνης
στην καρτέλα ‘’Build’’ να υπάρχει το μήνυμα: ‘’
Build succeeded with 0 Warnings...’’. Στην
περίπτωση που υπάρχουν ‘’errors’’ ή ‘’warnings’’ αυτά εμφανίζονται και αναλυτικά με κόκκινες και
κίτρινες βουλίτσες αντίστοιχα. Τα ‘’warnings’’
τις περισσότερες φορές δεν είναι σημαντικά και αγνοούνται. Αντίθετα τα ‘’errors’’ είναι πάντα σημαντικά και πρέπει να διορθωθούν
(συχνά ξεχνιέται το ερωτηματικό στο τέλος της γραμμής του κώδικα). Πατώντας διπλό
κλικ πάνω στο μήνυμα του ‘’error’’ ή ‘’warning’’ πηγαίνει ο κέρσορας αυτόματα στη γραμμή που έχει
εμφανιστεί το λάθος.
4. Προγραμματισμός του
μικροελεγκτή
Ο προγραμματισμός του μικροελεγκτή μπορεί
να γίνει με το AVR Studio ή
το AvrOspII ή
το PonyProg αν
χρησιμοποιούμε ISP από τη σειριακή θύρα ή θύρα USB, ενώ αν χρησιμοποιούμε τον απλό προγραμματιστή από
την παράλληλη θύρα μόνο με το PonyProg.
|