diff --git a/.mchp_private/documents/EPC9137_Schematic.pdf b/.mchp_private/documents/EPC9137_Schematic.pdf deleted file mode 100644 index 2f42c8d..0000000 Binary files a/.mchp_private/documents/EPC9137_Schematic.pdf and /dev/null differ diff --git a/.mchp_private/documents/EPC9137_qsg.pdf b/.mchp_private/documents/EPC9137_qsg.pdf deleted file mode 100644 index e83f601..0000000 Binary files a/.mchp_private/documents/EPC9137_qsg.pdf and /dev/null differ diff --git a/.mchp_private/documents/EPC9528_Schematic.pdf b/.mchp_private/documents/EPC9528_Schematic.pdf deleted file mode 100644 index 9940cf3..0000000 Binary files a/.mchp_private/documents/EPC9528_Schematic.pdf and /dev/null differ diff --git a/.mchp_private/documents/EPC9528_qsg.pdf b/.mchp_private/documents/EPC9528_qsg.pdf deleted file mode 100644 index 582832e..0000000 Binary files a/.mchp_private/documents/EPC9528_qsg.pdf and /dev/null differ diff --git a/.mchp_private/documents/graphics.pptx b/.mchp_private/documents/graphics.pptx deleted file mode 100644 index 792ec6d..0000000 Binary files a/.mchp_private/documents/graphics.pptx and /dev/null differ diff --git a/.mchp_private/doxygen_src/build-output.bat b/.mchp_private/doxygen_src/build-output.bat deleted file mode 100644 index f25506a..0000000 --- a/.mchp_private/doxygen_src/build-output.bat +++ /dev/null @@ -1,166 +0,0 @@ -@echo off -rem if exist "output.log" del "output.log" -rem set logfile=output.log -rem call :start -rem exit /b 0 - -:start -echo ###################### DOXYGEN OUTPUT GENERATION ###################### -echo. - -set startdir="%~dp0" -cd %startdir% -cd ..\..\ -set rootdir=%cd% -set rootimg=%rootdir%\images - -set workdir=%rootdir%\.mchp_private\doxygen_src -set doxydir=%workdir%\templates -set doxyimg=%workdir%\images -set mdimg=%workdir%\markdown-files\images - -set outputdir=%rootdir%\docs -set searchdir=%outputdir%\search -set outputimg=%outputdir%\images - -echo Working Directories: -echo ==================== -echo Source directory: %workdir% -echo Doxyfile location: %doxydir% -echo Main images directory: %rootimg% -echo Content images directory: %doxyimg% -echo Markdown images directory: %mdimg% -echo Output directory: %outputdir% -echo Output images directory: %outputimg% -echo Output search directory: %searchdir% -echo. -echo Toolchain Information: -echo ====================== -echo. -echo Doxygen Version: -doxygen -v -echo. -echo Graphviz Version: -rem To generate graphics like call graphs and flow charts, the Graphviz package needs to be installed. -rem You can find this package here: https://www.graphviz.org/download/ -rem Please make sure the installation directory of Graphviz is registered as PATH variable -rem Should doxygen still have trouble with calling the Dot tool, execute the following line -rem to make sure all library packages are properly registered -dot -V -rem "C:\Program Files\Graphviz 2.44.1\bin\dot.exe" -c -echo. -echo Output Generation: -echo ================== -echo. -echo -- preparing output generation... -rem Checking if the output directory already exists or needs to be created -echo -- searching output directory -if exist %outputdir% echo -- output directory present -if exist %outputdir% goto docs_present -echo -- no output directory found -:create_docs -mkdir "%outputdir%" -echo -- created new output directory 'docs' -set /A new_docs=1 -goto switch_to_docs -:docs_present -set /A new_docs=0 -echo -- found output directory 'docs' -echo. -:switch_to_docs -cd "%outputdir%" -if "%new_docs%"=="1" goto skip_delete_images -:get_options -echo Clear the output directory before generating new content (recommended)? -echo. -echo Y = Yes deletes the content of the output directory and the complete content will be generated -echo N = No keeps all content of the output directory and only changed files will be updated -echo E = Exit skips the code generation and ends the program -echo. -set /P yesno="Enter Selection: " -echo. -if "%yesno%"=="e" goto end -if "%yesno%"=="E" goto end -if "%yesno%"=="Y" goto delete_output -if "%yesno%"=="y" goto delete_output -set yesno="n" -echo -- output director contents will not be cleared -goto skip_delete_output -:delete_output -del /F /Q *.* -if exist "%searchdir%" del /F /Q "%searchdir%\*.*" -echo -- output directory cleared -echo. -:skip_delete_output -echo Clear the 'images' directory of the doxygen output directory before generating new content (recommended)? -echo. -echo Y = Yes deletes the content of the 'images' sub-directory in the doxygen output directory -echo N = No keeps all content of the 'images' sub-directory in the doxygen output directory -echo and only changed files will be updated -echo E = Exit skips the code generation and ends the program -echo. -set /P yesno="Enter Selection: " -echo. -if "%yesno%"=="e" goto end -if "%yesno%"=="E" goto end -if "%yesno%"=="Y" goto delete_images -if "%yesno%"=="y" goto delete_images -set yesno="n" -echo. -echo -- output images directory will not be cleared -goto skip_delete_images -:delete_images -if exist "%outputimg%" del /F /Q "%outputimg%\*.*" -echo -- images directory cleared -:skip_delete_images -echo. -echo Open output in browser after generation? -echo. -echo Y = Yes the generated output will be opened in the default browser -echo N = No the program ends after content has been generated -echo E = Exit skips the code generation and ends the program -echo. -set /P yesno="Enter Selection: " -echo. -if "%yesno%"=="e" goto end -if "%yesno%"=="E" goto end -if "%yesno%"=="Y" goto generate_output -if "%yesno%"=="y" goto generate_output -set yesno="n" -echo. -echo -- generated output will not be opened automatically -:generate_output -echo. -echo ######################## R U N D O X Y G E N ######################## -echo. -echo -- searching for doxygen path... -echo -- %doxydir% -echo -- setting doxygen path... -cd "%doxydir%" -set testdir=%cd% -echo -- calling doxygen path... -echo -- %testdir% -echo -- calling doxygen generator... -echo. -doxygen doxyfile -echo. -echo ############## D O X Y G E N E X E C U T I O N E N D ############## -echo. -echo -- merging template image folder content into output image directory -Xcopy /e /i /c /r /y "%rootimg%" "%outputimg%" -if exist "%mdimg%" Xcopy /e /i /c /r /y "%mdimg%" "%outputimg%" -if exist "%doxyimg%" Xcopy /e /i /c /r /y "%doxyimg%" "%outputimg%" -echo. -echo -- content generation complete -echo. -echo ############################### D O N E ############################### -echo. -if "%yesno%"=="Y" goto open_output -if "%yesno%"=="y" goto open_output -echo -- 'Open Output After Generation' option skipped by user (%yesno%) -goto end -:open_output -echo -- open output (%yesno%) -%outputdir%\index.html -:end -@timeout 10 diff --git a/.mchp_private/doxygen_src/dot-files/dev-startup.gv b/.mchp_private/doxygen_src/dot-files/dev-startup.gv deleted file mode 100644 index 32b08d3..0000000 --- a/.mchp_private/doxygen_src/dot-files/dev-startup.gv +++ /dev/null @@ -1,59 +0,0 @@ -digraph dev_startup -{ - // Name Label and Format - compound=true; - - graph[fontname="Handlee, Consolas, 'Courier New', Courier, Sans-Serif", fontsize=12]; - node[fontname="Handlee, Consolas, 'Courier New', Courier, Sans-Serif", fontsize=11]; - edge[fontname="Handlee, Consolas, 'Courier New', Courier, Sans-Serif", fontsize=11]; - - ranksep=0.3; - nodesep=0.6; - rankdir=TB; - splines = ortho; - - { - // Application Layer - label="Essential Device Initialization" - rank = same; - - node [ - shape=diamond, style=filled, fontcolor=black, fillcolor=darkseagreen1, - width = 2.2 - ]; - - reset[label="Device Reset"]; - } - - { - node [ - shape=box, style=filled, fontcolor=black, fillcolor=darkseagreen1, - width = 2.2 - ]; - - sys_init[label="System\nInitialization", fillcolor=white, URL="SYSTEM_Initialize"]; - usrper_init[label="User Peripheral\nInitialization", fillcolor=white, URL="sysUserPeriperhals_Initialize"]; - usrtsk_init[label="User Task\nInitialization", fillcolor=white, URL="sysUserTasks_Initialize"]; - ostim_init[label="OS Timer\nInitialization", fillcolor=white, URL="sysOsTimer_Enable"]; - main_loop[label="Main Loop", fillcolor=grey, URL="main"]; - - } - - { - node [ - shape=record, style=filled, fontcolor=black, fillcolor=darkseagreen1, - width = 2.2 - rankdir=TB, - ]; - - check0[label="Success? | { No | Yes }"]; - } - - // Network Graph - reset -> sys_init -> usrper_init -> usrtsk_init -> ostim_init; - ostim_init -> check0:check; - check0:no -> reset; - check0:yes -> main_loop; - - -} diff --git a/.mchp_private/doxygen_src/dot-files/device_startup.png b/.mchp_private/doxygen_src/dot-files/device_startup.png deleted file mode 100644 index c2a1079..0000000 Binary files a/.mchp_private/doxygen_src/dot-files/device_startup.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/dot-files/sfw_main.gv b/.mchp_private/doxygen_src/dot-files/sfw_main.gv deleted file mode 100644 index cd23a04..0000000 --- a/.mchp_private/doxygen_src/dot-files/sfw_main.gv +++ /dev/null @@ -1,129 +0,0 @@ -# http://www.graphviz.org/content/cluster - -digraph sfw_main { - - graph[fontname="Handlee, Consolas, 'Courier New', Courier, Sans-Serif", fontsize=11]; - node[fontname="Handlee, Consolas, 'Courier New', Courier, Sans-Serif", fontsize=11]; - edge[fontname="Handlee, Consolas, 'Courier New', Courier, Sans-Serif", fontsize=11]; - - clusterrank=local; - bgcolor=transparent; - splines=true; - constraint= true; - pad=0.2; - ranksep=0.2; - nodesep=0.6; - - subgraph cluster_0 { - - mode="ipsep"; - rankdir=LR; - style=none; - color=lightgrey; - constraint=true; - - label = "Main Program"; - labeljust=r; - - node [style=filled]; - a0[label="Device\nInitialization", fillcolor=darkseagreen1]; - - subgraph cluster_01 { - - label = "Main Loop"; - style=filled; - color=grey; - bgcolor=white; - fillcolor=ivory; - - node [fontsize = 11]; - b0[label="Wait for\nLow Priority Task\nTrigger", fillcolor=mistyrose, weight=2]; - b1[label="Low\nPriority Task\nExecution", fillcolor=lightgoldenrod1]; - b2[label="Exit Program?", fillcolor=white]; - b0 -> b1 -> b2; - } - } - - - subgraph cluster_1 { - - label = "OS Timer ISR\nHigh Priority (HP)\nTasks"; - style=filled; - color=orange - fillcolor=ivory; - labelloc=b; - - node [style=filled, width=2.2]; - c0[label="High\nPriority Task\nExecution", fillcolor=lightgoldenrod1]; - c1[label="Set\nLow Priority Task\nTrigger", shape=cds, fillcolor=mistyrose, height=1]; - c0 -> c1; - } - - subgraph cluster_2{ - - style=none; - color=none; - - subgraph cluster_21 { - - rank=same; - - node [style=filled]; - pwm[shape=none, label="PWM Signal Generation", fillcolor=white, fontcolor=red, height=0.6]; - adc[shape=none, label="ADC Trigger Generation", fillcolor=white, fontcolor=red, height=0.6]; - aclk[shape=none, label="Auxiliary Clock", fillcolor=white, fontcolor=red]; - irq[shape=diamond, label="PWM/ADC IRQ", fillcolor=dodgerblue, fontcolor=white]; - - aclk:s -> pwm:n; - aclk:s -> adc:n; - pwm:s -> irq:e; - adc:s -> irq:w; - - } - - subgraph cluster_20 { - - style=filled; - color=orange - fillcolor=ivory; - - label = "High Speed\nControl Loop ISR"; - labelloc=b; - - node [style=filled]; - ctrl[pos="20,10", shape=Msquare, label="High Speed Control ISR\nVoltage and/or \nCurrent Regulation", fillcolor=lightgoldenrod1, height=1.3, width=2.2]; - } - - label= " "; - fontsize=24; - labelloc=b; - - } - - start [shape=Mdiamond]; - hp_task[label="{ High Priority Tasks | user taks #1 | user taks #2 | user taks #3 | ... | user taks #4 }", shape=record, style=filled, fillcolor=ivory, height=1, width=1.9]; - lp_task[label="{ Low Priority Tasks | user taks #1 | user taks #2 | user taks #3 | ... | user taks #4 }", shape=record, style=filled, fillcolor=ivory, height=1, width=1.9]; - timer[label="OS Timer IRQ", shape="diamond", style=filled, fillcolor=dodgerblue, fontcolor=white, size=0.2] - end [shape=Msquare]; - - reset[shape=none, label="Reset CPU", fontcolor=red]; - clock[shape=none, label="System Clock", fontcolor=red]; - - blank[style=invis]; - - start:s -> a0:n; - clock:s -> timer:n; - a0:w -> timer:ne; - a0:s -> b0:n; - b1:e -> lp_task:n; - lp_task:nw -> b1; - c0 -> hp_task:n; - hp_task:nw-> c0:w; - c1:e -> b0; - b2 -> b0; - b2 -> end -> reset; - timer -> c0; - - irq:s -> ctrl:n; - -} diff --git a/.mchp_private/doxygen_src/dot-files/sfw_main.png b/.mchp_private/doxygen_src/dot-files/sfw_main.png deleted file mode 100644 index 280fcca..0000000 Binary files a/.mchp_private/doxygen_src/dot-files/sfw_main.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/dox-files/index.dox b/.mchp_private/doxygen_src/dox-files/index.dox deleted file mode 100644 index 7eea896..0000000 --- a/.mchp_private/doxygen_src/dox-files/index.dox +++ /dev/null @@ -1,321 +0,0 @@ - -/* List of DOT images to be generated for use in markup files but without being referenced in comments */ -/* -//@dotfile pconfig.gv -//@dotfile flowchart.gv -*/ - -//First layer -/** -@defgroup firmware-flow Firmware Architecture - -@brief Firmware Flowchart -@details -Firmware Task Scheduling

-The SMPS Firmware Framework used in this application is organizing high and low priority tasks by a -very simple task scheduler providing one common low-priority task level executed on priority level -#0 and one high-priority task level executed on priority level #2. The interruption of processes on -priority level #0 is enforced by a programmable timer. During system startup, the timer is set to -overrun every 100 us, providing a stable high-priority task execution frequency of 10 kHz. -All low-priority tasks are only allowed to run after all high-priority tasks have been completed. -The real-time control system takes the highest priority within the firmware. This is ensured by -using hardware triggers generated by the PWM signal generator logic with its high resolution time-base. -The extremely short and optimized control loop code is implemented as monolithic Assembly routine to be -most deterministic. Being triggered directly by the switching signal waveform generator, the execution -is tightly coupled to the physical power conversion process and also independent from any other software -process of the firmware. - -@dotfile sfw_main.gv - -*/ - -//Firmware Flowchart index -/** -@defgroup device-start-up Device Start Up -@ingroup firmware-flow -@dotfile dev-startup.gv -@brief Device Start Up -@details - When the device comes out of RESET, it is running off the selected oscillator at its natural frequency. - The startup oscillator type is declared in the FOSCSEL register by setting the respective configuration bits (FUSES). - FUSES (configuration bits) can only be set at compile time before the settings are programmed into the device. -@code{.c} #pragma config FNOSC = FRCDIVN @endcode - - - Step 1 (System Initialization):

- The first step focuses on essential IC resources only, such as oscillator and device inputs/outputs. - The following modules are initialized in the given order:

- - Main Oscillator:
- In this design the internal 8 MHz RC oscillator is used. Hence, the very first step in the firmware is to set up - the internal PLL to operate the CPU at maximum speed of 100 MIPS (100 MHz instruction cycle). -

- - Auxiliary Oscillator:
- The Auxiliary Oscillator is a second PLL, which can be set up to a different frequency than the main oscillator and - provided to peripheral modules. This auxiliary clock signal is used by the PWM and ADC module to perform at maximum - speed and performance. In this design, the auxiliary clock is set up for 500 MHz base clock. -

- - GPIO Reset:
- To make sure there are no conflicts with individual application tasks and related peripheral configurations, all - General Purpose Inputs/Outputs (GPIOs) are set as digital inputs with its internal control signals set LOW. -

- - Digital Signal Processor Logic (DSP):
- The internal Digital Signal Processing (DSP) engine is configured for fractional multiplication with saturation - enabled. This configuration is optimized for control loop computations. The control loops are able to self-manage - their required DSP configuration, however, this would add execution cycles and increase the overall CPU load. - As no other task/process in this application uses the DSP, the DSP configuration has been taken out of the - control loop CPU configuration self-management and added to the system initialization of the project as static - configuration to reduce the overall CPU workload. -

- - - Step 2 (User Peripheral Initialization):

- The second step initializes user-defined peripherals, which are not managed by any other part of the application. - The following modules are initialized in the given order:

- - Digital-To-Analog Converter (DAC)
- This design requires an independent reference voltage to adjust external current sense shunt amplifier devices to - offset their output voltage, allowing the monitoring of the full triangular inductor current waveform in discontinuous - as well as continuous conduction mode. Each DAC module of dsPIC33 also includes an analog high-sped comparator, which - is not used in this configuration. -

- - Operational Amplifier (OPA)
- The internally generated reference voltage (see DAC configuration above) is buffered by using one of the on-chip Operational - amplifiers. This section assigns the input pin to this op-amp and enables the output. -

- - - Step 3 (User Peripheral Initialization):

- In the third step all tasks of the application are initialized by calling their default API INITIALIZE function. Each task - module is self-managing and does not require additional parameters to be considered at this function call level. However, - each task provides an individual application layer which is used to configure the task and all its implied settings and - parameters. (Please refer to the documentation of each task for details.)

- - Power Control Task
- The Power Control Task covers the complete management of the included power supply circuit and control loops. - This tasks utilizes a standard single- and multiphase buck converter library, which provides a complete runtime - state-machine managing self-initialization, soft-start, soft-stop, runtime reference tuning and auto-restart. - It also includes enhanced features such as automatic adjustment to pre-biased outputs, feedback offset compensation - and supports different control modes such as voltage mode control (VMC) or average current mode control (ACMC). -

- - Fault Monitor Task
- The Fault Monitor Task is a global task providing application-wide fault detection. The separation of power converter - control and fault monitoring allows the consideration of application dependencies between tasks. -

- - - Step 4 (OS Timer Initialization):

- In the fourth step the operating system time base is initialized. In this slim application the operating system - consists of two different task execution levels on two priority levels: -

- - Low-Priority Task Execution
- the low priority tasks are executed - from a common function called @ref sysLowPriorityTasks_Execute. This task layer is executed with lowest priority (=0). -

- - High-Priority Task Execution
- High priority tasks are executed from the Timer Interrupt Service Routine (ISR) of the OS timebase timer. - The interupt priority is set one above the low priority task level (default = 2). In this application the - alternate working registers of the device have been configured to automatically switch context when the timer - interrupt is triggered by setting FUSE CTXT1 = IPL2. - @code{.c} #pragma config CTXT1 = IPL2 @endcode - -

-

- -@defgroup main-loop Main Loop -@ingroup firmware-flow -@brief Main Loop -@details - - -@defgroup main-loop-low-priority Low-Priority Task Execution -@ingroup main-loop -@brief Low priority task execution - The execution of the sequence of low priority tasks is called from the main loop at lowest firmware priority #0. - Tasks executed on this level may be interrupted by executions of high priority task sequences triggered by the - operating system timer interrupt as well as the real-time control sytem interrupts. - -@defgroup main-loop-high-priority High-Priority Task Execution -@ingroup main-loop -@brief High priority task execution -@details - The execution of the sequence of high priority tasks is triggered by the operating system timer interrupt - being called on the defined priority level (default = 2). The interrupt service routine utiilzes an alternate - working register set for optimum coontext management. By default, alternate working register set #1 is reserved - for high priority tasks. -*/ - -//Device Start-Up Sub-Index -/** -@defgroup system-initialization-mcu Initializing Essential Chip Resources -@ingroup device-start-up -@brief -@details - The initialization of essential chip resources includes main oscillator initialization, - GPIO reset and peripheral power management. All other chip resources are managed by each - individual task or are initialized in the user peripehral initialization called after the - essential chip resources have been configured. - -@defgroup mcu-initialization Basic MCU Initialization -@ingroup system-initialization-mcu -@brief -@details - The initialization of all essential chip resources such as main oscillator, auxiliary clock - for PWM, ADC and DAC. GPIO configuration, and the DSP core have been pulled together in - on central SYSTEM_Initialize function, where function calls of each essentail chip resource - can be executed in a specific sequence and be monitored for their successful completion. - -@defgroup clock-initialization Main Oscillator Initialization -@ingroup system-initialization-mcu -@brief -@details - The main oscillator initialization configures the internal PLL to boost the user-defined - source clock to the desired operating frequency (e.g. 100 MHz for dsPIC33CK). - -@defgroup gpio-initialization Device Pin Configuration -@ingroup system-initialization-mcu -@brief -@details - When the device comes out of RESET, all general purpose inputs/outputs (GPIO) are configured - as high-impedance inputs. Sample and hold (S&H) circuits of ADC inputs are active and digital - functions are blocked. Depending on the application, this may or may not be desired. Hence, - this routine is used to set a different default state at startup where GPIOs are high impedance - inputs but all analog functions are disabled. - -@defgroup dsp-initialization Digital Signal Processor Configuration -@ingroup system-initialization-mcu -@brief -@details - The Digital Signal Processor (DSP) of dsPIC33C can be configured to support specific functions - optimized for fixed-point arithmetic of a normalized number space as well as enhanced features - such as accumulator and write-back saturation. As there is no other software instance using the - DSP other than the power supply control loops, the DSP is configured at device start to save - time during high frequency computations of the high-speed control loop. - -@defgroup system-initialization-user-peripherals Initializing Hardware-Specific Chip Resources -@ingroup device-start-up -@brief -@details - This system initialization segment is reserved for user configurations, which are not covered - by standard library functions, such as circuit specific feedback signal conditioning or other - independent functions. - -@defgroup user-peripherals-initialization User Peripheral Initialization -@ingroup system-initialization-user-peripherals -@brief -@details - Some applications require specific peripheral module functions to implement functions, - which are not covered by user-task device driver modules, such as special logic functions - or additional analog components like operational amplifiers for signal conditioning. This - initialization routine can be used to add user-configurations to the project, which are - independent from device driver modules, These special peripheral modules are initialized - before the user tasks. Users will have to decide when and how these additional peripherals - may be enabled to ensure no conflicts with user task device drivers occur. -*/ - -/* Application-specific hardware or microcontroller declarations */ -/** -@defgroup dac-initialization Digital-to-Analog Converter -@ingroup system-initialization-user-peripherals -@brief -@details - DPSK3 uses one of the available on-chip Digital-to-Analog Converters (DAC) to generate - a dynamic, analog output signal, which can be used for enhanced debugging of high-speed - processes such as control output monitoring. -@note - The DAC output signal is buffered by utilizing one of the available on-chip operational - amplifiers. Please refer to the Operational Amplifier Configuration section for details. - -@defgroup op-amp-initialization Operational Amplifier Configuration -@ingroup system-initialization-user-peripherals -@brief -@details - As described in the Digital-to-Analog Converter (DAC) initialization section, DPSK3 - supports an internally generated, tunable, analog voltage signal for enhanced debugging. - This DAC output signal is buffered by using one of the available on-chip operational amlifiers, - which is configured and enabled in this section. -@note - Please refer to the Digital-to-Analog (DAC) Configuration section for further details on - the configuration of this peripheral. -*/ - -/** - -@defgroup system-initialization-user-tasks Initializing Firmware Tasks -@ingroup device-start-up -@brief -@details - The application wide task execution requires a two step approach, where first the operating - system time base is configured and then all user-tasks are initialized. Once these two steps - have been completed, the OS timer can be enabled and the main program will enter the main loop, - continuously executing the specified and enabled user-tasks in high- and low-priority task - execution sequences. - -@defgroup os-timer-initialization Operating System Time Base -@ingroup system-initialization-user-tasks -@brief -@details - A simple 16-bit timer is used to generate the time base of the operating system. - This timer is set to overflow after the time period specified by @ref MAIN_EXECUTION_PERIOD - in the hardware abstraction layer. This time period is used to pace the high- and low priority - task sequences of the main program. - - Two public functions are provided to initialize the time base, configuring its desired period - as well as setting up the interrupt priority of the high priority task sequence execution, and - an ENABLE function, enabling the high priority task sequence execution interrupt. - - Once the OS Timer and its interrupts are enabled, the main program will start to execute - the user tasks with their respective priority and in their given order. - -@defgroup user-task-initialization User Task Initialization -@ingroup system-initialization-user-tasks -@brief -@details - One function is used to initialize all high- and low-priority user tasks. Each task provides - a dedicated, public initialization function initializing the main task data objects and - respective chip resources. At this stage, the tasks will be configured but not executed yet. - The execution of the individual high- and low priority tasks will automatically be started - once the operating system timer is initialized and enabled. - -*/ - -// Hardware Abstraction Layer Title -/** -@defgroup abstraction-layer Hardware Abstraction Layer -@brief Hardware Abstraction Layer Declarations -@details - The hardware abstraction layer introduces global defines which can be used in the firmware section of the source code to reference hardware dependent parameters and device peripheral instances and features. - This abstraction is essential to adapt to hardware changes including migration across microcontroller device families and hardware versions with minimum risk and time efforts. - As the microcontroller used in this design is a fixed, irreplaceable board component, this particular Hardware Abstraction Layer (HAL) covers declarations of circuit control and feedback signals as well as - associated microcontroller peripheral instances and features. -*/ - -// Application Layer Sub-Index -/** -@defgroup task-layer Application Layer -@brief Task Layer -@details - The task layer covers all user tasks executed by the task scheduler. Each task is an independent entity - called on its respective priority level defined by the user. Tasks are proprietary user code modules - representing specific functions of the application or end-product. -*/ - - -// Library Layer -/** -@defgroup lib-layer Device Driver Library Layer -@brief Generic Device Driver Layer -@details - Device drivers are generic, comprehensive function libraries. Each library is widely self-contained - and includes functional software routines and resource management functions. Because of their generic - nature, each library requires to be configured by proprietary user code to tailor their function to a - specific application. - - Please refer to the specific device driver libraries for more information on public functions and - properties provided to tailor and apply the supported features. - -@defgroup lib-driver-layer Library Driver Layer -@brief Generic Library Driver Layer -@details - Library drivers are generic function libraries providing specific sub-functions for library modules. - Each library driver is widely self-contained and includes functional software routines and resource - management functions. Because of their generic nature, each library driver requires to be configured - by proprietary user code to tailor their function to a specific application. The settings required to - set up the library driver data objects are routed through the overlaying device driver, which also provides - the API and public data objects holding the library driver settings. - - Please refer to the specific library driver for more information. -*/ diff --git a/.mchp_private/doxygen_src/images/microchip-docs.png b/.mchp_private/doxygen_src/images/microchip-docs.png deleted file mode 100644 index 5077ca9..0000000 Binary files a/.mchp_private/doxygen_src/images/microchip-docs.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/dot_dev-startup.svg b/.mchp_private/doxygen_src/markdown-files/dot_dev-startup.svg deleted file mode 100644 index 3ba5ad8..0000000 --- a/.mchp_private/doxygen_src/markdown-files/dot_dev-startup.svg +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - -dev_startup - - - -reset - -Device Reset - - - -sys_init - -System -Initialization - - - -reset->sys_init - - - - - -usrper_init - -User Peripheral -Initialization - - - -sys_init->usrper_init - - - - - -usrtsk_init - -User Task -Initialization - - - -usrper_init->usrtsk_init - - - - - -ostim_init - -OS Timer -Initialization - - - -usrtsk_init->ostim_init - - - - - -check0 - -Success? - -No - -Yes - - - -ostim_init->check0:check - - - - - -main_loop - -Main Loop - - - -check0:no->reset - - - - - -check0:yes->main_loop - - - - - diff --git a/.mchp_private/doxygen_src/markdown-files/getting_started.md b/.mchp_private/doxygen_src/markdown-files/getting_started.md deleted file mode 100644 index 7da2103..0000000 --- a/.mchp_private/doxygen_src/markdown-files/getting_started.md +++ /dev/null @@ -1,386 +0,0 @@ -# Getting Started - - -
- Firmware Quick-Start Guide -
- -## Table of Contents - -- [Microchip SMPS Firmware Framework Architecture Overview](#sfw_1) - - [Overall Process Alignment](#sfw_1a) - - [Software Task Alignment](#sfw_1b) - - [Software Process Priority Guidelines](#sfw_1c) - -- [Buck Converter State Machine](#sfw_2) - - [Initialization](#sfw_2a) - - [Reset](#sfw_2b) - - [Standby](#sfw_2c) - - [Power-On Delay (POD)](#sfw_2d) - - [Launch Voltage Ramp](#sfw_2e) - - [Voltage Ramp-Up](#sfw_2f) - - [Current Ramp-Up](#sfw_2g) - - [Power Good Delay](#sfw_2h) - - [Online](#sfw_2i) - - [Suspend/Error](#sfw_2j) -- [Real Start-Up Timing of DPSK3](#sfw_3) -- [Fault Monitor](#sfw_4) -- [Evaluation, Customization and Code Migration](#sfw_5) -- [Digital Controller Design](#sfw_6) -- [Power Plant Measurement Support](#sfw_7) - - - -## 1) Microchip SMPS Firmware Framework Architecture Overview - -This introduction covers common aspects of the firmware architecture and provides guidance on specific firmware module documentation included in this document. - - -### a) Overall Process Alignment - -Establishing a digital control system for a switched-mode power supply using a programmable microcontroller requires some specific considerations. Foremost, it is vital to allow the switching signal generation and high-speed real-time control loop to run freely and uninterrupted while background activity of additional, less time critical functions such as communication and housekeeping also gets enough bandwidth to be executed within their required timing tolerances. - -This is achieved by splitting up processes among different functional sections of the device such as independent peripheral modules, the CPU itself and the multi-priority level interrupt controller of the dsPIC33® Digital Signal Controller. Peripherals are function blocks such as the PWM generator logic, Analog-to-Digital Converters (ADC), Digital-to-Analog Converters (DAC) or communication interfaces such as Universal Asynchronous Receiver-Transmitter (UART), Inter-Integrated Circuit (I2C), Serial Peripheral Interface (SPI) or Controller Area Network (CAN), which all support some degree of independent operation from the CPU but may all depend on the same system clock. A second class of peripherals are truly independent such as operational amplifiers, analog comparators or glue logic cells, which can operate even if the CPU and system clock are turned off. - -This arrangement of different function blocks with different degrees of independence allows the generation of highly deterministic, high resolution switching signals commutating the power supply switch node while running multiple other processes in parallel without having one influencing the other. - - -[[back](#startDoc)] - - -### b) Software Task Alignment - -The critical component is where CPU activity needs to get shared between different software-driven processes such as housekeeping background tasks, processing communication protocols and the software-based real-time feedback loop. As the CPU can only execute one instruction at the time, this process alignment is managed by the multi-priority level interrupt controller mentioned above. - -Depending on the device generation, the CPU architecture of dsPIC33® provides between 8 and 16 priority levels on which code can be executed. Interrupt nesting allows higher priority processes to interrupt lower priority processes. While a higher priority process is executed, the lower priority process is stopped at the point when the interrupt occurred. Its execution continues seamlessly after the high priority process has been completed. - -Priority level #0 is the lowest one and is continuously occupied by the main program, which is automatically started when the device comes out of reset. The highest priority level (#8 or #16) is reserved for so-called uninterruptible processes, such as fatal errors caused by a divide by zero, an address error, stack error or oscillator failure, which are the equivalent to a PC's blue screen error. These *fatal errors* will all lead to a CPU reset if not handled in software. All remaining priority levels can be selected by the user and used to arrange software processes to account for their individual importance, timing tolerance or required response time. - -Depending on how many priority levels are staggered for simultaneous execution, the respective execution time of a process will be more deterministic the higher its priority level, resp. less deterministic the lower its priority level is. - -[[back](#startDoc)] - - -#### Example A: Single Interrupt - -The CPU is running executing the main loop of the program on priority level #0. This routine is interrupted by another process called on priority level #2. Hence, the level #0 process is suspended until the process on priority level #2 has been executed and the CPU returns to priority level #0. - -

-

- Single Interrupt -
-

-

Example A: Single Interrupt Process Alignment

- - -While the total execution time of the process on priority level #2 t(p2) in this example is deterministic, as it will be executed uninterrupted, the total execution time of the process on priority level #0 t(p0) will now be the sum of both processes t(p0) + t(p2). Hence, the priority level #2 process will behave more deterministic than the priority level #0 task. - -[[back](#startDoc)] -#### Example B: Two Interrupts - -However, if a even higher priority level #6 process is called while the process on priority level #2 is still active, the priority level #2 process gets also interrupted and suspended until the execution of the priority level #6 process has been completed. - -

-

- Two Interrupt Priorities -
-

-

Example B: Two Interrupts Process Alignment

- -Now the execution time of priority level #6 process is deterministic while the execution time of the priority level #2 process includes the execution time spend to execute the priority level #6 process. The total execution time of the priority level #0 process is now the sum of t(p0), t(p2) and t(p6). - -[[back](#startDoc)] - -#### Example C: Mixed Interrupt Priorities - -To make things even more complex, we now introduce a fourth, simultaneous process on interrupt level #5, which occurs while the higher interrupt priority level #6 is still active. As priority #6 is higher than level #5, the priority level #5 process will be pending until the higher priority level #6 process has been completed. However, instead of stepping back down to the suspended priority level #2 process, the newly occurred priority level #5 process is executed first before the priority level #2 process is continued. The main program will be resumed once all higher priority levels have been completed. - -

-

- Mixed Interrupt Priorities -
-

-

Example C: Mixed Interrupt Priorities Process Alignment

- -[[back](#startDoc)] - - -### c) Software Process Priority Guidelines - -As stated above, in a switched-mode power supply the real-time control loop always requires to have the highest priority in the system to ensure stable operation of the digital compensation filter including all potentially necessary real-time responses applied to the switching operation. In multi-loop control systems such as average current mode, multiple high-priority processes are usually triggered by the switching signal generator (i.e. PWM module) being distributed across a switching cycle to ensure uninterrupted, collision-free execution of each feedback loop. - -The next lower level is commonly reserved for tasks, which are less time critical than the real-time control loops but only allow a limited amount of execution time jitter and require to be executed at a known, deterministic frequency. This is commonly true for the power supply state machine and fault monitor. This class of processes are called high-priority tasks. - -The lowest levels are reserved for uncritical tasks or tasks not relying on deterministic execution such as communication protocol responses, self-diagnostic functions, human-machine interface (HMI) operations or housekeeping functions. - -Each of these three basic levels may accept a certain amount of jitter in its execution period and or execution repetition frequency. Both properties may influence the reliability of a process and needs to be examined carefully to ensure the complete firmware remains stable, reliable and responsive. Slower tasks with comparatively long execution periods usually accept larger execution period jitter as well as are less reliant on a precise execution repetition frequency and therefore can be placed at lower priority levels. the more time critical a process, the shorter it execution time usually is, allowing to place it at higher priorities, frequently interrupting the lower priority tasks. - -For example, processing a communication response includes multiple different steps such as receiving a certain number of data bytes, performing a cyclic redundancy check (CRC) validating, parsing command and data content, generating the response, handing the response back to the communication interface, monitoring the transmission of the response. Depending on the type of interface and transmission mechanism used, this process can take many milliseconds to complete and may occur every couple of seconds. Im comparison, a real-time control loop of a power supply may only take a couple of 100 nanoseconds to be executed at a repetition frequency of several 100 kHz. Hence, processing the communication protocol will potentially get interrupted thousands of times in one communication cycle. - -Hence, aligning low and high priority processes requires to break up the longer, more tolerant tasks in smaller sub-processes, which can be called in defined sequences, the so-called states. These states are then managed and monitored by individual sequencers called state machines. The more processes need to run in parallel, the smaller the individual states of a state machine need to be to allow most effective interleaving of parallel processes. - -[[back](#startDoc)] - - -## 2) Buck Converter State Machine - -The state machine managing the power converter of the development board is implemented as high priority task in the task execution scheme described above. This state machine is tuned for constant voltage regulation. Hence, it offers user-programmable soft-start support including power on-delay, ramp up slope and power good delay, which allows users to tune the startup behavior and include this module in a larger sequencing scheme. The state machine further supports hardware triggered events such as an external ENABLE pin and a POWER GOOD output. Both active pins can be configured in push-pull (default) or open drain mode. - -The startup configuration can be configured as shown in the following drawing: - -

-

- Soft-Start Timing Profile -
-

-

Soft-Start Timing Profile

- -[[back](#startDoc)] - -During execution, it goes through the following steps in chronological order: - - -### a) Initialization - -In this step the control loop parameters are reset to their defaults, PWM outputs are turned off but the PWM is still running, continuously triggering the ADC to keep sampling input and output voltage as well as board temperature. - -[[back](#startDoc)] - - -### b) Reset -This is the 'fall-back' state from which the buck converter will be restarted once it has been started successfully and has been shut down due to a fault condition (e.g. input under/over voltage or over temperature condition) - -[[back](#startDoc)] - - -### c) Standby -After [Reset](#sfw_2b), the state machine waits for all fault flags to be cleared and the enable and GO bits to be set. If the AutoRun option of the power converter data object is enabled, the GO bit will be set automatically as soon as the Enable bit is set. - -[[back](#startDoc)] - - -### d) Power-On Delay (POD) -Once the power converter fault flags have been cleared the state machine will execute the startup procedure starting with the Power On Delay. This is a simple, counter-based delay during which the converter will remain inactive but the fault handler will observe the values generated by the ADC for occurring fault conditions. If a fault condition is detected, the state machine will be reset to state [Reset](#sfw_2b) and all fault flags have to be cleared first before the state machine is allowed to proceed with the start-up procedure. - -[[back](#startDoc)] - - -### e) Launch Voltage Ramp -After the Power-On delay has expired, input and output voltage will be measured. If some residual output voltage is detected, an ideal duty cycle is calculated which will produce an output voltage matching the measured value. The power controller will be 'pre-charged' with the result of this calculation by programming the estimated duty cycle into the control history and set the initial PWM duty cycle output. When the power supply is then turned on, it will tune into the residual output voltage and smoothly ramp up the output voltage from its most recent level without causing reverse current spikes or glitches in output voltage levels. - -[[back](#startDoc)] - - -### f) Voltage Ramp-Up -Now the digital feedback loop and PWM are enabled and the closed loop system reference value is incremented with every execution of the state machine (typical interval = 100 µsec). The control loop has been adjusted to operate with a cross-over frequency of >10 kHz matching the maximum perturbation frequency allowed to keep the control system stable. - -The control loop is active during the entire ramp-up phase. A controlled soft-start will therefore also compensate potential load changes which might occur when the output voltage passes the minimum operating voltage of the load. - -When the control loop is enabled, the fault handler will continuously compare the most recent output voltage against the given feedback loop reference. Should the deviation between both exceed a give limit for a given amount of time, a Regulation Error will be tripped and the power supply will shut down, assuming a system failure such as a shorted output, a permanent over load condition or insufficient power supply input has occurred. The shut-down of the power supply will also reset the state machine to [Reset](#sfw_2b) state, from which all fault flags have to be cleared first, before the state machine is allowed to initiate a new start-up attempt. Each repeated start-up event will go through all state described above, including the Power-On Delay. - -[[back](#startDoc)] - -### g) Current Ramp-Up -This additional state is only executed in average current mode control (ACMC), where the power supply could potentially run into current limit conditions while ramping up the output voltage. It is also covering the output current soft start for constant current applications such as battery chargers or LED and laser drivers. - -The mechanism of the state machine will seamlessly switch from voltage ramp up to current ramp up when the control system hits the current limit during the voltage ramp up. In this state the state machine will ramp up until it matches the declared maximum output current, at which point the state machine will more on to the Power Good Delay (PGD) state. - -*Use Case Example Battery Charger:* - -In a typical battery charger application the maximum output voltage will be defined by the maximum charing voltage and total voltage level of the battery stack topology. The Anti-Windup limits are set for limiting the current loop references where the starting value is set to the minimum charging current value equivalent. When the power supply ramps up, this current limit will be hit and the state machine will switch to this current ramp up state. - -The user can define a maximum current limit for this ramp up, which, in most cases, will be set by some battery management firmware driver. The ramp up slew rate of the current is defined in the same way as the voltage ramp up slew rate in the hardware abstraction layer. When the declared limit has been reached, the power supply state machine will pass through the [Power Good Delay (PGD)](#sfw_2h) period entering the [Online](#sfw_2i) state. - -In the [Online](#sfw_2i) state external firmware (e.g. battery management firmware) will have full control over the current reference able to apply the charing profile. In pulsed charging mode, the power supply device driver API provides the two functions SUSPEND and RESUME to turn the charger on and off at low frequency, where the duty ratio of the pulse charging must be adjusted by the external firmware module. - -The transition between constant current and constant voltage charging will automatically occur when the declared voltage reference matches the most recent output voltage at which point the current loop is not operating in current limit mode anymore. In this condition the power supply will behave like a normal average current mode controlled converter. With increasing charge, the output current will steadily drop until passing the cut-off threshold level. This threshold level must be managed by the external firmware module. - -The continuous closed loop average current mode control structure also allows to power loads while charging as the feedback loop can seamlessly transition between constant current and constant voltage mode. - - -[[back](#startDoc)] - - -### h) Power Good Delay (PGD) -After the reference voltage has been increased to the pre-defined nominal level, the state machine switches over into the Power Good Delay period. This is another, simple, counter-based delay where the control loop is kept in steady state waiting for the delay period to expire. - -During the Power Good period no significant variation of the output voltage is allowed. Any glitch exceeding the allowed maximum deviation will reset the Power Good timer. Multiple Power Good timer resets are considered to indicate a system failure, which forces a power supply restart. During this period the fault handler also monitors all other fault objects such as regulation deviation, input over- and under voltage, output over current and over temperature conditions. - -When the Power Good timer expires and no error has been detected, the Power Good GPIO will be set HIGH and the state machine enters the Online state. - -[[back](#startDoc)] - - -### i) Online -After the Power Good Delay has expired, the converter drops into nominal operation. In this condition it continuously observes the reference value for changes. Should any other part of the firmware change the controller reference, the state machine will softly tune into the new level instead of hard-switching the reference by incrementing/decrementing the control reference until the value meets the new commanded reference value. - -[[back](#startDoc)] - - -### j) Suspend/Error -If the power controller is shut down and reset by external commands (e.g. fault handler detecting a fault condition or through user-interaction), the state machine is switching into the SUSPEND state, which disables the PWM outputs and control loop execution, clears the control histories and resets the state machine back to [Reset](#sfw_2b) - - - -[[back](#startDoc)] - - -## 3) Real Start-Up Timing of DPSK3 - -The Digital Power Starter Kit 3 is equipped with a set of independent protection circuits preventing hardware damages in case of floored peripheral configurations or unstable control loops, to give users the safety of experimenting without risk or damaging the hardware. - -Most of these protection circuits are located on the bottom side of the board and are managed by an additional PIC24 microcontroller. This housekeeping MCU needs to startup first and clear the protection circuit before the dsPIC section of the board is enabled. The following figure shows the real start-up timing of the DSPK3 hardware. When input power is applied to the board, there is a ~500 ms long pause, during which the auxiliary power supplies are ramping up, the PIC24 housekeeping device wakes up, analyzes the system conditions, clears the protection logic and finally allows the dsPIC to run. - -After the Firmware Start event, the dsPIC firmware starts up and initializes peripherals and software modules. After this short delay, the Soft-Start timing pattern is rolled out by the power converter state machine as described above. - -

-

- Soft-Start Timing Profile -
-

-

DPSK3 Start-Up Timing Profile

- -Signals measured at: -- Test Point TP1: Input Voltage (Cyan) -- Test Point TP12: Output Voltage (Green) -- Test Point TP53: Power Good Output (Magenta) - -[[back](#startDoc)] - - -## 4) Fault Monitor - -The fault handler is an independent firmware task, based on a fault monitor library, which is used to define certain so-called Fault Objects. A 'Fault Object' represents a value of a special function register or global user variable, which will monitored and validated by the Fault Monitor Library. The Library supports different comparisons for validation, such as - -- Greater Than -- Less Than -- Equal -- Not Equal -- Within Range -- Out Of Range - -Fault Monitor source values are either compared against a user-defined constant (static threshold), or another variable (dynamic threshold). THe Fault Monitor further supports two thresholds, one defining the Fault Trip Level and a second Fault Recovery Level. Depending on the type of comparison selected, the range between both thresholds is either interpreted as hysteresis or range. (see **Fault Handler Library** for details) - -The fundamental mechanism of detecting fault conditions and creating trip and recovery responses is based on a simple, adjustable detection filter, which does not influence the monitored value but delays the response of the software. Depending on the type of value monitored, the firmware may need to react sooner or later while the fault detection sensitivity needs to be adjusted accordingly to prevent the power supply from unintended shut downs. - -The delay filter counts successive threshold violations, comparing the most recent counter value against an absolute, user-defined maximum. When one sample of the monitored value does *not* violate the given threshold, the counter is reset and starts incrementing from zero at the next threshold detection. When the monitored value remains violating the given threshold until the counter reaches or exceeds the defined maximum counter value, the power supply shut down event is triggered, turning off PWM outputs and control loops and resetting the state machine, waiting for the fault condition to disappear. - -

-

- Fault Detection -
-

-

Fault Detection

- -Recovering from a fault condition uses the same mechanism, but provides its individual set of parameters. Thus, fault trip responses can be adjusted to be aggressive while recovery events can be further delayed to prevent the end-product from falling into an undesired, high frequency shut-down/restart cycle. - -

-

- Fault Detection -
-

-

Fault Recovery

- -#### The most recent firmware version supports the following fault objects: - -- **Under Voltage Lock Out (UVLO)** - When the input voltage drops below the specified minimum voltage, the power supply is shut down, waiting for the input voltage to recover. If the power has been cut, the power supply will remain off until all capacitors are discharged and the microcontroller (MCU) shuts down. The PWM inputs of teh FET driver are pulled low until that point. The MCU drops out at voltages below 2.9V, which is below the UVLO level of teh FET driver. Hence, the gate drive signals remain pulled to off-state continuously without the chance to accidentally turn on. -
-- **Over Voltage Lock Out (UVLO)** - When the input voltage exceeds the specified absolute maximum value, the power supply is shut down. waiting for the input voltage to drop back into the specified range. Auxiliary power supply, feedback voltage dividers and the power FETs support input voltages of up to 20V above the specified maximum to allow proper tracking of the input voltage even under fault conditions. -
-- **Regulation Error (RegErr)** - This fault object continuously monitors the deviation between output voltage and control reference. With a small deviation and a time delay, which allows normal voltage drops and overshoots during load transients, this fault object is the last line of defense. Any fault condition which cannot be detected by the other fault objects, such as internal short circuits, oscillating feedback loops or failing components, will inevitably result in larger deviations of the output voltage from the given reference and will lead to a protective shut down of the power supply. -
- -#### Optional fault objects: - -- **Over Current Protection (OCP)** *(optional)* - The over current protection requires a very fast response in comparison to voltage monitors. Hence, two successive threshold violations are enough to trip an over current fault condition, shutting down the power supply. As an over current fault condition disappears instantly when the power supply has been shut down, the recovery delay needs to be significantly expended to result in a decent fault response behavior of the end-product. -
-- **Over Temperature Warning (OTW)** *(optional)* - The over temperature warning is commonly triggered when the board or system temperature exceeds a threshold value, which is still within the safe operating area but is higher than under commonly expected conditions. The warning allows state machines to take counter measures (e.g. power derating, partial load drop) if possible helping to reduce power losses. In systems where active counter measures are not an option, communication with the load could prevent fatal system failures. However, any measures taken are highly application dependent and have to be implemented as proprietary user functions. -
-- **Over Temperature Protection (OTP)** *(optional)* - The over temperature protection is triggered when the board or system temperature exceeds a absolute maximum threshold value, at which the system has to be shut down to prevent permanent damage. It is recommended to include a wide hysteresis to allow the board to cool down significantly before initiating a restart attempt to prevent the power converter from ending up in a frequent shut-down/restart cycle. -
- -[[back](#startDoc)] - - -## 5) Evaluation, Customization and Code Migration - -This firmware utilizes a so-called hardware abstraction layer, allowing users to quickly change fundamental system parameters, adopt pin-out and hardware changes and even migrating the -firmware across different designs without having to modify the actual source code. - -Any change to the firmware and fundamental operation of the reference design or development board, including reprogramming of the nominal output voltage can be done by editing the hardware-specific values in the hardware description header file **'[Board-ID]_hwdescr.h'** located in **'Project Manager => Header Files/Config'** - -Converter settings in this file are defined as physical values such as Volt, Ampere, Ohm, etc. Each defined value is converted into binary numbers by so-called macros, at compile time. Thus, users do not have to convert values manually. - -A detailed description of all available settings, their valid range and purpose can be found in chapter **Hardware Abstraction Layer** in this documentation. - -#### Example: -To program the converter to provide a nominal output voltage different from the default setting, follow these steps: - - - Open the project in MPLAB® X IDE - - Navigate to 'Header Files/Config/[Board-ID]_hwdescr.h' using the Project Manager on the left side of the main window - - Check section *Software Overview/Hardware Abstraction Layer* on the left of this document to identify the desired code line - - Change the given setting as desired - - Build the program - - Remove power from the input of the power converter of the development board - - Connect a valid ICSP programming device (e.g. MPLAB® ICD4, MPLAB® PICkit4) to the PC and the development board - - Program the device with the target device being powered by the debugger/programmer - - Disconnect the ICSP programming device from the development board - - Apply valid input voltage across the input terminals of the development board power converter and observe the output voltage - -The setting for the nominal output voltage is found in lines #484 through #486. - - #define BUCK_VOUT_NOMINAL (float)3.300 // Nominal output voltage - #define BUCK_VOUT_TOLERANCE_MAX (float)0.500 // Output voltage tolerance [+/-] - #define BUCK_VOUT_TOLERANCE_MIN (float)0.100 // Output voltage tolerance [+/-] - -#### Please note: -The tolerance settings above include the transient response at a maximum load step. The value for maximum output voltage tolerance (e.g. 'BUCK_VOUT_TOLERANCE_MAX') is monitored by the fault handler. Should the output voltage reading divert from the most recent reference voltage value by more than the given range, the converter will be shut down and a REGULATION ERROR will be indicated. The power supply will automatically recover as soon as the fault condition has been cleared and the recover delay period specified by BUCK_REGERR_RECOVERY_DELAY in the hardware description header file has expired. - -(line numbers given may be subject to change) - -[[back](#startDoc)] - - -## 6) Digital Controller Design - -The control loop source code is configured and generated by the PowerSmart™ - Digital Control Library Designer (PS-DCLD) software. - -This additional design software is available for download on Github Pages: - - - [PowerSmart™ Digital Control Library Designer Github Page](https://areiter128.github.io/DCLD) - -Once installed, the controller configuration can be modified. The most recent configuration can be opened from within the MPLAB® X IDE by right-clicking on the file (e.g. **'v_loop.dcld'**) located in the **Important Files** folder of the **MPLAB® X Project Manager**. When right-clicked, select **Open In System** to open the configuration in PowerSmart™ DCLD. - -Please refer to the user guide of PowerSmart™ DCLD which is included in the software and can be opened from the help menu of the application. - -[[back](#startDoc)] - - -## 7) Power Plant Measurement Support - -This code examples includes an alternative, proportional control loop which is commonly used during measurements of the frequency response of the power plant. When the following define is set to **true**, the common main control loop is replaced by the proportional controller. The code has to be rebuilt and programmed to run the measurement. - - [Board-ID]_hwdescr.h: #define PLANT_MEASUREMENT false - - - -

PLEASE NOTE:

-

-PROPORTIONAL CONTROLLERS ARE BY DEFAULT UNSTABLE AND NOT SUITED TO REGULATE THE OUTPUT OF A POWER SUPPLY UNDER NORMAL OPERATING CONDITIONS. DURING A PLANT MEASUREMENT IT IS MANDATORY THAT INPUT VOLTAGE AND LOAD REMAIN STABLE AND DO NOT CHANGE.

-

-FOR MORE INFORMATION ABOUT HOW TO CONDUCT A POWER PLANT MEASUREMENT, PLEASE READ THE SECTIONS IN THE PowerSmart™ DCLD USER GUIDE.

-
- - -[[back](#startDoc)] - - -_________________________________________________ -(c) 2021, Microchip Technology Inc. - diff --git a/.mchp_private/doxygen_src/markdown-files/images/average-current-mode-control.png b/.mchp_private/doxygen_src/markdown-files/images/average-current-mode-control.png deleted file mode 100644 index f274183..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/average-current-mode-control.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/cancel.png b/.mchp_private/doxygen_src/markdown-files/images/cancel.png deleted file mode 100644 index e7b9248..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/cancel.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/control-flow-chart.png b/.mchp_private/doxygen_src/markdown-files/images/control-flow-chart.png deleted file mode 100644 index a2c12bd..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/control-flow-chart.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/control_timing.png b/.mchp_private/doxygen_src/markdown-files/images/control_timing.png deleted file mode 100644 index fbfad5b..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/control_timing.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/control_timing_acmc.png b/.mchp_private/doxygen_src/markdown-files/images/control_timing_acmc.png deleted file mode 100644 index 9a6891c..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/control_timing_acmc.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/dev-startup.png b/.mchp_private/doxygen_src/markdown-files/images/dev-startup.png deleted file mode 100644 index c2a1079..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/dev-startup.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/dpsk3-startup.png b/.mchp_private/doxygen_src/markdown-files/images/dpsk3-startup.png deleted file mode 100644 index a69f4fa..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/dpsk3-startup.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/fault_recovery.png b/.mchp_private/doxygen_src/markdown-files/images/fault_recovery.png deleted file mode 100644 index 35c191a..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/fault_recovery.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/fault_recovery.svg b/.mchp_private/doxygen_src/markdown-files/images/fault_recovery.svg deleted file mode 100644 index f1ff9e6..0000000 --- a/.mchp_private/doxygen_src/markdown-files/images/fault_recovery.svg +++ /dev/null @@ -1,1074 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1.98 C 7.18 -21.22, 7.36 -19.78, 7.49 -17.67 C 7.61 -15.57, 7.68 -13.42, 7.68 -11.22 C 7.68 -9.54, 7.67 -7.89, 7.64 -6.26 C 7.62 -4.62, 7.61 -3.52, 7.61 -2.96 C 7.66 -2.95, 8.1 -2.98, 8.94 -3.04 C 9.78 -3.09, 10.63 -3.16, 11.49 -3.22 C 12.82 -3.38, 14.23 -3.61, 15.74 -3.9 C 17.25 -4.18, 18.14 -4.32, 18.42 -4.32 C 18.84 -4.32, 19.1 -4.16, 19.2 -3.84 C 19.29 -3.52, 19.34 -3.2, 19.34 -2.86 Z '/> - - - - - - - - - - - diff --git a/.mchp_private/doxygen_src/markdown-files/images/fault_trip.png b/.mchp_private/doxygen_src/markdown-files/images/fault_trip.png deleted file mode 100644 index dd2e032..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/fault_trip.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/fault_trip.svg b/.mchp_private/doxygen_src/markdown-files/images/fault_trip.svg deleted file mode 100644 index 54f6349..0000000 --- a/.mchp_private/doxygen_src/markdown-files/images/fault_trip.svg +++ /dev/null @@ -1,1059 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.mchp_private/doxygen_src/markdown-files/images/hpbanner.png b/.mchp_private/doxygen_src/markdown-files/images/hpbanner.png deleted file mode 100644 index 05914af..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/hpbanner.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2-6-5.png b/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2-6-5.png deleted file mode 100644 index f95182e..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2-6-5.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2-6-5.svg b/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2-6-5.svg deleted file mode 100644 index 2a5bbf5..0000000 --- a/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2-6-5.svg +++ /dev/null @@ -1,500 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2-6.png b/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2-6.png deleted file mode 100644 index 276cf69..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2-6.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2-6.svg b/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2-6.svg deleted file mode 100644 index afa80e6..0000000 --- a/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2-6.svg +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2.png b/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2.png deleted file mode 100644 index 54909ec..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2.svg b/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2.svg deleted file mode 100644 index cee8800..0000000 --- a/.mchp_private/doxygen_src/markdown-files/images/irq_p0-2.svg +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.mchp_private/doxygen_src/markdown-files/images/microchip.jpg b/.mchp_private/doxygen_src/markdown-files/images/microchip.jpg deleted file mode 100644 index 8b1829c..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/microchip.jpg and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/npnz16b-flowchart-agc.png b/.mchp_private/doxygen_src/markdown-files/images/npnz16b-flowchart-agc.png deleted file mode 100644 index b7b877b..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/npnz16b-flowchart-agc.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/npnz16b-flowchart.png b/.mchp_private/doxygen_src/markdown-files/images/npnz16b-flowchart.png deleted file mode 100644 index 63c5188..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/npnz16b-flowchart.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/ovlo_fault_trip.svg b/.mchp_private/doxygen_src/markdown-files/images/ovlo_fault_trip.svg deleted file mode 100644 index 7b8541d..0000000 --- a/.mchp_private/doxygen_src/markdown-files/images/ovlo_fault_trip.svg +++ /dev/null @@ -1,1047 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.mchp_private/doxygen_src/markdown-files/images/pwm_events.png b/.mchp_private/doxygen_src/markdown-files/images/pwm_events.png deleted file mode 100644 index 9082312..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/pwm_events.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/pwm_events_acmc.png b/.mchp_private/doxygen_src/markdown-files/images/pwm_events_acmc.png deleted file mode 100644 index 75d3984..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/pwm_events_acmc.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/sfw_main.png b/.mchp_private/doxygen_src/markdown-files/images/sfw_main.png deleted file mode 100644 index 280fcca..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/sfw_main.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/soft-start.png b/.mchp_private/doxygen_src/markdown-files/images/soft-start.png deleted file mode 100644 index a751f54..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/soft-start.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/startbanner.png b/.mchp_private/doxygen_src/markdown-files/images/startbanner.png deleted file mode 100644 index 1989391..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/startbanner.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/uvlo_fault_trip.svg b/.mchp_private/doxygen_src/markdown-files/images/uvlo_fault_trip.svg deleted file mode 100644 index 649cd5e..0000000 --- a/.mchp_private/doxygen_src/markdown-files/images/uvlo_fault_trip.svg +++ /dev/null @@ -1,1059 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.mchp_private/doxygen_src/markdown-files/images/voltage-mode-control-with-agc.png b/.mchp_private/doxygen_src/markdown-files/images/voltage-mode-control-with-agc.png deleted file mode 100644 index 37eb9b6..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/voltage-mode-control-with-agc.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/images/voltage-mode-control.png b/.mchp_private/doxygen_src/markdown-files/images/voltage-mode-control.png deleted file mode 100644 index 3897271..0000000 Binary files a/.mchp_private/doxygen_src/markdown-files/images/voltage-mode-control.png and /dev/null differ diff --git a/.mchp_private/doxygen_src/markdown-files/power-supply_control.md b/.mchp_private/doxygen_src/markdown-files/power-supply_control.md deleted file mode 100644 index a19eae7..0000000 --- a/.mchp_private/doxygen_src/markdown-files/power-supply_control.md +++ /dev/null @@ -1,106 +0,0 @@ -# Power Supply Control - - -
- Firmware Quick-Start Guide -
- -## Table of Contents - -- [DPSK3 Buck Converter Average Current Mode Control Implementation](#vmc_1) -- [Control Loop Block Diagram](#vmc_2) -- [Control Loop Timing](#vmc_3) -- [Control Loop Flow Chart](#vmc_4) -- [Control Loop Firmware Implementation](#vmc_5) - - - - -## 1) DPSK3 Buck Converter Average Current Mode Control Implementation - -This firmware demonstrates the implementation of a typical dual-loop average current mode controller used to regulate the constant output voltage of the on-board step-down converter of the Digital Power Starter Kit 3 (DPSK3). The implementation of the Current Mode Feedback Loop requires two Analog-to-Digital Converter (ADC) inputs oversampling the output voltage and inductor current of the converter and two PWM outputs (PWM high and PWM low) to drive the power converter half-bridge switch-node in synchronous mode. - -[[back](#startDoc)] - - -## 2) Control Loop Block Diagram - -*Figure 1* shows the block diagram of the buck converter average current mode controller, comprised of an outer voltage loop providing the control reference to an inner current loop. The first ADC input is used to sample the most recent level of the output voltage feedback signal. Once converted, the value is then compared against the internal voltage reference value and the inverse of the deviation between reference and feedback (= *error*) is pushed through the first discrete compensation filter stage. An Anti-Windup Limiter is used to limit the control loop output range to user-specified minimum and maximum limits. - -The output of the outer voltage loop is passed on to the current reference input of the inner loop, where it gets compared against the most recent current feedback input read through the second ADC input. The inverse of the deviation between reference and feedback (= *error*) is pushed through the second discrete compensation filter stage. The output of the inner current loop is also passed through an Anti-Windup limiter, limiting the current loop control output to a user-specified range. The limiter output value is then written directly to the PWM duty cycle register of the PWM logic. - -
- Firmware Quick-Start Guide -
Figure 1: Control Loop Block Diagram of Dual-Loop Average Current Mode Control Loop
-
-
- - - -## 3) Control Loop Timing - -The average current mode control loop block is triggered by the PWM counter at -50% of the off-time. At this point the outer voltage loop controller is called in parallel with the output voltage ADC trigger. The first stage of the control loop is executing the overhead code of calculating the first part of the compensation filter term (= *A-Term*) until the most recent ADC sample is available to be processed in the later part of the compensation filter term computation (= *B-Term*). This approach helps to shorten the overall response time of the controller measured between ADC trigger and write back event of the most recent controller result to the duty cycle register of the PWM generator. - -The output of the first stage of the control loop is then passed on to the second stage, the inner current loop. This part of the loop compares the new reference with the most recent inductor current feedback value, which was acquired previously at 50% on-time. The reciprocal of the deviation is passed through the second discrete time domain filter HC(z) and Anti-Windup Limiter. The new controller output value will then be divided by two. This value will be used to set the ADC trigger of the current loop at 50% of the on-time and added to half of the period value to place the new ADC trigger point at 50% of the off-time for the voltage loop. If the user has specified additional offsets to compensate FET driver propagation delays, this constant time-offset is added before the ADC trigger locations are updated. - -The new output of the current loop will be written to the PWM duty cycle register and will be updated immediately when the new value of the ADC trigger location of the voltage loop is written to the PWM generator logic. - - -
- Firmware Quick-Start Guide -
Figure 2: Control Loop Timing
-
-
- -[[back](#startDoc)] - - -## 4) Control Loop Flow Chart - -*Figure 4* shows a typical flow chart of a discrete software feedback loop called at the desired control frequency. It covers the loop path from ADC trigger to PWM output shown in the block diagram above (see *Figure 2 and 3*) while supporting additional features like an *Enable/Disable Bypass Switch* or advanced features like *Adaptive Gain Control (AGC)*. - -- [green] boxes represent default building blocks -- [grey] boxes represent unused optional features -- [blue] boxes represent active optional features - -
- Firmware Quick-Start Guide -
Figure 3: Single Control Loop Flow Chart
-
-
- - -[[back](#startDoc)] - - -## 5) Control Loop Firmware Implementation - -*Figure 5* shows a typical implementation of the power converter state machine and the high-speed control loop in a task scheduler based firmware environment (order right to left of Figure 5). - -- Real Time Control Loop and Low Level Drivers -The control loop is called in an independent high priority Interrupt Service Routine (ISR) by the PWM module simultaneously with triggering the ADC input. Thus, the control loop is tightly coupled to the PWM switching signal and synchronized to the most recent ADC conversion process, allowing a highly deterministic arrangement of code execution, peripheral module activity and external analog circuit operation. The interrupt priority needs to be high enough to override all other software tasks of the firmware to ensure jitter-free execution of the control loop. -

-- Topology-Specific State Machine Library -Each converter topology requires a specifically tailored configuration of related chip resources as well as start-up, control and monitoring procedures. *Topology State Machine Libraries* support a wide range of circuit configurations, control modes and functional features. Build-in peripheral configuration drivers are used to ease the configuration of required chip resources, such as number of PWM channels and their signal configuration, number of Analog-to-Digital (ADC) inputs, analog comparators, Digital-to-Analog Converter (DAC) channels, etc. -All user configurations of a topology specific power converter are encapsulated in a comprehensive data object. This approach allows the definition of multiple power supplies of the same type being included, monitored and run independently from each other. Each of these power converter objects also include the declaration of the high-speed control loop object described above, enabling it to control peripherals and control loop code to be synchronized to time-critical states. -

-- Application Layer of the Power Supply Control Task -The application layer of this task is the proprietary firmware component covering the application-specific configuration of library data objects and high-speed control loops. It also allows to add and tailor functions, which are not covered by the default features of library modules. -

-- Scheduler Level -The scheduler level organizes all tasks of the firmware. Besides the power control and related fault handler task, this DPSK3 code example includes the on-board LC display data output, the on-board push-button control of the LC display screens and the on-board debugging LED, which are considered less time critical, low-priority tasks. The main task scheduler in this firmware example therefore supports two priority levels, one for power control and fault handling, executed at a rate of 10 kHz (= 100 us interval) and the low priority tasks, executed at rates between 0.5 ms and 250 ms. -

- -
- Firmware Quick-Start Guide -
Figure 4: Control Loop Firmware Implementation
-
- -

-More detailed information on the library implementation, such as task and library APIs, can be found in the chapter *Software Overview* on the left side of this window. - -[[back](#startDoc)] - -_________________________________________________ -(c) 2021, Microchip Technology Inc. diff --git a/.mchp_private/doxygen_src/templates/doxyfile b/.mchp_private/doxygen_src/templates/doxyfile deleted file mode 100644 index c936d35..0000000 --- a/.mchp_private/doxygen_src/templates/doxyfile +++ /dev/null @@ -1,2598 +0,0 @@ -# Doxyfile 1.8.20 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the configuration -# file that follow. The default is UTF-8 which is also the encoding used for all -# text before the first occurrence of this tag. Doxygen uses libiconv (or the -# iconv built into libc) for the transcoding. See -# https://www.gnu.org/software/libiconv/ for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = "EPC9137 48V-to-12V Bi-directional Power Module " - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = "EPC9137 1.5 kW 48V/12V Bi-directional Power Module Evaluation Board Firmware" - -# With the PROJECT_LOGO tag one can specify a logo or an icon that is included -# in the documentation. The maximum height of the logo should not exceed 55 -# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy -# the logo to the output directory. - -PROJECT_LOGO = ../images/microchip-docs.png - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = ../../../docs - -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all generated output in the proper direction. -# Possible values are: None, LTR, RTL and Context. -# The default value is: None. - -OUTPUT_TEXT_DIRECTION = None - -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = YES - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = ../../../ - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = ../../../epc9137-firmware.X/sources - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = YES - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = NO - -# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line -# such as -# /*************** -# as being the beginning of a Javadoc-style comment "banner". If set to NO, the -# Javadoc-style will behave just like regular comments and it will not be -# interpreted by doxygen. -# The default value is: NO. - -JAVADOC_BANNER = YES - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# By default Python docstrings are displayed as preformatted text and doxygen's -# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the -# doxygen's special commands can be used and the contents of the docstring -# documentation blocks is shown as doxygen documentation. -# The default value is: YES. - -PYTHON_DOCSTRING = YES - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new -# page for each member. If set to NO, the documentation of a member will be part -# of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 4 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines (in the resulting output). You can put ^^ in the value part of an -# alias to insert a newline as if a physical newline was in the original file. -# When you need a literal { or } or , in the value part of an alias you have to -# escape them by means of a backslash (\), this can lead to conflicts with the -# commands \{ and \} for these it is advised to use the version @{ and @} or use -# a double escape (\\{ and \\}) - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice -# sources only. Doxygen will then generate output that is more tailored for that -# language. For instance, namespaces will be presented as modules, types will be -# separated into more groups, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_SLICE = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, -# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL, -# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: -# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser -# tries to guess whether the code is fixed or free formatted code, this is the -# default for Fortran type files). For instance to make doxygen treat .inc files -# as Fortran files (default is PHP), and .f files as C (default is Fortran), -# use: inc=Fortran f=C. -# -# Note: For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See https://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = YES - -# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up -# to that level are automatically included in the table of contents, even if -# they do not have an id attribute. -# Note: This feature currently applies only to Markdown headings. -# Minimum value: 0, maximum value: 99, default value: 5. -# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. - -TOC_INCLUDE_HEADINGS = 2 - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by putting a % sign in front of the word or -# globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# If one adds a struct or class to a group and this option is enabled, then also -# any nested class or struct is added to the same group. By default this option -# is disabled and one has to add nested compounds explicitly via \ingroup. -# The default value is: NO. - -GROUP_NESTED_COMPOUNDS = YES - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = NO - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use -# during processing. When set to 0 doxygen will based this on the number of -# cores available in the system. You can set it explicitly to a value larger -# than 0 to get more control over the balance between CPU load and processing -# speed. At this moment only the input processing can be done using multiple -# threads. Since this is still an experimental feature the default is set to 1, -# which efficively disables parallel processing. Please report any issues you -# encounter. Generating dot graphs in parallel is controlled by the -# DOT_NUM_THREADS setting. -# Minimum value: 0, maximum value: 32, default value: 1. - -NUM_PROC_THREADS = 1 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = YES - -# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual -# methods of a class will be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIV_VIRTUAL = NO - -# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = YES - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO, -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = NO - -# This flag is only useful for Objective-C code. If set to YES, local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO, only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# declarations. If set to NO, these declarations will be included in the -# documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO, these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# (including Cygwin) and Mac users are advised to set this option to NO. -# The default value is: system dependent. - -CASE_SENSE_NAMES = NO - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES, the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = YES - -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will -# append additional text to a page's title, such as Class Reference. If set to -# YES the compound reference will be hidden. -# The default value is: NO. - -HIDE_COMPOUND_REFERENCE= NO - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = YES - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - -SHOW_GROUPED_MEMB_INC = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. Note that -# this will also influence the order of the classes in the class list. -# The default value is: NO. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo -# list. This list is created by putting \todo commands in the documentation. -# The default value is: YES. - -GENERATE_TODOLIST = NO - -# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test -# list. This list is created by putting \test commands in the documentation. -# The default value is: YES. - -GENERATE_TESTLIST = NO - -# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = NO - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= NO - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = INCLUDE_BUCK \ - INCLUDE_LCD - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES, the -# list will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = YES - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = NO - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = mchp_layout.xml - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. See also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. If -# EXTRACT_ALL is set to YES then this flag will automatically be disabled. -# The default value is: NO. - -WARN_NO_PARAMDOC = NO - -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. -# The default value is: NO. - -WARN_AS_ERROR = NO - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING -# Note: If this tag is empty the current directory is searched. - -INPUT = ../../../epc9137-firmware.X/sources \ - ../../../README.md \ - ../dox-files \ - ../markdown-files - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: https://www.gnu.org/software/libiconv/) for the list of -# possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. -# -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), -# *.doc (to be provided as doxygen C comment), *.txt (to be provided as doxygen -# C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, -# *.vhdl, *.ucf, *.qsf and *.ice. - -FILE_PATTERNS = *.c \ - *.h \ - *.dox \ - *.txt \ - *.md \ - *.s \ - *.S \ - *.inc - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = ../../../epc9137-firmware.X/sources/fault_handler/drivers/README.md \ - ../../../epc9137-firmware.X/sources/common/p33c_pral/README.md \ - ../../../epc9137-firmware.X/sources/power_control/devices/README.md - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = __attribute__ \ - ((packed)) \ - ((always_inline)) \ - ((__persistent__)) \ - ((__interrupt__)) \ - "((interrupt, no_auto_psv))" \ - "((__interrupt__, context, no_auto_psv))" \ - __persistent__ \ - packed \ - always_inline \ - interrupt \ - no_auto_psv \ - context \ - auto_psv \ - __attribute__((packed)) \ - void \ - __attribute__((always_inline)) \ - ((near)) \ - __attribute__((near)) - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = ../../../images - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = ../../../README.md - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# entity all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = YES - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see https://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = YES - -# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the -# cost of reduced performance. This can be particularly helpful with template -# rich C++ code for which doxygen's built-in parser lacks the necessary type -# information. -# Note: The availability of this option depends on whether or not doxygen was -# generated with the -Duse_libclang=ON option for CMake. -# The default value is: NO. - -CLANG_ASSISTED_PARSING = NO - -# If clang assisted parsing is enabled you can provide the compiler with command -# line options that you would normally use when invoking the compiler. Note that -# the include paths will already be set by doxygen for the files and directories -# specified with INPUT and INCLUDE_PATH. -# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. - -CLANG_OPTIONS = - -# If clang assisted parsing is enabled you can provide the clang parser with the -# path to the directory containing a file called compile_commands.json. This -# file is the compilation database (see: -# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the -# options used when the source files were built. This is equivalent to -# specifying the "-p" option to a clang tool, such as clang-check. These options -# will then be passed to the parser. Any options specified with CLANG_OPTIONS -# will be added as well. -# Note: The availability of this option depends on whether or not doxygen was -# generated with the -Duse_libclang=ON option for CMake. - -CLANG_DATABASE_PATH = - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = NO - -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = ./ - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = mchpheader.html - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = mchpfooter.html - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefore more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = mchp.css \ - mchp_theme.css - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# https://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - -# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML -# documentation will contain a main index with vertical navigation menus that -# are dynamically created via JavaScript. If disabled, the navigation index will -# consists of multiple levels of tabs that are statically embedded in every HTML -# page. Disable this option to support browsers that do not have JavaScript, -# like the Qt help browser. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_MENUS = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = YES - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 250 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: https://developer.apple.com/xcode/), introduced with OSX -# 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy -# genXcode/_index.html for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the main .chm file (NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated -# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- -# folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = YES - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = YES - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 10 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 300 - -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg -# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see -# https://inkscape.org) to generate formulas as SVG images instead of PNGs for -# the HTML output. These images will generally look nicer at scaled resolutions. -# Possible values are: png (the default) and svg (looks nicer but requires the -# pdf2svg or inkscape tool). -# The default value is: png. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FORMULA_FORMAT = png - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANSPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands -# to create new LaTeX commands to be used in formulas as building blocks. See -# the section "Including formulas" for details. - -FORMULA_MACROFILE = - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# https://www.mathjax.org) which uses client side JavaScript for the rendering -# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = YES - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from https://www.mathjax.org before deployment. -# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = https://cdn.jsdelivr.net/npm/mathjax@2 - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /