Sida 2 av 3
Re: Jätteskumt UART problem
Postat: 16 mars 2010, 18:15:13
av Virror
Sodjan:
Terminal är ett terminal program som är ganska vanligt.
Och ja, jag har som sagt använt Terminal för att kolla att 0x06 skickas från SAM kortet.
Båda drivs med kristall, och om det var baudrateproblem både ju även inkommande data bli konstig.
Jonas L:
Har provat att lägga in en delay på allt från några µs till en s, utan skillnad.
Jag funderar på om det kan vara pariteten som ställer till det? Kan olika paritet ge att viss data kommer fram helt rätt medans viss data inte ens "fångas upp" och ger ett interrupt?
Re: Jätteskumt UART problem
Postat: 16 mars 2010, 19:03:12
av Johanb
När avgör mottagaren om datat är korrupt?
Får du en interrupt oavsett om det är korrupt eller korrekt?
Re: Jätteskumt UART problem
Postat: 16 mars 2010, 19:06:16
av Virror
Har aldrig nämnt att datat skulle bli korrupt, antingen kommer det fram rätt, eller så blir det inget interupt alls. Det är det som är det skumma.
Re: Jätteskumt UART problem
Postat: 16 mars 2010, 20:45:38
av sodjan
> Terminal är ett terminal program som är ganska vanligt.
Jasså ?
> Kan olika paritet ge att viss data kommer fram helt rätt medans viss
> data inte ens "fångas upp" och ger ett interrupt?
Ja, i hälften av fallen. Men det är ju ganska uppenbart.
Tecken med antingen ett jämt eller ett udda antal "1" skulle kunna
försvinna med de med motsatt antal "1" kommer fram. Men det är ett
ganska konstruerat fall och du vet väl hur paritet (och antal bitar) är uppsatt ?
Vad är det som gör att du frågar om just det ? Är du osäker på uppsättningen
av UART'arna ?
Re: Jätteskumt UART problem
Postat: 16 mars 2010, 21:58:13
av Virror
Jag vet hur paritet fungerar i teorin, men har aldrig använt det innan, nu används jämn paritet. Men jag tror inte egentligen att det är det som är problemet eftersom det fungerar åt ena hållet.
Re: Jätteskumt UART problem
Postat: 16 mars 2010, 22:01:07
av sodjan
Nej, om alla ingående delar (de två korten samt PC'n) är uppsatta
på samma sätt så ska det inte vara något problem.
Kör du 8 bitar + par eller 7 bitar + par ?
Re: Jätteskumt UART problem
Postat: 16 mars 2010, 22:12:26
av remne
Re: Jätteskumt UART problem
Postat: 16 mars 2010, 23:57:40
av Virror
Kör 8 bitar, en stopbit och jämn paritet
Re: Jätteskumt UART problem
Postat: 17 mars 2010, 00:20:36
av sodjan
Traditionellt brukar paritet oftast användas till sammans med 7 data bitar men
8 går också (och det stöds i hårdvaran av din AT91SAM7'a så vitt jag ser).
I det här läget skulle jag hänga på ett oscilloskop på "linan" och kolla vad
som *faktiskt* kommer på den...
Re: Jätteskumt UART problem
Postat: 17 mars 2010, 08:38:31
av Virror
Ok, nu har jag kopplat upp två SAM kort mot varandra och kopierat USART initieringen så det är exakt samma på båda. Samma fel.
Jag fattar ingenting : p
Re: Jätteskumt UART problem
Postat: 17 mars 2010, 09:22:15
av vfr
Då skulle jag definitivt gjort som Sodjan säger, hängt på ett oscilloskåp och kollat! Det är nog enda sättet att få en klar bild av vad som egentligen skickas, och därmed troligen även svar på frågan varför.
Re: Jätteskumt UART problem
Postat: 17 mars 2010, 09:26:15
av Virror
Får se om jag hittar nån som har koll på skopen här, chefen som har dom är ledig i veckan.
Re: Jätteskumt UART problem
Postat: 17 mars 2010, 10:49:26
av Virror
Hurra, nu funkar det!
Av någon anledning ville inte pariteten sätta sig rätt, fick hårdkoda in det istället för att gå via dom fancy include filerna för SAMen.
Men ändå skummt att vissa funkade och vissa koder inte ens genererade interrups.
Re: Jätteskumt UART problem
Postat: 17 mars 2010, 12:11:03
av sodjan
OK, det borde man ha kunnat se ganska snabbt genom att
skicka tecken med udd/jämnt antal "1" om vartannat. Var
det inget i själva data-paketet som blev konstigt också ?
Samma fenomen borde ju ha drabbat det också...
Re: Jätteskumt UART problem
Postat: 17 mars 2010, 13:09:11
av Virror
Nej, all data som kom "in" blev rätt, kan ha varit slumpen att just dom var rätt kanske.
Var både udda och jämna av dom som skickades som kom fram/kom bort, det var det som var så konstigt. Tex så försvann både 0x05 och 0x06. Men inte 0x04 och 0x07.