Σελίδα 1 από 2 1 2 ΤελευταίαΤελευταία
Εμφάνιση αποτελεσμάτων : 1 έως 10 από 12

Θέμα: Osccal and Banggap

  1. #1
    Μέλος
    Εγγραφή
    Dec 2004
    Μηνύματα
    691

    Προεπιλογή Osccal and Banggap

    Παιδια τι σημαινει αυτο που ειναι κυκλωμενο στην φωτο??Το προγραμματιζω σωστα και δεν δουλευει....Σημαινει πως εχει ξερυθμιστει?Και εαν ναι υπαρχει τροπος να το διορθωσω???

    Ευχαριστω.
    Συνημένες Εικόνες Συνημένες Εικόνες

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη _ab : 05-04-11 στις 09:37

  2. #2
    Μέλος
    Όνομα
    Γιώργος
    Εγγραφή
    Feb 2010
    Περιοχή
    Αθήνα
    Μηνύματα
    4.618

    Προεπιλογή

    Το PIC16F628A δεν έχει ρύθμιση 'OSCCAL' (καλιμπράρισμα εσωτερικού ταλαντωτή) και 'BANDGAP' (ρύθμιση ορίων Brown Out Reset).

    Σε απλές εφαρμογές με εσωτερικό ταλαντωτή πρέπει να έχεις:
    OSC=INTOSC (I/O on RA6, RA7)
    WDT=OFF
    PUT=ENABLED
    MCLRE=ENABLED
    BODEN=DISABLED
    LVP=DISABLED
    CPD=DISABLED
    CP=OFF

    Δώσε μας τα 'configuration bits' να δούμε τι άλλο μπορεί να συμβαίνει.

    G

    0 Not allowed! Not allowed!

  3. #3
    Μέλος
    Εγγραφή
    Dec 2004
    Μηνύματα
    691

    Προεπιλογή

    __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC & _LVP_OFF & _MCLRE_OFF & _BODEN_ON


    Φιλε Γιωργο καλημερα με ειχες ξαναβοηθησει και στο παρελθον και σε ευχαριστω!!Ειχα κανει αυτο το κυκλωματακι http://jap.hu/electronic/codec.html το οποιο δουλευε μια χαρα!!!!Ομως προχθες μπερδεψα καποιους 16f628 με αποτελεσμα να τον ξαναπρογραμματισω.Βεβαια απο τοτε δεν ξαναδουλεψε!Κοντευω να τρελλαθω!Εαν δεις το κυκλωμα ειναι τοσο απλο που αποκλειω το ενδεχομενο λαθους αφου το εχω τσεκαρει πανω απο 10φορες!!!!Στο asm arxeio δινει αυτα....Αληθεια επειδη ειμαι και νεος με τον pickit 2 τα fuses που τα βλεπεις????

    Ευχαριστω!

    0 Not allowed! Not allowed!

  4. #4
    Μέλος
    Όνομα
    Γιώργος
    Εγγραφή
    Feb 2010
    Περιοχή
    Αθήνα
    Μηνύματα
    4.618

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από _ab Εμφάνιση μηνυμάτων
    __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC & _LVP_OFF & _MCLRE_OFF & _BODEN_OFF
    Στο link που έδωσες έχει πολλά κυκλώματα. Το δικό σου χρησιμοποιεί κρύσταλλο; Το pin 'MCLR' το έχεις ως εξωτερικό reset; Σε πρώτη φάση βγάλε εκτός το BOD.
    Το 'configuration word' το βλέπεις μέσω του MPLAB IDE.

    F628conf.jpg

    G

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη GeorgeVita : 05-04-11 στις 10:19

  5. #5
    Μέλος
    Εγγραφή
    Dec 2004
    Μηνύματα
    691

    Προεπιλογή

    Ναι ειναι αυτο που λεει
    4/8-channel V4.2 radio transmitter-Receiver


    Να φανταστεις οτι εχω βγαλει και τα modulakia και εχω συνδεσει απ'ευθειας με ενα καλωδιακι το ουτ του πομπου με το ΙΝ του δεκτη για να αποκλεισω και το ενδεχομενο λαθους των modules παρολο που τα τσεκαρα και δουλευουν....Θα δοκιμασω πιο μετα αυτο που μου ειπες και θα ξαναπαντησω προς το απογευματακι....

    Σε ευχαριστω!

    Edit:Απο οτι ειδα καλα το MCLR δεν το χρησιμοποιει κσθολου ουτε το εχει στο +

    0 Not allowed! Not allowed!

  6. #6
    Μέλος
    Όνομα
    Γιώργος
    Εγγραφή
    Feb 2010
    Περιοχή
    Αθήνα
    Μηνύματα
    4.618

    Προεπιλογή

    Το σωστό link του 'πομπού' για PIC16F628 είναι http://jap.hu/electronic/codec-16f628.html
    Ο 'πομπός' χρησιμοποιεί εσωτερικό ταλαντωτή ( _INTRC_OSC_NOCLKOUT), το MCLR είναι συνδεδεμένο στο V+, τα configuration bits είναι:
    Κώδικας:
    	list	p=16f628
    
    	__CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT & _LVP_OFF & _MCLRE_OFF & _BODEN_OFF
    Ο 'δέκτης' χρησιμοποιεί κρύσταλλο (_HS_OSC) και το MCLR είναι I/O pin:
    Κώδικας:
    	list      p=16f628
    
    
    
    	__CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC & _LVP_OFF & _MCLRE_OFF & _BODEN_ON
    Εγώ προτείνω και στα δύο _BODEN_OFF (βέβαια ο σχεδιαστής κάτι θα είχε στο νου του).

    G

    0 Not allowed! Not allowed!

  7. #7
    Μέλος
    Εγγραφή
    Dec 2004
    Μηνύματα
    691

    Προεπιλογή

    Κατ'αρχας δεν ημουν σαφης μαζι σου....Για τον πομπο χρησιμοποιω τον 16f630.Mετα απο αρκετες δοκιμες κατεληξα να δοκιμασω και με τον 628 (πομπο)και κατεληξα σε 2 συμπερασματα....
    1)(ακου πως μπορεις να τρελαθεις....)Στον δεκτη ,ακουμπαγε το κελυφος του κρυσταλλου (ΙΣΑ ΙΣΑ) το ενα ακροδεκτακη πυκνωτη!!!!(ΙΣΑ ΙΣΑ)Μετα βιας το ειδα και το απομακτυνα....
    2)ο 630 εχει osccal calibration και φανταζομαι επειδη τον ξαναπρογραμματησα μην ξερυθμιστηκε τπτ απο μονο του,γιατι εχω σιγουρα δεν πειραξα κατι τετοιο...Με τον πομπο 628 μου δουλευει ρολοι με τον 630 τπτ....
    Φανταζομαι κατι φταει σε αυτην την ρυθμιση γιατι οταν το προγραμματιζω το προγραμματιζει σωστα αλλα οταν το τοποθετω στην θεση του τπτ!!!.Ο pickit2 εχει μια ρυθμιση που την πατας και κανει auto-recalibration αλλα οταν το παταω μολις τελειωνει μου γραφει failed οτι δεν μπορει να βρει το calibration target δεν θυμαμαι ακριβως το μηνημα αλλα εαν θες μπορω να το ξανατσεκαρω..


    Θελω ομως εαν θες kαι εσυ, να συζητησουμε λιγο οσον αφορα το osccal το τι κανει γιατι να το ρυθμιζουμε εμεις ,γιατι να ξερυθμιζεται οπως

    0 Not allowed! Not allowed!

  8. #8
    Μέλος
    Όνομα
    Γιώργος
    Εγγραφή
    Feb 2010
    Περιοχή
    Αθήνα
    Μηνύματα
    4.618

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από _ab Εμφάνιση μηνυμάτων
    ... το osccal το τι κανει γιατι να το ρυθμιζουμε εμεις ,γιατι να ξερυθμιζεται οπως
    Σχετικό datasheet: PICmicro MID-RANGE MCU FAMILY - Section 2. Oscillator

    Τα μC που έχουν εσωτερικό ταλαντωτή (4MHz, 8MHz, 48KHz, κλπ) τον υλοποιούν με ένα RC στο εσωτερικό τους κύκλωμα. Κατά την παραγωγή του chip υπάρχουν μικροδιαφορές που έχουν αποτέλεσμα την απόκλιση του ταλαντωτή από την συχνότητά του. Για ρύθμιση στη σωστή συχνότητα υπάρχει η διαδικασία OSCCAL (δεν θα ασχοληθώ πως το κάνει σε επίπεδο h/w). Η ιδέα είναι πως αν φορτώσουμε το OSCCAL με διάφορες τιμές μπορούμε να "συντονίσουμε" τον εσωτερικό ταλαντωτή.

    Η microchip προγραμματίζει την τελευταία θέση μνήμης (λ.χ. 0x3FF) με την εντολή 'RETLW xyz' όπου xyz η σωστή τιμή για το OSCCAL στα 5V και 25°C. Στο reset το OSCCAL παίρνει μια μέση τιμή. Για να εκμεταλλευτούμε την ρύθμιση που προτείνει η microchip, πρέπει να φορτώσουμε το OSCCAL με την τιμή που περιέχεται στην εντολή 'RETLW xyz'.

    Ο απλός τρόπος είναι στην αρχή του προγράμματος να εκτελέσουμε:

    Κώδικας:
        CALL   0x3FF    ; πάμε να πάρουμε την σωστή τιμή του OSCCAL στον W
        MOVWF  OSCCAL   ; τοποθετούμε την τιμή που βρήκαμε στο 0x3FF από το W στο OSCCAL
    Σημείωση: κάθε τιμή του OSCCAL θα λειτουργήσει απλά με μικρή διαφορά στη συχνότητα. Δεν υπάρχει περίπτωση να "κολλήσει" ο μC από λάθος περιεχόμενα στο OSCCAL.

    Εφόσον η 'προτεινόμενη' τιμή του OSCCAL βρίσκεται στη μνήμη προγράμματος, μπορεί να σβηστεί κατά λάθος. Τα εργαλεία της microchip προστατεύουν αυτές τις μνήμες από διαγραφή και έχουν ειδικά σημεία/διαδικασία για τον επαναπρογραμματισμό τους (MPLAB IDE). Αν σβηστεί από λάθος μπορεί με κάποια διαδικασία να υπολογιστεί πάλι (διάβασέ τη στο datasheet).

    Σε εφαρμογές που χρειάζεται ακρίβεια χρονισμών χωρίς εξωτερικό κρύσταλλο είναι χρήσιμη η ρύθμιση του OSCCAL για άλλες τάσεις και θερμοκρασίες (λ.χ. 3V, -10°C).

    Φιλικά,
    Γιώργος

    0 Not allowed! Not allowed!

  9. #9
    Μέλος
    Εγγραφή
    Dec 2004
    Μηνύματα
    691

    Προεπιλογή

    Γιωργο εγω τωρα που προγραμματιζω τον 16f630 ενω τον προγραμματιζει σωστα (Successfully)Υποψιαζεσαι γιατι μπορει να μην δουλευει εαν δεν εχει γινει καποια χαζομαρα στον osccal?Eπισης εαν εχεις pickit 2 h γνωριζεις.....Γιατι ενω παταω auto calibrate osccal αυτο αποτυνχανει να το κανει??

    επισης λες.....
    "Η microchip προγραμματίζει την τελευταία θέση μνήμης (λ.χ. 0x3FF) με την εντολή 'RETLW xyz' όπου xyz η σωστή τιμή για το OSCCAL στα 5V και 25°C. Στο reset το OSCCAL παίρνει μια μέση τιμή. Για να εκμεταλλευτούμε την ρύθμιση που προτείνει η microchip, πρέπει να φορτώσουμε το OSCCAL με την τιμή που περιέχεται στην εντολή 'RETLW xyz'."
    Αυτο γιατι τοτε γινεται σε μερικους και οχι σε ολους τους pic?

    Ευχαριστω!!!

    0 Not allowed! Not allowed!

  10. #10
    Μέλος
    Όνομα
    Γιώργος
    Εγγραφή
    Feb 2010
    Περιοχή
    Αθήνα
    Μηνύματα
    4.618

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από _ab Εμφάνιση μηνυμάτων
    ... 16f630 ... osccal ... pickit 2 ... auto calibrate osccal
    Ας δούμε αρχικά πως τοποθετούμε την τιμή του OSCCAL στη θέση του για το PIC16F630. Προϋπόθεση να υπάρχει εντολή RETLW xx στη θέση μνήμης 0x3FF:

    Κώδικας:
                      BSF   STATUS, RP0 ;Bank 1
                      CALL  3FFh        ;Get the cal value
                      MOVWF OSCCAL      ;Calibrate
                      BCF   STATUS, RP0 ;Bank 0
    (από το datasheet του PIC16F630)

    Επειδή ο καταχωρητής OSCCAL είναι ο 0x90 χρειάζεται το bank switching για τα registers με το BSF/BCF STATUS,RP0 (αυτά φαντάζομαι τα έχει στο πρόγραμμα ο σχεδιαστής αλλά τα αναφέρω για να βρούμε μια άκρη).

    Ενας πρώτος έλεγχος είναι να διαβάσεις το chip μετά τον προγραμματισμό και να δεις τι περιέχει η διεύθυνση 0x3FF (μη τυχόν και έχει κανένα GOTO pouthena). Αν δεν έχει RETLW xx σημαίνει ότι χάθηκε η πληροφορία και πρέπει να επαναπρογραμματιστεί (συνήθως τα εργαλεία προγραμματισμού της microchip προστατεύουν αυτή τη θέση μνήμης).

    Δεν έχω pickit2. Αν δεν λειτουργεί το 'auto calibrate' βάλε εσύ RETLW 0x80 στη θέση 0x3FF (δηλαδή address=0x3FF data=0x3480).

    Δεν έχω καταλάβει αν "εμβαθύνεις" στα PIC ή απλά θέλεις να λειτουργήσει το συγκεκριμένο πρόγραμμα που χρειάζεται μια σχετική ακρίβεια στον ταλαντωτή για να γίνει ο τηλεχειρισμός. Αν παράλληλα μαθαίνεις μπορείς να βάλεις δικό σου πρόγραμμα στο PIC για να κάνει set/reset ένα I/O pin και να μετρήσεις συχνότητα, ή να χρησιμοποιήσεις τον ταλαντωτή "INTRC CLOCKOUT on Pin" και να μετρήσεις τη συχνότητα του ταλαντωτή (αυτό μάλλον κάνει το auto-calibrate-osccal). Τέλος θεωρώ ότι δεν πειράζεις τα cdonfiguration bits τα οποία ελέγξαμε ότι είναι τα σωστά. Με το READ μπορείς να τα επιβεβαιώσεις.

    G

    0 Not allowed! Not allowed!

Σελίδα 1 από 2 1 2 ΤελευταίαΤελευταία

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας