Ivo
Guus.
Dat klopt in principe wel, maar je meet dan niet alleen de duty cycle
maar ook de analoge spanning van het PWM signaal.
Je zal dus eerst een nauwkeurige referentie spanning moeten hebben en
die met een fet switch laten schakelen door het PWM signaal
Daarna integreren en dan heb je een nauwkeurig analoog signaal.
Ben.
Guus.
> *Een nauwkeurigheid van +/- 0,01 % lijkt mij volkomen onbereikbaar.
> Realiseert Ivo wel wat hij vraagt ?
> Mocht iemand daar anders over denken dan hoor ik dat graag.*
Lastig geintje inderdaad. Als de snelheid niet van belang is kan het met een
CMOS inverter, een weerstandje en een afvlak-condensator.
De inverter wordt gevoed uit de referentiespanning. 0.01% is 1 millivot. Erg
weinig, inderdaad. Je gaat je afvragen waar die spanning weer in gaat.
Een andere mogelijkheid is digitaal. Lekker snel tellen. Meet de periode en de
tijdperiode actief.
Deel dan de tijdperiode actief door de totale periode, en voer het resultaat aan
een D/A converter. 16 bits moet voldoende zijn.
Als het delen of tellen niet snel genoeg gaat, is het ook mogelijk bijvoorbeeld
10 perioden lang te tellen: gedurende die 10 de tijd 'hoog' en de totale tijd.
Voor de deelsom maakt dat niet uit.
Zo kan er zelfs (door een minimale tijdsduur te gebruiken) een relatief vast
aantal metingen per seconde worden gerealiseerd. En de tellerklok kan dan ook
constant zijn.
Thomas
Luc.
Het geeft de indruk dat je een kind met een waterhoofd hebt gebouwd. Het is
echt zo simpel als je al eerder is voorgesteld. Haal het signaal eerst door
een comperator om je flanken steil te maken en stuur daar mee een schakelaar
die tussen 0 en 10 volt schakelt. Via een integrator netwerkje bestaande uit
een r en een c geeft dit je de gewenste gelijkspanning. Hier achter zet je
een 3 diget DVM en je hebt wat je wilt.
Hans
Hans
Als je een oplssing wil laten ontwikkelen kan ik wel een offerte
maken...
Wouter van Ooijen
-- ------------------------------------
http://www.voti.nl
PICmicro chips, programmers, consulting
Maar die comparator moet dan wel een uitgangssignaal leveren dat 0.01%
naukerig is in spanning (waar haal je die vandaan?), en de flanken
mogen niet meer dan x ns verschovene worden (X is afhankelijk van de
frequentie).
3 digits = 12 bits => dat kan iedere serieuze microcontroller aan
4 digits = 16 bits => dar heb je een goeie A/D converter voor nodig en
dan is het gebruik ervan ook nog eens verrre van triviaal!
Daar het hier - schat ik in - om een eenmalig ding gaat adviseer ik ook een
DVM. En ja, 16 bits D/A converters zijn voor amateurs en digitale mensen
lastige dingen. Maar er zijn ook nog analoge electronicie.
Hans
Ik stel ook dat de comperator een schakelaar stuurt. Een snelle comperator
schakelt in 7nsec. Dat is voor dat LF signaal wat overdreven. Een 10 Volt
ref. met een stabiliteit van 10 ppm is gewoon te koop. Snelle schakelaars
(Mux) met een Ri van b.v. 5 Ohm vindt je Maxim. Ivo heeft het over een max.
freq. van 1 KHz bij een max fout van 10E-4 moet de schakelaar dus sneller
zijn dan 100nSec. Geen probleem toch?
Iets anders is de lange integratie tijd van het RC netwerkje. Als dat
acceptabel is dan prima. Moet het sneller dan zou je op een plus vlak twee
counters moeten starten (klok freq b.v. 10MHz) en de puls en periode duur
moeten meten. Die tellers kunnen dan direct achter de comperator aan. Met
een micro-tje kun je dan de verhouding uitrekenen. Ik denk dat je daar alles
van af weet.
Hans
> Daar het hier - schat ik in - om een eenmalig ding gaat adviseer ik ook een
> DVM.
DVMs zijn ook - in tegenstelling tot veel andere A/D's - heel goed in het
middelen van het ingangssignaal. En dat is hier ook belangrijk, anders geeft heb
je een enorme integratietijd nodig.
Thomas
Lijkt mij heel goed haalbaar, alleen niet met de gangbare methoden van
weerstand+condensator.
Een duty cycle nauwkeurigheid van 0.01% betekent een resolutie van 1/10000,
dat is met 14 bits goed te doen. 14 Bits tellen tot maximaal 16384, dat zou
een resolutie van 0.0061% betekenen.
Maar als we 10.000 aanhouden dan hebben we een tijds-raster nodig dat
10.000 rasterlijnen in een periode van 1 msec. heeft. Dat betekent een
tellertje op 10 MHz laten lopen, op de opgaande flank teller resetten,
op de neergaande flank teller uitlezen. De rest is triviaal.
Wie zoiets levert, weet ik niet. Je zou het zelf moeten kunnen bouwen..
Eilko.