English version (Αγγλική έκδοση)

Προγραμματιστής για PIC24FJ16GA002

    Στην παρούσα ιστοσελίδα παρουσιάζεται ένα απλό κύκλωμα που από την μία πλευρά συνδέεται με την παράλληλη θύρα ενός PC και από την άλλη με τον μικροελεγκτή PIC24FJ16GA002 που θέλουμε να προγραμματίσουμε. Το κύκλωμα τροφοδοτείται από το σύστημα που έχει τον μικροελεγκτή (στις δοκιμές η τάση λειτουργίας του μικροελεγκτή ήταν στην περιοχή 2.9V με 3.3V). Το κύκλωμα παρέχει την απαραίτητη απομόνωση των σημάτων.

    Το σχηματικό διάγραμμα του κυκλώματος είναι:

    Το πρωτότυπο έχει κατασκευαστεί σε διάτρητη πλακέτα και φαίνεται στην παρακάτω φωτογραφία:

    Στο PC εκτελείται ένα πρόγραμμα που αναπτύχθηκε ειδικά για την κατασκευή αυτή. Τα δύο αρχεία είναι ο πηγαίος κώδικας και πρέπει να μεταγλωττιστούν με την Visual Basic 2005 Express edition της Microsoft (διατίθεται δωρεάν από τον δικτυακό τόπο της Microsoft). Προτείνω να δημιουργήσετε ένα νέο project και να αντικαταστήσετε τα αρχεία "form1.vb" και "form1.designer.vb" με αυτά που κατεβάσατε από την παρούσα σελίδα. Το λογισμικό χρειάζεται την παρουσία ενός προγράμματος-οδηγού για την πρόσβαση στην παράλληλη πόρτα. Το πρόγραμμα αυτό είναι διαθέσιμο δωρεάν και μπορείτε να το βρείτε στη σελίδα www.logix4u.net/inpout32.htm. Ένα στιγμιότυπο του προγράμματος δίνεται στην επόμενη εικόνα:

    Τα δύο κουμπιά στην πρώτη στήλη ελέγχουν την κατάσταση του σήματος MCLR (run/reset).

    Τα τέσσερα κουμπιά στην δεύτερη στήλη πρέπει να πατηθούν με τη σειρά από πάνω προς τα κάτω για να ενεργοποιηθεί η επικοινωνία και να να διαβαστούν το ID  και τα CWs (Configuration Words). Τα δύο τελευταία κουμπιά αυτής της στήλης μπορούν να χρησιμοποιηθούν και ανεξάρτητα όποτε θέλουμε μετά την ενεργοποίηση της επικοινωνίας (δηλαδή αφού πατήσουμε τα δύο πρώτα κουμπιά αυτής της στήλης. Προσοχή: μετά το πάτημα των δύο πρώτων κουμπιών της στήλης αυτής, ο υπό έλεγχο μικροελεγκτής βρίσκεται σε κατάσταση προγραμματισμού. Για αν βγει από την κατάσταση αυτή θα πρέπει να γίνει το MCLR=1.

    Τα κουμπιά της τρίτης στήλης κάνουν τον προγραμματισμό. Το πρώτο κουμπί διαγράφει όλη τη μνήμη flash μαζί με τα configuration words. Το δεύτερο ή το τρίτο κουμπί επαναπρογραμματίζουν τα configuration words. Σημείωση: μόνο το ένα από τα δύο αυτά κουμπιά πρέπει να πατηθεί, το δεύτερο καθορίζει εξωτερικό ταλαντωτή ενώ το τρίτο καθορίζει τον εσωτερικό ταλαντωτή των 32ΚΗΖ, για άλλες περιπτώσεις θα πρέπει να τροποποιηθεί εσωτερικά το πρόγραμμα!!! Το τέταρτο κουμπί αυτής της στήλης διαβάζει το .hex αρχείο που περιέχει το πρόγραμμα και το στέλνει στον μικροελεγκτή. Προσοχή: ο υπό έλεγχο μικροελεγκτής βρίσκεται ακόμη σε κατάσταση προγραμματισμού. Για αν βγει από την κατάσταση αυτή θα πρέπει να γίνει το MCLR=1.

    Το κουμπί της τέταρτης στήλης διαβάζει την flash του μικροελεγκτή για επαλήθευση.

    Το κουμπί "wait100" εισάγει μια καθυστέρηση 100 δευτερολέπτων πριν ξεκινήσει κάθε άλλη διαδικασία στις MCU. Αυτό γίνεται γιατί στον δικό μου υπολογιστή κάποιο πρόγραμμα ανακατεύεται με την παράλληλη πόρτα και αυτός είναι ένας (όχι κομψός) τρόπος να προσπεράσω το πρόβλημα αυτό.

    Το κουμπί "Verify communication with MCU" εκτελεί όλες τις εργασίες της δεύτερης στήλης και μετά βγαίνει από την κατάσταση προγραμματισμού (MCLR=1).

    Το κουμπί "Program MCU" εκτελεί όλες τις εργασίες της πρώτης και δεύτερης στήλης (με CW=3F7F-FACC) και μετά βγαίνει από την κατάσταση προγραμματισμού (MCLR=1).

    Σε επόμενη έκδοση του λογισμικού θα υλοποιηθεί ευκολότερη μέθοδος καθορισμού των configuration Words.