PDA

Επιστροφή στο Forum : Προβλημα στην uart?



pit21
08-03-08, 11:15
γεια σε ολους!
αρχισα προσφατα να δουλευω με μικροελεγκτες(χρησημοποιω ΑΤmega16)κ δοκιμασα να κανω σεριακη μεταδοση(uart).

τα προβληματα μου ειναι τα εξεις(κ ιδιαιτερα το 1).

1)ο μικροελεγκτης βγαζει ενα σημα σαν αυτο στην εικονα που καθε αλλο παρα ψηφιακο μου θυμηζει!δλδ δεν κυμαινετα απο 0-5V
παντως το τσεκαρα κ αν υποθεσουμε οτι τα -5V ειναι το λογικο 0 κ το 0V ειναι το λογικο 1 η πληροφορια ειναι σωστη.
ειναι λοιπον σωστο?να το αφησω ετσι?κ αν οχι τι μπορω να κανω για να το διορθωσω?

2)θελω το stopbit να εχει τιμη λογικο 1.εκτος απο inverter υπαρχει τροπος να το ρυθμισω μεσα απο το προγραμμα?(χρησημοποιω BASIC)

ευχαριστω προκαταβολικα :D !

EDΙΤ:το byte που στελνω στην εικονα αποτελειται απο 9bit πληροφορια κ 1stopbit.
η πληροφορια ειναι το: 001010011

pet
08-03-08, 11:30
μπορεις να αναρτήσεις το κύκλωμα (πχ μια φωτό τι συνδεσεις έχεισ κάνει, με τι καλώδια/απόσταση κλπ) ?

pit21
08-03-08, 11:52
βεβαιως! :)
το πιν15 ειναι η uart. οι συνδεσιες εχουν γινει με ψιλο μονοκλωνο καλωδιο σαν αυτο που φαινετε στη μπαρα απο τα led!
ελπιζω να μην θεωρειται κακη κατασκευη :oops:

GeorgeK
08-03-08, 12:36
Το παλμογράφημα αυτό από κάρτα ήχου το βγάζεις ?
Δες λίγο το DC offset αν είναι σωστά . Νομίζω στις κάρτες ήχου
αποκόπτονται οι DC συνιστώσες .

vaggelis_cha
08-03-08, 12:57
Το παλμογράφημα αυτό από κάρτα ήχου το βγάζεις ?
Δες λίγο το DC offset αν είναι σωστά . Νομίζω στις κάρτες ήχου
αποκόπτονται οι DC συνιστώσες .

Μπορεί να είναι θέμα Y-Level και όχι DC offset.

Δεύτερη ερώτηση... η γείωση της κάρτας ήχου και του κυκλώματος έχουν κάποια σχέση;

Το stop bit είναι de facto στο 1, αν το αλλάξεις καταστρατηγείς το rs-232 standard με κάτι δικό σου.



Stop bits

Suppose that the receiver has missed the start bit because of noise on the transmission line. It started on the first following data bit with a space value. This causes garbled date to reach the receiver. A mechanism must be present to resynchronize the communication. To do this, framing is introduced. Framing means, that all the data bits and parity bit are contained in a frame of start and stop bits. The period of time lying between the start and stop bits is a constant defined by the baud rate and number of data and parity bits. The start bit has always space value (+12V), the stop bit always mark value(-12V). If the receiver detects a value other than mark when the stop bit should be present on the line, it knows that there is a synchronization failure. This causes a framing error condition in the receiving UART. The device then tries to resynchronize on new incomming bits.

For resynchronizing, the receiver scans the incomming data for valid start and stop bit pairs. This works, as long as there is enough variation in the bit patterns of the data words. If data value zero is sent repeatedly, resynchronization is not possible for example.



Space state (0) +5 ... +15 +3 ... +25
Mark state (1) -5 ... -15 -3 ... -25
Undefined - -3 ... +3

Δες περισσότερα εδώ: http://www.lammertbies.nl/comm/info/RS-232_specs.html

pit21
08-03-08, 13:38
πραγματι το παλμογραφημα ειναι της καρτας ηχου αλλα το πηγα κ σε ενα ηλεκτρονικο το βαλαμε στον παλμογραφο κ εβγαζε το ιδιο.τωρα θα σε γελασω αν ειχε ρυθμισει σωστα το DC offset δεν εχω ιδεα!λες να το ξαναπαω κ να του πω αυτο??

τη γειωση της καρτας ηχου την εβαλα στη γειωση του κυκλωματος κ το σημα στα δυο καναλια.εχει καποια σχεση?

οσο για το stopbit το εχω δει γραμμενο σε διαφορα site που λενε για midi κ λενε οτι πρεπει να εχει τιμη 1.δεν προκειται για RS-232.θα το τσεκαρω παντως ξανα!

jvourv
09-03-08, 11:30
Φίλε pit το παλμογράφημα είναι σωστό.
Και το stop bit που θέλεις να αλλάξεις και αυτό σωστό είναι.
Το start bit είναι στο λογικό '0' και το stop bit στο λογικό '1'.
Έτσι όπως υπαγορεύει το σειριακό πρωτόκολλο.
Επίσης μη νομίζεις ότι ο μικροελεγκτής βγάζει "τέλεια" και ξεκάθαρα ψηφιακά σήματα που μαθαίνουμε στη θεωρία.
Στην πραγματικότητα υπάρχουν αιχμές κατά τις μεταβάσεις ενώ επίσης όταν το σήμα σταθεροποιηθεί σε μια λογική στάθμη ακόμα και εκεί υπάρχει θόρυβος.
Τώρα το παλμογράφημα αυτό έχει πολύ λίγα δείγματα, όμως είναι σωστό και απεικονίζει την πραγματικότητα.
Δες το σχήμα που ανεβάζω.
Δηλαδή δεν υπάρχει κάποιο πρόβλημα ή λάθος στα όσα έχεις κάνει έως τώρα.
Στη συνέχεια για να μετατρέψεις την ψηφιακή έξοδο του μικροελεγκτή σε RS232 λογικά επίπεδα (λογικό '1'=-3V έως -15V, λογικό '0'=3V έως 15V) θα χρειαστείς ένα ολοκληρωμένο με κωδικό αριθμό 232 (όπως το MAX232 που είναι και το πιο γνωστό).


Φιλικά,
Γιάννης

leone
10-03-08, 14:17
Καλησπέρα και συγνώμη για το off topic αλλά, pit, πιο πρόγραμμα χρησιμοποίησες για να κάνεις την κάρτα ήχου σου παλμογράφο?

pit21
10-03-08, 16:37
ευχαριστω για τη βοηθεια φιλε γιαννη τελικα βρηκα ακρη κ το σχεδιακι σου ηταν πολυ
κατατοπιστικο :ok:

φιλε leone.εχω δοκιμασει 3 μεχρι στιγμης!
1)το winscope δεν μου αρεσε ιδιαιτερα
2)το zelscope το οποιο ηταν αρκετα καλο αλλα το βρηκα μονο σε trial version οποτε αναγκαστικα το παρατησα.
3)το scope (η κατι τετοιο) με το οποιο εβγαλα κ αυτο που ειδες κ με το οποιο ειμαι πολυ ικανοποιημενος.ειναι freeware κ μπορεις να το βρεις στο: www.zeitnitz.de/Christian/Scope/Scope_en.html

ελπιζω να βοηθησα!

leone
11-03-08, 11:52
pit21, ευχαριστώ για την άμμεση απάντηση... θα δοκιμάσω και εγώ τα winscope και το τελευταίο scope από το link...

Μέχρι πόσα volt αντέχει μία κάρτα ήχου στην είσοδο?

pet
11-03-08, 12:18
ε κανα δυό βόλτ υποθέτω εγώ, '



φτιάξε κύκλωμα που να υποδιαιρεί την τάση στα σίγουρα (και εσύ στο μυαλό σου θα πολλαπλασιάζεις) και βάλε και μια τεράστια αντίσταση
εισόδου (αν και θα έχει ήδη) αλλά το θέμα είναι ότι εκει μέσα υπάρχει επαγωγική διάταξη στην σειρά (δεν περνάει dc) οπότε
το κύκλωμα που θα βάλεις θα γίνει κάποιο φίλτρο..

και βάλες και τις μικρότερες zener που θα βρεις να κρατάνε την τάση low σε περίπτωση που υπερβείς κάποια
τιμή

καλύτερα να το δοκιμάσεις με μια φθηνή κάρτα ήχου και όχι κάποια on-board για να μην σου πάει
στράφι ι motherboard αν κάτι πάει στραβά

GeorgeK
12-03-08, 01:25
Χωρίς να ειμαι 100% σίγουρος , επειδή έχω χρησιμοποιήσει και γω την κάρτα ήχου για παλμογράφο κάποτε ,
αν θυμάμαι καλά στο line-in αντέχει μέχρι 1V .
Οπότε για κυκλώματα με 5V βάλε έναν διαιρέτη τάσης με 4κιλο και 1κιλο ,
και παίρνεις το σήμα σου παράλληλα από ην 1κιλο .