Sida 3 av 8
Postat: 19 november 2008, 20:55:41
av Mindmapper
Normalt ska ingen få problem med kopplingen i första länken. Problemet måste vara felkoppling eller fel i programmet.
MGKea du kan väl mäta med en multimeter att du har -3V till -15V på Tx.
Inom samma område på Rx när du inte har någon signal från kopplaren.
Samt att du har +3V till +15V på andra sidan kopplaren.
Har du dom spänningarna är det fel i programmet. Har du inte dom spänningarna är det fel i kopplingen, comporten eller programmet.
Ännu bättre än att mäta med multimeter är att mäta med en comtester. Men med multimetern kan du komma långt, genom att mäta det jag sa samt kolla om du har aktivitet på porten när du skickar signaler. Den sistnämnda kollen för att se att porten är OK.
Postat: 19 november 2008, 20:58:27
av MGKea
RXD är nollad/tömd av .net
Postat: 20 november 2008, 08:32:50
av Nerre
Nollad/tömd? Ja men vilken spänning har du in på den? Det är en ingång, finns ingen chans att .net kan styra vad du stoppar in för spänning på den. .net kan bara läsa av den.
En spänning på RxD som ligger mellan -3 V och -15 V är en etta.
En spänning på RxD som ligger mellan +3 V och + 15 V är en nolla.
En spänning på RxD som ligger mellan - 3 V och + 3 V är ett odefinierat tillstånd och kan tolkas som precis vad som helst. Det inkluderar att den kan svänga mellan ett och noll lite hur som helst.
Du måste alltså ha en koppling som ser till att spänningen på RxD inte ligger mellan -3 V och + 3 V.
Postat: 20 november 2008, 09:52:39
av MGKea
GND - TxD = -6.38v
GND - DTR = 6,89v
GND - RxD = 0v
GND - CTS = 0v
Oavsett om en "nolla" är >= -3v eller 0v så blir resultatet den samma.
En puls från min elmätares S0 blir fler än en. Kört DTR-CTS som skall fungera enligt standard med samma problem.
De som kör 1-wire räknare och har samma problem har de också potenialskillnad problem ? .... skulle inte tro det.
Vad eller vem kan stå för att S0:an är en optokopplare...bara för att techtrade visar det på sin bild som jag tog som kopplings exempel ?
S0 problemet har de flesta som använder Kamstrup eller Enermet mätare.
Oavsett koppling till PC eller 1-wire måste man ha någon typ av filter för att få bort studspulser.
Sedan är det väl så att RS232 inte följs till punkt och pricka i en PC. .Net har inga problem att läsa av en puls som avviker från RS232 standarden.
Skulle det vara ett stort problem att inte RxD är >=-3v så skulle .net känna av flera pulser när DTR och RxD kortslutes under en längre tid (typ 5sek).
Man bör känna till att den "etta" som skall avläsas inte riktigt är så lätt på ett normalt sätt då det blir problem att hitta en start och stoppbit. Därför används SerialPinChange i .net för att känna av förändring på den pinne man vill kontrollera.
Skall man hårddra det hela så är en "etta" från S0 en "nolla" i comporten . Det man läser av är DTR:s +6,89v.
/Magnus
Postat: 20 november 2008, 10:13:49
av peter555
Om du har GND - TxD = -6.38V så måste GND - RxD också vara -6.38V annars har du kopplat fel eller också är din komport trasig
Postat: 20 november 2008, 10:16:39
av MGKea
Rxd är en avläsnings pinne.
Skall man hårddra det hela så är en "etta" från S0 en "nolla" i comporten . Det man läser av är DTR:s +6,89v.
Postat: 20 november 2008, 10:18:28
av Nerre
Nu börjar vi få lite siffror här ja. Då kan vi konstatera så här:
Om du kopplar enligt bilden du länkade till, med ett motstånd från TxD till RxD så har du en pulldown där. TxD kommer alltså att vara etta. Vilket såvitt jag minns är korrekt viloläge för RS-232.
S0-utgången kortsluter sen RxD till DTR, vilket lyfter RxD till 6-7 V, vilket blir en nolla (d.v.s. startbit för RS-232). UARTen bör då läsa in en byte från RxD (som kommer att innehålla en massa skräp).
Kan du förklara varför du tror att du skulle få problem om DTR kopplas direkt till RxD? Det låter på dig som om du inte förstår skillnaden mellan en ingång och en utgång.
DTR växlar ju mellan +6 V och -6 V. Den kommer aldrig att lägga RxD på en otillåten nivå.
Men om du har RxD bara kopplat till S0-utgången så kommer den (om du inte har motståndet till TxD) att hamna på ungefär 0 V när S0 inte är sluten, 0 V är ett odefinierat tillstånd så den kommer troligen att fladdra mellan 0 och 1 lite hur som helst. D.v.s. precis det fenomen som du upplever.
Postat: 20 november 2008, 10:22:01
av MGKea
Borde det då inte komma lite pulser hur som hellst med ditt resonemang?
Postat: 20 november 2008, 10:26:02
av peter555
Med de siffror du redovisat så har du uppenbarligen inte kopplat enligt ditt schema. Kan du inte fixa det först och återkomma med resultatet ?
Postat: 20 november 2008, 10:30:53
av MGKea
Peter555... vet inte riktigt hur jag skall få förståelse... Jag har redan testat och studspulserna är där också. Jag har flera datorer jag testat via. Både inbyggda comportar på moderkort och UBS-adaptrar.
Postat: 20 november 2008, 10:31:33
av peter555
Koppla enligt schemat och redovisa spänningarna !
Postat: 20 november 2008, 11:40:19
av Nerre
MGKea skrev:Borde det då inte komma lite pulser hur som hellst med ditt resonemang?
Nej, det behöver det inte göra, eftersom resultatet är odefinierat. Beroende på hur kretslösningen ser ut kan det fladdra lite hit och dit och sen stabilisera sig på grund av hur strökapacitanserna ligger och vad för störningar som kommer.
En RS-232-port skall indikera en nolla om spänningen är högre än 3 V, och en etta om den är lägre än -3 V. Men vad den indikerar däremellan är ospecificerat så varje tillverkare av RS-232-portar kan göra en egen lösning. Det sitter ju nån form av komparator på ingången, men hur den ser ut kan man inte veta. Har man tur kan det funkera, men vanligare är att det inte fungerar.
Postat: 20 november 2008, 11:52:11
av JustNeed
Det råkar inte vara så att du använder en elmätare från Kamstrup?
elf98 skrev:Generellt:
Elmätare med S0-utgång skall lämna en fin utgående puls som inte lider av kontaktstudsar.
Just Kamstrups elmätare verkar inte alls ge denna fina signal av någon anledning. Det verkar snarare som att de använder någon form av relä för att skicka ut signalen (klickar det i elmätaren?). Det finns flera som har haft samma problem som du, se tex viewtopic.php?f=21&t=403.
källa
http://www.temperatur.nu/forum/viewtopic.php?f=21&t=403
Postat: 20 november 2008, 12:11:59
av Nerre
S0 är en standard. Den ska inte ge studsar. Om den gör det så är det bara att reklamera mätaren. (Fast problemet är väl att den ägs av elleverantören och det skiter follkomligen i om du kan använda S0-utången eller inte.)
Postat: 20 november 2008, 12:45:25
av peter555
För att stilla min nyfikenhet mätte jag på en Kamstrup som refereras till i länken. Det kommer ut pulser helt enligt spec på båda utgångarna, på SO syns det tydligt att det sitter en slö optokopplare.
Problemet tycks vara skit bakom spakarna eller snarare sopig kod.