PDA

Επιστροφή στο Forum : SOS Ερώτηση για UART PIC



nio-4-
08-02-08, 23:03
μπορεί θύρα USB να συνδεθεί στην UART του PIC 16F873;;; ξερεται τι μπορώ να κάνω ;; μήπως με adaptora να την μετατρέψω σε DP9 (σειριακη 9-pin);
γιατι θελω να στείλω τα δεδομένα απο gps στον PIC

chip
09-02-08, 09:40
Με αντάπτορα ή κάποιο chip σαν το ft8u232 ή ft8u245 μπορείς να δώσεις usb στον pic.
Όμως το gps υποθέτω οτι είναι συσκευή slave και είναι φτιαγμένη για να συνδέεται σε συσκευή host (σαν το PC) οπότε τότε απαιτείται ειδικό ελεγκτής... που σημαίνει οτι δεν μπορείς να το συνδέσεις.

MHTSOS
09-02-08, 14:59
Η συσκευή GPS που έχεις συνδέεται μέσω USB με PC? Aν ναι τότε σίγουρα μέσα στο κουτί του θα έχει έναν μετατροπέα από σειριακή σε USB. Όλα τα GPS modules έχουν σειριακή για να στέλνουν τα δεδομένα και για να βγάλoυν USB χρεισημοποιούν μετατροπέα.. Οπότε μπορείς να πάρεις κατευθείαν σήμα από την σειριακή του GPS και να το δώσεις στον PIC.

nio-4-
09-02-08, 23:37
καταρχάς ευχαριστώ για τις απαντήσεις σας,

το gps που έχω είναι το fortuna U2 το 1 είχε εξοδο PSi και είχα πάρει αdaptor για RS-232 αλλά επειδή ειχε προβλημα εγινε αντικατάσταση και το νεο είχε έξοδο USB. Σκέφτηκα να το ανοιξω αλλά δεν θελω να χάσω την εγγύηση ...

τα ολωκληρωμένα αυτά τα έχω δει και εγω (χθες υστερα απο πολυ ψάξιμο ) πιστεύω όμως οτι δυσκολα θα τα βρω , οπότε μάλλον θα κάνω παραγγελία και .... βρήκα χθές και κάτι ακόμη , υπάχουν και PIC που έχουν θύρα USB όπως οι PIC18F2455/2550/4455/4550 . Δίνω και την σελίδα εδω
http://www.microchip.com/stellent/idcplgidcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocName=en010300

δεν ξέρω όμως με τον προγραμματισμό τους τις εντολές τους σε assembly

Επίσης έχω βρεί με PIC ποιό απλό (16F84) κυκλώματα που παίρνουν δεδομένα απο GPS και τα βγάζουν σε LCD κ.α

nio-4-
09-02-08, 23:50
μήπως ξέρει κανείς που μπορώ να βρώ πληροφορίες, σημειώσεις στο internet ή αν έχει κανείς για την γλώσσα C ;;; ξέρω borland C++ αλλα φαντάζομαι θα υπάρχει κάποια διαφορά. Επίσης αυτά τα #define μου την δίνουν :x :χ

chip
11-02-08, 09:29
Μην τα μπερδεύεται...
οι μετατροπείς έχουν μέσα τσιπάκι slave. και κάνουν το RS232 (της συσκευής) σε USB. Δεν μπορούν να κάνουν το USB της συσκευής RS232 . Απλά και από άποψη ταχύτητας να το δούμε δεν θα μπορούσε τα πιθανά 12Mbit/sec να πάνε στα λίγια kbit/sec της RS232.
Βέβαια πιθανότατα ο GPS reciever θα έχει Low speed USB (σαν τα ποντίκια και τα πληκτρολόγια) όμως και πάλι δεν κάνουν οι μετατροπείς γιατί δεν μπορούν να υλοποιήσουν το προτόκολο επικοινωνίας (δεν είναι Host για να κάνει την Αρχική απόδοση τιμών να ζητήσει VID/PID Κλπ...)

nio-4-
11-02-08, 12:49
οπότε σίγουρα η USART του PIC πρέπει να είναι Master ε chip; όποιος έχει πάντος κάποιο ολοκληρωμένο FT232 η FT245 και το πουλάει το αγοράζω όσο όσο :) :) γιατι δεν έχω βρει στην Θεσ. ή αν έχει κάποιος ένα αντάπτορα. Θα προσπαθήσω έτσι και αν δεν γίνει θα πάρω τον
PIC που έχει θύρα USB

chip
11-02-08, 19:38
όχι! η USART δεν έχει master slave! Ο ελεγκτής USB πρέπει να είναι master ή πιο σωστά ονομάζεται host. και τα ολοκληρωμένα FT8u245 και ft8232 δεν είναι master αλλά slave (και ούτε μπορούν να γίνουν master γιατί είναι λειτουργίες που τις κάνουν μόνα τους. Ούτε οι αντίστοιχοι μετατροπείς είναι master. Και οι περισσότεροι μικροελεγκτές που κυκλοφορούν και έχουν USB είναι SLAVE. Συνήθως μεγαλοι μικροελεγκτες (ARM...) έχουν Host ελεγκτή. Host από την FTDI είναι το vinculum αλλά δεν μπορείς να το προγραμματίσεις (δινει η ftdi συγκεκριμένα firmware έτοιμα για διάφορες δουλιές).
ποιος είναι ο pic που λές (σχεδόν σίγουρα δεν θα έχει master (host ελεγκτή))
Αλλά και πες οτι έβαζες το ft8u... πως θα το χρησιμοποιήσεις αφού δεν ξέρεις τη πληροφορίες ανταλάσει το GPS με το PC? Το πιθανότερο είναι οτι αφού ειναι αναβαθμιση του παλαιού μοντέλου απλα πρόσθεσαν έναν FT8u232 οπότε ξέρεις τις πληροφορίες που ανταλάσει (θα είναι το ίδιο με το παλιό), όμως δεν θα μπορέσεις ποτέ να επικοινωνήσεις μαζί του γιατί δεν θα ξέρεις να κάνεις το negotiation... (να τραβήξεις τις τιμές του παραμέτρους και να του απαντήσεις κατάλληλα)
Ίσως είναι πιο εύκολο να ανοιξεις το GPS και να δεις αν μεσολαβεί ολοκληρωμένο από τον μικροελεγκτή του sto usb οπότε να το παρακάμψεις (θα το αφαιρέσεις ή θα κόψεις τις γραμμές επικοινωνίας) Φυσικά κινδυνεύει η συσκευή σου με τέτοια επέμβαση.

gsmaster
11-02-08, 19:43
TUSB3410 μπορείς να το πάρεις δείγμα απο την texas και είναι παρόμοιο με το FT232BM

nio-4-
12-02-08, 01:21
o PIC μου είναι ο 16F873Α . Στις προδιαγραφές του gps λέει Code type : ASCII for NMEA /binary for SiRF (παίρνω ASCII χαρακτήρες και τους επεξεργάζομαι στον κώδικά μου με την ρύθμιση της γεννήτριας BaundRate στα 9.600 bps γιατί δεν παράγει 4.800 bps οπου είναι προκαθορισμένο το gps για ASCII χαρακτήρες και για SiRF binary στα 19.200 bps ) "ξέρω τα NMEA μυνήματα και πως να τα επεξεργαστω" έχει GPS protocol : SiRF binary /NMEA 018 changeable και communication : full duplex asynchronous (επικοινωνία πλήρες ασύγχρονη). Πιθανών τα δεδομένα εξέρχονται απο την μνήμη DRAM που λέει οτι έχει και βασικά αφού έχει πλήρες διπλό ασύγχρονο σύστημα επικοινωνίας ,απ΄ότι έχω διαβάσει και στα datasheet του PIC , δεν χρειάζεται - δεν χρεισιμοποιούνται master ή slave σωστά chip;

επιβεβαίωσέ το αυτό γιατι αν δεν ισχύει ..... :hammer: :head:

Επίσης, δεν χρησιμοποιώ διακοπές (γιατί νομίζω υπάρχει μπέρδεμα - υπολογισμοί χρόνων -δεν μπλέχτηκα με διακοπές αν και είναι ο σωστότερος τρόπος) "αν μπορείς περιλιπτυκά πες μου δυο πράγματα για το πως χρησιμοποιούνται" αλλα επειδή θα υπάρχουν δεδομένα συνέχεια στην πόρτα εισόδου του PIC, το gps θα το τεσταρω πριν το συνδέσω στην παρουσίαση της πτυχιακής μου αλλα μπορεί και με ένα loop να ελέγχει αν υπαρχουν δεδομένα στην πόρτα εισόδου αυτήν.

ελπίζω να μήν κούρασα ...αν και δεν το νομίζω !!!

nio-4-
12-02-08, 01:25
gsmaster , ευχαριστω για το ολωκληρωμένο καλή φαση

chip
12-02-08, 10:39
Στο RS232 δεν υπάρχει master slave (πέρα από τους connectors) είναι ένα χαζό προτόκολο...στέλνεις κάτι και το ένας καταχωρητής ολίσθησης το κάνει σειριακό και στο στέλνει.
Στο USB υπάρχει προτόκολο που υλοποιεί την αποστολή (κατι το οποίο δεν το καταλαβαίνει πάντα ο χρήστης). Στο USB το ένα ολοκληρωμένο πρέπει να είναι Host και το άλλo Slave για να μπορούν να επικοινωνήσουν αλλιώς ΔΕΝ επικοινωνουν!!!
επίσης είναι σχεδόν σίγουρο οτι για να κάνεις τέτοια επικοινωνία ακόμα και αν βρείς USB HOST ολοκληρωμένο να μαθεις βασικά απο το USB προτόκολο
Καλό διάβασμα!

nio-4-
17-02-08, 19:03
υπάρχει ολοκληρωμενο host για usb της FTDI αλλα θα κανω την ενχειρηση στο gps

chip
18-02-08, 09:28
host απο την ftdi είναι μόνο το vinculum (απ όσο ξέρω)
Όμως το vinculum δεν είναι μόνο ελεγκτής usb αλλά μικροελεγκτής 32bit και για να κάνει κάποια δουλειά πρέπει να τρέχει κάποιο πρόγραμμα. Δυστυχώς μέχρι τώρα η ftdi δεν έχει δημοσιεύσει την περιγραφή αυτού το μικροελεγκτή. Αντίθετα δίνει έτοιμα firmware για μερικές χρήσεις (όπως την ανάγνωση από usb (flash) disk) οπότε θα πρέπει να είσαι τυχεερός και να έχει firmware για τη δική σου περίπτωση

nio-4-
19-02-08, 00:51
Εχω νεα chip, υπάρχει αντιπρόσωπος της FTDI στην Αθήνα, το vinculum υπάρχει ξεχωριστό και πρέπει να κατεβασεις καποια δυαδικα αρχεια για να το προγραμματισεις (μαλλον ειναι τα απαραίτητα πρωτόκολλα). Επίσης υπαρχει και πλακετακι το οποιο είναι έτοιμο .

Να σ πω , ανοιξα το gps μου και έχει το chip sirf που κανει ολη την δουλεια βγάζει RS-232 σημα αλλα δεν βρίσκω data sheet του δεν δινει η εταιρία για να πάρω απο εκει τα δεδομένα. Βρήκα και ένα αλλο ολοκληρωμένο το "PL-2303X" της "Prolific"

δες λιγο και αυτο:

Introduction
PL-2303X provides a convenient solution for connecting an RS232-like full-duplex asynchronous serial device to any Universal Serial Bus (USB) capable host. PL-2303X highly compatible drivers could simulate the traditional COM port on most operating systems allowing the existing applications based on COM port to easily migrate and be made USB ready.

Σου επισυναπτω και την εικονα που δείχνει το ολοκληρωμένο .

Μήπως ξέρεις τι συνδέσεις πρέπει να κάνω; και πού; για να πάρω τα δεδομένα σε RS-232 επίπεδο;;;; Εγώ πήρα απο το pin 1 και το σύνδεσα στην ακίδα 3 της 9πινης σειριακής επαφής και στην ακίδα 5 της 9πινης σειριακής επαφής στην γείωση και τροφοδότησα απο την USB θύρα του gps το gps με την τάση που θέλει. αλλα κάτι έκανα λάθος υποθέτω μηπως εχεισ καμια ιδέα τι να κάνω;

chip
19-02-08, 09:39
Το ξέρω οτι υπάρχει αντιπρόσωπος... (o Αιραντζής) και είναι και πολύ συνεργάσιμος.. όμως δεν στο ανέφερα γιατί δεν έχει νόημα.. τα ολοκληρωμένα που λέγαμε δεν σου κάνουν (ft8u2xx).
Όσο για το vinculum, τα δυαδικά αρχεία που αναφέρεις είναι τα έτοιμα firmware που σου είπα στο προηγούμενο Post. Δηλαδή με τα δυαδικά αυτά αρχεία φτιάχνεις συγκεκριμένες κατασκευές.... Έλεγξε αν κάποια από αυτές τις έτοιμες εφαρμογές ταιριάζει στην περίπτωσή σου. Πχ. Το firmware για usb δίσκους που δίνει δεν σου κάνει...
Το ολοκληρωμένο της prolific είναι ανάλογο με τα ft8u232 της FTDI. Αν δεις λέει ο κατασκευαστής του οτι χρησιμοποποιείται για να συνδεθεί σε μία συσκευή USB HOST (και το gps είναι slave)

Ωχ... με μπέρδεψες.... έχει το Prolific Μέσα στη συσκευή παρατημένο? Αν ναι σωθήκαμε... αν όχι δεν σου κάνει μην ασχολήσαι μαζί του.

nio-4-
19-02-08, 13:40
Αυτό που λες το καταλαβα και εγώ (για slave) :D αλλα πως θα καταλαβω αν είναι παρατημένο ;;; :help: , μηπως να το ανοιξω και να το βαλω σε λειτουργία και να μετρήσω την τάση στο pin 1; Τωρα έχω συνδέσει το pin 1 οπως σου είπα στο pin 3 στην 9πινη σειριακή θύρα και με την γείωση που έχω συνδέσει (pin 5) της 9πινης σειριακής θύρας μετράω τάση ενω είναι σε λειτουργία και μου βγάζει συνέχεια περίπου -5V (μηπως το SP3232E ή το MAX220–MAX249 θα μας κάνουν δουλεια;; ).

Αν βρούμε λύση φιλε chip θα με σωσεις !

Αλλα οπως και να έχει κάπου θα είναι σε επίπεδο RS-232 τα δεδομένα και βασικά στο PL-2303X αφού εκεί γίνεται η μετατροππή

nio-4-
27-08-08, 02:49
γεια σας παιδια, κατι αλλο για την USART...

εχω 4.800 baund rate ρυθμο μεταδοσης δεδομένων στο gps μου αλλα η USART του PIC μου έχει ....2.400 - 9.600 baund rate... πρεπει να εχουν ίδια baund rate για να αποσταλουν τα δεδομένα? στον PIC???
εχω δει ενα προγραμμα αλλα σε mikroC και βαζει μεγαλο baund rate στον PIC τετοιο που δεν εχει o PIC

αν δεν γινεται με την USART μπορώ να στειλω τα δεδομένα στον PIC σε μορφή ΝΜΕΑ αλλιώς ? απο μια απλη πόρτα? είναι το ιδιο? μεσω text υπάρχει η δυνατοτητα μεταδοσης αλλα δεν κσερς αν τα στελνει σε ASCll code

stom
27-08-08, 09:43
Φυσικα και πρεπει να εχει το ιδιο baud rate... Για ψαξτο λιγο. Οταν εχεις ταχυτητα 2400-9600 προφανως και εχεις και 4800.

Το ΝΜΕΑ ειναι η κωδικοποιηση της πληροφοριας πανω απο σειριακη συνδεση, και προυποθετει καποιας μορφης software ή hardware uart.

nio-4-
06-09-08, 00:46
Φυσικα και πρεπει να εχει το ιδιο baud rate... Για ψαξτο λιγο. Οταν εχεις ταχυτητα 2400-9600 προφανως και εχεις και 4800.

Το ΝΜΕΑ ειναι η κωδικοποιηση της πληροφοριας πανω απο σειριακη συνδεση, και προυποθετει καποιας μορφης software ή hardware uart.

Λοιπον, τα NMEA μυνηματα μεταδιδονται σειριακα . Εγω εχω τον PIC 16F873 και επέλεξα για την μεταδοση των μηνυματων , την USART σε ασυγχρονη μεταδοση (η ποιο απλη ε?). επισης εχω δει στους πινακες των datasheet τις τιμες baud rate και δεν εχει 4800 baud rate αλλα λεει οτι μπορεισ να βαλεις στον καταχωρητη οποιο τιμη θελεις απο 0-255 δινει τον τυπο για 9600 ειναι "hex:25" και για 4800 βρηκα "hex:52"
το εχω κανει αλλα δεν κσερω τι παιζει και δεν στελνει δεδομενα.
το δοκιμασα και σε αλλο PIC και διαβαζω το ιδιο προγραμμα με το αρχικο κανενας καταχωριτης δεν εχει γεμισει παραπανω απο τους αρχικους.

μηπως να βγαλω την MAX και να το κανω με τρανζιστορ npn??????

Επισης στα datasheet που δινει των τυπο δεν βγαινει ακεραιος αρι8μος αλλα τον στρογγυλοποιει. Αρα τι παιζει με τον συγχρονισμο baud rates παιδια??

nio-4-
06-09-08, 00:59
Επισυναπτω και τους πινακες των baud rates