Parasitic oscillations in the IC 4099
Quote from Defran on March 25, 2024, 11:23 pmParasitic oscillations at the 4099 outputs due to internal flip-flops. The oscillations continue despite the change to High of one of the gates of each FF. It is only solved by adding a 300nF capacitor to GND in the outputs, but this is a "chapucera" solution. In real life this scheme works fine.
Tell me please
.
Parasitic oscillations at the 4099 outputs due to internal flip-flops. The oscillations continue despite the change to High of one of the gates of each FF. It is only solved by adding a 300nF capacitor to GND in the outputs, but this is a "chapucera" solution. In real life this scheme works fine.
Tell me please
.
Uploaded files:Quote from arcachofo on March 26, 2024, 5:58 amThere are multiple solutions for this:
One solution is using "Initial High State" for some gates.
But you need to determine which initial states lead to a stable configuration, it could be one gate or maybe more.
In this case there is a solution using 2 gates in each Flip-flop (CD4099.sim1 in the folder attached):
Another solution could be to use a simpler circuit (CD4099new.sim1 in the folder attached):
A third solution could be to use a single Script component and program exactly what you want it to do.
And there other posible solutions using combinations of these 3 and maybe more that don't come to my mind.Each solution has it's advantages and disadvantages:
- The first one implemented with gates is a more accurate representation of the real device, but the simulation is slow.
- The second one is much faster and stable, but you will not have the same transient states and propagation delays than the real device.
- The third one could be faster than the first and slower than the second, but you can control exactly what it will do.And this is related with the discussion about including components in simulide:
Which one should include simulide?
Is not better that the user choose which one to use depending on the case?
In some cases I might need speed and in some other cases I might need to simulate those transient states as accurate as possible.
There are multiple solutions for this:
One solution is using "Initial High State" for some gates.
But you need to determine which initial states lead to a stable configuration, it could be one gate or maybe more.
In this case there is a solution using 2 gates in each Flip-flop (CD4099.sim1 in the folder attached):
Another solution could be to use a simpler circuit (CD4099new.sim1 in the folder attached):
A third solution could be to use a single Script component and program exactly what you want it to do.
And there other posible solutions using combinations of these 3 and maybe more that don't come to my mind.
Each solution has it's advantages and disadvantages:
- The first one implemented with gates is a more accurate representation of the real device, but the simulation is slow.
- The second one is much faster and stable, but you will not have the same transient states and propagation delays than the real device.
- The third one could be faster than the first and slower than the second, but you can control exactly what it will do.
And this is related with the discussion about including components in simulide:
Which one should include simulide?
Is not better that the user choose which one to use depending on the case?
In some cases I might need speed and in some other cases I might need to simulate those transient states as accurate as possible.
Quote from Defran on March 26, 2024, 10:36 amThank you for your response and your suggestions. The one I like the most is the one that most imitates reality, which is the gates with the Initial High State ... And "De color bien, pero no flota" as Gila would say. I attach the example.
Thank you for your response and your suggestions. The one I like the most is the one that most imitates reality, which is the gates with the Initial High State ... And "De color bien, pero no flota" as Gila would say. I attach the example.
Uploaded files:Quote from arcachofo on March 26, 2024, 10:44 amYou are using the CD4099 you have installed.
Adding the new one to a data folder does not override the on eyou have installed.
The one I like the most is the one that most imitates reality
Until you need to simulate a complex circuit at fast frequencies, then you will like the simple one.
You are using the CD4099 you have installed.
Adding the new one to a data folder does not override the on eyou have installed.
The one I like the most is the one that most imitates reality
Until you need to simulate a complex circuit at fast frequencies, then you will like the simple one.
Quote from arcachofo on March 26, 2024, 11:34 amYou are using the CD4099 you have installed.
Adding the new one to a data folder does not override the on eyou have installed.Or not...
Seems that with your circuit it will oscillate also with the initial states thingy.Then some other solution is needed.
You are using the CD4099 you have installed.
Adding the new one to a data folder does not override the on eyou have installed.
Or not...
Seems that with your circuit it will oscillate also with the initial states thingy.
Then some other solution is needed.
Quote from Defran on March 26, 2024, 11:47 amI attach my chapucera solution...
(Also note that the rotation of the button letters is not resolved yet.).
Regarding the doubt you have had with the CD4099 that I have included in my "data"... So that this does not happen (modified component with the same name as in simulide data), simulide should first load the components of the "data" of user. Now it is the opposite.
I attach my chapucera solution...
(Also note that the rotation of the button letters is not resolved yet.).
Regarding the doubt you have had with the CD4099 that I have included in my "data"... So that this does not happen (modified component with the same name as in simulide data), simulide should first load the components of the "data" of user. Now it is the opposite.
Uploaded files:Quote from arcachofo on March 26, 2024, 12:16 pmI attach my chapucera solution...
That is one posible solution, not the one I would use, but if it is good for you then ok.
(Also note that the rotation of the button letters is not resolved yet.).
Those are buttons inside subcircuits.
I attach my chapucera solution...
That is one posible solution, not the one I would use, but if it is good for you then ok.
(Also note that the rotation of the button letters is not resolved yet.).
Those are buttons inside subcircuits.
Quote from Defran on March 26, 2024, 12:30 pmRegarding the doubt you have had with the CD4099 that I have included in my "data"... So that this does not happen (modified component with the same name as in simulide data), simulide should first load the components of the "data" of user. Now it is the opposite.
... and button rotation (not subcircuit.)
Regarding the doubt you have had with the CD4099 that I have included in my "data"... So that this does not happen (modified component with the same name as in simulide data), simulide should first load the components of the "data" of user. Now it is the opposite.
... and button rotation (not subcircuit.)
Quote from arcachofo on March 26, 2024, 1:37 pmRegarding the doubt you have had with the CD4099 that I have included in my "data"... So that this does not happen (modified component with the same name as in simulide data), simulide should first load the components of the "data" of user. Now it is the opposite.
Yes, that makes sense.
... and button rotation (not subcircuit.)
It works like any other component (I think we have discussed this already):
- FLip: "corrects" the text.
- Rotation: does not "correct" the text
Regarding the doubt you have had with the CD4099 that I have included in my "data"... So that this does not happen (modified component with the same name as in simulide data), simulide should first load the components of the "data" of user. Now it is the opposite.
Yes, that makes sense.
... and button rotation (not subcircuit.)
It works like any other component (I think we have discussed this already):
- FLip: "corrects" the text.
- Rotation: does not "correct" the text