133 lines
4.1 KiB
C
133 lines
4.1 KiB
C
/*
|
||
* /file Motor.c
|
||
* /project EFC_Application
|
||
* Created on: 8 апр. 2024 г.
|
||
* Author: seklyuts
|
||
*
|
||
* Инициализация параметров, относящихся к CPU2 на CPU1 (моторчик)
|
||
*/
|
||
|
||
#include "pwm_init.h"
|
||
#include "sdfm.h"
|
||
#include "gpio_init.h"
|
||
#include "f2838x_sdfm_drivers.h"
|
||
#include "gpio.h"
|
||
#include <sysctl.h>
|
||
#include "frm_uart.h"
|
||
#include "i2c_init.h"
|
||
|
||
/*
|
||
* Инициализция GPIO на CPU2
|
||
*/
|
||
//void GPIOMoveCpu2(void)
|
||
//{
|
||
// /** Перенос найденных GPIO на CPU2 */
|
||
//
|
||
// GPIO_setControllerCore( 64, GPIO_CORE_CPU2); ///< Fault PWM
|
||
// GPIO_SetupXINT1Gpio(64);
|
||
//
|
||
//
|
||
// GPIO_setControllerCore( 87, GPIO_CORE_CPU2); ///<
|
||
// GPIO_setControllerCore( 95, GPIO_CORE_CPU2); ///< реле силовое
|
||
//
|
||
// GPIO_setControllerCore( 97, GPIO_CORE_CPU2); ///<
|
||
//
|
||
//
|
||
//
|
||
// /** LED's GPIO */
|
||
// GPIO_setControllerCore( 6, GPIO_CORE_CPU2); ///<
|
||
// GPIO_setControllerCore( 7, GPIO_CORE_CPU2); ///<
|
||
// GPIO_setControllerCore(10, GPIO_CORE_CPU2); ///<
|
||
//
|
||
// /** ???? */
|
||
// GPIO_setControllerCore(55, GPIO_CORE_CPU2); ///<
|
||
// GPIO_setControllerCore(56, GPIO_CORE_CPU2); ///<
|
||
// GPIO_setControllerCore(57, GPIO_CORE_CPU2); ///<
|
||
//}
|
||
|
||
|
||
/*
|
||
* Конфигурация пинов на CPU2
|
||
*/
|
||
void Reconnect2CPU2()
|
||
{
|
||
/**
|
||
* Перетаскиваем и все остальное ??
|
||
* ДОБАВИЛ ВСЁ!!
|
||
*/
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 1, SYSCTL_CPUSEL_CPU2 );
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 2, SYSCTL_CPUSEL_CPU2 );
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 3, SYSCTL_CPUSEL_CPU2 );
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 4, SYSCTL_CPUSEL_CPU2 );
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 5, SYSCTL_CPUSEL_CPU2 );
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 6, SYSCTL_CPUSEL_CPU2 );
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 7, SYSCTL_CPUSEL_CPU2 );
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 8, SYSCTL_CPUSEL_CPU2 );
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 9, SYSCTL_CPUSEL_CPU2 );
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM,10, SYSCTL_CPUSEL_CPU2 );
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM,11, SYSCTL_CPUSEL_CPU2 );
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM,12, SYSCTL_CPUSEL_CPU2 );
|
||
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL4_SD, 1, SYSCTL_CPUSEL_CPU2 );
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL4_SD, 2, SYSCTL_CPUSEL_CPU2 );
|
||
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL11_ADC, 1, SYSCTL_CPUSEL_CPU2 );
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL11_ADC, 2, SYSCTL_CPUSEL_CPU2 );
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL11_ADC, 3, SYSCTL_CPUSEL_CPU2 );
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL11_ADC, 4, SYSCTL_CPUSEL_CPU2 );
|
||
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL5_SCI, 1, SYSCTL_CPUSEL_CPU2);
|
||
SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL7_I2C, 1, SYSCTL_CPUSEL_CPU2);
|
||
|
||
EINT; // Enable Global interrupt INTM
|
||
ERTM; // Enable Global realtime interrupt DBGM
|
||
}
|
||
|
||
void initADC(void){
|
||
EALLOW;
|
||
|
||
/** Включение АЦП */
|
||
CpuSysRegs.PCLKCR13.bit.ADC_A = 1;
|
||
CpuSysRegs.PCLKCR13.bit.ADC_B = 1;
|
||
CpuSysRegs.PCLKCR13.bit.ADC_C = 1;
|
||
CpuSysRegs.PCLKCR13.bit.ADC_D = 1;
|
||
|
||
//
|
||
// Check if device is trimmed
|
||
//
|
||
if(*((Uint16 *)0x5D736) == 0x0000){
|
||
//
|
||
// Device is not trimmed--apply static calibration values
|
||
//
|
||
AnalogSubsysRegs.ANAREFTRIMA.all = 31709;
|
||
AnalogSubsysRegs.ANAREFTRIMB.all = 31709;
|
||
AnalogSubsysRegs.ANAREFTRIMC.all = 31709;
|
||
AnalogSubsysRegs.ANAREFTRIMD.all = 31709;
|
||
}
|
||
|
||
EDIS;
|
||
}
|
||
|
||
/*==================================
|
||
* Инициализция MOTOR на CPU2
|
||
*=================================*/
|
||
void InitMotor(void)
|
||
{
|
||
EALLOW;
|
||
ClkCfgRegs.LOSPCP.bit.LSPCLKDIV = 2;
|
||
EDIS;
|
||
|
||
initADC();
|
||
InitPeripheralClocks();
|
||
|
||
GpioInit();
|
||
GpioDiodInit();
|
||
SdfmGpioInit();
|
||
SdfmTypeInit();
|
||
PWMGpioInit();
|
||
FRMGPIOInit();
|
||
I2CMasterGpioInit();
|
||
|
||
Reconnect2CPU2();
|
||
}
|