Shop OBEX P1 Docs P2 Docs Learn Events
Duty Cycle Q — Parallax Forums

Duty Cycle Q

ArchiverArchiver Posts: 46,084
edited 2001-02-28 21:37 in General Discussion
I want to setup a BS2 to measure/compute duty cycle on 4 different signals.
I would also like to do this accurately, and the duty cycles of the 4
signals change basically continuously. Application is automotive related.

My understanding is that the SERIN command would be used, triggered on a
positive swing, to measure the on time. Then another SERIN command would
measure the off time, triggered on a negative swing. The duty cycle is then
= (on/(on+off)).

That sounds great, but I am concerned about the timing and how the commands
are executed. Does the first SERIN command have to be completed before the
second SERIN command runs? If so, how do I ensure accuracy of the duty
cycle? What's bothering me is that I think the first SERIN command will run
against one cycle, and the second SERIN command will run against a different
cycle, since by the time the next SERIN instruction is read, the pulse edge
has come and gone. With a steady state signal, this is not a problem, but
with dynamic signals it seems that I would always have at least some error.

Any thoughts?

Thanks,

Rob Weinstock
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com

Comments

  • ArchiverArchiver Posts: 46,084
    edited 2001-02-28 17:05
    Hi Rob,

    SERIN usually doesn't measure pulse widths, I think you mean PULSIN, right?

    Yes, the first command must run to completion before the second command can
    execute. The Stamp is single tasking. However, have a look at
    http://www.al-williams.com/awce/pak7.htm -- this chip will measure high and
    low going pulses continuously on 8 channels with 5uS resolution.

    Using two PULSINs will give you every other cycle (at best) which is OK for
    many applications. However, you can still only measure one at a time.

    Regards,

    Al Williams
    AWC
    * Expand your Stamp I/O: http://www.al-williams.com/awce/pak3.htm
  • ArchiverArchiver Posts: 46,084
    edited 2001-02-28 17:11
    If 2 usec. intervals is enough resolution for your application, you might
    consider using the PULSEIN instruction as part of your solution. I can see
    comparing the result to the time between two state changes as being somewhat
    easier to do than with SERIN.

    Chris

    >
    Original Message
    > From: Rob Weinstock [noparse]/noparse]mailto:[url=http://forums.parallaxinc.com/group/basicstamps/post?postID=x-v22EfUeebLo07AMaQddsgoQnZFlHn9kgPE7Cath79_qCpkThYAFTXp0O0wtOYhwBmxaeCVr9Q1OPTC]weinstro@h...[/url
    > Sent: Wednesday, February 28, 2001 4:51 PM
    > To: basicstamps@yahoogroups.com
    > Subject: [noparse][[/noparse]basicstamps] Duty Cycle Q
    >
    >
    > I want to setup a BS2 to measure/compute duty cycle on 4
    > different signals.
    > I would also like to do this accurately, and the duty cycles of the 4
    > signals change basically continuously. Application is
    > automotive related.
    >
    > My understanding is that the SERIN command would be used,
    > triggered on a
    > positive swing, to measure the on time. Then another SERIN
    > command would
    > measure the off time, triggered on a negative swing. The duty
    > cycle is then
    > = (on/(on+off)).
    >
    > That sounds great, but I am concerned about the timing and
    > how the commands
    > are executed. Does the first SERIN command have to be
    > completed before the
    > second SERIN command runs? If so, how do I ensure accuracy of
    > the duty
    > cycle? What's bothering me is that I think the first SERIN
    > command will run
    > against one cycle, and the second SERIN command will run
    > against a different
    > cycle, since by the time the next SERIN instruction is read,
    > the pulse edge
    > has come and gone. With a steady state signal, this is not a
    > problem, but
    > with dynamic signals it seems that I would always have at
    > least some error.
    >
    > Any thoughts?
    >
    > Thanks,
    >
    > Rob Weinstock
    > _________________________________________________________________
    > Get your FREE download of MSN Explorer at http://explorer.msn.com
    >
    >
    >
    >
    > Your use of Yahoo! Groups is subject to
    > http://docs.yahoo.com/info/terms/
    >
    >
    >
  • ArchiverArchiver Posts: 46,084
    edited 2001-02-28 17:59
    >I want to setup a BS2 to measure/compute duty cycle on 4 different signals.
    >I would also like to do this accurately, and the duty cycles of the 4
    >signals change basically continuously. Application is automotive related.
    >
    >My understanding is that the SERIN command would be used, triggered on a
    >positive swing, to measure the on time. Then another SERIN command would
    >measure the off time, triggered on a negative swing. The duty cycle is then
    >= (on/(on+off)).
    >... snip
    >
    >has come and gone. With a steady state signal, this is not a problem, but
    >with dynamic signals it seems that I would always have at least some error.


    Another solution would be a toggle flip flop between your signals and
    the Stamp input pins. You can get 4 D flip-flops in one dip package.
    A flip-flops divides the input signal /2, so the Stamp measures the
    time of the whole cycle. The BS2 command is PULSIN (not SERIN). It
    measures time intervals up to 0.131070 seconds, resolution 2
    microseconds. True, the 4 channels woul have to be done in
    sequence. Maybe Al's PAK7 could give you practically simultaneous
    readout. What is the time scale of the events and dynamics you will
    be looking at?
  • ArchiverArchiver Posts: 46,084
    edited 2001-02-28 21:37
    >Another solution would be a toggle flip flop between your signals and
    >the Stamp input pins. You can get 4 D flip-flops in one dip package.
    >A flip-flops divides the input signal /2, so the Stamp measures the
    >time of the whole cycle. The BS2 command is PULSIN (not SERIN). It
    >measures time intervals up to 0.131070 seconds, resolution 2
    >microseconds. True, the 4 channels woul have to be done in
    >sequence. Maybe Al's PAK7 could give you practically simultaneous
    >readout. What is the time scale of the events and dynamics you will
    >be looking at?

    Time interval (period) would range from 7ms to 80ms. Duty cycle for a given
    period can change nearly instantaneously. Period can go from min to max in
    about 1 second.

    I know I have to measure the 4-channels sequentially. I'm more concerned
    about measuring the time-on, and the time-off within the same period,
    otherwise the duty cycle can change, but the BS2 will miss it.

    I downloaded the PAK VII materials earlier -- will look them over tonight.

    Thanks,

    Rob
    _________________________________________________________________
    Get your FREE download of MSN Explorer at http://explorer.msn.com
Sign In or Register to comment.