0
\$\begingroup\$

I would like to create a simple metronome using the ICM7555 CMOS RC timer (datasheet), but I am not sure if the pulses will be "uniform enough".

The datasheet states "astable timing accuracy" of 2% / 1.7 - 2.3 ms, but I am not sure how to interpret this.

Does this mean the signal will have a variance of 2%, or that the resulting frequency will have a constant error or up to 2%? I can live with a slightly inaccurate metronome (i.e. beeps at 128 bpm instead of 130 bpm), as long as the pulses are uniform, but if the timing between pulses varies a lot, then there is no point in doing this.

If 555 is not uniform, are there perhaps some other ICs which can provide uniform timing (apart from using a microcontroller of course, I am aware that's an alternative, but would like to avoid having to program it).

\$\endgroup\$
7
  • 2
    \$\begingroup\$ .... I say that twice daily, but I'll never stop: The 555 is a legacy device that has nice educational applications. If you need any accuracy, it's not the device of choice. You can build a much more useful, accurate and easier metronome if you use any microcontroller, if you need extra precision, with an external quartz oscillator, and do the timing using the timer units of the microcontroller. That all at a price that typically is not much higher than what your 555+external components cost. \$\endgroup\$ Feb 25, 2017 at 12:04
  • \$\begingroup\$ @MarcusMüller you are a great fan of Microcontrollers ! \$\endgroup\$
    – dirac16
    Feb 25, 2017 at 12:32
  • 4
    \$\begingroup\$ @dirac16 absolutely not. The way contemporay MCUs work is horrible under many aspects. However, I'm a fan of trying to use the best tool for any given job, with "best" being a weighted sum of well-performing, easy to use, cost-efficient and available. 555s perform terribly bad under that metric, usually. \$\endgroup\$ Feb 25, 2017 at 12:36
  • 1
    \$\begingroup\$ @MarcusMüller: thanks, I agree on 1 and 3, but "easy to use" is arguable, and I don't find availability to be a problem either. The thing is, if I were programming uc's daily and had the necessary kits/programming tools and software readily available, I wouldn't even consider 555. But compared to "buying a 555 and soldering the circuit" ("one afternoon job"), the uc option will take several days more in my case (not because of programming, but: choosing the right one + the programming kit, installing tools and getting them to work, and possibly having to route a more complex pcb). \$\endgroup\$
    – Lou
    Feb 27, 2017 at 9:44
  • 1
    \$\begingroup\$ @Lou and after having spent the two days (really, unlikely, considering that all microcontroller platforms nowadays come with awesome tutorials, see mbed) you wouldn't only have a working, precise, flexible, reliable, long-term stable (all qualities that your 2h-555-implementation won't have) system BUT ALSO the ability to solve a HUGE range of problems instead of just your specific problem that doesn't even match what the 555 is designed for all that well. It's your choice how you invest your time – but IMHO, learning to do advanced, precise stuff with the 555 is pretty much a waste of it. \$\endgroup\$ Feb 27, 2017 at 9:48

3 Answers 3

3
\$\begingroup\$

Once going, the pulses from the evil 666 555 timer will be fairly uniform. However, the initial accuracy depends mostly on the accuracy of the analog parts, plus a little due to the comparator thresholds in the timer itself. Unless you spend a lot of money on parts, the error budget will be 15% or more. The capacitor contributes to 10% alone, and the various other resistors, internal threshold voltages, and comparator offsets will cause the remaining 5%.

A much simpler answer is to use a microcontroller. Many are available with internal oscillators good to 2% or so. Most are also able to drive a crystal or resonator directly. That gets you to 50 PPM error or better for just a few 10s of cents.

In the micro, you can set up a periodic interrupt, like every 1 ms for example. By using the error accumulator method, you can use that as the basis for creating any frequency with long term error as good as the oscillator. Each tick would be within ½ ms of the ideal time. That error is imperceptible to a human. The speaker or whatever sound transducer you use can then be driven for the next 1 ms period. That will make a nice "tick" sound.

This will take less parts, be more stable, be far more accurate, and cost about the same as the 555 timer solution. It also has the advantage of allowing exact beats/minute to be entered by some user interface if desired. You can also use a pot as input with markings on the dial calibrated to beats/minute, but the values won't drift with time and temperature as much as they would with the 555 timer circuit.

\$\endgroup\$
8
  • \$\begingroup\$ If I was you, with the tools available to use a micro· and having come up the learning curve about all the horrible little problems associated with using it particularly in a low power mode, I would use a micro (I do). For a musician wanting to build one circuit the evil 555 is the way to go. \$\endgroup\$
    – RoyC
    Feb 25, 2017 at 18:55
  • 2
    \$\begingroup\$ @Roy: The OP hasn't said anything about whether he is set up to do development with micros or is willing to. Using a micro may not be appropriate for the OP, but it's still good to point out this is how it would be done in a real commercial project, and that it has significant advantages. \$\endgroup\$ Feb 25, 2017 at 19:07
  • \$\begingroup\$ @Olin: Actually, I did wrote I was aware a micro would be a better choice, but: I can go buy a 555 and solder the circuit in one afternoon, while for a microcontroller I need to 1) decide which one to pick among hundreds of them, of size comparable to 555, with an appropriate input for the pot, 2) (possibly) need to design a more elaborate pcb, 3) buy the programming adapter/kit, 3) write the firmware, and then 4) solder the circuit. While I am a software engineer (not programming uc's, but also not intimidated by the procedure the slightest bit) I just wanted to save a couple of dev days. \$\endgroup\$
    – Lou
    Feb 25, 2017 at 21:45
  • \$\begingroup\$ Nevertheless, +1 for the honest answer - if I understood you right, uniformity shouldn't be an issue, even if the frequency won't match calculations exactly? Can you suggest a tiny low-power uc which could use an external pot and be simple to program use? \$\endgroup\$
    – Lou
    Feb 25, 2017 at 21:46
  • 1
    \$\begingroup\$ @Lou: Just about any PIC can do this, either with internal oscillator or by driving a crystal. I haven't look at that PIC, but most likely it can do either. A small PIC like that one is cheaper in volume, but that doesn't matter for a one-off. I think the toolchain for the 16 bit PICs is better and they are easier to program. \$\endgroup\$ Feb 27, 2017 at 12:12
2
\$\begingroup\$

The accuracy and short term variations of a 555 timer depends largely on the accuracy and stability of the timing components that you connect to it.

This will be driven by the capacitor. For your application which I assume is adjustable the accuracy will fine. Short term variation will be driven by temperature but will not be enough to worry you (of the order of hundreds of parts per million/degree C).

The 7555 includes an internal resistor divider chain which sets the trigger and threshold voltage levels. Tolerances on this will give rise to some intrinsic error in the 7555. The timing error caused by this will be stable in the short to medium term.

In my experience problems with timing consistency with 555 timers are usually caused by lack of decoupling capacitors. The 7555 is not so bad and the data sheets says it is not strictly necessary. However I would still use a .1uF across the power leads and from ground to the control input.

\$\endgroup\$
2
  • \$\begingroup\$ Thanks, that's what I presumed, so I didn't understand why the datasheet specifes 2%? \$\endgroup\$
    – Lou
    Feb 25, 2017 at 10:10
  • \$\begingroup\$ These are manufacturing tolerances on the part there is an internal resistor chain that sets the trigger and threshold levels. This value will essentially not change over time and will be lower than the external capacitor tolerance. \$\endgroup\$
    – RoyC
    Feb 25, 2017 at 10:23
0
\$\begingroup\$

it is a relaxation oscillator by nature so it would be terribly precise cycle to cycle - the phase errors of a relaxation oscillator is a great random number generator.

for more precise timing, consider crystal-based oscillator + divider / counter, or a mcu.

\$\endgroup\$
1
  • 2
    \$\begingroup\$ When you say "it would be terribly precise", it presumably means "it wouldn't be too precise"? \$\endgroup\$
    – Lou
    Feb 25, 2017 at 21:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.