Commit 9a7a3dba authored by schneider's avatar schneider
Browse files

chore(pmic): Move pmic functions to own module

parent dd7e8758
......@@ -69,6 +69,7 @@ CMSIS_ROOT=$(LIBS_DIR)/CMSIS
SRCS = main.c
SRCS += ../lib/card10/oled96.c
SRCS += ../lib/card10/fonts.c
SRCS += ../lib/card10/pmic.c
SRCS += bhy_support.c bhy_uc_driver.c bhy.c
SRCS += MAX77650-Arduino-Library.c
# Where to find source files for this test
......
......@@ -56,7 +56,7 @@
#include "bhy.h"
#include "Bosch_PCB_7183_di03_BMI160_BMM150-7183_di03.2.1.11696_170103.h"
#include "bhy_uc_driver.h"
#include "MAX77650-Arduino-Library.h"
#include "pmic.h"
/***** Definitions *****/
......@@ -98,75 +98,6 @@ uint32_t ecg_read_reg(uint8_t reg)
return (rx_data[1] << 16) | (rx_data[2] << 8) | rx_data[3];
}
void pmic_init(void)
{
uint8_t didm = MAX77650_getDIDM();
uint8_t cid = MAX77650_getChipID();
printf("MAX7765x DIDM: 0x%02x CID: 0x%02x\n", didm, cid);
//MAX77650_setIP_SBB0(0b11); //Limit output of SBB0 to 500mA
MAX77650_setTV_SBB0(0b101000); //Set output Voltage of SBB0 to 1.8V
MAX77650_setADE_SBB0(0b0); //Disable Active Discharge at SBB0 Output
MAX77650_setEN_SBB0(0b110); //Enable SBB0 is on irrespective of FPS whenever the on/off controller is in its "On via Software" or "On via On/Off Controller" states
//MAX77650_setIP_SBB1(0b11); //Limit output of SBB1 to 500mA
#if BOARD_EVKIT
MAX77650_setTV_SBB1(0b100000); //Set output Voltage of SBB1 to 1.2V
#else
MAX77650_setTV_SBB1(0b001001); //Set output Voltage of SBB1 to 3.3V
#endif
MAX77650_setADE_SBB1(0b0); //Disable Active Discharge at SBB1 Output
MAX77650_setEN_SBB1(0b110); //Enable SBB1 is on irrespective of FPS whenever the on/off controller is in its "On via Software" or "On via On/Off Controller" states
//MAX77650_setIP_SBB2(0b11); //Limit output of SBB2 to 500mA
#if BOARD_EVKIT
MAX77650_setTV_SBB2(0b110010); //Set output Voltage of SBB2 to 3.3V
#else
MAX77650_setTV_SBB2(0b110100); //Set output Voltage of SBB2 to 5.0V
#endif
MAX77650_setADE_SBB2(0b0); //Disable Active Discharge at SBB2 Output
MAX77650_setEN_SBB2(0b110); //Enable SBB2 is on irrespective of FPS whenever the on/off controller is in its "On via Software" or "On via On/Off Controller" states
// Prepare the PMIC LEDs
MAX77650_setLED_FS0(0b01);
MAX77650_setINV_LED0(false); //LED red: phase operation
MAX77650_setBRT_LED0(0b00000); //LED red: brightness
MAX77650_setP_LED0(0b1111); //LED red: LED period
MAX77650_setD_LED0(0b1111); //LED red: LED duty-cycle
MAX77650_setLED_FS1(0b01);
MAX77650_setINV_LED1(false); //LED green: phase operation
MAX77650_setBRT_LED1(0b00000); //LED green: brightness
MAX77650_setP_LED1(0b1111); //LED green: LED period
MAX77650_setD_LED1(0b1111); //LED green: LED duty-cycle
MAX77650_setLED_FS2(0b01);
MAX77650_setINV_LED2(false); //LED blue: phase operation
MAX77650_setBRT_LED2(0b00000); //LED blue: brightness
MAX77650_setP_LED2(0b1111); //LED blue: LED period
MAX77650_setD_LED2(0b1111); //LED blue: LED duty-cycle
MAX77650_setEN_LED_MSTR(true); //LEDs Master enable
}
void set_led(uint8_t led, uint8_t val)
{
if(led == 0) {
MAX77650_setLED_FS0(val > 0 ? 0b01 : 0);
MAX77650_setBRT_LED0(val);
}
if(led == 1) {
MAX77650_setLED_FS1(val > 0 ? 0b01 : 0);
MAX77650_setBRT_LED1(val);
}
if(led == 2) {
MAX77650_setLED_FS2(val > 0 ? 0b01 : 0);
MAX77650_setBRT_LED2(val);
}
}
// *****************************************************************************
int main(void)
{
......@@ -235,27 +166,28 @@ int main(void)
pmic_init();
while (1) {
set_led(0, 33);
set_led(1, 0);
set_led(2, 0);
TMR_Delay(MXC_TMR0, MSEC(500), 0);
set_led(0, 0);
set_led(1, 33);
set_led(2, 0);
TMR_Delay(MXC_TMR0, MSEC(500), 0);
set_led(0, 0);
set_led(1, 0);
set_led(2, 33);
TMR_Delay(MXC_TMR0, MSEC(500), 0);
set_led(0, 0);
set_led(1, 0);
set_led(2, 0);
pmic_set_led(0, 31);
pmic_set_led(1, 0);
pmic_set_led(2, 0);
TMR_Delay(MXC_TMR0, MSEC(200), 0);
pmic_set_led(0, 0);
pmic_set_led(1, 31);
pmic_set_led(2, 0);
TMR_Delay(MXC_TMR0, MSEC(200), 0);
pmic_set_led(0, 0);
pmic_set_led(1, 0);
pmic_set_led(2, 31);
TMR_Delay(MXC_TMR0, MSEC(200), 0);
pmic_set_led(0, 0);
pmic_set_led(1, 0);
pmic_set_led(2, 0);
GPIO_OutSet(&motor_pin);
TMR_Delay(MXC_TMR0, MSEC(500), 0);
GPIO_OutClr(&motor_pin);
TMR_Delay(MXC_TMR0, MSEC(1000), 0);
printf("count = %d\n", count++);
}
}
#include "i2c.h"
#include "pmic.h"
#include "MAX77650-Arduino-Library.h"
#include <stdint.h>
#include <stdio.h>
void pmic_init(void)
{
uint8_t didm = MAX77650_getDIDM();
uint8_t cid = MAX77650_getChipID();
printf("MAX7765x DIDM: 0x%02x CID: 0x%02x\n", didm, cid);
//MAX77650_setIP_SBB0(0b11); //Limit output of SBB0 to 500mA
MAX77650_setTV_SBB0(0b101000); //Set output Voltage of SBB0 to 1.8V
MAX77650_setADE_SBB0(0b0); //Disable Active Discharge at SBB0 Output
MAX77650_setEN_SBB0(0b110); //Enable SBB0 is on irrespective of FPS whenever the on/off controller is in its "On via Software" or "On via On/Off Controller" states
//MAX77650_setIP_SBB1(0b11); //Limit output of SBB1 to 500mA
#if BOARD_EVKIT
MAX77650_setTV_SBB1(0b100000); //Set output Voltage of SBB1 to 1.2V
#else
MAX77650_setTV_SBB1(0b001001); //Set output Voltage of SBB1 to 3.3V
#endif
MAX77650_setADE_SBB1(0b0); //Disable Active Discharge at SBB1 Output
MAX77650_setEN_SBB1(0b110); //Enable SBB1 is on irrespective of FPS whenever the on/off controller is in its "On via Software" or "On via On/Off Controller" states
//MAX77650_setIP_SBB2(0b11); //Limit output of SBB2 to 500mA
#if BOARD_EVKIT
MAX77650_setTV_SBB2(0b110010); //Set output Voltage of SBB2 to 3.3V
#else
MAX77650_setTV_SBB2(0b110100); //Set output Voltage of SBB2 to 5.0V
#endif
MAX77650_setADE_SBB2(0b0); //Disable Active Discharge at SBB2 Output
MAX77650_setEN_SBB2(0b110); //Enable SBB2 is on irrespective of FPS whenever the on/off controller is in its "On via Software" or "On via On/Off Controller" states
// Prepare the PMIC LEDs
MAX77650_setLED_FS0(0b11);
MAX77650_setINV_LED0(false); //LED red: phase operation
MAX77650_setBRT_LED0(0b00000); //LED red: brightness
MAX77650_setP_LED0(0b1111); //LED red: LED period
MAX77650_setD_LED0(0b1111); //LED red: LED duty-cycle
MAX77650_setLED_FS1(0b11);
MAX77650_setINV_LED1(false); //LED green: phase operation
MAX77650_setBRT_LED1(0b00000); //LED green: brightness
MAX77650_setP_LED1(0b1111); //LED green: LED period
MAX77650_setD_LED1(0b1111); //LED green: LED duty-cycle
MAX77650_setLED_FS2(0b11);
MAX77650_setINV_LED2(false); //LED blue: phase operation
MAX77650_setBRT_LED2(0b00000); //LED blue: brightness
MAX77650_setP_LED2(0b1111); //LED blue: LED period
MAX77650_setD_LED2(0b1111); //LED blue: LED duty-cycle
MAX77650_setEN_LED_MSTR(true); //LEDs Master enable
}
void pmic_set_led(uint8_t led, uint8_t val)
{
if(led == 0) {
MAX77650_setLED_FS0(val > 0 ? 0b01 : 0);
MAX77650_setBRT_LED0(val);
}
if(led == 1) {
MAX77650_setLED_FS1(val > 0 ? 0b01 : 0);
MAX77650_setBRT_LED1(val);
}
if(led == 2) {
MAX77650_setLED_FS2(val > 0 ? 0b01 : 0);
MAX77650_setBRT_LED2(val);
}
}
#ifndef PMIC_H
#define PMIC_H
#include <stdint.h>
void pmic_init(void);
void pmic_set_led(uint8_t led, uint8_t val);
#endif
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment