Tell me more ×
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It's 100% free, no registration required.

Can someone help me understand how to do this counter ripple? and what to be use as counter (74ls76 or 74ls193). My problem is to make counter like this [0, 2, 3, 4, 6, 7, 9, 15, 14, 13, 12, 11, 10, 8, 5, 1]

share|improve this question
1  
What on earth do you need this weird sequence for (except maybe to get a mark for homework?)? And what do you mean by "how to do this counter ripple"? The most obvious solutions would not ripple. – Wouter van Ooijen Sep 13 '11 at 19:44
This is my project and couldn't solve it :( I'm solving this problem since last week but couldn't find any solution. Maybe Binary counting for input in 74154 but how? :( – shir Sep 14 '11 at 1:03

3 Answers

Any 4-bit binary counter will do the job, but you need to alter the output.

Complex, but "normal" way - a nice logic circuit involving lots of gates to convolve the 4 bits of synchronous counting into the sequence you want. Tricky, but possible with some nice Karnaugh mapping to get you through.

Simple, but "alternative" way - Counter + small (E)EPROM. Counter drives the address lines of the (E)EPROM. Data lines of the (E)EPROM contain the modified count values. The beauty of this way is that a) it's low on component count, and b) a new number sequence can be programmed without needing to change the circuitry in any way.

share|improve this answer
yes I try the jk flip flop with a K-map and came up into 23 and gates and 15 or gates and 1 74154 but the ckt won't work. :( – shir Sep 14 '11 at 0:50
You can even eliminate the counter part (or reduce it to a bank of flip-flops) if you loop back the output of the EEPROM to the input and have each entry in the EEPROM be the next state for the "counter". – The Photon Apr 16 '12 at 20:18

Yet another way is to have the input pulse shift a bit around in a circular shift register. The output of the shift register goes into a priority encoder. Since you can wire the shift register bits into the priority encoder inputs any way you like, you can cause any arbitrary sequence of counts to come out of the priority encoder.

Or, if the minimum required count speed is low enough, use a small microcontroller. This would be a very trivial program to implement in the micro. What is the maximum incoming pulse rate?

share|improve this answer
I think 1Hz maximum pulse rate. – shir Sep 14 '11 at 1:01
Geesh, you could have mentioned that up front. A microcontroller is the obvious single chip solution then. Any micro with sufficient pins will be good enough. This is about as trivial a program as it gets. – Olin Lathrop Sep 14 '11 at 11:27

I would also do it with the EEPROM as a lookup table, as also Matt suggests.

An even more compact solution is to use a CPLD, because you can integrate the counter with the lookup table in it.

Then there's the decode/re-encode solution. This would be sexier if there would exist 16-to-4 encoders, but I could only find 8-to-3 versions.
You decode the 4-bit code from a regular counter, and feed it to a 74HC154. As you count this will make each of the outputs in succession low. Then feed the 16 outputs to the inputs of a 16-to-4 priority encoder, mapping output 0 to input 0, output 1 to input 2, etc.
The 74LS348 datasheet shows how you can cascade multiple 74LS348 priority encoders to form a longer one.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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