<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>[jc2048] Staircase Generator</title><link>/members-area/b/blog/posts/staircase-generator</link><description>Introduction
Here&amp;#39;s a curious waveform. How do you think I did that?

At first glance it looks like the output of a DAC driven from an incrementing counter, but it&amp;#39;s not. Instead, I have a digital part (a CPLD), producing a simple stream of pulses, a</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: [jc2048] Staircase Generator</title><link>https://community.element14.com/members-area/b/blog/posts/staircase-generator</link><pubDate>Mon, 11 Jul 2022 03:09:12 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:07e3361b-b6d1-4858-972a-147a80993e56</guid><dc:creator>Pelorito1993</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The circuit is extremely simple and inexpensive compared to ladder generators made with binary counters and gates. It may not have a lot of precision but in some applications precision is not so necessary.&lt;br /&gt;It could be used to plot semiconductor characteristics as the old Tektronix 370 did.&lt;br /&gt;Each step jump could be an &amp;quot;Ib&amp;quot; of a transistor for example.&lt;br /&gt;I think the development would be more complete if you included two important things.&lt;br /&gt;a) The possibility to determine the number of steps you want. For example, you could place a reference voltage and a comparator. When the ladder reaches that reference voltage, it triggers a pulse that resets the ladder making it start again.&lt;br /&gt;If you can make the height of each step equal to the input voltage, you could even have an analog counter.&lt;br /&gt;If you know that your input voltage is - for example - 100 mV, and you set your reset voltage to 10 Volts, then you know that if the ladder has reset it means that 100 steps were generated. To achieve this, you need the height of each step to be exactly at the voltage you set at the input. This way you would have a tension variable staircase. (voltage Variable Staircase or VVS)&lt;br /&gt;This so designed can be used to make a step generator where with a key you can choose how many steps you want the signal to have .....&lt;br /&gt;These are all ideas that can be developed.&lt;br /&gt;A friendly greeting from Argentina&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=22374&amp;AppID=75&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: [jc2048] Staircase Generator</title><link>https://community.element14.com/members-area/b/blog/posts/staircase-generator</link><pubDate>Mon, 29 Nov 2021 15:11:20 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:07e3361b-b6d1-4858-972a-147a80993e56</guid><dc:creator>dougw</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Your circuit would also lent itself to making a smooth sawtooth wave by using a small pump cap (small step size) and a lot of steps.&lt;/p&gt;
&lt;p&gt;Pretty versatile circuit.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=22374&amp;AppID=75&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: [jc2048] Staircase Generator</title><link>https://community.element14.com/members-area/b/blog/posts/staircase-generator</link><pubDate>Sun, 28 Nov 2021 19:45:40 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:07e3361b-b6d1-4858-972a-147a80993e56</guid><dc:creator>dougw</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Ultra cool circuit. I would have guessed an R2R DAC using a CPLD counter.&lt;/p&gt;
&lt;p&gt;Your circuit has the ability to generate much higher voltages than the digital logic supply would suggest, although you might need an extra transistor to get there.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=22374&amp;AppID=75&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: [jc2048] Staircase Generator</title><link>https://community.element14.com/members-area/b/blog/posts/staircase-generator</link><pubDate>Sun, 28 Nov 2021 17:23:12 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:07e3361b-b6d1-4858-972a-147a80993e56</guid><dc:creator>michaelkellett</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hello, nice to see some HDL for simple parts !&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a style thing that might help when you do state machines:&lt;/p&gt;
&lt;p&gt;You can replace:&lt;/p&gt;
&lt;p&gt;constant STEP_X_STATE : std_logic_vector(1 downto 0) := &amp;quot;10&amp;quot;;&lt;br /&gt;constant PAUSE_X_STATE : std_logic_vector(1 downto 0) := &amp;quot;01&amp;quot;;&lt;br /&gt;constant RESET_X_STATE : std_logic_vector(1 downto 0) := &amp;quot;00&amp;quot;;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;with something like:&lt;/p&gt;
&lt;p&gt;TYPE t_x_state is (STEP_X_STATE , PAUSE_X_STATE , RESET_X_STATE );&lt;br /&gt;signal x_state : t_x_state;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;and then in the case statement:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case x_state is&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;when STEP_X_STATE =&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --do stuff&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; more cases&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; when others =&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; -- handle it all going wrong&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;end case; &lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Where it really pays off is when you want to add a state and go from maybe 4 bits to 5 bits, you don&amp;#39;t need to edit all those &amp;quot;00110! again.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;MK&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=22374&amp;AppID=75&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: [jc2048] Staircase Generator</title><link>https://community.element14.com/members-area/b/blog/posts/staircase-generator</link><pubDate>Sun, 28 Nov 2021 15:22:37 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:07e3361b-b6d1-4858-972a-147a80993e56</guid><dc:creator>shabaz</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hi Jon,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;That&amp;#39;s very neat, I thought it was from a DAC, but this is more interesting. Perhaps use-cases are&amp;nbsp;low-cost ways to measure unknown capacitance, by number of pulses to charge to a threshold, or even low-current or low-energy measurements, by seeing how many top-up pulses are needed, I think TI&amp;#39;s microcontroller dev-boards have a similar concept (EnergyTrace+ or something) although maybe that&amp;#39;s implemented differently.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=22374&amp;AppID=75&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: [jc2048] Staircase Generator</title><link>https://community.element14.com/members-area/b/blog/posts/staircase-generator</link><pubDate>Sat, 27 Nov 2021 22:49:42 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:07e3361b-b6d1-4858-972a-147a80993e56</guid><dc:creator>Jan Cumps</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;A question about the 68n capacitor: did you choose it to be large enough to hold 10 charges of the 2.2n one, or&amp;nbsp;is it chosen for a particular time constant?&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=22374&amp;AppID=75&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: [jc2048] Staircase Generator</title><link>https://community.element14.com/members-area/b/blog/posts/staircase-generator</link><pubDate>Sat, 27 Nov 2021 21:55:26 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:07e3361b-b6d1-4858-972a-147a80993e56</guid><dc:creator>Jan Cumps</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;The FPGA design works like a charm.&lt;/p&gt;
&lt;p&gt;&lt;img src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-07e3361b-b6d1-4858-972a-147a80993e56/pastedimage1638050081400v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Running it on Xilinx Zynq. Clock also 50 MHz.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=22374&amp;AppID=75&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: [jc2048] Staircase Generator</title><link>https://community.element14.com/members-area/b/blog/posts/staircase-generator</link><pubDate>Sat, 27 Nov 2021 20:15:33 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:07e3361b-b6d1-4858-972a-147a80993e56</guid><dc:creator>Jan Cumps</dc:creator><slash:comments>1</slash:comments><description>&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;I can&amp;#39;t work out how to format as code and all the white space disappeared when I cut and pasted it.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;span&gt;&lt;img src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-07e3361b-b6d1-4858-972a-147a80993e56/pastedimage1638044059836v1.png" alt=" " /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You will get a dialog where you can paste your code into; and select the programming language (not VHDL though - I choose TEXT when inserting that)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=22374&amp;AppID=75&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: [jc2048] Staircase Generator</title><link>https://community.element14.com/members-area/b/blog/posts/staircase-generator</link><pubDate>Sat, 27 Nov 2021 18:43:39 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:07e3361b-b6d1-4858-972a-147a80993e56</guid><dc:creator>DAB</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;It has been a long while since I did any transistor work.&lt;/p&gt;
&lt;p&gt;Well done.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=22374&amp;AppID=75&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: [jc2048] Staircase Generator</title><link>https://community.element14.com/members-area/b/blog/posts/staircase-generator</link><pubDate>Sat, 27 Nov 2021 18:22:12 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:07e3361b-b6d1-4858-972a-147a80993e56</guid><dc:creator>genebren</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Very cool project/blog!&amp;nbsp; I really like the simplicity/elegance of your approach to this project.&amp;nbsp; Nice example of using a CPLD to generate a programmable pulse sequence.&amp;nbsp; Well done!&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=22374&amp;AppID=75&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>