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

Θέμα: Σχεδίαση αναπτυξιακού περιφερειακού USB με PIC

  1. #1
    Μέλος Το avatar του χρήστη lastid
    Όνομα
    Δημήτρης
    Εγγραφή
    Feb 2009
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    841

    Προεπιλογή Σχεδίαση αναπτυξιακού περιφερειακού USB με PIC

    Εισαγωγή
    Ανοίγω εδώ ένα βαρβάτο θέμα, με σκοπό να σχεδιάσω μαζί σας ένα USB αναπτυξιακό βασισμένο σε PIC, για πειραματισμούς σε breadboard αλλά και μετεξέλιξή του σε χίλιες δυο εφαρμογές.
    Μέχρι τώρα είχα σχεδιάσει διάφορα USB περιφερειακά, όλα όμως βασίζονταν στο κλασικό FT232 της FTDI που μας δίνει μία εικονική σειριακή μέσω USB. Θέλω όμως τώρα να αξιοποιήσω τις τελευταίες εξελίξεις της τεχνολογίας, συνδυάζοντάς τες ώστε να φτιάξω ένα πραγματικά χρήσιμο πολυεργαλείο.
    Ελπίζω ότι έτσι θα βοηθήσω αρκετούς στο να γνωρίσουν καινούριες γι αυτούς τεχνολογίες. Και οι πιο έμπειροι όμως θα μπορέσουν να αποκτήσουν ένα εργαλείο με σημαντικές ικανότητες.
    Φυσικά, εννοείται ότι στην χειρότερη περίπτωση, την περισσότερη δουλειά (το χαμαλίκι δηλαδή) θα την κάνω εγώ. Θα ήθελα όμως να συζητάμε διεξοδικά το κάθε βήμα. Μπορείτε να σχολιάζετε και να προτείνετε, παρακαλώ όμως να είμαστε σύντομοι, περιεκτικοί και εντός θέματος για να μην μεγαλώσει δυσανάλογα το θέμα με άσχετες συζητήσεις.
    Θα ήταν ωραίο αφού τελειώσει, να λέμε ότι το project αυτό ήταν ένα επιτυχημένο πείραμα συλλογικής προσπάθειας, της οποίας τα ωφέλη επιστρέφουν στην κοινότητα.

    Προγραμματισμός εργασιών
    Αρχικά πρέπει να συζητήσουμε τις απαιτήσεις που θέλουμε από ένα τέτοιο σύστημα, καθώς και τις λύσεις που έχει βρει ο καθένας μας για τα επιμέρους θέματα της σχεδίασης, πριν καταλήξουμε σε κάτι συγκεκριμένο.
    Ύστερα, θα προχωρήσουμε στην επιλογή των υλικών, ένα θέμα καθοριστικό για την επιτυχία.
    Κατόπιν, θα προχωρήσουμε στη σχεδίαση της πλακέτας.
    Μετά, θα προχωρήσουμε στην ανάπτυξη του λογισμικού.
    Τέλος, έχουμε την (αέναη ελπίζω) σχεδίαση περιφερειακών για το αναπτυξιακό αυτό.

    Χαρακτηριστικά (v1):
    Οι αρχικές μου σκέψεις είναι για ένα σύστημα με τα εξής χαρακτηριστικά:
    Σύνδεση με PC μέσω USB 1.1 full speed (12MBps)
    Θέλουμε να πετύχουμε την μεγαλύτερη δυνατή ταχύτητα, ξεφεύγοντας επιτέλους από την σειριακή. Το USB 2.0 (480 Mbps) δεν είναι εφικτό στο επίπεδο αυτό, μπορεί όμως να γίνει ξεχωριστό θέμα κάποτε.
    Μικρό μέγεθος πλακέτας, με εξαρτήματα επιφανειακής στήριξης
    Με μία λέξη: SMD! Τα δουλεύω (όπως και πολλοί από εμάς) αρκετά χρόνια τώρα. Όπως θα δείτε, δεν είναι τόσο δύσκολα όσο αρχικά φαίνονται. Ούτε απαιτούν ιδιαίτερο εξοπλισμό. Όπως και να το κάνουμε, οι μικρές και συμμαζεμένες πλακέτες είναι πιο ωραίες.
    Αν κάποιος δεν μπορεί να φτιάξει τέτοια πλακέτα, είμαστε εδώ για να τον βοηθήσουμε. Και θα είναι μια καλή ευκαιρία για όσους θέλουν επιτέλους να ξεκινήσουν με τα SMD.
    Μικροελεγκτής Microchip με ενσωματωμένη USB
    Διότι για τη σύνδεσή τους θέλουν μόνο ένα βύσμα USB και τίποτε άλλο. Εμείς όμως θα βάλουμε και άλλα, γιατί τα χρειαζόμαστε.
    Θύρα επέκτασης με μονή αρσενική ακιδοσειρά, ώστε να καρφώνουμε το αναπτυξιακό κατευθείαν σε breadboard
    Στην ακιδοσειρά αυτή θα βγαίνουν όλα τα pins του μικροελεγκτή, εκτός από αυτά του USB.
    Μπορούμε έτσι να πειραματιζόμαστε γρήγορα και εύκολα.
    Μπορούμε ακόμη να σχεδιάσουμε επεκτάσεις (περιφερειακά) για την κατασκευή μας και να τις κουμπώνουμε εκεί.
    Ρυθμιζόμενη τάση τροφοδοσίας (2V,2.5V,2.7V,3V, 3.3V, 5V)
    Η USB δίνει 5 Volt και συνήθως μας αρκεί. Υπάρχουν όμως πλέον πολλά ολοκληρωμένα και περιφερειακά που δουλεύουν π.χ. μόνο σε 3.3V και που με την πλακέτα αυτή θα μπορέσουμε να χρησιμοποιήσουμε.
    Τροφοδοσία της breadboard μέσω της USB
    Επειδή δεν έχουμε πάντα πρόχειρο ένα τροφοδοτικό. Θα υπάρχει φυσικά προστασία από βραχυκύκλωμα, για να μην κάψουμε τίποτε στο PC.
    Επαναφορτιζόμενη Li ion μπαταρία
    Ξεκουμπώνουμε το αναπτυξιακό από τη USB, το παίρνουμε μαζί μας και συνεχίζει να δουλεύει! Είναι μαγικό!
    Επιλογή υλικών που να μπορούν να βρεθούν
    Πριν καταλήξω σε ένα εξάρτημα, θα πρέπει να έχω βρει τουλάχιστο ένα προμηθευτή (εγχώριο ή ξένο) ο οποίος να το έχει διαθέσιμο και ο οποίος να μπορεί να μας το πουλήσει. Ο καμένος στο χυλό φυσάει και το γιαούρτι..
    Εύκολος προγραμματισμός μέσω της USB
    Χωρίς να αποσυνδέσουμε τίποτε, να μπορούμε να κάνουμε αλλαγές στο πρόγραμμα και ανέβασμά του στον PIC, είτε ολόκληρο είτε κομμάτια του. Το κλειδί εδώ είναι να είναι εύκολο στη χρήση. Να μπορούμε φυσικά να χρησιμοποιήσουμε τον αγαπημένο μας compiler.


    Περιφερειακά (V1):
    Έχω κατά νου να σχεδιάσω τα παρακάτω περιφεριακά για το αναπτυξιακό αυτό:
    Πληκτρολόγιο και LCD. Μπορεί να φαίνονται περιττά λόγω του PC, έχουμε όμως και μπαταρία...
    RF modules, χρησιμοποιώντας π.χ. το Zigbee module της Microchip ή και άλλα
    GPS module
    Bluetooth module
    Μίνι παλμογράφος/λογικός αναλυτής/βολτόμετρο/αμπερόμετρο/καπασιτόμετρο
    Servo controller για σερβομηχανισμούς, βηματικά μοτέρ αλλά και μοτέρ DC
    PIC programmer.
    Διάφορα πρωτόκολλα επικοινωνίας (σειριακή, I2C, SPI, άλλα)
    Διάφορα αισθητήρια για πειραματισμούς πριν τη σχεδίαση της τελικής τους πλακέτας

    Περιμένω τα σχόλιά σας, τις απορίες σας και τις υποδείξεις σας....

    0 Not allowed! Not allowed!

  2. #2
    Μέλος Το avatar του χρήστη lastid
    Όνομα
    Δημήτρης
    Εγγραφή
    Feb 2009
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    841

    Προεπιλογή

    Η επιλογή του μικροελεγκτή είναι λογικά το επόμενο βήμα.

    Θέλω κατ' αρχήν να έχει τα εξής χαρακτηριστικά:
    USB
    Self-write
    EEPROM


    Κατόπιν πρέπει να αποφασίσουμε πόσα pins θα έχει (20/28/40/44/64/80).
    Τα 20 είναι λίγα. Τα 40 και πάνω είναι μάλλον πολλά για να τα βγάλουμε σε μονή ακιδοσειρά για breadbord, αυτό όμως είναι συζητήσιμο. Αρχικά επιλέγω τα 28.

    Το site της Microchip μου δίνει 4 μικροελεγκτές που να πληρούν τα παραπάνω κριτήρια: 18F2455,18F2458,18F2550 και 18F2553.
    Διαφέρουν μεταξύ τους ως προς τη μνήμη προγράμματος (24 ή 32 kilobytes), τον ADC (10 ή 12 bits) και την τιμή (3.30$ - 4.33$).

    Η διαθεσιμότητα για όλους εκτός από τον 18F2458, είναι πολύ καλή: Τουλάχιστον 2 στα 3 sites από τα Farnell,Mouser,Digikey τους έχουν.
    Επειδή και οι 3 είναι συμβατοί μεταξύ τους ως προς τα pins, δεν έχει και τόσο σημασία ποιον από τους 3 θα διαλέξω. Επιλέγω λοιπόν αρχικά τον ισχυρότερο:
    PIC18F2553 (32kB Program memory, 2kB RAM, 256 data EEPROM, 2-5.5V, 28pins, USB, self-write, 2CCP, 10x12bit ADC, 2 comparators, 1x8bit και 3x16bit timers, USART,I2C/SPI.
    με εναλλακτικές λύσεις τους
    PIC18F2455,PIC18F2550.

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη lastid : 10-10-09 στις 15:26

  3. #3
    Μέλος Το avatar του χρήστη Mihos
    Όνομα
    Μιχάλης
    Εγγραφή
    Nov 2006
    Περιοχή
    Αθήνα
    Μηνύματα
    689

    Προεπιλογή

    Εξαιρετική η ιδέα σου Δημήτρη! Ένα project που ανεβάζει πραγματικά το επίπεδο του forum και ασχολείται επιτέλους με κάτι πιο επίκαιρο. Δε ξέρω κατά πόσο οι γνώσεις μου στους pic μπορούν να φανούν πολύ χρήσιμες (καθώς είναι λιγοστές... Είμαι avr-άκιας). Προτήθεμαι όμως να βοηθήσω όσο μπορώ στην ανάπτυξη του λογισμικού (όταν έρθει αυτή η ώρα)... Η usb ήταν και για μένα πάντα μία πρόκληση. Προς το παρόν δεν έχω να προσθέσω κάτι επί της ουσίας. Όσα είπες μου φαίνονται σωστά. Αν σκεφτώ κάτι θα postάρω. Ελπίζω το θέμα να διατηρηθεί γιατί αξίζει...

    0 Not allowed! Not allowed!

  4. #4
    Μέλος Το avatar του χρήστη dbsjro
    Όνομα
    Θανασης
    Εγγραφή
    Feb 2009
    Περιοχή
    Θεσ/νικη
    Μηνύματα
    384

    Προεπιλογή

    Kαι γω μεσα, εννοειται οσο προλαβαινω και οσο μπορω(αρχαριος yet)
    Προσωπικα δν θεωρω την μπαταρια καλη ιδεα, γιατι θα βγει ισως μεγαλυτερο
    μεγεθος πλακετας απ οτι χωρις μπαταρια. Αν και με τοσα περιφερειακα η
    μπαταρια δν θα κανει την διαφορα οποτε "it's up to you"
    Γιατι να μην μπει βαση ZIF και να κανει και για αλλους PIC?

    0 Not allowed! Not allowed!
    **Ο κόσμος είναι επικίνδυνος, όχι εξαιτίας αυτών που κάνουν το κακό,αλλά εξαιτίας αυτών που τους κοιτάζουν χωρίς να κάνουν τίποτα.

  5. #5
    Μέλος
    Όνομα
    sot
    Εγγραφή
    Aug 2005
    Περιοχή
    ΧΟΛΑΡΓΟΣ
    Μηνύματα
    1.068

    Προεπιλογή

    Μερικες απαιτησεις ακομα..
    Να υποστηριζει ΚΑΙ AVR

    υ.γ. To arduino το εχεις υποψιν σου υποθετω...

    0 Not allowed! Not allowed!

  6. #6
    Μέλος Το avatar του χρήστη lastid
    Όνομα
    Δημήτρης
    Εγγραφή
    Feb 2009
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    841

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από stom
    Μερικες απαιτησεις ακομα..
    Να υποστηριζει ΚΑΙ AVR
    υ.γ. To arduino το εχεις υποψιν σου υποθετω...
    Ναι, το έχω υπ'όψιν. Αρχικά σκεφτόμουν να κάνω μία Arduino συμβατή πλακέτα για το σκοπό αυτό, όμως υπάρχουν οι εξής διαφορές αυτού που κατέληξα με το Arduino:
    - Βασίζεται σε μικροελεγκτή της Microchip, με την οποία έχω πολύ μεγαλύτερη εξοικείωση. Όπως και σκέφτηκα να σχεδιάσω Arduino βασισμένο σε Microchip, όμως δεν ήξερα αν αυτό θα ήταν εφικτό.
    - Έχει ρυθμιζόμενη τάση λειτουργίας (2-5Volt). Θα μπορώ έτσι να πειραματιστώ με εξαρτήματα που δουλεύουν σε χαμηλότερες τάσεις (2.5V, 3.3V). To Arduino από όσο ξέρω δουλεύει μόνο στα 5Volt.
    - Δέχεται μπαταρία. Το Arduino από όσο ξέρω όχι.
    - Βγάζει μία μονή ακιδοσειρά για breadboard. Το Arduino Βγάζει 2, εκατέρωθεν της πλακέτας του. Βέβαια αυτή δεν είναι κρίσιμη διαφορά σαν τις άλλες.

    Τώρα, όταν λες να υποστηρίζει και AVR, εννοείς να βγει και μία παραλλαγή βασισμένη σε AVR? Γιατί αυτό θα μπορούσε να γίνει σαν άλλο project.

    Παράθεση Αρχικό μήνυμα από dbsjro
    Προσωπικα δν θεωρω την μπαταρια καλη ιδεα, γιατι θα βγει ισως μεγαλυτερο
    μεγεθος πλακετας απ οτι χωρις μπαταρια. Αν και με τοσα περιφερειακα η
    μπαταρια δν θα κανει την διαφορα οποτε "it's up to you"
    Εν μέρει συμφωνώ ότι η μπαταρία είναι "κάπως". Γι αυτό και σκοπεύω να την υλοποιήσω προαιρετικά ως εξής:
    Η πλακέτα θα είναι απλή, χωρίς μπαταρία, θα έχει όμως τζαμπεράκια στις γραμμές της τροφοδοσίας (5V,GND) από την USB προς το υπόλοιπο κύκλωμα.
    α) Αν θέλω 5Volt από την USB και τίποτε άλλο, γεφυρώνω τα τζαμπεράκια.
    β) Αν θέλω και μπαταρία, βγάζω τα τζαμπεράκια και βάζω στη θέση τους μικρή πλακέτα που περιέχει το κύκλωμα φόρτισης και τον κοννέκτορα της μπαταρίας.

    0 Not allowed! Not allowed!

  7. #7
    Μέλος Το avatar του χρήστη ALAMAN
    Όνομα
    Γιώργος
    Εγγραφή
    Oct 2005
    Περιοχή
    -
    Μηνύματα
    2.525

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από stom Εμφάνιση μηνυμάτων
    Μερικες απαιτησεις ακομα..
    Να υποστηριζει ΚΑΙ AVR

    υ.γ. To arduino το εχεις υποψιν σου υποθετω...
    Συμφωνώ!! Καλό θα ήταν να μπορούσε να υλοποιηθεί και με αντίστοιχο μικροελεγκτή AVR.

    Επίσης μια ακόμα καλή ιδέα θα ήταν να υπάρχει και ένα ακόμα λογισμικό γραμμένο για υπολογιστή ώστε να μπορούμε να ελέγχουμε κάποιες εξόδους της πλακέτας μέσω προγράμματος του υπολογιστή ή να μπορούμε να διαβάζουμε αντίστοιχα τις εισόδους μέσα απο το πρόγραμμα!

    0 Not allowed! Not allowed!
    Το μέλλον είναι πλέον παρόν, ας το κατακτήσουμε.
    Τα microchip είναι απο τα πιο περίπλοκα κυκλώματα που φτιάχτηκαν ποτέ στον κόσμο.

  8. #8
    Μέλος Το avatar του χρήστη ALAMAN
    Όνομα
    Γιώργος
    Εγγραφή
    Oct 2005
    Περιοχή
    -
    Μηνύματα
    2.525

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από lastid Εμφάνιση μηνυμάτων
    Τώρα, όταν λες να υποστηρίζει και AVR, εννοείς να βγει και μία παραλλαγή βασισμένη σε AVR? Γιατί αυτό θα μπορούσε να γίνει σαν άλλο project.
    Ναί μάλλον αυτό εννοεί όπως έγγραψα κι εγώ στο προηγούμενό μου ποστ.
    Το μόνο που θα αλλάξει είναι κατα 100% το software και λιγότερο το hardware.

    0 Not allowed! Not allowed!
    Το μέλλον είναι πλέον παρόν, ας το κατακτήσουμε.
    Τα microchip είναι απο τα πιο περίπλοκα κυκλώματα που φτιάχτηκαν ποτέ στον κόσμο.

  9. #9
    Μέλος Το avatar του χρήστη lastid
    Όνομα
    Δημήτρης
    Εγγραφή
    Feb 2009
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    841

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από ALAMAN Εμφάνιση μηνυμάτων
    Επίσης μια ακόμα καλή ιδέα θα ήταν να υπάρχει και ένα ακόμα λογισμικό γραμμένο για υπολογιστή ώστε να μπορούμε να ελέγχουμε κάποιες εξόδους της πλακέτας μέσω προγράμματος του υπολογιστή ή να μπορούμε να διαβάζουμε αντίστοιχα τις εισόδους μέσα απο το πρόγραμμα!
    Α, μα φυσικά! Σ' ευχαριστώ που το αναφέρεις.
    Στον PIC θα τρέχει ένα πρόγραμμα (το λειτουργικό του ας πούμε), το οποίο θα κάνει τα εξής δύο βασικά:
    - Θα φορτώνει από το PC προγράμματα του χρήστη και θα τα ξεκινά
    - Θα μιλά με το PC μέσω ενός καλά ορισμένου πρωτοκόλλου, διαβάζοντας και αλλάζοντας την κατάσταση της μνήμης και των I/O, υλοποιώντας εντολές Ι/Ο, αναλογικές εισόδους, debug κλπ.
    Έτσι, αν φτιάξουμε και το αντίστοιχο πρόγραμμα στο PC, θα μπορούμε να έχουμε κατευθείαν έλεγχο των I/O για να πειραματιζόμαστε. Αυτός άλλωστε
    είναι και ο σκοπός μας.

    0 Not allowed! Not allowed!

  10. #10
    Μέλος Το avatar του χρήστη ALAMAN
    Όνομα
    Γιώργος
    Εγγραφή
    Oct 2005
    Περιοχή
    -
    Μηνύματα
    2.525

    Προεπιλογή

    Απο πού θα ξεκινήσει το project ?
    Εγώ προτείνω να βγεί ένα απλό σχηματικό με τη σύνδεση του μικροελεγκτή με το pc, το οποίο απλά θα μπορεί να φορτώνει ένα πρόγραμμα.

    0 Not allowed! Not allowed!
    Το μέλλον είναι πλέον παρόν, ας το κατακτήσουμε.
    Τα microchip είναι απο τα πιο περίπλοκα κυκλώματα που φτιάχτηκαν ποτέ στον κόσμο.

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

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

  1. PIC και USB
    By electroman in forum Μικροελεγκτές
    Απαντήσεις: 11
    Τελευταίο Μήνυμα: 23-03-14, 13:03
  2. Κ150 usb pic programmer
    By ΝΙΚ7 in forum Μικροελεγκτές
    Απαντήσεις: 1
    Τελευταίο Μήνυμα: 22-02-14, 10:42
  3. USB PIC or AVR
    By lordi in forum Μικροελεγκτές
    Απαντήσεις: 1
    Τελευταίο Μήνυμα: 07-06-09, 21:46
  4. PIC programming σε Quasar 3150 USB PIC Programmer
    By astanapane in forum Ερωτήσεις Αρχάριων
    Απαντήσεις: 12
    Τελευταίο Μήνυμα: 13-03-09, 11:01

Tags for this Thread

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

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