User Tools

Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
mission:resources:ezvd [2016/04/11 21:34] – [EZVD - Easy Voltage-Divider Calc-/Simulator] chronomission:resources:ezvd [2016/09/21 07:56] (current) – [EZVD - Easy Voltage-Divider Calc-/Simulator] chrono
Line 3: Line 3:
 When you migrate from just learning by copying open-source hardware designs/schematics towards creating your own electronic designs and solutions, you'll sooner or later will be confronted with the task of designing and selecting the right resistors for a certain voltage divider.  When you migrate from just learning by copying open-source hardware designs/schematics towards creating your own electronic designs and solutions, you'll sooner or later will be confronted with the task of designing and selecting the right resistors for a certain voltage divider. 
  
-In the past, online-tools like [[http://www.sengpielaudio.com/calculator-voltagedivider.htm|this]] have been a great companion in the process, however, a little research showed that this is really not as trivial as it may seem in the beginning, especially when used as an input divider for an ADC. +In the past, online-tools like [[http://www.sengpielaudio.com/calculator-voltagedivider.htm|this]] have been a great companion in the process, what can go wrongit's just two simple resistors, right? Well, after a little more research it seems that it's actually not as trivial as it may did in the beginning, especially when used as an input divider for an ADC. 
  
 {{:mission:resources:screencast.gif|EZVD Output on the console (python/ncurses)}} {{:mission:resources:screencast.gif|EZVD Output on the console (python/ncurses)}}
Line 11: Line 11:
 With EZVD you can simulate and instantly assert your design choices and get warnings for certain constraints you can set: With EZVD you can simulate and instantly assert your design choices and get warnings for certain constraints you can set:
  
-  * Power Efficiency (how much power will it cost to drive the divider) +  * Power Efficiency 
-  * Design Efficiency Indicator Bar (maximum resolution vs. clipping)+    * How much power will it cost to drive the divider
 +    * How much power is dissipated in each Resistor? 
 +      * Determines package/thermal management decisions 
 +      * Determines temperature increase of package which changes its own resistance 
 +  * Design Efficiency Indicator Bar (wasted resolution vs. clipping)
   * Analog Reference Voltage (ADC)   * Analog Reference Voltage (ADC)
   * VD output impedance (to match ADC input muxer circuit, which lowers the ADC input impedance)   * VD output impedance (to match ADC input muxer circuit, which lowers the ADC input impedance)
Line 18: Line 22:
   * Have consistent/tested copy-paste math blocks to use in firmware development   * Have consistent/tested copy-paste math blocks to use in firmware development
  
-It's still a very hackish and early implementation but it (or the idea of it) might serve well to re-verify and extend its math model, functionality and robustness (there are still some uncaught cases where EZVD will crash with large step sizes) and to create more open simulation/calculation tools which make electronics engineering more fun and may help us all to reduce design failure risks by mis-aligning a simple voltage divider where a calculator/simulator can show us the way.+It's still a very hackish and early implementation but it (or the idea of it) serves well as a basic tool we can build upon. So everyone interested is invited to make it better to help us all to reduce design failure risks by mis-aligning a simple voltage divider where a calculator/simulator can show us the way
 + 
 +  * Review, verify and extend its math model 
 +  * Add more functionality  
 +  * Make it more robust (Fix uncaught cases where EZVD will crash with large step sizes)
 ===== Installation ===== ===== Installation =====
  
 ==== Dependencies ==== ==== Dependencies ====
  
-  * Python 3.x for full UTF support +  * Python 3.x 
-  +    * with UTF support 
 +    * with ncurses support 
 + 
 +Every reasonably recent GNU system should have this available. 
 ==== Clone repo ==== ==== Clone repo ====
  
Line 31: Line 43:
 $ cd ezvd $ cd ezvd
 </code> </code>
-     + 
-===== Run =====+===== Usage ===== 
 + 
 +==== Run ====
  
 <code> <code>
 $ ./ezvd.py $ ./ezvd.py
-</code>     +</code> 
-     + 
-===== Development / Sources / Issue-Tracking =====+==== Interaction ==== 
 + 
 +=== Basic Parameters === 
 + 
 +^  Key  ^                  Function                  ^ 
 +|             Enter value of R1 in Ohms          | 
 +|             Enter value of R2 in Ohms          | 
 +|      Enter maximum input Voltage (Full-Scale) 
 +|            Enter ADC Reference Voltage         | 
 + 
 +=== Simulation Control === 
 + 
 +^    Key    ^                    Function                    ^ 
 +   Tab    |  Cycle between simulation targets (VIN/R1/R2) 
 +|                 Increase simulation step size          | 
 +|                 Decrease simulation step size          | 
 +|     ▲            Change simulation direction (Up)        | 
 +|     ▼           Change simulation direction (Down)       | 
 +|  P/Space  |            Pause/Resume simulation             | 
 + 
 + 
 +===== Development / Sources / Issue-Tracking ======
  
-Anyone interested is of course also invited to download the software and play/use/verify/optimize as well. Feedback, PR's and everything else that might increase precision/usability are as always welcome:+People are fighting board-wars over the 1024 vs. 1023 multiplier issue and a lot of code out there one could use as an example bears the risk of also just being copy-pasted from some other bad example. So anyone with the skill to provide knowledge, reflection, verification and feature expansion is invited to join development, so that we all can have an open, reviewed and verified simulation/calculation tool basis to work with. Feedback, PR's and everything else that might increase precision/usability areas always, very welcome:
  
 https://github.com/apollo-ng/ezvd https://github.com/apollo-ng/ezvd