Releases: microchip-pic-avr-tools/powersmart-dcld
Feature Update Version 0.9.9.368 Release Notes
New Features:
1) NPNZ16b_t Data Structure Reference Separation in Assembly Include File
Description:
The DCLD code generator now features a fifth source code output window where the assembly declaration of the NPNZ16b_t data structure is stored. Users can select to generate the declaration directly into the assembly library file or out-source it to a new file called npnz16b.inc and include it in the Assembly file instead.
Although this makes no difference for the generated assembly library, it allows users to include and access the NPNZ16b_t data structure declaration in custom assembly modules.
2) File Generation Full Path Display
Description:
When hoovering the mouse over one of the tabs of the code generator views, a tool-tip text will be displayed, showing the full path of the respective generated file.
Optimizations:
1) Default Include Path Selection
Description:
DCLD imports include directories declared in the specified MPLAB X project. Users can select one of the defined include paths in the Configuration dialog to optimize include path declarations in generated code.
Example:
- Project files are located in '<my_project>/<source_files>/'.
- The DCLD generated files should be located in '<my_project>/<source_files>/<sub_folder1>/<sub_folder2>/'
- The path './ <source_files>/' has been added to MPLAB X Project Properties -> XC16 -> Common Include Dirs.
- In DCLD Configuration dialog this include path can be selected as Default Include Path
- When generating code, the code generator will add the include path
#include "./<sub_folder1>/<sub_folder2>/<my_file>"
instead of
#include "./<source_files>/<sub_folder1>/<sub_folder2>/<my_file>"
2) Assembly Data Structure Label Names Cleanup
Description:
The labels used in assembly code referencing to their counterpart of the C-domain NPNZ16b_t data structure have deviated from related C-domain labels over time and have been synchronized to prevent confusions.
Bugfixes:
(none)
Maintenance Update Version 0.9.9.312
Optimizations:
1) Unified Assembly Data Structure
Description:
The list of data structure address offsets representing the NPNZ16b_t data structure in Assembly has been unified, always exactly representing the data struture declared in C. Any previously tailored, generated versions have been eliminated, making the data structure more generic for user code modules.
Bugfixes:
1) MPLAB X Common Include Path Import Issue
Description:
Directory declarations in include paths specified in MPLAB X with a folder name of less than 2 characters length caused DCLD to throw an error message and the given include directory was ignored during code generation.
Status: Fixed
2) DCLD Program Settings Storage Issue
Description:
Saving/restoring program settings such as Bode Graph scales or the file history did not get updated correctly or were corrupted when application closed.
Status: Fixed
3) Number Conversion Conflict
Description:
When storing negative numbers in program settings, some negative numbers got accidentially rounded to 1. This only affected application parameters. User configurations (*.dcld files) were not affected.
Status: Fixed
Feature Update Version 0.9.9.262
New Features
1) New Data Provider Source for compensated Input Value
Description:
In bidirectional converters the current feedback zero line is usually set at half of the ADC range. Within the application code, this offset must be subtracted from the most recent sample to track the effective forward or backward current feedback. These additional steps in calculating the effective current are already performed by the control loop itself and thus can be provided to the user application, easing the use of this value throughout proprietary code. The compensated control input will have no offset and will be inverted if feedback inversion is activated in DCLD.
2) New Anti-Windup Option "Allow Control Output Saturation"
Description:
This option allows the control loop history to further integrate the error beyond the user-defined control output limits. The value written to the defined output target remains to be clamped to user thresholds. This option emulates the behavior of an analog error amplifier circuit.
3) Modified Anti-Windup Option "Enable Limit Debouncing"
Description:
Clamping the control output to hard thresholds with no hysteresis can sometimes result in undesired behavior, usually manifesting as uncontrolled bouncing. The new option zeros the most recent control error together with overwriting the control output value to damp the desaturation and thus the bouncing.
Optimizations:
1) NPNZ16b_t Data Structure Declarations
Description:
Nested data structure declarations of the NPNZ16b_t data structure was changed to better support the MPLAB X source code parser by adding labels in addition to structure type definition names. Each structure now has a label of the form NPNZ_xxx_s and a type definition name of the form NPNZ_xxx_t. When used as data type in variable and function parameter declarations in user code, the expression struct NPNZ16_s is used instead of the pure data type NPNZ16b_t to prevent the MPLAB X code parser from breaking.
Bugfixes:
1) Regional Number Format Support
Description:
Various regional number formats supported by the computer's operating system are now better supported by DCLD. in the past, uncommon number formats have led to data I/O conflicts. These have been resolved and support for more uncommon number formats have been added by increasing the text-to-number conversion capabilities of the input text boxes of the graphical user interface.
2) Bidirectional Feedback Compensation
Description:
When feedback offset compensation and feedback inversion were activated simultaneously, occasional number overruns occurred under certain circumstances.
Status: Fixed
3) Bode Plot not Updating Ruler Positions when entering Pole & Zero Frequencies
Description:
Occasionally the pole & zero ruler positions of the Bode plot did freeze when a set of frequencies got loaded from the history list.
Status: Fixed
4) In Timing chart, the user trigger offset value did not get loaded from files correctly
Description:
Occasionally, the user trigger offset value did not get loaded correctly into the text box while the saved trigger value got applied to the timing chart correctly.
Status: Fixed
5) Syntax Code Windows Scrolling
Description:
When users scrolled down in code view windows and generated code, the scroll position reset to the beginning of the file. Now it keeps the scroll position of the code view window selected, even if contents change substantially.
Status: Fixed
============================================
(c) 2020, Microchip Technology Inc.
Feature Release v0.9.8.104
New Features:
1) Control Output Mirroring on Multiple Output Ports
Description:
When configuring the control loop to support multiple output ports (target and alternate target), a new option has been added allowing to write the most recent control output to both ports simultaneously.
Optimizations:
1) Accumulator merging in Dual Bit-Shift Mode
Description:
In Dual Bit-Shift Number Scaling Mode the order in which accumulator A and B get merged in the assembly code was changed to increase the effective number resolution of the result by pushing backwards normalization to the end of the computation. The effective increase in number resolution achieved by this change is equal to the number of bits shifted during backwards normalization of the B-term.
Bugfixes:
1) CONTROLLER_STATUS_FLAGS enumeration caused MPLAB X real time parser to occasionally break code highlighting.
Description:
The controller status flags of the cNPNZ16b_t data object are supported by enumerations for better readability. This enumeration was declared as CONTROLLER_STATUS_FLAGS_t, which seem to have confused the MPALB X real time parser, causing it to occasionally fail. As a result, MPLAB X showed unresolved items everywhere the enumeration was used.
Refactoring the enumeration type to CONTROLLER_STATUS_FLAGS_e solved the problem.
Status: Fixed
2) PWM Timing Update triggered by ADC Trigger placement in Dual ADC Trigger Mode
Description:
DCLD supports auto-positioning of up to two ADC triggers A & B simultaneously during one control loop execution. This directly supports the two ADC triggers of dsPIC33C devices.
If, however, the PWM configuraiton of the target device is set to PWM Auto-Update By ADC Trigger A, ADC trigger placement B set by DCLD was ignored.
Therefore the ADC trigger placement sequence in the generated code has been changed to ensure Trigger B gets updated together with Trigger A.
Status: Fixed
3) Converter Type of P-Term Controller Configuration did not get saved
Description:
When configuration a P-Term controller for plant measurements, users can specify the converter type to calculate nominal control outputs at user-specific operating conditions.
This converter type setting occasionally did not get saved and loaded properly and users had to re-adjust this setting again.
Status: Fixed
4) Configuration Corruption when switching between DCLD config files
Description:
When users switched from one open configuration to another, if occasionally happened, that feedback settings of the previously opened configuration remained in memory, corrupting the newly opened file.
Status: Fixed
Bugfix Patch Release v0.9.7.102
Bugfix Patch for version 0.9.7.100 fixing following issues:
1) Working Register No. 5 (WREG5) not restored in Fast-Floating Point Scaling Mode
Description:
When fast floating point scaling was used with full manual context management, working register WREG5 got saved but never restored creating a potential risk for randomly occurring address errors in interrupted user code functions.
Status: Fixed
2) Compiler Warning [Incompatible Pointer Type] when enabling AGC Option "Add Observer Function Call"
Description:
When enabling Adaptive Gain Control with the sub-option "Add Observer Function Call before Modulation", the respective function pointer declaration in the cNPNZ16b_t data structure triggered a compiler warning indicating an incompatible pointer type being assigned to variable ptrAgcObserverFunction. This was due to ptrAgcObserverFunction being declared as 16-bit pointer instead of a simple 16-bit value required by the assembly routine. The correct assignment of a user function in user cause needs to be:
my_controller.GainControl.ptrAgcObserverFunction = (uint16_t)&my_function;
Status: Fixed
3) Fragments of previously loaded DCLD configuration remaining loaded
Description:
When a user switched from one DCLD configuration file to another with an invalid or corrupted MPLAB X project declaration, parts of the MPLAB X project declaration of the previously loaded DCLD configuration file remained loaded and active, corrupting user settings.
Status: Fixed
Please read the release notes of version 0.9.7.100 for full coverage of most recently introduced changes.
Feature Update Version 0.9.7.100 Release Notes
IMPORTANT NOTE:
If you are upgrading your software from an earlier version than v0.9.5.96, your firmware will not build successfully due to major changes in the cNPNZ16b_t data structure as well as function call names. If you have missed the last release, please read the Code Migration Guidelines at the bottom of these release notes of carefully following the recommendations!
This is a gradual version upgrade with a couple of minor changes in the code generator and refined and optimized features introduced in version 0.9.5.96.
1) Proportional Controller for Plant Measurements
This feature now supports calculation tools helping user to quickly and easily determine the proportional gain factor for the P-Term control loop used in plant measurements. Please refer to the user guide for more information about how P-Term controllers are used to measure the plant frequency response of a power supply and how to set up controller and its coefficient.
When the P-Term control loop option is enabled, DCLD now also generates initialization code for this controller. It gets initialized automatically when the common controller initialization routine [my_controller]_Initialize(&my-controller) is called. No further configuration in user code is required.
2) Feedback Gain Modulation (Adaptive Gain Control)
This is one of the latest features added to DCLD allowing the modulation of the feedback gain during runtime on a cycle-by-cycle basis. This feature is very powerful but needs some attention when used. To better support user-defined functions used to determine the gain modulation factor during runtime, an additional function pointer has been added to the cNPNZ16b_t data structure allowing users to call their function from the Assembly routine before the modulation factor is applied.
Please read the sections in new user guide for more information.
3) Code generation output window
A new output window has been added to the code generator view providing more detailed debugging information. Errors and data violations occurring during internal calculations and code generation are now provided with dedicated error messages and codes to make troubleshooting mode effective.
4) List of Most Recently Opened Files
Inside the 'File' menu you now find a sub-menu where previously opened files are stored. You can open of of the DCLD configuration files by clicking on the regarding list entry and the file will be loaded automatically. The list can be cleared by clicking on 'Clear Recent File List'. The maximum number of recently opened files is currently limited to eight. You can adjust the number of files by editing the key '[recent_files]->max' in the application settings file dcld.ini located in the program folder. The absolute maximum number of files allowed is limited to 128. Setting the maximum number of files =0 will disable this feature and no file history will be stored.
5) Bugfixes
- solved conflicts with relative path declarations in #include paths
- solved a calculation error in input gain calculations of digital sources
- solved a bug accidentally overwriting the ADC gain in input gain calculations when using digital input sources
6) 'Under-The-Hood' changes
With increasing number of code generation options, feature management has been optimized by introducing combinatorial tokens in code generator scripts. These changes are not visible and noticeable for common users but may be of interest for users who manipulate/tweak code generator scripts to better meet their own requirements. More detailed information on code generator scripts is available on request.
Code Migration Guide from versions prior to Version 0.9.5.96:
With version 0.9.5.96, new controller features were enforced, which significantly changed the cNPNZ16b_t data structure, where parameters have been grouped into sub-structures helping to better structure, organize and manage the steadily growing number of feature parameters. These changes were necessary to better manage code changes, add new features and options while making the cNPNZ16b_t controller object data structure more intuitive and manageable for users.
1) Unified Controller Object Data Structure
In previous versions, two different data structures were available
- cNPNZ16b_t used for all controller types with 16-bit fixed-point scaling modes
- cNPNZ3216b_t used for all controller types with 32-bit fast floating-point scaling modes
These two data structures have been merged into one, unified structure called cNPNZ16b_t to allow users to write code, independent from scaling modes.
Consequently, all filter coefficients are now declared as 32-bit number. If 16-bit fixed-point scaling modes are used for highest execution performance, the number format of coefficients will have ZERO in the high word and the 16-bit coefficient value in the low-word of the 32-bit number (e.g. CoeffB0 = 0x00002A52)
This change does not influence the execution time of the compensation filter computation.
2) Controller Input and Output Ports Sub-Groups
Advanced controllers need to be able to work with values from multiple different input sources resp. access to multiple output targets.
Although internal number normalization covers most of the mathematical challenges already, normalization of physical domains is still required.
For this purpose, each input and output port of the controller has been grouped into a sub-structure with
- Pointer to Object Address: (e.g. Special Function Register (SFR) or global variable)
- Signal Offset: helping to scale analog signals
- Normalization Factor: formatted as fractional
- Normalization Scaler: Additional bit-shift scaler of fractional Normalization Factor
Offset and Normalization is optional and related features are not enabled by default.
DCLD will add related code only if specific options/features are enabled/selected by the user.
This release version supports controllers with up to with two input ports and two output ports.
Effects on user code:
Specifying the controller input source in user code with previous versions were written like this:
my_controller.ptrSource = &ADCBUF2; // assigning ADC buffer of AN2 as data input
my_controller.InputOffset = 125; // feedback voltage has 100mV Offset
The new structure requires to change this like to
my_controller.Ports.Source.ptrAddress = &ADCBUF2; // assigning ADC buffer of AN2 as data input
my_controller.Ports.Source.Offset = 125; // feedback voltage has 100mV Offset
3) Controller Filter Sub-Group
All coefficients and related number scaling parameters have been grouped into 'Filter'.
Effects on user code:
Specifying the controller input source in user code with previous versions were written like this:
my_controller.PostShiftA = -2; // Backward normalization of Q15 fractional result with factor 4
The new structure requires to change this like to
my_controller.Filter.PostShiftA = -2; // Backward normalization of Q15 fractional result with factor 4
4) Controller Limits Sub-Group
Threshold values of Anti-Windup limits are now grouped in 'Limits'. Furthermore, a second set of output limits has been introduced to support alternate output port configuration.
Effects on user code:
Specifying the controller input source in user code with previous versions were written like this:
my_controller.MaxOutput = 2800; // Limit maximum control output to 2800 ticks
The new structure requires to change this like to
my_controller.Limits.MaxOutput = 2800; // Limit maximum control output to 2800 ticks
5) Controller ADC Trigger Control Sub-Group
The function Automated ADC Trigger Placement supports up to two ADC triggers, which can be automatically positioned during runtime.
The configuration of this feature requires the declaration of the ADC trigger compare register and an additional, user-specified offset value (usually used to compensate for hardware related delays).
These settings have now been grouped in sub-group 'ADCTriggerControl':
Effects on user code:
Specifying the controller input source in user code with previous versions were written like this:
my_controller.ptrADCTriggerARegister = 2800; // Limit maximum control output to 2800 ticks
my_controller.ADCTriggerAOffset = 600; // Delay generated trigger 150 ns
The new structure requires to change this like to
my_controller.ADCTriggerControl.ptrADCTriggerARegister = 2800; // Limit maximum control output to 2800 ticks
my_controller.ADCTriggerControl.ADCTriggerAOffset = 600; // Delay generated trigger 150 ns
6) Controller Data Provider Sub-Group
When Data Providers are enabled, internal controller data is pushed to user-specified target variables or registers.
These target addresses need to be specified in code. The Data Provider parameters have now been grouped in sub-group 'DataProviders'
Effects on user code:
Specifying the controller input source in user code with previous versions were written like this:
my_controller.ptrDataProviderControlInput = &my_vout; // push most recent output voltage sample to user variable
The new structure requires to change this like to
my_controller.DataProviders.ptrDProvControlInput = &my_vout; // push most recent output voltage sample to user variable
7) Controller Cascade Trigger Sub-Group
When Data Providers are enabled, internal controller data is pushed to user-specified target variables or registers.
These target addresses need to be specified in code. The Data Provider parameters have now been grouped in sub-group 'DataProviders'
Effects on user code:
Specifying the controller inpu...
Major Feature Update Release Notes
This is a major version upgrade introducing a number of major changes, which might be disruptive for user projects. New controller features enforced significant changes to the cNPNZ16b_t data structure, where parameters have been grouped into sub-structures helping to better structure and manage the steadily growing number of parameters.
These changes were necessary to better manage code changes, add new features and options while making the cNPNZ16b_t controller object data structure more intuitive to users and more generic across applications.
Unfortunately, this update will inevitably create conflicts with existing user code modules using previous versions of DCLD. Please read the following code migration guidelines before you upgrade your version:
Code Migration Guidelines:
1) Unified Controller Object Data Structure
In previous versions, two different data structures were available
- cNPNZ16b_t used for all controller types with 16-bit fixed-point scaling modes
- cNPNZ3216b_t used for all controller types with 32-bit fast floating-point scaling modes
These two data structures have been merged into one, unified structure called cNPNZ16b_t to allow users to write code, independent from scaling modes.
As a consequence, all filter coefficients are now declared as 32-bit number. If 16-bit fixed-point scaling modes are used for highest execution performance, the number format of coefficients will have ZERO in the high word and the 16-bit coefficient value in the low-word of the 32-bit number (e.g. CoeffB0 = 0x00002A52)
This change does not influence the execution time of the compensation filter computation.
2) Controller Input and Output Ports Sub-Groups
Advanced controllers need to be able to work with values from multiple different input sources resp. access to multiple output targets.
Although internal number normalization covers most of the mathamtical challenges already, normalization of physical domains is still required.
For this purpose each input and output port of the controller has been grouped into a sub-structure with
- Pointer to Object Address: (e.g. Special Function Register (SFR) or global variable)
- Signal Offset: helping to scale analog signals
- Normalization Factor: formated as fractional
- Normalization Scaler: Additional bit-shift scaler of fractional Normalization Factor
Offset and Normalization is optional and related features are not enabled by default.
DCLD will add related code only if specific options/features are enabled/selected by the user.
This release version supports controllers with up to with two input ports and two output ports.
Effects on user code:
Specifying the controller input source in user code with previous versions were written like this:
my_controller.ptrSource = &ADCBUF2; // assigning ADC buffer of AN2 as data input
my_controller.InputOffset = 125; // feedback voltage has 100mV Offset
The new structure requires to change this like to
my_controller.Ports.Source.ptrAddress = &ADCBUF2; // assigning ADC buffer of AN2 as data input
my_controller.Ports.Source.Offset = 125; // feedback voltage has 100mV Offset
3) Controller Filter Sub-Group
All coefficients and related number scaling paramters have been grouped into 'Filter'.
Effects on user code:
Specifying the controller input source in user code with previous versions were written like this:
my_controller.PostShiftA = -2; // Backward normalization of Q15 fractional result with factor 4
The new structure requires to change this like to
my_controller.Filter.PostShiftA = -2; // Backward normalization of Q15 fractional result with factor 4
4) Controller Limits Sub-Group
Threshold values of Anti-Windup limits are now grouped in 'Limits'. Furthermore, a second set of output limits has been introduced to support alternate output port configuration.
Effects on user code:
Specifying the controller input source in user code with previous versions were written like this:
my_controller.MaxOutput = 2800; // Limit maximum control output to 2800 ticks
The new structure requires to change this like to
my_controller.Limits.MaxOutput = 2800; // Limit maximum control output to 2800 ticks
5) Controller ADC Trigger Control Sub-Group
The function Automated ADC Trigger Placement supports up to two ADC triggers, which can be automatically positioned during runtime.
The configuration of this feature requires the declaration of the ADC trigger compare register and an additional, user-specified offset value (usually used to compensate for hardware related delays).
These settings have now been grouped in sub group 'ADCTriggerControl':
Effects on user code:
Specifying the controller input source in user code with previous versions were written like this:
my_controller.ptrADCTriggerARegister = 2800; // Limit maximum control output to 2800 ticks
my_controller.ADCTriggerAOffset = 600; // Delay generated trigger 150 ns
The new structure requires to change this like to
my_controller.ADCTriggerControl.ptrADCTriggerARegister = 2800; // Limit maximum control output to 2800 ticks
my_controller.ADCTriggerControl.ADCTriggerAOffset = 600; // Delay generated trigger 150 ns
6) Controller Data Provider Sub-Group
When Data Providers are enabled, internal controller data is pushed to user-specified target variables or registers.
These target addresses need to specified in code. The Data Provider parameters have now been grouped in sub-group 'DataProviders'
Effects on user code:
Specifying the controller input source in user code with previous versions were written like this:
my_controller.ptrDataProviderControlInput = &my_vout; // push most recent output voltage sample to user variable
The new structure requires to change this like to
my_controller.DataProviders.ptrDProvControlInput = &my_vout; // push most recent output voltage sample to user variable
7) Controller Cascade Trigger Sub-Group
When Data Providers are enabled, internal controller data is pushed to user-specified target variables or registers.
These target addresses need to specified in code. The Data Provider parameters have now been grouped in sub-group 'DataProviders'
Effects on user code:
Specifying the controller input source in user code with previous versions were written like this:
my_controller.CascadedFunction = &my_function; // Call user function at the end of controller execution
my_controller.CascadedFunParam = 650; // Parameter of function call
The new structure requires to change this like to
my_controller.CascadeTrigger.prtCascadedFunction = &my_function; // Call user function at the end of controller execution
my_controller.CascadeTrigger.CascadedFunParam = 650; // Parameter of function call
8) Controller Gain Control Sub-Group (new)
This version of DCLD introduces a new feature called Adaptive Gain Control, which is a specific, highly generic form of digital feed forward control.
This feature breaks down into two parts:
- Applying gain modulation to the compensation filter on a cycle-by-cycle basis
- Determining the most recent gain modulation factor
This sub group 'GainControl' specifies all parameters required to perform the cycle-by-cycle gain modulation, but excludes the determination of these parameters.
8) Controller Advanced Sub-Group (new)
This version of DCLD adds a new parameter sub group 'Advanced' to the controller object.
This parameter group may be used as data buffer by advanced features.
New Features:
-
MPLAB X® Project Parsing
DCLD now integrates much deeper into MPLAB X® by adoting user settings from the most recent project configuration. You can still use DCLD independent from MPLAB X®, but some of the advanced control features and code generator options may not be available -
Project Configuration Window
The inclusion of a specific MPLAB X® project is supported by a configuration window.
Users can open the porjec configuration at any time from the tools bar.
This window will open automatically every time conflicts are detected. -
Input Gain Calculation Tool
DCLD supports the inclusion of signal gain dependencies. To calculate the related gains more easily, new calculation tools have been introduced, making it easier to calculate the figures for- Voltage Dividers
- Current Sense Amplifiers
- Current Sense Transformers
- Digital Sources (e.g. Input Capture)
-
Adaptive Gain Control
This new feature adds a modulation factor to the control loop. However, by enabling this function only the required hooks are added to the control code. The effective adaptive algorithms required to perform the runtime gain modulation are added in later releases. -
Seamless Controller Migration
By unifying the cNPNZ16b_t and cNPNZ3216b_t data structure into one, controllers and all their features can now be seamlessly migrated across all number scales removing previous limitation or required, minor user code edits. -
Code Generator
By introducing support of MPLAB X® project assignments, users can now select the include path, which should be used while generating pre-compiler file inclusion declarations. -
Timing Chart: Added User-Specified ADC Trigger Offset
The cNPNZ16b_t controller object supports user-defined trigger offsets to allow compensation of hardware related propagation delays. This feature is now also supported by the timing chart where users can specify the trigger offset value below the chart. -
Timing Chart: CPU Load Indicator
The Timing Chart now also displays a rough CPU load estimation as percentage. The parameters used to calculate this figure is based on sampling frequency x execution cycles of the most recent controller.
**Bugfixes:...
Feature Update and Bugfix
Release Notes:
1) Modified support for cascaded code modules
The recently added support for adding internal function calls to a control loop got altered. The previous version automatically disabled the entire chain of cascaded functions as soon as the highest (first) function got disabled. although this was intended, it created conflicts with controller modules acting as continuous data providers. Therefore the Chain-disable feature has been taken out for the time being. Now every function in a chain needs to be disabled individually until an enhanced All-Off function has been added.
2) User Guide Update
The user guide is now integrated in the GUI and can be opened from the help menu. As many new functions have been added since version 0.9.0.58, a fundamental update was required. This includes detailed application tips, considerably enhanced data object descriptions and updated screen shots.
3) GUI Control Clean-Up
There have been complains about names of functions and text on controls, which were either misleading or inconsistent. Many of these have been fixed.
Download Versions:
-
Digital Control Library SDK for Windows Setup Package
This ZIP archive contains a standard setup.exe and related resource files.
Please download this ZIP archive to a known location. Once the download is complete, unzip all files and run Setup.EXE. Then follow the instructions of the install wizard. -
Digital Control Library SDK for Windows ThumbDrive Version
This ZIP archive contains all files necessary to run DCLD.exe without installation.
Please be aware that if you use this version, some features like file type association may not be supported.
To use this version, please download the ZIP archive to a known location. Once the download is complete, unzip all files and run DCLD.EXE -
Digital Control Library SDK for Windows User Guide
This PDF file contains detailed descriptions about DCLD features and use case scenarios and will be updated along with new software releases.
Feature Update
Release Notes:
1) Added support for cascaded code modules
A new code generator option named 'Add Cascade Function Call' has been added to code generator options. This will add a function pointer and a pointer to a function parameter to the cNPNZ16_t data structure, which can be used by users to declare a function and its parameter to be called at the end of the computation. This feature allows you to cascade multiple control loops automatically without having to call them one-by-one in C-code.
Example:
This feature is useful to build and execute multi-loop control systems more efficiently. In an average current mode control scheme the cascaded function feature can be used by the outer voltage loop controller to directly call the inner current loop controller. When the two loops have been cascaded during initialization, only the voltage loop controller would have to be called.
2) Added Alternate Source And Alternate Target Pointers
More complex control system such as bi-directional controllers or some adaptive control functions might need a multi-port data interface. For this purpose the cNPNZ16_t data structure now offers pointers to two sources (registers or variables) and two targets (registers or variables).
Example:
Bi-directional controllers, while operating in one direction, would refer to ptrSource to read the recent output voltage from an ADC input and write their result to ptrTarget to adjust the main PWM output. When the power transfer is reversed, the previous input voltage becomes the new output voltage. Thus the input source has to be swapped to this new data input source. The same might be true for the PWM output where a new PWM output might become the new controller target. With the new ptrAltSource and ptrAltTarget pointers, the necessary declarations can be made during initialization. To allow users to swap inputs and outputs in an instant during operation, control bits for ptrSource/ptrAltSource and ptrTarget/ptrAltTarget have been added to the status word of the controller. By setting these bits, ptrSource can be instantly swapped to ptrAltSource and ptrTarget to ptrAltTarget individually or simultaneously
3) Code Generator Option Catalog Cleanup
With increasing number of code generator options it became necessary to re-group the various options to make their use cases more transparent and intuitive. Therefore the code generator option catalog has been cleaned up and options have been re-grouped.
4) In-App Help File
With increasing complexity of features it became necessary to enable quick access to the DCLD documentation. For this purpose the user guide has been added to the project files. The user guide can now be opened directly from the help menu or by hitting F1 on the keyboard.
5) Overall Performance Improvements
Code optimizations have taken place which help to generate code faster and improve the refresh rate of charts and data tables. In addition more detailed debugging information has been added to give more insights when issues occur.
Download Versions:
-
Digital Control Library SDK for Windows Setup Package
This ZIP archive contains a standard setup.exe and related resource files.
Please download this ZIP archive to a known location. Once the download is complete, unzip all files and run Setup.EXE. Then follow the instructions of the install wizard. -
Digital Control Library SDK for Windows ThumbDrive Version
This ZIP archive contains all files necessary to run DCLD.exe without installation.
Please be aware that if you use this version, some features like file type association may not be supported.
To use this version, please download the ZIP archive to a known location. Once the download is complete, unzip all files and run DCLD.EXE -
Digital Control Library SDK for Windows User Guide
This PDF file contains detailed descriptions about DCLD features and use case scenarios and will be updated along with new software releases.
Bugfix Release v0.9.0.76
Release Notes:
1) Fixed Urgent Bug in Controller Declaration
Changes made to the C-Code generation in version v0.9.0.75 a small mistake slipped into the generator of the controller input data pre-scaler value used for data normalization. Its sign was inverted, making positive numbers negative and vice versa.
This Bugfix release solves the problem - I'm sorry for any inconvenience.
2) Changed Windows Install Deployment Method
To fix occasional problems with the application manifest on some machines, the Windows Install package is now deployed as additional ZIP archive inside the download package below. Thus changes to any of the setup files are (hopefully) prevented.
Download Versions:
-
Digital Control Library SDK for Windows Setup Package
This ZIP archive contains a standard setup.exe and related resource files.
Please download this ZIP archive to a known location. Once the download is complete, unzip all files and run Setup.EXE. Then follow the instructions of the install wizard. -
Digital Control Library SDK for Windows ThumbDrive Version
This ZIP archive contains all files necessary to run DCLD.exe without installation.
Please be aware that if you use this version, some features like file type association may not be supported.
To use this version, please download the ZIP archive to a known location. Once the download is complete, unzip all files and run DCLD.EXE -
Digital Control Library SDK for Windows User Guide
This PDF file contains detailed descriptions about DCLD features and use case scenarios and will be updated along with new software releases.