| Digital Power Starter Kit 3 Firmware dsPIC33C Boost Converter Voltage Mode Control Example |

init_pmd.c
1 /*
2 * File: init_pmd.c
3 * Author: M91406
4 *
5 * Created on July 8, 2019, 6:26 PM
6 */
7
8
9 #include <xc.h>
10 #include "init_pmd.h"
11
12 /***********************************************************************************
13 * @fn uint16_t sysPmd_Initialize(void)
14 * @ingroup pmd-initialization
15 * @brief Powers down all device peripherals
16 * @return unsigned integer (0=failure, 1=success)
17 *
18 * @details
19 * When the device is coming out of RESET, all peripheral modules are powered
20 * and active, ready to be initialized and used. However, each active peripheral
21 * consumes power and accidental writes to any of its specifal function registers
22 * may be a potential source for undesired behavior. Hence, in this application
23 * all power supply to all peripheral modules are disabled, minimizing the device
24 * power consumption and preventing potential misbehavior of unused peripheral
25 * modules.
26 *
27 * @note
28 * Unpowered peripherals cannot be initialized and reads from/write to the
29 * respective special function registers will fail until the power supply to
30 * the peripheral has been enabled. Hence, power to peripheral modules has to
31 * be enabled before any intialization of its register can take place.
32 *
33 * Depending on the peripheral a short delay period may be required for the
34 * peripheral functions to become available after power up.
35 *
36 * Please refer to the device data sheet for details.
37 *
38 **********************************************************************************/
39
40 volatile uint16_t sysPmd_Initialize(void) {
41
42 volatile uint16_t retval=1;
43
44 // Disable all peripheral modules
45 PMDCONbits.PMDLOCK = 0; // Unlock writes to PMD registers
46
47 PMD1 = 0xffff; //
48 PMD2 = 0xffff; //
49 PMD3 = 0xffff; //
50
51 PMDCONbits.PMDLOCK = 1; // Lock writes to PMD registers
52
53 return(retval);
54 }
55
56 // end of file