UART & RS232 me feaking vanjska strana!

A

ayoubw

Guest
hello guyz,

Im 'težak to sučelje UART sa RS232 porta.Nije mi prvi put da sam komunicirati s mikrokontrolerom preko serijskog porta, ali ovaj put to je vozeći mene ispucan!
Uspješno sam napisao firmware za mikrokontrolera, da stalno poslati slovo "A" na serijski port (samo za svrhe testiranja sada).Im 'koristeći Visual Basic za čitanje podataka iz UART.Stvar je da ja ne dobivam tok kontinuiranog's all the time ..ponekad I'm getting tok kontinuiranog P's, orthertimes, potok T, drugi puta sam uzimajući tok * 's ..ono što eventualno mogao biti problem za ovo?
napomena:
1 - ja pokušao mijenja cijeli kontroler ploča sa jedan i dobio jednak problem.
2 - pokušao razmijeniti UART-to-RS232 kabel ..isti problemi se dogodilo ..
3 - pokušao sučelja ploča sa 2 različitim računalima ..i dalje isti problem!

ugoditi ..Ja bih zahvalan bilo kakvu pomoć!

cheerz,
AYOUB

 
Salam,

Svibanj se brzina prijenosa podataka nije ispravno konfiguriran.check it.

Stavite svoje slati i primati VB koda i kristalno vrijednost.Ja ću vam pomoći

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Osmjeh" border="0" />Zdravo

 
Ok postoje dva possilities .. Ili se prenosi ili prima krug krug
Obično miscaluclation ili programiranja na strani microntroller je uzrok.
Pod pretpostavkom da ste preokrenut signal sa RS232 vozač ili barem s tranzistor (What about this?) Provjerite kod opseg ako imate uzorak dolazak vanjska strana .. to stvarno izgleda kao slovo?
ok provjeriti puls trajanja malo ..?Nema više!
ili vaš TX linija nije preokrenut sa RS232 vozač ili kao zadnja osoba je tvoj BAUDRATE brzina nije u redu i ne dragana jedan na strani računala.
koristiti terminal plan to probati i promjena brzine ..ne koriste niti flow control

sretno

 
Bi bilo dobro ako bi tvoj post serijski broj iz mikrokontrolera i recite nam što na CPU clock to radi ... ili što vas baudrate configured ako ima poseban UART periphal izgrađen-in ..Od bitstream te spomenuti (pretpostavljam sve velika slova APT) pretpostavljam neke pogrešne vremena u start / stop bita ... polarnosti od 8-bitni podaci izgleda u redu ...No, bez bilo kakve daljnje informacije od vas možemo samo nagađati (o;

 
Stop pulling your hair out.To je stari "nejasan početak malo" problem zajednički za sve serijske komunikacije.Kada prenositi jednostavan ponavljajući uzorak, te započeti nakon prijemnik predajnik (ili neki šum događa), primatelj nema način da se utvrdi što neki od onih nula bita je pravi početak malo.

Vidio sam mnoge komercijalne proizvode ne zbog tog fenomena.Većina inženjeri nisu svjesni toga.

Pokušajte slanje polu-slučajnih podataka, gdje se svi bitova podataka povremeno okrenuti 1.Ili povremeno pauza između bajtova.Ili uputiti dva bita zaustaviti.Ti trikovi pomoći prijemnik pada na sinkro.

 
Hello all,

Zahvaljujem vam za sve vaše odgovore ...
U redu, sad, ja ću objasniti problem u više detalja ..
Ja sam pričvršćivanje nekoliko redaka UART intialization kao dobio od člana tima ..
Mi koristimo stari mikrokontrolera Siemens MC68k, sa MC68681 UART sa 9.600 Baudrate ..vjerojatno većina od vas ne bi mogli biti upoznati s njom, zato ću napisati ono što svaka linija ne ..

Firmware:
---------
START ORG $ 400.400
Duart EQU $ A00001
MR1A EQU Duart 0 * Mode Register Luka
MR2A EQU Duart 0 * Mode Register Luka
Sra EQU Duart 2 * Status registar Luka (read only).
CSRA EQU Duart 2 * Clock odaberite Register Luka (pisati samo)
RAK EQU Duart 4 * Naredbe Register Luka (pisati samo)
TRBA EQU Duart 6 * Primatelj Buffer Luka (read only)
TBA EQU Duart 6 * predajnik Buffer Luka (pisati samo)
ACR EQU Duart 8 * Pomoćna Control Register

*************************************
* INTIALIZE PORT za prijenos
*************************************

SETPA MOVE.B # $ 10, CRA * Reset Mode Registrirajte se pokazivač MR1
MOVE.B # $ 80, ACR * Postavlja Pomoćne Registrirajte se, baud stope Set2 (uključuje 9.600 baudrate)
MOVE.B # $ BB, CSRA * Set do 9600 Baud
MOVE.B # $ 93, MR1A * Podešavanje Mode Registrirajte se, 8-bitni, Ne Paritet, RxRTS_Control Omogućeno, Block Error Mode, RxIRQ = RxRDY
MOVE.B # $ 37, MR2A * Real način rada, 1 Stop Bit, Tx Control Omogućeno RTS, CTS Omogućuju Transmitter = Enabled
MOVE.B # $ 05, CRA * Omogućuju Tx i Rx u Port za rad
NOP * Pričekajte
REPEAT MOVE.B # $ 41, TBA * Pošalji ASCII za "A" znaka prenositi registrirati
BRA REPEAT * ponovite zauvijek samo za svrhe testiranjaNAPOMENA: spreman za slanje, i jasno-za-slanje žice su izravno spojeni zajedno ..Visual Basic Šifra:
------------------
Private Sub Form_Load ()
Timer1.Enabled = True
Timer1.Interval = 500
MSComm1.CommPort = 1
MSComm1.Settings = "9600, n, 8,1"
Ako MSComm1.PortOpen <> True Onda MSComm1.PortOpen = True
End Sub

Private Sub Timer1_Timer ()
Text1.Text = MSComm1.Input
End SubJa sam sumnjajući da se nešto izvrnut sa emitira mikrokontrolera kodiranja, koji sam nije mogao odgonetnuti što bi se, vjerojatno uz dogovaranje signale.Slučaj sam okrenut je da: kad sam pokrenuti moje VB programa, dobijem tok "PPPPP" (umjesto "AAAA"), ako sam u blizini, i mali opet ja dobiti drugačiji tok ponekad je to "AAAA", drugi puta je "TTTTT" ili "******".

echo47 ..thanx for ur odgovor, imate točku ..moramo probati tvoj prijedlog, i vratiti se na vas ..

bilo kako ..ovdje je problem sa više detalja, zahvaljujem vam opet za svoje odgovore, a još prijedlozi su dobrodošli

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Osmjeh" border="0" />cheeerz,
AYOUB

 
Dragi ayoubw,

Prije svega, vi ispitujete firmware-a sa softverom koji bi mogao biti u krivu, tako da ispada teže utvrditi izvor problema (to je firmver ili softver ...???)
Umjesto VB aplikacija, Identifikacija 'iskoristiti bilo koji software emulaciju terminala-gledati ono što je MCU slanja.
Ja predlažem vam da preuzimanje TeraTerm-Pro iz http://www.tucows.com/preview/195282.html

Pozdravi.

 
Tvoj softver je vjerojatno u redu.Vještački PT * likovi su jaki dokaz da ste se suočili dvosmislen fenomen početak malo.Uočite da odabirom različitih 0 start bit, te dobiti one željenih bukva znakova.Ja ću kladiti se te je dobio i 0x15 i 0xA8 znakova previše.

Šifra:

Tx AAAAA 01000001010100000101010000010101000001010100000101

Rx AAAAA 010000010 010000010 010000010 010000010 010000010

Rx PPPPP 000001010 000001010 000001010 000001010 000001010

Rx TTTTT 000101010 000101010 000101010 000101010 000101010

Rx ***** 001010100 001010100 001010100 001010100 001010100
 
Ja sam zadivljen, riješiti problem početi malo nejasan, te navedeni slanje hrpa od 1 je prvi put da je prva 0 to rx prima bi trebao biti početak malo vašeg prijenosa.Postoji li jednostavan način da to učinite s hardverom, tj. stavljanje pull-up otpornik neke vrste pred rx.

hvala

 
ayoubw,

možda sam malo kasno i imate podoba vanjska strana everthing po sebi?

Ali, gledajući svoj kôd (a ja nisam stručnjak za CPU):
REPEAT MOVE.B # $ 41, TBA * Pošalji ASCII za "A" znaka prenositi registrirati
BRA REPEAT * ponovite zauvijek samo za svrhe testiranja

pomoć za nuždu mene ono što je čudnovato ako ne morate čekati USART je spreman za sljedeći bajt umjesto nadev bajtova u beskrajnim petlji s puno većom brzinom od USART možete ih poslati.

Mislim da ste dobili klasičan problem kao prekoračenje ste davanje USART mnogo više podataka onda je možete poslati.

Uzdanica ovaj pomoć i srdačan pozdrav

 
zdravo,

echo47 ...u jesu moj spasitelj!Nego puno!Internet izrađen!samo je potrebno da bi odgađanje petlju nakon slanja znaka ..i to sve razrađen!

C-Man ..to reći u istinu nisam stručnjak u UARTs, to mi nije bilo stvarno tko je napisao skupštine kod na prvom mjestu ..ali vjerojatno ono što ur govori je istina ..ono što radimo je da smo povezuju na CTS RDY igle za simuliranje spremni poslati signal dolazi ..i sa malim delay smo se između likova, sve je radila van ..nego puno svima na pomoći!

cheerz,
AYOUB

 
Deset Y Dash wrote:

Ja sam zadivljen, riješiti problem početi malo nejasan, te navedeni slanje hrpa od 1 je prvi put da je prva 0 to rx prima bi trebao biti početak malo vašeg prijenosa.
Postoji li jednostavan način da to učinite s hardverom, tj. stavljanje pull-up otpornik neke vrste pred rx.hvala
 
Oprostite echo47,
Ja ne razumijem zašto
Quote:

Tx AAAAA 01000001010100000101010000010101000001010100000101
 

Welcome to EDABoard.com

Sponsor

Back
Top