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

Θέμα: PIC ερώτηση για επικοινωνία

  1. #1
    Μέλος
    Εγγραφή
    Apr 2008
    Μηνύματα
    93

    Προεπιλογή PIC ερώτηση για επικοινωνία

    Καλησπέρα, έχω μια απορία σχετικά με την επικοινωνία του pic16f628 με τον υπολογιστή και με άλλον pic.
    Συγκεκριμένα, ο pic έχει 2 pins τα Tx και Rx με τα οποία μπορεί να επικοινωνήσει πχ με την σειριακή ενός υπολογιστή.
    Εγώ θέλω να μάθω αν γίνεται να κάνω κάποια από τα υπόλοιπα pins σαν Rx και Tx, έτσι ώστε να μπορώ να ανταλλάζω δεδομένα και με κάποιον άλλον pic.
    Γνωρίζω πως υπάρχουν άλλοι μικροελεγκτές που έχουν 2 pins Tx και 2 Rx, αλλά θέλω να μάθω αν γίνεται με τον pic16f628 (πχ μπορώ να γράψω κάποιες εντολές με τις οποίες κάποιο pin μπορεί να χρησιμοποιηθεί για επικοινωνία ?)
    Ευχαριστώ.

    0 Not allowed! Not allowed!

  2. #2
    Μέλος Το avatar του χρήστη spiroscfu
    Όνομα
    Σπύρος
    Εγγραφή
    Aug 2010
    Περιοχή
    Κέρκυρα
    Μηνύματα
    4.652

    Προεπιλογή

    Φυσικά όποιο θέλεις κάνεις rx tx με κάποιους μικρούς περιορισμούς, απλά τα υπόλοιπα δεν θα έιναι hardware αλλά software uart,η σειριακή επικοινωνία ειδικά σε μικρά baud rate είναι πολύ απλή υπόθεση για τον επεξεργαστή και επίσης υπάρχουν έτοιμες ρουτίνες το μόνο που κάνεις εσύ είναι να βάζεις τα directives στην αρχή του κώδικα.

    0 Not allowed! Not allowed!

  3. #3
    Μέλος Το avatar του χρήστη manolena
    Όνομα
    Μάνος
    Εγγραφή
    Dec 2006
    Περιοχή
    Ελευσίνα
    Μηνύματα
    2.709

    Προεπιλογή

    Η Microchip έχει εξοπλίσει τους επεξεργαστές της σειράς 16 και ανώτερες με ενσωματωμένα modules επικοινωνιών (USART) τα οποία εξυπηρετούν απο απλή ασύγχρονη (για χαμηλά στην κλίμακα μοντέλα όπως ο 16F628 έως σειριακή Ι²C ή SPI επικοινωνία στα ανώτερα μοντέλα (όπως στον 16F877 ή ανώτερης σειράς 18F). Oι κανόνες που διέπουν μια ασύγχρονη επικοινωνία (baud rate, πρωτόκολλο, χειραψία, bits ισοτιμίας) διευθετούνται και χρονίζονται αυτόματα απο το module, αφού όμως πρώτα ρυθμίσεις τους ειδικούς καταχωρητές (SFRs) που αφορούν το συγκεκριμένο module. Η λειτουργία αυτή είναι hardware opperated και διεκπεραιώνεται μόνο απο τα ειδικά διαπιστευμένα για αυτή τη λειτουργία pins (Tx, Rx), τα οποία μπορούν να είναι πολλαπλής χρήσης . Μπορείς όμως να συγγράψεις δικό σου κώδικα που να φροντίζει όλα τα παραπάνω απαιτούμενα για την επικοινωνία (baud rate κ.τ.λ.) και να την διεκπαιραιώσεις απο σχεδόν οποιοδήποτε pin του controller. Αυτή θα είναι τότε software λειτουργία επικοινωνίας. Είναι αρκετά πιο δύσκολο να το κάνεις αυτό γιατί πρέπει να τηρήσεις αυστηρά τους απαιτούμενους χρόνους των παλμών και των bits ώστε να γίνει κατανοητή η συνομιλία του εξαρτήματος απο την άλλη πλευρά (PC ή άλλος controller). Συνήθως τέτοια κομμάτια κώδικα εργάζονται με assembly της οποίας οι εντολές καθορίζονται με απόλυτους χρόνους κύκλους μηχανής.

    0 Not allowed! Not allowed!

  4. #4
    Μέλος Το avatar του χρήστη spiroscfu
    Όνομα
    Σπύρος
    Εγγραφή
    Aug 2010
    Περιοχή
    Κέρκυρα
    Μηνύματα
    4.652

    Προεπιλογή

    Μάνο δεν είναι ακριβώς έτσι το software usart είναι περίπου σαν το hardware, με μόνες διαφορές ότι δεν υπάρχει buffer δεν ενεργοποιούνται διακοπές και δεν είναι full duplex,
    ειδικά με την C και με κάποιους καλούς compilers αν παίζεις με μικρά baud rates γίνεται σχετικά απλά και αξιόπιστα, αυτό που πρέπει να προσέξεις είναι η μην ύπαρξη buffer (μπορείς όμως αντί της int_rda να χρησιμοποιήσεις κάποια άλλη σαν την int_ext).
    Αν πάμε σε baud rate πάνω από 9600 και περισσότερες από μια τότε συμφωνώ μαζί σου (όχι για την assembly αλλά για περισσότερη δουλειά)

    0 Not allowed! Not allowed!

  5. #5
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.375

    Προεπιλογή

    και το spi και το USART kai to I2C υποστηρίζουν master και slave, το spi έχει ειδικό καλώδιο για αυτή τη δουλεία.έτσι πολλοί pic μπορούν να μιλήσουν μαζί.Εκτός απο αυτό το uart και το spi μπορούν να δουλέψουν ξεχωριστά, ή μπορεί κάποιος να έχει δύο spi/i2c (18F και πάνω)
    Δες το βιβλίο της mikroC έχει ένα κεφάλαιο για αυτό , όπως και πίνακες με το ποσοστό λαθών ανάλογα τη ταχύτητα το ρολόι κτλ
    κάποιοι συνδυασμοί δίνουν και 0.00 error ή και 0.01.

    0 Not allowed! Not allowed!

  6. #6
    Μέλος Το avatar του χρήστη ptisi110
    Όνομα
    Κώστας
    Εγγραφή
    May 2004
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    186

    Προεπιλογή

    Παίδες δεν είναι και τόσο δύσκολο το software Uart.
    http://pdfserv.maxim-ic.com/en/an/AN2141.pdf
    Το pdf έχει κάποιες πληροφορίες που χρειάστηκα όταν έφτιαξα απλή ασύγχρονη επικοινωνία στα 19200 από ένα PIC16F684 με ένα FT232 το οποίο και δούλευε απροβλημάτιστα.
    Η γλώσσα προγραμματισμού ήταν η C και χρησιμοποίησα λίγο assembly για να φτιάξω το baud delay..

    0 Not allowed! Not allowed!

  7. #7
    Μέλος Το avatar του χρήστη manolena
    Όνομα
    Μάνος
    Εγγραφή
    Dec 2006
    Περιοχή
    Ελευσίνα
    Μηνύματα
    2.709

    Προεπιλογή

    Παιδιά, συμφωνούμε διαφωνώντας, νομίζω πως έχουμε όλοι δίκιο... Το στήσιμο επικοινωνίας σε έναν PIC μπορεί να φαίνεται απο την κάθε πλευρά και διαφορετικά σε σχέση με τη δυσκολία λειτουργίας. Το μόνο σίγουρο είναι πως χρειάζεται πολύ διάβασμα με ανοιγμένο μόνιμα ένα παράθυρο με τα datasheets και ένα με το MPLAB!!!

    0 Not allowed! Not allowed!

  8. #8
    Μέλος
    Εγγραφή
    Apr 2008
    Μηνύματα
    93

    Προεπιλογή

    Γειά σας και πάλι, σας ευχαριστώ όλους για τις απαντήσεις σας, αλλά δεν μπορώ να βγάλω άκρη με τον κώδικα για software UART.
    Θα ήθελα αν μπορεί κάποιος να με βοηθήσει με τον κώδικα (σε assembly) ή να μου προτείνετε κάποιον άλλον pic ο οποίος να έχει 2 UART.
    Για όσους δεν κατάλαβαν τι ζητάω....θέλω να επικοινωνούν όλοι οι μικροελεγκτές όπως φαίνεται παρακάτω.

    Η/Υ(rs232 to rs485)<---> PIC1 <--->PIC2 <---> .... <--->PICn

    0 Not allowed! Not allowed!

  9. #9
    Μέλος Το avatar του χρήστη klik
    Όνομα
    just a click away
    Εγγραφή
    Oct 2009
    Περιοχή
    Θεσσαλλλονίκη
    Μηνύματα
    2.561

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από high frequency Εμφάνιση μηνυμάτων
    ... ή να μου προτείνετε κάποιον άλλον pic ο οποίος να έχει 2 UART.
    ...
    δεν ξέρω τι θέλεις να στέλνει ο PIC(i) στον PIC(i+1), αλλά αν θέλεις να το κάνεις με UART θεωρώ ότι κάνεις λάθος στη σχεδίαση.
    Αν επιμένεις να βρεις PIC με 2 UART, χρησιμοποίησε το πολύ βολικό εργαλείο επιλογής της microchip.

    Για πολλούς μικροελεγκτές θα προτιμούσα κανένα SPI, I2C, LIN, CAN, etc

    0 Not allowed! Not allowed!

  10. #10
    Μέλος Το avatar του χρήστη spiroscfu
    Όνομα
    Σπύρος
    Εγγραφή
    Aug 2010
    Περιοχή
    Κέρκυρα
    Μηνύματα
    4.652

    Προεπιλογή

    Εγώ θα συνιστούσα SPI (είναι το ποιο απλό), όμως για αποστάσεις μέχρι 10-20cm αν θέλεις μακρινές γυρίζεις στην rs232 ή 485.

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

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

Παρόμοια Θέματα

  1. Επικοινωνία PIC με PC
    By billys7 in forum Μικροελεγκτές
    Απαντήσεις: 9
    Τελευταίο Μήνυμα: 17-06-13, 14:10
  2. Επικοινωνία PIC μέσω USB με Java!
    By lordi in forum Μικροελεγκτές
    Απαντήσεις: 5
    Τελευταίο Μήνυμα: 18-04-13, 12:05
  3. Επικοινωνία μεταξυ 2 PIC
    By jnt77 in forum Μικροελεγκτές
    Απαντήσεις: 7
    Τελευταίο Μήνυμα: 14-06-12, 14:01
  4. Επικοινωνία υπολογιστή με Pic μέσω Wifi
    By geokos13 in forum Μικροελεγκτές
    Απαντήσεις: 6
    Τελευταίο Μήνυμα: 06-05-11, 17:06
  5. Ασύρματη επικοινωνία με δυο PIC
    By DT200 in forum Μικροελεγκτές
    Απαντήσεις: 9
    Τελευταίο Μήνυμα: 21-02-08, 10:43

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

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