Kompensera studspulser
Kompensera studspulser
Loggar via PC-serieport en elmätares S0-pulser. Men det blir studspulser efter den puls jag vill logga. Kan man kompensera detta?
/Magnus
/Magnus
Första träffen på google
"en gate" är en logisk enhet som kan användas att släppa igenom signal eller inte.
Men det vore kanske mycket bättre att du berättar hur ditt system är kopplat i nuläget och hur du loggar via serieporten, det skulle sannolikt ge mycket bättre svar.
"en gate" är en logisk enhet som kan användas att släppa igenom signal eller inte.
Men det vore kanske mycket bättre att du berättar hur ditt system är kopplat i nuläget och hur du loggar via serieporten, det skulle sannolikt ge mycket bättre svar.
Det är kopplat som bilden på länken förutom att jag inte använder TxD och ett motstånd.
http://www.techtrade.se/pictures/EMC-022.gif
Loggningen sker i ett vb.net program där jag noterar alla pulser som en förändring på RxD. Alltså DTR är "hög". En puls från S0 = kortslutning. Kortslutning = "hög" på RxD.
http://www.techtrade.se/pictures/EMC-022.gif
Loggningen sker i ett vb.net program där jag noterar alla pulser som en förändring på RxD. Alltså DTR är "hög". En puls från S0 = kortslutning. Kortslutning = "hög" på RxD.
Senast redigerad av MGKea 19 november 2008, 11:18:43, redigerad totalt 1 gång.
Varför överraskning? Det behövs inte då kabellängden är kort. Det blir samma resultat kopplat som bilden.
Min undran gäller att få bort studspulserna med komponenter. Idag kompenserar jag bort de via ett mjukvarufilter i mitt program. Men om jag skall gå över på 1-wire med en räknare och då måste studsarna bort. Vill inte att räknaren skall räkna studsarna som inte alltid är samma till antal.
Kabeln som jag använder är RJ45 cat6 med en ca längd på 2meter där jag bara använder ett par.
Min undran gäller att få bort studspulserna med komponenter. Idag kompenserar jag bort de via ett mjukvarufilter i mitt program. Men om jag skall gå över på 1-wire med en räknare och då måste studsarna bort. Vill inte att räknaren skall räkna studsarna som inte alltid är samma till antal.
Kabeln som jag använder är RJ45 cat6 med en ca längd på 2meter där jag bara använder ett par.
Jag är ganska säker på att du INTE har reflexioner på 2m partvinnad kabel när pulserna är 30-50ms, alltså finns det ingen "studspulser"
Men då du tydligen vet att de kommer kan du väl beskriva i vilken tiddomän de kommer eller bättre: lägga in ett oscilloskopbild på hur det ser ut.
Jag tror helt enkelt inte på reflektioner.
Och ska du räkna med ett 1-Wire® nät är det ju bara att se till att nivån på S0-signalen är rätt, sedan räknar den rätt.
Men då du tydligen vet att de kommer kan du väl beskriva i vilken tiddomän de kommer eller bättre: lägga in ett oscilloskopbild på hur det ser ut.
Jag tror helt enkelt inte på reflektioner.
Och ska du räkna med ett 1-Wire® nät är det ju bara att se till att nivån på S0-signalen är rätt, sedan räknar den rätt.
Motståndet och TxD behövs för att RxD skall svänga mellan etta och nolla. Det är näligen så att enligt RS-232 så är en nolla en spänning över 3 V och en etta en spänning under - 3 V (har jag för mig).
Om du kopplar utan det där motståndet kommer spänningen på RxD att variera mellan 0 V (=odefinierat) och en plus-spänning (=nolla).
Om du kopplar utan det där motståndet kommer spänningen på RxD att variera mellan 0 V (=odefinierat) och en plus-spänning (=nolla).
Hur skall man förklara det? .... DTR till CTS är ju enkel koppling som skall fungera. Men samma fenomen uppstår.
Studsar som de jag upplever får de flesta om inte alla. Samma gäller de som använder en räknare i ett 1-wire nät.
Jag vill på enklast möjliga sätt filtrera bort dessa studspulser. Filtret bör fungera som så att en puls tasemot och låser följande inkommande pulser i 200ms.
Studsar som de jag upplever får de flesta om inte alla. Samma gäller de som använder en räknare i ett 1-wire nät.
Jag vill på enklast möjliga sätt filtrera bort dessa studspulser. Filtret bör fungera som så att en puls tasemot och låser följande inkommande pulser i 200ms.
Jag tror ju att anledningen till att de använder RxD i det där schemat är just att använda UARTen som ett filter.
En serieport ligger ju normalt och väntar på en startbit. När startbiten kommer så "läser" den de kommande bitarna till en byte.
När du tar emot en byte så representerar den en "inspelning" av vad som hände precis efter den första flanken. Men du behöver ju inte veta det. Du behöver bara veta at varje gång du tar emot en byte så har det varit en startande flank. Du får alltså en byte från serieporten för varje puls (om du ställer serieporten på en vettig hastighet).
En serieport ligger ju normalt och väntar på en startbit. När startbiten kommer så "läser" den de kommande bitarna till en byte.
När du tar emot en byte så representerar den en "inspelning" av vad som hände precis efter den första flanken. Men du behöver ju inte veta det. Du behöver bara veta at varje gång du tar emot en byte så har det varit en startande flank. Du får alltså en byte från serieporten för varje puls (om du ställer serieporten på en vettig hastighet).
