Hallo,

Via een lange (10m) kabel wil ik het signaal van een magnetic sensor type 3144 lezen maar ik ondervind storing van het PWM signaal dat de motor aanstuurt (loopt via dezelfde kabel). Als ik er een logic analyzer aanhang zie ik dat de storing op de sensor ingang de frequentie van de PWM heeft:

Het bovenste signaal meet ik op de ingang van de uC. Het onderste signaal is een uitgang van de uC die laat zien wanneer de uC het signaal hoog en laag ziet. Vreemd genoeg heeft de uC minder 'last' van de storing dan de logic analyzer, maar telt toch pulsen af en toe dubbel.

Dit is zoals de sensor is aangesloten, de pull-up weerstand bij de processor:

Ik heb d.m.v. een 47nF condensator de storing effectief weggefilterd. Die zit nu van de uC ingang naar GND:

Het resultaat is dit:

Ik zie nu ook geen dubbele pulsen meer. Ik heb alleen nog een paar vragen over deze oplossing:

- Ik heb een C van 47nF genomen, en dat werkte. Hoe bepaal je eigenlijk de meest geschikte waarde? De PWM frequentie is ongeveer 200Hz.

- Is dit een oplossing zoals het hoort, of is het beter nog een weerstand op te nemen naar de sensor toe om te voorkomen dat de transistor in de 3144 wordt overbelast?

Van de frequentie uitgaan. Voor een blok redelijk door te laten moet een filter een frequentie hebben die ongeveer 10X de frequentie van de blok is.

Op 2 maart 2015 14:04:48 schreef rbeckers:
Van de frequentie uitgaan. Voor een blok redelijk door te laten moet een filter een frequentie hebben die ongeveer 10X de frequentie van de blok is.

Ok, de frequentie het sensor signaal is max 3Hz, dus zou je een filter moeten hebben dat alles boven de 30Hz filtert. Kun je me zeggen hoe je zo'n filter berekent?

Het maakt ook veel uit wat voor uC pin je gebruikt. Een TTL pin heeft véél meer last van storing dan een S/T pin...

Op 2 maart 2015 14:45:14 schreef rbeckers:
http://nl.wikipedia.org/wiki/Filter_(elektronica)

Als ik dit zo lees en een RC filter wil maken zou ik dus eigenlijk een weerstand vanaf de sensor naar de uC moeten opnemen, en dan de C vanaf de ingang naar GND, correct? Daar de sensor een open-collector uitgang heeft, moet er ook een weerstand naar +5V, dus zou het er schematisch zo uit gaan zien:

Als ik dan een calculator gebruik zoals op http://sim.okawa-denshi.jp/en/CRlowkeisan.htm, dan zou ik bij een R van 10k en een C van 47n alles boven de 300Hz weg filteren, correct?

Ongeveer correct. De sensor en de µC doen ook mee.

Ik vind een pull-up van 10k ook wel rijkelijk hoog als er 10m kabel aanhangt. Zou eerder 1k nemen.

Op 2 maart 2015 21:35:18 schreef RobK:
Ik vind een pull-up van 10k ook wel rijkelijk hoog als er 10m kabel aanhangt. Zou eerder 1k nemen.

Ok, bedankt voor de tip. Waarop is dat gebaseerd? Hoe groter de stroom hoe minder kans op storing? Als de transistor het kan hebben is dan 470 Ohm (ong. 10mA) niet nog beter?

Op 2 maart 2015 20:13:32 schreef rbeckers:
Ongeveer correct. De sensor en de µC doen ook mee.

Wat is het beste als je zo'n filter maakt: hoge weerstand, lage capaciteit of omgekeerd?

Ik zou dus 10K met 47nF kunnen nemen, maar ook 470 Ohm met 1uF...

Ik neem meestal een RF bead op in signaallijnen als de BLM18H met condensator van 1nF. Heeft lage DC weerstand, oplopend tot 1500 Ohm op 100MHz.

Op 2 maart 2015 14:45:10 schreef Arco:
Het maakt ook veel uit wat voor uC pin je gebruikt. Een TTL pin heeft véél meer last van storing dan een S/T pin...

Ja klopt, dat is ook wat je ziet in het logic analyzer plaatje: Waar de analyzer veel storing 'ziet' lijkt de uC (met S/T ingangen) er bijna niets van te 'zien'. Maar ja, af en toe een extra puls is ook niet wenselijk, dus toch maar een filter plaatsen.

@maxva
Dat is een lastige vraag!
De waardes hangen o.s. van het frequentiegebied af. Een TV word aangesloten met 75ohm, een scoop met 50 ohm.
Heel ongeveer zijn waardes onder de 10pf, 10ohm en boven de 4700uF en 10M af te raden.

Op 3 maart 2015 15:10:05 schreef rbeckers:
@maxva
Dat is een lastige vraag!
De waardes hangen o.s. van het frequentiegebied af. Een TV word aangesloten met 75ohm, een scoop met 50 ohm.
Heel ongeveer zijn waardes onder de 10pf, 10ohm en boven de 4700uF en 10M af te raden.

Ok, bedankt. 10ohm tot 10M en 10pf tot 4700uf is wel zo'n beetje de hele range die ik in mijn assortiment heb...:)

Dat is dus ok! ;)

Google op elsie filter.

Probeer diverse waardes.

Op 2 maart 2015 21:35:18 schreef RobK:
Ik vind een pull-up van 10k ook wel rijkelijk hoog als er 10m kabel aanhangt. Zou eerder 1k nemen.

Ik heb de pull-up waarde verlaagd van 10k naar 1k, en nu heeft de uC totaal geen last meer van valse pulsen zelfs zonder condensator. Op de logic analyzer zie ik de storing nog wel dus een filter gaat er toch wel op.

In het schema van zo'n kant en klare sensor module zie je dat er een 100nf condensator vanaf de signaaluitgang naar massa is aangebracht. Is deze ook bedoeld om storing weg te filteren? Zo ja, waarom is er dan geen weerstand opgenomen zoals in andere R/C filters?

Ja.
U1A is een comparator met een open collector uitgang. R4 is die R.

Zie hier het project waarvoor ik dit nodig heb:

http://www.circuitsonline.net/forum/view/message/1699366#1699366

Zoals je kunt zien op de filmpjes worden de pulsen goed geteld, en na verlagen van de pull-up weerstand en aanbrengen van de c'tjes heb ik nog geen enkele mis-telling gezien.