<?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>Creating an Instrument Control Board</title><link>/members-area/personalblogs/b/blog/posts/creating-an-instrument-control-board</link><description>Introduction jancumps , jc2048 and peteroakes are building an electronic load with what they call a Booster Pack control board to front end. I&amp;#39;ve found it really interesting to look at what is being done and decided I wanted to have a go at somet...</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Creating an Instrument Control Board</title><link>https://community.element14.com/members-area/personalblogs/b/blog/posts/creating-an-instrument-control-board</link><pubDate>Fri, 05 Jun 2020 13:34:44 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4455cb64-8ed5-4104-bd09-55045f08adf6</guid><dc:creator>Andrew J</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Just to finish this off...&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Opamp choice to see if there was a similar specced one with a lower GBW: I did a parametric search for a quad op amp, rail-to-rail, input voltage at least -5V to +5V, Input Offset Voltage &amp;lt;= 25uV, input bias current &amp;lt;=20pA, Gain Bandwidth Product &amp;lt; 10MHz and I found….one model - OPAx191 by TI.&amp;nbsp;&amp;nbsp; Generally, it’s specs aren’t better than the OPAx192 but it’s noise density is 15nV/sqrtHz with a GBW of 2.5MHz: 23.7uF - so lower bandwidth but greater error.&amp;nbsp; Even within the set I originally considered, they are all worse except for the OPAx4376 which has a lower GBW but the noise density is such that it results in the same noise voltage at the output.&amp;nbsp; Nominally, it has some better other specs but is at most a -2.5V to +2.5V so would require two more power rails to be created to drive it and a limit on the signal size.&amp;nbsp; I really don’t know where else to take this as whatever I look for, I’m trading off one specification against another.&amp;nbsp; I&amp;#39;m sticking with my choice.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;And here&amp;#39;s an image of the prototype PCB:&lt;/p&gt;&lt;p&gt;&lt;span&gt;[View:/resized-image/__size/620x601/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-4455cb64-8ed5-4104-bd09-55045f08adf6/1220.contentimage_5F00_192919.png:620:601]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;JLCPCB are charging USD2 for a 2-layer board and USD7 for a 4-layer board and at those prices, naturally I went 4-layers, 100mm x 100mm.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=9309&amp;AppID=293&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Creating an Instrument Control Board</title><link>https://community.element14.com/members-area/personalblogs/b/blog/posts/creating-an-instrument-control-board</link><pubDate>Sun, 31 May 2020 17:40:18 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4455cb64-8ed5-4104-bd09-55045f08adf6</guid><dc:creator>phoenixcomm</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;span&gt;[mention:169a4014e923440aab0fa7af5203dabd:e9ed411860ed4f2ba0265705b8793d05]&lt;/span&gt; very nicely done!&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=9309&amp;AppID=293&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Creating an Instrument Control Board</title><link>https://community.element14.com/members-area/personalblogs/b/blog/posts/creating-an-instrument-control-board</link><pubDate>Sat, 30 May 2020 17:34:12 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4455cb64-8ed5-4104-bd09-55045f08adf6</guid><dc:creator>michaelkellett</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I&amp;#39;ve only just noticed this thread - nice ideas.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;For analogue stuff Ilike real filters with big inductors and caps.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;On a recent design I did this:&lt;/p&gt;&lt;p&gt;&lt;span&gt;[View:/resized-image/__size/620x288/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-4455cb64-8ed5-4104-bd09-55045f08adf6/0572.contentimage_5F00_192911.jpg:620:288]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;L2 and L3 are 680uH 200mA (ish) Farnell 2374105 (Bourns SRR0735-681M).&lt;/p&gt;&lt;p&gt;C90 and C91 are 100uF 10V AL polymer (Farnell 2614080).&lt;/p&gt;&lt;p&gt;The filter might ring with switch on and off tranients so the zeners are cheap insurance.&lt;/p&gt;&lt;p&gt;You can damp the filter with some series R abut you get more voltage drop.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I have some thoughts about SCPI&amp;nbsp; which I might share later - but they aren&amp;#39;t going to affect your hardware.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Not quite sure about your offset stuff, R10 doesn&amp;#39;t do anything (except increase noise) - try simulating it if you don&amp;#39;t believe me.&lt;/p&gt;&lt;p&gt;Your really need to limit the bandiwdth of the offset injection - a passive RC filter on the amplifier output(s)&amp;nbsp; would help.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;MK&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=9309&amp;AppID=293&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Creating an Instrument Control Board</title><link>https://community.element14.com/members-area/personalblogs/b/blog/posts/creating-an-instrument-control-board</link><pubDate>Sat, 30 May 2020 14:46:58 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4455cb64-8ed5-4104-bd09-55045f08adf6</guid><dc:creator>shabaz</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hi Andrew,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Awesome project.&lt;/p&gt;&lt;p&gt;I&amp;#39;ve not looked at it all, but looking at the power supply portion:&lt;/p&gt;&lt;p&gt;&lt;span&gt;[View:/resized-image/__size/1109x341/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-4455cb64-8ed5-4104-bd09-55045f08adf6/6114.contentimage_5F00_192901.png:1109:341]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Personally I wouldn&amp;#39;t hang off the switched capacitor supply on the right side, instead (if the chip supports it) it would be better to run it off 12V, so you get a -12V output, and then pass that through a negative voltage regulator. Also, it&amp;#39;s worth interconnecting with (say) an 0805 set of pads, so you can isolate them, and also experiment with filtering in-between. Usually I&amp;#39;d automatically insert a ferrite bead if there&amp;#39;s a chance of high frequency noise, since I&amp;#39;m not going to get the chance to produce many revisions of boards for a personal prototype, and sometimes even an RC filter can be useful for the lower frequencies (R may need to be quite low). Basically, treat the DC-DC converter, and the switched cap converters, as outputs that will almost always need some cleaning.&lt;/p&gt;&lt;p&gt;Here&amp;#39;s an example, this isn&amp;#39;t a negative supply rail though:&lt;/p&gt;&lt;p&gt;&lt;span&gt;[View:/resized-image/__size/713x181/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-4455cb64-8ed5-4104-bd09-55045f08adf6/2313.contentimage_5F00_192902.png:713:181]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You can see the ferrite separation. Next, in my case there is an RC filter hanging off the supply rail to the chip that ultimately needed the supply (the +3V3 is actually the same as the 3V3_ISO rail from above, just a name change because it went through a connector), it could be argued I should have placed this between the DC-DC converter and the TPS chip shown above, that would have been another option:&lt;/p&gt;&lt;p&gt;&lt;span&gt;[View:/resized-image/__size/292x175/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-4455cb64-8ed5-4104-bd09-55045f08adf6/1817.contentimage_5F00_192903.png:292:175]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;It is possible to later just use zero-ohm links and retest if there was a need for BoM reduction (maybe for home projects there&amp;#39;s no need for that), so I feel it could be better to just initially assume it&amp;#39;s needed if at the prototyping stage.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=9309&amp;AppID=293&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Creating an Instrument Control Board</title><link>https://community.element14.com/members-area/personalblogs/b/blog/posts/creating-an-instrument-control-board</link><pubDate>Fri, 29 May 2020 22:47:03 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4455cb64-8ed5-4104-bd09-55045f08adf6</guid><dc:creator>jc2048</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;I didn&amp;#39;t know whether to comment on this or not. I don&amp;#39;t have direct experience of this kind of analogue electronics, so best to regard these comments as &amp;#39;thoughts&amp;#39; or &amp;#39;musings&amp;#39; rather than advice. They might be helpful, or not. Something to think about, but feel free to disagree. And I might have things wrong or be worrying at things that don&amp;#39;t matter.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Minor mistake: C26 looks like it&amp;#39;s the wrong way round.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The switching converters are noisy. RS6 datasheet says 50mV max and TSR1 says 75mV max [both measured 20MHz B/W]. Neither would be a problem with digital logic. Not so sure with an analogue board. The RS6 will also push noise back out of its input, so your 12V rail potentially will be very noisy. How much of that will your 7805 stop? The higher frequency end will skip through via D4&amp;#39;s reverse capacitance [and contaminate the ground], so the regulator doesn&amp;#39;t stand a chance with that. Even with the noise lower down, it won&amp;#39;t do too good a job and you&amp;#39;re then betting everything on a couple of decoupling capacitors. Of course you might then say that the OPA4192 has a PSSR of 0.3uV/V (better than one part in a million), but look at the graph of PSRR against frequency. The figure they give you is for 1Hz, or something like that, because that&amp;#39;s where the chip is at its best. By the time you&amp;#39;re up to 1MHz, the PSRR has reduced to about 20dB (ie one part in ten) which means a lot of noise just running through the op amp and appearing at the output. So you&amp;#39;ll be back to relying on the decoupling. Speaking of which, it&amp;#39;s always a good idea to have a decoupling capacitor right at the device pins.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Powering chips from a reference feels wrong to me. The DACs include digital stuff that will inject noise onto the reference.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;You might have problems with the reference stability if you have multiple tants hanging on the output. It will complicate getting the ESR right.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Although the OPA4192 has a good input-referenced noise figure [5.5nV/root Hz], it also has a fairly high GBW figure (about 10MHz). That means, for a unity gain buffer, 17.4uV at the output. I think that&amp;#39;s an RMS value, so the excursion is more [unlike a sinewave, for noise I seem to remember a figure of 6x is a reasonable approximation for the pk/pk value - might be wrong there]. In practice, the noise will be a little higher, because the 5.5nV is just the white noise [thermal and 'shot' noise] and doesn&amp;#39;t include the low frequency 1/f ['flicker'] noise. You can deal with it either by restricting the bandwidth [if you don't need it] by choosing a slower op amp or by modifying the feedback network, or by simply filtering what comes out, or by doing multiple conversions and averaging.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=9309&amp;AppID=293&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Creating an Instrument Control Board</title><link>https://community.element14.com/members-area/personalblogs/b/blog/posts/creating-an-instrument-control-board</link><pubDate>Tue, 26 May 2020 18:45:42 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4455cb64-8ed5-4104-bd09-55045f08adf6</guid><dc:creator>DAB</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Very good post on your design.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Well done.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;DAB&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=9309&amp;AppID=293&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Creating an Instrument Control Board</title><link>https://community.element14.com/members-area/personalblogs/b/blog/posts/creating-an-instrument-control-board</link><pubDate>Tue, 26 May 2020 16:55:10 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4455cb64-8ed5-4104-bd09-55045f08adf6</guid><dc:creator>Jan Cumps</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I&amp;#39;ll elaborate a little on the firmware / software. I&amp;#39;m still drooling over your hardware approach - so well designed.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;[View:/resized-image/__size/620x475/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-4455cb64-8ed5-4104-bd09-55045f08adf6/6116.contentimage_5F00_192896.png:620:475]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The eload has a core API. Representing all functions of a programmable load.&lt;/p&gt;&lt;p&gt;I also provided low level access to DACs and ADCs. To allow a client app to define functionality I didn&amp;#39;t think about. For hacking, For tuning ...&lt;/p&gt;&lt;p&gt;All these &amp;quot;public&amp;quot; calls are defined in a &lt;a class="jive-link-external-small" href="https://github.com/jancumps/msp432/tree/master/MSP432_SCPI_ElectronicLoad/eload_api" rel="nofollow ugc noopener" target="_blank"&gt;single api header file&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Both &lt;a class="jive-link-external-small" href="https://github.com/jancumps/msp432/tree/master/MSP432_SCPI_ElectronicLoad/scpi_impl" rel="nofollow ugc noopener" target="_blank"&gt;SCPI interface&lt;/a&gt; and user interface (&lt;a class="jive-link-external-small" href="https://github.com/jancumps/msp432/tree/master/MSP432_SCPI_ElectronicLoad/display" rel="nofollow ugc noopener" target="_blank"&gt;only LCD&lt;/a&gt;) use the instrument API.&lt;/p&gt;&lt;p&gt;I did not make a reusable user interface module. It&amp;#39;s very basic.&lt;/p&gt;&lt;p&gt;In my concept, I provisioned an option that the hardware user interface is allowed to talk to the instrument hardware directly if required. Forr speed or user experience reasons.&lt;/p&gt;&lt;p&gt;It&amp;#39;s not used though. I only have a display and all info needed is retrieved from the instrument API.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I decided to use SCPI for several reasons:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;it&amp;#39;s an instrument industry standard&lt;/li&gt;&lt;li&gt;it&amp;#39;s an existing library with excellent software support. Anything I would invent myself would take more time and would be less flexible.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Learning the very well documented SCPI lib that I used here is a more fun experience than coming up with a custom parser. And you get an Error Handling solution for free.&lt;/p&gt;&lt;p&gt;For the command structure, I read the programming guide of several programmable loads. So that I had a &lt;a class="jive-link-external-small" href="https://github.com/jancumps/msp432/blob/master/MSP432_SCPI_ElectronicLoad/scpi_impl/scpi-def.c" rel="nofollow ugc noopener" target="_blank"&gt;compatible SCPI syntax&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;RTOS:&lt;/p&gt;&lt;p&gt;I prefer an RTOS for these kind of applications. Because I don&amp;#39;t want to keep the whole state machine and scheduling in my head. Also because it will allow me to provide a TCP/IP hook into SCPI.&lt;/p&gt;&lt;p&gt;I&amp;#39;ve used constructs that are shared over several RTOSes. The original first firmware was written in FreeRTOS for Hercules microcontrollers. Because I&amp;#39;m a Hercules fanboy.&lt;/p&gt;&lt;p&gt;I moved to MSP432 and TI-RTOS after checking options with Peter. He preferred a more mainstream controller or a Pi/BBB. So that it was easier to rebuild it.&lt;/p&gt;&lt;p&gt;Switching RTOSes isn&amp;#39;t too difficult if you have abstraction and modularity.&lt;/p&gt;&lt;p&gt;I use somewhat advanced concepts, like mailboxes and blocking semaphores. But all RTOses support those in some way. The API calls may be different but they all work the same.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;RTOS scheduled tasks (repetitive) are the core for:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;LCD updates&lt;/li&gt;&lt;li&gt;ADC Sampling&lt;/li&gt;&lt;li&gt;Temperature protection&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;RTOS interrupt / semaphore / messaging tasks (waiting for an event) are the core for:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;UART / SCPI calls&lt;/li&gt;&lt;li&gt;DAC control&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The firmware in total is reasonably big. But all modules are maximum 1 .h and 1 .c file, in a dedicated directory.&lt;/p&gt;&lt;p&gt;When used by something else, then always in API-functions style.&lt;/p&gt;&lt;p&gt;&lt;span&gt;[View:/resized-image/__size/219x489/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-4455cb64-8ed5-4104-bd09-55045f08adf6/6138.contentimage_5F00_192897.png:219:489]&lt;/span&gt;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=9309&amp;AppID=293&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Creating an Instrument Control Board</title><link>https://community.element14.com/members-area/personalblogs/b/blog/posts/creating-an-instrument-control-board</link><pubDate>Tue, 26 May 2020 16:17:04 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4455cb64-8ed5-4104-bd09-55045f08adf6</guid><dc:creator>fmilburn</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Very nicely done&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=9309&amp;AppID=293&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Creating an Instrument Control Board</title><link>https://community.element14.com/members-area/personalblogs/b/blog/posts/creating-an-instrument-control-board</link><pubDate>Tue, 26 May 2020 14:49:18 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4455cb64-8ed5-4104-bd09-55045f08adf6</guid><dc:creator>genebren</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Very nice and highly detailed design and analysis.&amp;nbsp; I look forward to see where this start takes you.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=9309&amp;AppID=293&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>