PDA

Επιστροφή στο Forum : ADC, απρόσμενη συμπεριφορά, SOS



NOE
01-12-07, 20:31
Λοιπον παιδια θέλω να φτιάξω ένα κύκλωμα το οποίο θα πέρνει δειγματολειψία από μία τάση και στην συνέχεια θα κάνει κάποιους υπολογισμούς και θα μου εμφανίζει τα αποτελέσματα στην LCD. Η τάση που θέλω να μετράωκυμαίνεται από 8 μεχρι 15Volt.

Στο πρακτικό κομμάτι:
Χρησημοποίησα τον Microcontroler PIC16F877A ο οποίος έχει ενσοματομένο ADC, λοιπόν έφτιαξα το πρόγραμμα και έβαλα τον microC στο raster για να δοκιμασω. Τον ADC τον συνδεσα σε έναν διαιρέτη τάσης 1/3 γιατί τα 15Volt είναι πολλά. Η συνολική αντίσταση του διαιρέτη τάσης είναι 660Ωμ/2watt.

Το απρόσμενο αποτέλεσμα:
Μόλις συνδέω την είσοδο του ADC στον διαιρέτη, έχω πτώση τάσης επάνω στον διαιρέτη, πολύ μεγάλη πτώση τάσης, προφανώς ο ADC έχει πολύ μικρή αντισταση(αντίσταση συγκρήσημη με τα 600Ωμ του διαιρέτη) και τραβάει πάρα πολύ ρευμα. Αρχικά πίστεψα ότι ειναι ελατοματικό το τσιπάκι και το αντικατέστησα με ένα άλλο, ίδιο με το πρώτο αλλά είχε ίδια συμπεριφορά.

Τι γίνεται ρε παιδια? εγώ νόμιζα ότι ο ADC θα έχει μεγάλη αντισταση εισόδου, πάνω από 10ΚΩμ. Πως λύνεται αυτό το πρόβλημα? καμιά ιδέα? Ευχαριστώ.

stom
01-12-07, 20:38
Κατι αλλο συμβαινει.
Προφανως και ο adc εχει μεγαλη αντισταση εισοδου.
Με τι ταση τροφοδοτεις το pic?
Μετρα την ταση χωρις το τσιπακι επανω. Τι ταση του δινει ο διαιρετης?

NOE
01-12-07, 21:03
Το τσιπακι το τροφοδοτώ με 5 volt,
Η τάση πάνω στον διαιρέτη αν δεν συνδεσω τον ADC ειναι το 1/3 τις τάσης που θέλω να μετρήσω, για παράδειγμα, όταν δινω 12 volt στον διαιρέτη έχω 4volt, μόλις συνδέσω τον ADC η τάση στον διαιρέτη γίνεται 1.2 volt,

και καθώς μεταβάλω την τάση που θέλω να μετρήσω μεταξύ 8 - 15 volt, στον διαιρέτη έχω 0.5 - 2 (με τον ADC συνδεμένο) αλλά αν κάνω το ίδιο χωρίς τον ADC συνδεμένο στον διαιρέτη έχω το 1/3 της τάσης δηλαδη 2.6 - 5 volt.

stom
01-12-07, 22:32
Αν και τα pic δεν ειναι τα "αγαπημενα" μου η συμπεριφορα αυτή θα ειχε εξηγηση αν το συγκεκριμενο pin ηταν προγραμματισμενο σαν εξοδος με τιμή 0, οποτε προσπαθει να κανει sink την ταση του διαιρετη. (αφου εχουμε εξασφαλισει οτι δεν ειναι αρπαγμενο)

Δες τον κωδικα σου και το datasheet του συγκεκριμενου mc...

NOE
01-12-07, 22:43
Αυτό που λες έχει μία λογική, αλλά το θέμα είναι οτι το έχω τσεκάρει 1000 φορές, και ειναι ορισμενο σαν εισοδος, μαλιστα ειναι ενεργοποιημένος ο ADC σε αυτό το πιν και περνει δειγματολειψία, δηλαδή στην lcd μου εμφανίζει την τάση που μετράει, το πρόβλημα είναι οτι προκαλέι μια πολύ σημαντική πτώση τάσης.

stom
02-12-07, 00:03
Κοιτωντας το datasheet λεει οτι The maximum recommended impedance for analog sources is 2.5 kΩ. This is required to meet the pin
leakage specification.
Με τι αντιστασεις εχεις κανει τον διαιρετη?

NOE
02-12-07, 00:30
ο διαιρέτης μου είναι 3 αντισασεις 220Ωμ/2βαττ, δηλαδή σύνολο 660Ωμ, διάλεξα να βάλω μικρές τιμές αντιστάσων στον διαιρέτη για να μην είναι συγκρίσημες με την αντίσταση εισόδου του ADC ώστε να μην επιρεάζεται, και εγώ ακόμα το ψάχνω, πραγματικά δεν μπορώ να καταλάβω τι συμβαίνει, είναι δυνατόν να έχει ο ADC τόσο μικρή αντίσταση εισόδου? Ένας σωστός ADC θα πρέπει να εχει αντίσταση εισόδου μερικές εκατοντάδες ΚΩμ, κάνω λάθος?

NOE
02-12-07, 00:33
Έχω και μερικούς PIC της σειράς 18F... θα δοκιμασω και μαυτούς αλλα αυτό θα είναι μόνο μια δοκιμή, στην τελική κατασκευή δεν μπορώ να χρησημοποιήσω αυτούς πρέπει οποσδήποτε να βάλω τον 16f877 γιατι χρειάζομαι πολλές πόρτες.

stom
02-12-07, 00:39
Μια χαρα ειναι τα 660Ω.
Κατω απο τα 2.5ΚOhm που λεει ο κατασκευαστης σεκαθε περιπτωση.
Ξαναδες το προγραμμα σου μηπως κανεις τιποτε περιεργο.
Στην αναγκη γραψε κατι απλο, που απλα να κανει την πορτα αναλογικη εισοδο και τιποτε αλλο
και μετρα με πολυμετρο τι γινεται οταν την συνδεεις....

Nemmesis
02-12-07, 12:18
εγω για δοκιμη οταν δοκιμασα την αναλογικη εισοδο του 16f88 απλα εβαλα ενα ποτενσιομετρο 4.7kΩ στην ταση τροφοδοσιας του πικ δλδ τα 5v και η εισοδος ηταν οκ χωρις πτωση τασης... και μετρουσε κανονικα απο 0-1023

th_shak
02-12-07, 17:51
Σιγουρέψου ότι έχεις ορίσει το pin του ADC ως είσοδο και σύνδεσε το κύκλωμα όπως αυτό που στέλνω.

DT200
02-12-07, 19:59
Είναι σίγουρα προγραμματιστικό λάθος !
Το λέω διότι την έχω πατήσει πολλές φορές με τους ADC και του ασύγκριτες
Αν θυμάμαι καλά το κύκλωμα ADC είναι εντελώς ανεξάρτητο από το αν είναι είσοδος ή έξοδος το συγκριμένο πιν.
Άρα μάλλον το πιν σου είναι έξοδος σε κατάσταση 0 και ο ADC μετράει αυτό που βλέπει
Αν θέλεις στύλε το κύκλωμα να σου γράψω κάτι απλό (MicroBasic) για να το δοκιμάσεις .

Σε ποια γλώσσα γράφεις ?

NOE
02-12-07, 23:12
Παιδιά ευχαριστώ πολύ για της απαντήσεις, πραγματικά ήταν παράξενη αυτή η συμπεριφορά, τελικά βρηκα που ήταν το πρόβλημα:

Σαν αναλογική είσοδο χρησημοποιούσα το πιν RA2 το οποίο σε άλλες περιπτώσεις χρησημοποιήται σαν είσοδος της τάσης αναφοράς Vref. Στην συγκεκριμένη περίπτωση όρησα τάση αναφοράς (Vref) την τάση τροφοδοσίας του ολοκληρομενου (Vdd) οπότε το πιν RA2 έμεινε έλευθερο και έτσι το όρησα σαν αναλογική είσοδος (στο datasheet αναφέρει ότι μπορεί να χρησημοποιηθει σαν αναλογική εισοδος), φυσικά όλα αυτα τα έκανα καλώντας τους αντίστοιχους τελεστες όπως έπρεπε. Σαφώς και ΔΕΝ έχω ορίσει το πιν σαν εξοδος και σαν αναλογική είσοδος ταυτόχτονα, το έχω τσεκάρει 1000 φορές αυτό.

Το αποτέλεσμα ήταν η πτώση τάσης που συζητήσαμε παραπάνω.

Τελικά όρισα σαν αναλογική είσοδο το πιν RA0 και το πρόβλημα λυθηκε, τώρα όλα λειτουργούν όπως πρέπει.

Το παράδοξο στην όλη ιστορία είναι ότι στο datasheet αναφερει οτι κάνοντας register τον τελεστή ADCON1 ορίζεις αν το πιν RA2 θα λειτουργει σαν αναλογικη είσοδος (ADC) ή σαν τάση αναφοράς (Vref), εγώ παρόλο που όρησα σαν τάση αναφορας την τάση τροφοδοσίας του ολοκληρομένου (Vdd) και ορισα το RA2 σαν αναλογική εισοδος, το αποτελεσμα ηταν να έχω στο πιν RA2 δυναμικό ίσο με Vref = Vdd (Τάση τροφοδοσίας- αναφοράς για ADC)

Ίσως αυτό να είναι κάποια "ιδιοτροπία" του ολοκληρωμένου, δεν πρεπει να είναι προγραμματιστηκό σφάλμα γιατί το δοκιμαστικό μου πρόγραμμα ήταν τόσο απλό που οποιοδήποτε σφάλμα θα ήταν οφθαλμοφανές, απλά θα πρέπει να το έχουμε υπόψην για να μην ξαναψαχνώμαστε στο μέλλον σε αντίστοιχη περίπτωση.

DT200
03-12-07, 00:23
To πρόβλημα σου φίλε με έχει απασχολήσει αρκετά και
ξεφυλλίζοντας το τεχνικό φυλλάδιο του 16F877 κατέληξα
ότι δεν έχεις κάνει την απαιτούμενη ρύθμιση που αναφέρετε στην σελίδα 112

Αν δεν είναι και αυτό τότε σε παρακαλώ στείλε μου το πρόγραμμα σου γιατί θα σκάσω !

DT200
13-12-07, 20:43
φίλε μήπως έκανες την ρύθμιση που είναι στην σελίδα 112 για να
μας πεις τα αποτελέσματα , το πρόβλημα σου σίγουρα θα απασχολήσει και
άλλους στο μέλλων, γι'αυτο καλό θα ήταν να κλείσουμε το θέμα με μία λύση.