STM32F722VE与M24C04-R EEPROM数据存储实战指南

STM32EEPROMI2C
于 2026-07-04 13:47:41 修改
·本内容遵循CC 4.0 BY-SA版权协议

1. 项目背景与核心需求

在嵌入式系统开发中,非易失性数据存储是一个基础但至关重要的功能模块。无论是设备配置参数、运行日志还是用户设置,都需要在断电后依然保持数据完整性。STM32F722VE作为一款高性能ARM Cortex-M7内核微控制器,搭配M24C04-R这款4Kbit容量的I2C接口EEPROM,构成了一个典型的可靠存储解决方案。

这个组合的核心价值在于:

  • 数据持久性:EEPROM的擦写寿命通常达到100万次级别,远超Flash存储
  • 接口简洁:仅需两根信号线(SCL/SDA)即可实现通信,节省GPIO资源
  • 实时写入:支持字节级编程,无需像Flash那样需要整页擦除
  • 低功耗特性:待机电流仅1μA,适合电池供电场景

实际工程中常见误区:很多开发者会误将频繁变化的数据直接写入MCU内部Flash,这不仅影响Flash寿命,还会因擦除时间过长导致系统实时性下降。

2. 硬件设计与接口连接

2.1 器件选型分析

M24C04-R作为意法半导体EEPROM产品线中的经典型号,具有以下关键特性:

  • 工作电压范围:1.8V至5.5V(与STM32F722VE完全兼容)
  • 时钟频率:支持400kHz快速模式
  • 页写缓冲:16字节页写能力
  • 写保护引脚:硬件防误写保护

与STM32F722VE的连接示意图如下:

TEXT
STM32F722VE M24C04-R
PB6(SCL) <-----> SCL
PB7(SDA) <-----> SDA
VDD <-----> VCC
GND <-----> GND

注意:必须连接4.7kΩ上拉电阻到I2C总线,这是初学者最易忽略的点。实测发现,当总线电容>400pF时,需要减小上拉电阻值至2.2kΩ以确保信号完整性。

2.2 地址配置细节

M24C04-R的I2C地址由以下部分组成:

TEXT
1 0 1 0 A2 A1 A0 R/W

其中A2/A1/A0引脚在硬件设计中:

  • 对于M24C04-R,A2/A1必须接地,A0悬空(内部已处理)
  • 实际7位地址为:0b1010000(0x50)

在代码中需要特别注意:

C
# define EEPROM_I2C_ADDR (0x50 << 1) // HAL库要求左移1位

3. 软件驱动实现

3.1 CubeMX基础配置

  1. 在STM32CubeMX中启用I2C1外设
  2. 配置为标准模式(100kHz)或快速模式(400kHz)
  3. 设置PB6/PB7为复用开漏输出(必须选择开漏!)
  4. 生成代码时勾选I2C中断(可选)

关键参数验证:

C
hi2c1.Instance = I2C1;
hi2c1.Init.Timing = 0x00303D5B; // 100kHz时序值
hi2c1.Init.OwnAddress1 = 0;
hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
hi2c1.Init.OwnAddress2 = 0;
hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;

3.2 基础读写函数实现

字节写入函数:

C
HAL_StatusTypeDef EEPROM_WriteByte(uint16_t addr, uint8_t data)
{
uint8_t buf[2];
buf[0] = addr >> 8; // 高地址字节
buf[1] = addr & 0xFF; // 低地址字节
buf[2] = data;
return HAL_I2C_Master_Transmit(&hi2c1, EEPROM_I2C_ADDR, buf, 3, HAL_MAX_DELAY);
}

页写入优化:

C
# define EEPROM_PAGE_SIZE 16
 
HAL_StatusTypeDef EEPROM_WritePage(uint16_t addr, uint8_t *data, uint8_t len)
{
if(len > EEPROM_PAGE_SIZE) return HAL_ERROR;
uint8_t buf[EEPROM_PAGE_SIZE + 2];
buf[0] = addr >> 8;
buf[1] = addr & 0xFF;
memcpy(&buf[2], data, len);
return HAL_I2C_Master_Transmit(&hi2c1, EEPROM_I2C_ADDR, buf, len+2, HAL_MAX_DELAY);
}

实测技巧:连续写入多个字节时,必须保证地址落在同一页内(addr/16相等),否则会覆盖起始地址。这是EEPROM编程中最常见的错误之一。

4. 高级功能实现

4.1 写均衡算法

为延长EEPROM寿命,建议实现简单的写均衡:

C
# define WEAR_LEVELING_SIZE 256 // 均衡区域大小
 
uint16_t current_write_pos = 0;
 
void EEPROM_WriteWithLeveling(uint8_t *data, uint8_t len)
{
if(current_write_pos + len > WEAR_LEVELING_SIZE) {
current_write_pos = 0;
}
EEPROM_WritePage(current_write_pos, data, len);
current_write_pos += len;
}

4.2 数据校验机制

推荐采用CRC32校验:

C
uint32_t CRC32_ForEEPROM(uint16_t start_addr, uint16_t length)
{
uint32_t crc = 0xFFFFFFFF;
uint8_t data[1];
for(uint16_t i=0; i<length; i++) {
EEPROM_ReadByte(start_addr+i, data);
crc ^= data[0];
for(uint8_t j=0; j<8; j++) {
crc = (crc >> 1) ^ (0xEDB88320 & -(crc & 1));
}
}
return ~crc;
}

5. 性能优化与问题排查

5.1 时序优化技巧

通过示波器实测I2C波形时,常见问题及解决方案:

问题现象 可能原因 解决方案
起始位后无ACK 地址错误/设备未就绪 检查上拉电阻,确认设备供电
数据位抖动严重 总线电容过大 减小上拉电阻值或降低速率
偶发通信失败 未处理总线忙状态 增加超时重试机制

5.2 典型错误处理

案例:写入后立即读取失败

C
// 错误示范:
EEPROM_WriteByte(0x00, 0x55);
uint8_t val = EEPROM_ReadByte(0x00); // 可能读取旧值
 
// 正确做法:
EEPROM_WriteByte(0x00, 0x55);
HAL_Delay(5); // 等待内部编程完成
val = EEPROM_ReadByte(0x00);

总线恢复函数:

C
void I2C_Recovery(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
// 1. 配置SDA/SCL为普通GPIO
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
// 2. 模拟I2C总线复位序列
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_SET);
for(int i=0; i<9; i++) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_RESET);
HAL_Delay(1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET);
HAL_Delay(1);
}
// 3. 发送STOP条件
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_RESET);
HAL_Delay(1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_RESET);
HAL_Delay(1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET);
HAL_Delay(1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_SET);
// 4. 恢复I2C配置
MX_I2C1_Init();
}

6. 工程实践建议

  1. 存储结构设计
C
typedef struct {
uint32_t magic_num; // 0x55AA55AA用于标识数据有效
uint8_t version;
uint32_t crc;
uint8_t data[100];
} EEPROM_DataStruct;
  1. 初始化检查流程
C
void EEPROM_InitCheck(void)
{
EEPROM_DataStruct buf;
HAL_I2C_Mem_Read(&hi2c1, EEPROM_I2C_ADDR,
0, I2C_MEMADD_SIZE_16BIT,
(uint8_t*)&buf, sizeof(buf), 100);
if(buf.magic_num != 0x55AA55AA ||
buf.crc != CRC32_ForEEPROM(4, sizeof(buf)-8)) {
// 执行数据恢复或初始化
}
}
  1. 长期维护建议
  • 每隔100次写入执行一次全片CRC校验
  • 在关键数据区实现双备份存储
  • 记录EEPROM擦写次数,超过50万次时提示更换

在工业级应用中,我们还会在PCB布局时注意:

  • I2C走线尽量短(<10cm)
  • 避免与高频信号线平行走线
  • 在信号线两端预留TVS二极管位置
STM32与LTC6903构建精密数字控制振荡器设计指南
本文介绍基于STM32F722VE微控制器LTC6903可编程振荡器构建数字控制振荡器(DCO)的完整方案,涵盖硬件电路设计(含电源去耦、SET引脚电容选型、PCB布局)、SPI通信配置、频率计算算法(fOUT = 10MHz×N/2^(D+1))、相位噪声优化(LDO供电、地平面设计、C0G电容)及系统校准方法(参考源校准、闭环PID调节),适用于测试设备、通信本地振荡器等高精度频率应用。
axfcjwkbi259888707
351
STM32 HAL I²C超时卡死终极溯源:EventCallback阻塞链深度拆解+DMA同步断点定位+IT模式中断嵌套深度>3的致命阈值(ST官方未公开Errata#442补充)
SW_孙维
STM32F103精英板启动崩坏全案复盘(Loop in Reset_Handler深度破译):8大信号完整性盲区+6种BOOT引脚误配场景+4版ST-Link固件兼容性红黑榜
SW_孙维
/ Teval = 10 * Tbiteval = 10 * (INPCMP * Tck), INPSAMP 6, ndelay = 1 // Tconv = Tsample + Teval + (ndelay * Tck) // peri_set3_clk = 4000000, so Tck is 0.25us // here will be scan mode, so the conversion time must be enough // percision channels: (126-1)+1+(103)=156, so 1560.25us=39us, per channel */ADC_0.CTR0.B.INPLATCH = 1;ADC_0.CTR0.B.INPCMP = 3;ADC_0.CTR0.B.INPSAMP = 126;/* standard channels: (126-1)+1+(103)=156, so 1560.25us=39us, per channel / ADC_0.CTR1.B.INPLATCH = 1; ADC_0.CTR1.B.INPCMP = 3; ADC_0.CTR1.B.INPSAMP = 126; / extend channels: (126-1)+1+(103)=156, so 1560.25us=39us, per channel / ADC_0.CTR2.B.INPLATCH = 1; ADC_0.CTR2.B.INPCMP = 3; ADC_0.CTR2.B.INPSAMP = 126;#else/ peri_set3_clk = 4000000, so Tck is 0.25us // all channels: (3-0.5)+0.5+(101)=13, so 130.25us=3.25us, per channel */#endif#if AI_USING_EXTENDED_CHANNEL/For extend AI pin , Enabled this./if(35 == PIN_AI_MA_0){SIU.PCR[PIN_AI_MA_0].B.PA = 2u;}else{SIU.PCR[PIN_AI_MA_0].B.PA = 3u;}SIU.PCR[PIN_AI_MA_1].B.PA = 3u;SIU.PCR[PIN_AI_MA_2].B.PA = 3u;#endifADC_0.MCR.B.OWREN = 1u; ADC_0.MCR.B.MODE = 1u; /* scan mode is enabled / ADC_0.MCR.B.NSTART = 1u; / start conversion */}/*Function: BSP_DeInitADCParam:Param:Return:Discription:Note:REQ IDs:*/void BSP_DeInitADC(void){ADC_0.MCR.R = 0ul;}/*Function: ADC_GetChannelValueParam:Param:Return:Discription:Note:REQ IDs:*/U2 ADC_GetChannelValue(U1 ADn){return (U2)(ADC_0.CDR[ADn].R & 0x000003FF);}#endif /* (APP_HW_VERSION_AB802_0_0 == APP_HW_VERSION) *//*uC/OS-IIThe Real-Time KernelFreescale MPC55xx Board Support Package© Copyright 2007; Micrium; Weston, FLAll Rights ReservedFile : BSP.HBy : Fabiano Kovalski*//*CPU CLOCK FREQUENCY//INTERRUPT CONTROLLER*/#ifndef BSP_H#define BSP_H/device mode define:/#include “includes.h”#define uC_PROBE_COM_MODULE 0#define uC_PROBE_OS_PLUGIN 0#define OS_PROBE_HOOKS_EN 0#define ME_ME_RESET (0u)#define ME_ME_TEST (1u)#define ME_ME_SAFE (2u)#define ME_ME_DRUN (3u)#define ME_ME_RUN0 (4u)#define ME_ME_RUN1 (5u)#define ME_ME_RUN2 (6u)#define ME_ME_RUN3 (7u)#define ME_ME_HALT0 (8u)#define ME_ME_STOP0 (10u)#define ME_ME_STANDBY0 (13u)/$PAGE/#define WAKEUP_PIN_ALLINVALID_MASK (0x00)/WAKEUP_PIN_KEY_MASK (0x02)WAKEUP_PIN_CHARGER_CAN_RX_MASK (0x01)/#define GetWakeupPinStatus() (((U4)SIU.GPDI[PF0].B.PDI<<1) + (U4)SIU.GPDI[PF1].B.PDI)/*FUNCTION PROTOTYPES/extern uint32_t EXCEPTION_HANDLERS; / Interrupt Vector Prefix vaue from link file*/extern uint32_t INTCInterruptsHandlerTable[];void BSP_Init(void);StatusType BSP_INTC_IntReg(CPU_FNCT_VOID handler, U4 irq, U4 int_level);U4 BSP_CPU_ClkFreq(void);StatusType MCU_Mode_ChangeTo(U4 device_mode);void BSP_TmrTickISR (void);void SleepA(void);void SleepB(void);void BSP_SWDT_Enable(void);void Feed_sw_dog(void);void Feed_hw_sw_dog(void);/*LED SERVICES*//*MISCELLANEOUS*/#endif/*Copyright © 2014,SHENZHEN HANGSHENG ELECTRONICS Co.,Ltd.All Rights Reserved.Dept.:ACECFile:AcecType.hDescription: descript informationREQ IDs: show the handle requirement IDsHistory:2014-3-1, 1306104, original*/#ifndef BSP_CFG_H#define BSP_CFG_H#define RELEASE 0#define DBG_EN 0#define USE_PIT 1 /OS TimeTick ISR/#define USE_SPI 1 /MC25LC256/#define USE_IIC 1 /PCF8563/#define USE_CAN 1 /3 CAN channels/#define USE_LIN 0#define USE_ADC 1 /ad sample/#endif/*Copyright © 2014,SHENZHEN HANGSHENG ELECTRONICS Co.,Ltd.All Rights Reserved.Dept.:ACECFile:AcecType.hDescription: descript informationREQ IDs: show the handle requirement IDsHistory:2014-3-1, 1306104, original*/#include “bsp_cpu.h”typedef enum{IOA_D_INPUT = 0,IOA_D_OUTPUT,IOA_D_INOUT,IOA_D_ADC}IO_Attr_Direct;typedef enum{IOA_P_PUSHPULL = 0,IOA_P_WEAKPULLUP,IOA_P_WEAKPULLDOWN,IOA_P_OPENDRAIN}IO_Attr_PULL;/only for output port/#define IOA_SLOW 0#define IOA_FAST 1#define IOA_AF0 0#define IOA_AF1 1#define IOA_AF2 2#define IOA_AF3 3typedef struct{U1 AF_PORT;U1 pin;IO_Attr_Direct direct;U1 default_val;U1 af;U1 fast_slow;IO_Attr_PULL pull;}GpioCfgType;#if (APP_HW_VERSION_AB802_0_0 != APP_HW_VERSION)typedef enum{/start of PSMI/AFP_CAN1_RXD=0,AFP_CAN2_RXD,AFP_CAN3_RXD,AFP_CAN4_RXD,AFP_CAN5_RXD,AFP_SPI0_SCK,AFP_SPI0_CS0,AFP_SPI1_SCK,AFP_SPI1_MISO,AFP_SPI1_CS0,AFP_SPI2_SCK,AFP_SPI2_MISO,AFP_SPI2_CS0,AFP_EMIOS0_CH3,AFP_EMIOS0_CH4,AFP_EMIOS0_CH5,AFP_EMIOS0_CH6,AFP_EMIOS0_CH7,AFP_EMIOS0_CH10,AFP_EMIOS0_CH11,AFP_EMIOS0_CH12,AFP_EMIOS0_CH13,AFP_EMIOS0_CH14,AFP_EMIOS0_CH22,AFP_EMIOS0_CH23,AFP_EMIOS0_CH24,AFP_EMIOS0_CH25,AFP_EMIOS0_CH26,AFP_EMIOS0_CH27,AFP_IIC0_SCL,AFP_IIC0_SDA,AFP_LIN3_RXD,/end of PSMI/AFP_IIC1_SCL, AFP_IIC1_SDA, AFP_LIN0_TXD, AFP_LIN0_RXD, AFP_LIN1_TXD, AFP_LIN1_RXD, AFP_LIN2_TXD, AFP_LIN2_RXD, AFP_LIN3_TXD, AFP_CAN0_TXD, AFP_CAN0_RXD, AFP_CAN1_TXD, AFP_CAN2_TXD, AFP_CAN3_TXD, AFP_CAN4_TXD, AFP_CAN5_TXD, AFP_SPI0_CS1, AFP_SPI0_CS2, AFP_SPI0_CS3, AFP_SPI0_CS4, AFP_SPI0_CS5, AFP_SPI0_MISO, AFP_SPI0_MOSI, AFP_SPI1_CS1, AFP_SPI1_CS2, AFP_SPI1_CS3, AFP_SPI1_CS4, AFP_SPI1_CS5, AFP_SPI1_MOSI, AFP_SPI2_CS1, AFP_SPI2_CS2, AFP_SPI2_CS3, AFP_SPI2_CS4, AFP_SPI2_CS5, AFP_SPI2_MOSI, AFP_EMIOS0_CH0, AFP_EMIOS0_CH1, AFP_EMIOS0_CH2, AFP_EMIOS0_CH8, AFP_EMIOS0_CH9, AFP_EMIOS0_CH15, AFP_EMIOS0_CH16, AFP_EMIOS0_CH17, AFP_EMIOS0_CH18, AFP_EMIOS0_CH19, AFP_EMIOS0_CH20, AFP_EMIOS0_CH21, AFP_EMIOS1_CH0, AFP_EMIOS1_CH1, AFP_EMIOS1_CH2, AFP_EMIOS1_CH3, AFP_EMIOS1_CH4, AFP_EMIOS1_CH5, AFP_EMIOS1_CH6, AFP_EMIOS1_CH7, AFP_EMIOS1_CH8, AFP_EMIOS1_CH9, AFP_EMIOS1_CH10, AFP_EMIOS1_CH11, AFP_EMIOS1_CH12, AFP_EMIOS1_CH13, AFP_EMIOS1_CH14, AFP_EMIOS1_CH15, AFP_EMIOS1_CH16, AFP_EMIOS1_CH17, AFP_EMIOS1_CH18, AFP_EMIOS1_CH19, AFP_EMIOS1_CH20, AFP_EMIOS1_CH21, AFP_EMIOS1_CH22, AFP_EMIOS1_CH23, AFP_EMIOS1_CH24, AFP_EMIOS1_CH25, AFP_EMIOS1_CH26, AFP_EMIOS1_CH27, AFP_ADC_ANP0, AFP_ADC_ANP1, AFP_ADC_ANP2, AFP_ADC_ANP3, AFP_ADC_ANP4, AFP_ADC_ANP5, AFP_ADC_ANP6, AFP_ADC_ANP7, AFP_ADC_ANP8, AFP_ADC_ANP9, AFP_ADC_ANP10, AFP_ADC_ANP11, AFP_ADC_ANP12, AFP_ADC_ANP13, AFP_ADC_ANP14, AFP_ADC_ANP15, AFP_ADC_ANS0, AFP_ADC_ANS1, AFP_ADC_ANS2, AFP_ADC_ANS3, AFP_ADC_ANS4, AFP_ADC_ANS5, AFP_ADC_ANS6, AFP_ADC_ANS7, AFP_ADC_ANS8, AFP_ADC_ANS9, AFP_ADC_ANS10, AFP_ADC_ANS11, AFP_ADC_ANS12, AFP_ADC_ANS13, AFP_ADC_ANS14, AFP_ADC_ANS15, AFP_ADC_ANE0, AFP_ADC_ANE1, AFP_ADC_ANE2, AFP_ADC_ANE3, AFP_GPIO}AF_PORT;const U2 GPIO_PSMI_Map[32][4]={/start of PSMI/{35,43,95,0xFFFF},/AFP_CAN1_RXD=0,/{73,89,0xFFFF,0xFFFF},/AFP_CAN2_RXD,/{36,73,89,0xFFFF},/AFP_CAN3_RXD,/{35,43,95,0xFFFF},/AFP_CAN4_RXD,/{64,97,0xFFFF,0xFFFF},/AFP_CAN5_RXD,/{14,15,0xFFFF,0xFFFF},/AFP_SPI0_SCK,/{14,15,27,0xFFFF},/AFP_SPI0_CS0,/{34,68,114,0xFFFF},/AFP_SPI1_SCK,/{36,66,112,0xFFFF},/AFP_SPI1_MISO,/{35,61,69,115},/AFP_SPI1_CS0,/{46,78,105,0xFFFF},/AFP_SPI2_SCK,/{44,76,0xFFFF,0xFFFF},/AFP_SPI2_MISO,/{47,79,82,104},/AFP_SPI2_CS0,/{3,27,0xFFFF,0xFFFF},/AFP_EMIOS0_CH3,/{4,28,0xFFFF,0xFFFF},/AFP_EMIOS0_CH4,/{5,29,0xFFFF,0xFFFF},/AFP_EMIOS0_CH5,/{6,30,0xFFFF,0xFFFF},/AFP_EMIOS0_CH6,/{7,31,0xFFFF,0xFFFF},/AFP_EMIOS0_CH7,/{10,80,0xFFFF,0xFFFF},/AFP_EMIOS0_CH10,/{11,81,0xFFFF,0xFFFF},/AFP_EMIOS0_CH11,/{44,82,0xFFFF,0xFFFF},/AFP_EMIOS0_CH12,/{45,83,0xFFFF,0xFFFF},/AFP_EMIOS0_CH13,/{46,84,0xFFFF,0xFFFF},/AFP_EMIOS0_CH14,/{70,72,85,0xFFFF},/AFP_EMIOS0_CH22,/{71,73,86,0xFFFF},/AFP_EMIOS0_CH23,/{60,106,0xFFFF,0xFFFF},/AFP_EMIOS0_CH24,/{61,107,0xFFFF,0xFFFF},/AFP_EMIOS0_CH25,/{62,108,0xFFFF,0xFFFF},/AFP_EMIOS0_CH26,/{63,109,0xFFFF,0xFFFF},/AFP_EMIOS0_CH27,/{11,19,0xFFFF,0xFFFF},/AFP_IIC0_SCL,/{10,18,0xFFFF,0xFFFF},/AFP_IIC0_SDA,/{8,75,0xFFFF,0xFFFF},/AFP_LIN3_RXD,//end of PSMI/};#elsetypedef enum{/start of PSMI/AFP_CAN1_RXD=0,AFP_CAN2_RXD,AFP_CAN3_RXD,AFP_CAN4_RXD,AFP_CAN5_RXD,AFP_SPI0_SCK,AFP_SPI0_CS0,AFP_SPI1_SCK,AFP_SPI1_MISO,AFP_SPI1_CS0,AFP_SPI2_SCK,AFP_SPI2_MISO,AFP_SPI2_CS0,AFP_EMIOS0_CH3,AFP_EMIOS0_CH4,AFP_EMIOS0_CH5,AFP_EMIOS0_CH6,AFP_EMIOS0_CH7,AFP_EMIOS0_CH10,AFP_EMIOS0_CH11,AFP_EMIOS0_CH12,AFP_EMIOS0_CH13,AFP_EMIOS0_CH14,AFP_EMIOS0_CH22,AFP_EMIOS0_CH23,AFP_EMIOS0_CH24,AFP_EMIOS0_CH25,AFP_EMIOS0_CH26,AFP_EMIOS0_CH27,AFP_IIC0_SCL,AFP_IIC0_SDA,AFP_LIN3_RXD,AFP_SPI3_SCK, AFP_SPI3_MISO, AFP_SPI3_CS0, AFP_SPI4_SCK, AFP_SPI4_MISO, AFP_SPI4_CS0, AFP_EMIOS0_CH0, AFP_EMIOS0_CH1, AFP_EMIOS0_CH28, AFP_EMIOS0_CH29, AFP_EMIOS0_CH30, AFP_EMIOS0_CH31, AFP_EMIOS1_CH1, AFP_EMIOS1_CH2, AFP_EMIOS1_CH3, AFP_EMIOS1_CH4, AFP_EMIOS1_CH5, AFP_EMIOS1_CH17, AFP_EMIOS1_CH18, AFP_EMIOS1_CH25, AFP_EMIOS1_CH26, AFP_EMIOS1_CH27, AFP_EMIOS1_CH28, AFP_EMIOS1_CH29, AFP_EMIOS1_CH30, AFP_EMIOS1_CH31, AFP_LIN2_RXD, AFP_LIN4_RXD, AFP_LIN5_RXD, AFP_RESERVED0, AFP_LIN0_RXD, AFP_RESERVED1, /end of PSMI/ AFP_IIC1_SCL, AFP_IIC1_SDA, AFP_LIN0_TXD, AFP_LIN1_TXD, AFP_LIN1_RXD, AFP_LIN2_TXD, AFP_LIN3_TXD, AFP_LIN4_TXD, AFP_LIN5_TXD, AFP_LIN6_TXD, AFP_LIN6_RXD, AFP_LIN7_TXD, AFP_LIN7_RXD, AFP_CAN0_TXD, AFP_CAN0_RXD, AFP_CAN1_TXD, AFP_CAN2_TXD, AFP_CAN3_TXD, AFP_CAN4_TXD, AFP_CAN5_TXD, AFP_SPI0_CS1, AFP_SPI0_CS2, AFP_SPI0_CS3, AFP_SPI0_CS4, AFP_SPI0_CS5, AFP_SPI0_MISO, AFP_SPI0_MOSI, AFP_SPI1_CS1, AFP_SPI1_CS2, AFP_SPI1_CS3, AFP_SPI1_CS4, AFP_SPI1_CS5, AFP_SPI1_MOSI, AFP_SPI2_CS1, AFP_SPI2_CS2, AFP_SPI2_CS3, AFP_SPI2_CS4, AFP_SPI2_CS5, AFP_SPI2_MOSI, AFP_SPI3_CS1, AFP_SPI3_CS2, AFP_SPI3_CS3, AFP_SPI3_CS4, AFP_SPI3_CS5, AFP_SPI3_MOSI, AFP_SPI4_CS1, AFP_SPI4_CS2, AFP_SPI4_CS3, AFP_SPI4_CS4, AFP_SPI4_CS5, AFP_SPI4_MOSI, AFP_SPI5_CS1, AFP_SPI5_CS2, AFP_SPI5_CS3, AFP_SPI5_CS4, AFP_SPI5_CS5, AFP_SPI5_MOSI, AFP_EMIOS0_CH2, AFP_EMIOS0_CH8, AFP_EMIOS0_CH9, AFP_EMIOS0_CH15, AFP_EMIOS0_CH16, AFP_EMIOS0_CH17, AFP_EMIOS0_CH18, AFP_EMIOS0_CH19, AFP_EMIOS0_CH20, AFP_EMIOS0_CH21, AFP_EMIOS1_CH0, AFP_EMIOS1_CH6, AFP_EMIOS1_CH7, AFP_EMIOS1_CH8, AFP_EMIOS1_CH9, AFP_EMIOS1_CH10, AFP_EMIOS1_CH11, AFP_EMIOS1_CH12, AFP_EMIOS1_CH13, AFP_EMIOS1_CH14, AFP_EMIOS1_CH15, AFP_EMIOS1_CH16, AFP_EMIOS1_CH19, AFP_EMIOS1_CH20, AFP_EMIOS1_CH21, AFP_EMIOS1_CH22, AFP_EMIOS1_CH23, AFP_EMIOS1_CH24, AFP_ADC_ANP0, AFP_ADC_ANP1, AFP_ADC_ANP2, AFP_ADC_ANP3, AFP_ADC_ANP4, AFP_ADC_ANP5, AFP_ADC_ANP6, AFP_ADC_ANP7, AFP_ADC_ANP8, AFP_ADC_ANP9, AFP_ADC_ANP10, AFP_ADC_ANP11, AFP_ADC_ANP12, AFP_ADC_ANP13, AFP_ADC_ANP14, AFP_ADC_ANP15, AFP_ADC_ANS0, AFP_ADC_ANS1, AFP_ADC_ANS2, AFP_ADC_ANS3, AFP_ADC_ANS4, AFP_ADC_ANS5, AFP_ADC_ANS6, AFP_ADC_ANS7, AFP_ADC_ANS8, AFP_ADC_ANS9, AFP_ADC_ANS10, AFP_ADC_ANS11, AFP_ADC_ANS12, AFP_ADC_ANS13, AFP_ADC_ANS14, AFP_ADC_ANS15, AFP_ADC_ANS16, AFP_ADC_ANS17, AFP_ADC_ANS18, AFP_ADC_ANS19, AFP_ADC_ANS20, AFP_ADC_ANS21, AFP_ADC_ANS22, AFP_ADC_ANS23, AFP_ADC_ANS24, AFP_ADC_ANS25, AFP_ADC_ANS26, AFP_ADC_ANS27, AFP_ADC_ANE0, AFP_ADC_ANE1, AFP_ADC_ANE2, AFP_ADC_ANE3, AFP_GPIO}AF_PORT;const U2 GPIO_PSMI_Map[64][4]={/start of PSMI/{ 35, 43, 95,0xFFFF},/*AFP_CAN1_RXD=0, */{ 73, 89,0xFFFF,0xFFFF},/*AFP_CAN2_RXD, */{ 36, 73, 89,0xFFFF},/*AFP_CAN3_RXD, */{ 35, 43, 95,0xFFFF},/*AFP_CAN4_RXD, */{ 64, 97,0xFFFF,0xFFFF},/*AFP_CAN5_RXD, */{ 14, 15,0xFFFF,0xFFFF},/*AFP_SPI0_SCK, */{ 14, 15, 27,0xFFFF},/*AFP_SPI0_CS0, */{ 34, 68, 114,0xFFFF},/*AFP_SPI1_SCK, */{ 36, 66, 112,0xFFFF},/*AFP_SPI1_MISO, */{ 35, 61, 69, 115},/*AFP_SPI1_CS0, */{ 46, 78, 105,0xFFFF},/*AFP_SPI2_SCK, */{ 44, 76,0xFFFF,0xFFFF},/*AFP_SPI2_MISO, */{ 47, 79, 82, 104},/*AFP_SPI2_CS0, */{ 3, 27,0xFFFF,0xFFFF},/*AFP_EMIOS1_CH3, */{ 4, 28,0xFFFF,0xFFFF},/*AFP_EMIOS0_CH4, */{ 5, 29,0xFFFF,0xFFFF},/*AFP_EMIOS0_CH5, */{ 6, 30,0xFFFF,0xFFFF},/*AFP_EMIOS0_CH6, */{ 7, 31,0xFFFF,0xFFFF},/*AFP_EMIOS0_CH7, */{ 10, 80,0xFFFF,0xFFFF},/AFP_EMIOS0_CH10,/{ 11, 81,0xFFFF,0xFFFF},/AFP_EMIOS0_CH11,/{ 44, 82,0xFFFF,0xFFFF},/AFP_EMIOS0_CH12,/{ 45, 83,0xFFFF,0xFFFF},/AFP_EMIOS0_CH13,/{ 46, 84,0xFFFF,0xFFFF},/AFP_EMIOS0_CH14,/{ 70, 72, 85,0xFFFF},/AFP_EMIOS0_CH22,/{ 71, 73, 86,0xFFFF},/AFP_EMIOS0_CH23,/{ 60, 106,0xFFFF,0xFFFF},/AFP_EMIOS0_CH24,/{ 61, 107,0xFFFF,0xFFFF},/AFP_EMIOS0_CH25,/{ 62, 108,0xFFFF,0xFFFF},/AFP_EMIOS0_CH26,/{ 63, 109,0xFFFF,0xFFFF},/AFP_EMIOS0_CH27,/{ 11, 19,0xFFFF,0xFFFF},/*AFP_IIC0_SCL, */{ 10, 18,0xFFFF,0xFFFF},/*AFP_IIC0_SDA, */{ 8, 75,0xFFFF,0xFFFF},/*AFP_LIN3_RXD, */{ 100, 124,0xFFFF,0xFFFF},/*AFP_SPI3_SCK, */ { 101, 139,0xFFFF,0xFFFF},/*AFP_SPI3_MISO, */ { 99, 125, 140,0xFFFF},/*AFP_SPI3_CS0, */ { 109, 126, 133,0xFFFF},/*AFP_SPI4_SCK, */ { 106, 142,0xFFFF,0xFFFF},/*AFP_SPI4_MISO, */ { 107, 123, 134, 143},/*AFP_SPI4_CS0, */ { 0, 14,0xFFFF,0xFFFF},/*AFP_EMIOS0_CH0, */ { 1, 15,0xFFFF,0xFFFF},/*AFP_EMIOS0_CH1, */ { 12, 128,0xFFFF,0xFFFF},/AFP_EMIOS0_CH28,/ { 13, 129,0xFFFF,0xFFFF},/AFP_EMIOS0_CH29,/ { 16, 18, 130,0xFFFF},/AFP_EMIOS0_CH30,/ { 17, 19, 131,0xFFFF},/AFP_EMIOS0_CH31,/ { 111, 89,0xFFFF,0xFFFF},/*AFP_EMIOS1_CH1, */ { 112, 90,0xFFFF,0xFFFF},/*AFP_EMIOS1_CH2, */ { 113, 91,0xFFFF,0xFFFF},/*AFP_EMIOS1_CH3, */ { 114, 95,0xFFFF,0xFFFF},/*AFP_EMIOS1_CH4, */ { 115, 123,0xFFFF,0xFFFF},/*AFP_EMIOS1_CH5, */ { 104, 127,0xFFFF,0xFFFF},/AFP_EMIOS1_CH17,/ { 105, 148,0xFFFF,0xFFFF},/AFP_EMIOS1_CH18,/ { 92, 124,0xFFFF,0xFFFF},/AFP_EMIOS1_CH25,/ { 93, 125,0xFFFF,0xFFFF},/AFP_EMIOS1_CH26,/ { 94, 126,0xFFFF,0xFFFF},/AFP_EMIOS1_CH27,/ { 38, 132,0xFFFF,0xFFFF},/AFP_EMIOS1_CH28,/ { 39, 133,0xFFFF,0xFFFF},/AFP_EMIOS1_CH29,/ { 74, 103, 134,0xFFFF},/AFP_EMIOS1_CH30,/ { 36, 106, 135,0xFFFF},/AFP_EMIOS1_CH31,/ { 41, 11,0xFFFF,0xFFFF},/*AFP_LIN2_RXD, */ { 6, 91,0xFFFF,0xFFFF},/*AFP_LIN4_RXD, */ { 4, 93,0xFFFF,0xFFFF},/*AFP_LIN5_RXD, */ {0xFFFF,0xFFFF,0xFFFF,0xFFFF},/*AFP_RESERVED0, */ { 19, 17,0xFFFF,0xFFFF},/*AFP_LIN0_RXD, */ {0xFFFF,0xFFFF,0xFFFF,0xFFFF},/*AFP_RESERVED1, / /end of PSMI/ };#endif / (APP_HW_VERSION_AB802_0_0 != APP_HW_VERSION) */#if (APP_HW_VERSION_E6305_1_3 == APP_HW_VERSION)#define BSP_GPIO_NUM 87const GpioCfgType GPIO_CfgTab[BSP_GPIO_NUM]={/* digital input *//system PIN/{AFP_GPIO, PIN_IGN, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},{AFP_GPIO, PIN_SPARE_ON_SLOW_CHARGE_ON, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},{AFP_GPIO, PIN_AIRBAG, IOA_D_INPUT, 0, IOA_AF1, IOA_FAST, IOA_P_OPENDRAIN},{AFP_GPIO, PIN_VE_CAN_ERR_IN, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_CP_WAKE, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},/* digital output / /system PIN/#if APP_RUN_MODE == RUN_MODE_TEST{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/ Stop Ext-dog /#else// {AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/ Stop Ext-dog /#endif{AFP_GPIO, PIN_POWER_SELFACTIVE, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_SLAVE_POWER_SWITCH, IOA_D_OUTPUT, 1, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_POWER_LOCK, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/eeprom write protect PIN/{AFP_GPIO, PIN_MC25LC256_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_FM25LC160_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/CAN ctrl PIN/{AFP_GPIO, PIN_IN_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_VE_CAN_EN, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_VE_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_VE_CAN_WAKE_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_VE_CAN_ERR_OUT, IOA_D_OUTPUT, 1, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},/LED PIN/{AFP_GPIO, PIN_LED1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},{AFP_GPIO, PIN_LED2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},{AFP_GPIO, PIN_LED3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},{AFP_GPIO, PIN_LED4, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},{AFP_GPIO, PIN_LED5, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/relay feedback ctrl PIN/{AFP_GPIO, PIN_BTS5180_DOPEN_LOAD, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay ctrl PIN/{AFP_GPIO, PIN_ANODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CATHODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HEAT_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_PRECHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE2_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE3_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE4_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE5_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE6_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay adhere detect PIN/{AFP_GPIO, PIN_HV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_HV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_HV_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_HV_RELAY4, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_HV_RELAY5, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_LV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_LV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_LV_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},/insulate detected ctrl PIN/{AFP_GPIO, PIN_INSULATE_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_INSULATE_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_INSULATE_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_INSULATE_POWER_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},/SPI CS ctrl PIN// SPI0 /{AFP_GPIO, PIN_SPI0_CS_FM, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_EEP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_INSULATE, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_FLASH0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_FLASH1, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI1 /{AFP_GPIO, PIN_V_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI2 */{AFP_GPIO, PIN_I_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/PWM PIN/ {AFP_EMIOS0_CH3, PIN_INTERLOCK_OUTPUT_CHANNEL, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_GPIO, PIN_INTERLOCK_INPUT_CHANNEL, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_OPENDRAIN}, {AFP_EMIOS0_CH14,PIN_CP_CHANNEL, IOA_D_INPUT, 0, IOA_AF1, IOA_FAST, IOA_P_OPENDRAIN}, /ADC PIN/ {AFP_ADC_ANS13, PIN_CC_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANS11, PIN_CC2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP4, PIN_BOARD_POWER_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP6, PIN_SHUNT_CURRENT_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP7, PIN_ANODE_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP8, PIN_CATHODE_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP10, PIN_FAST_CHARGE_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP9, PIN_SLOW_CHARGE_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP5, PIN_CURRENT_HALL_POWER_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANS15, PIN_CURRENT_HALL_CHANNEL1, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANS14, PIN_CURRENT_HALL_CHANNEL2, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP11, PIN_BTS5180_IS1_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP12, PIN_BTS5180_IS2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, /CAN communication PIN/ /* CAN0 / {AFP_CAN0_TXD, PIN_CAN0_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN0_RXD, PIN_CAN0_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN1 / {AFP_CAN1_TXD, PIN_CAN1_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN1_RXD, PIN_CAN1_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN2 / {AFP_CAN2_TXD, PIN_CAN2_TX, IOA_D_OUTPUT, 0, IOA_AF3, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN2_RXD, PIN_CAN2_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /SPI communication PIN/ / SPI0 / {AFP_SPI0_SCK, PIN_SPI0_SCK, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MISO, PIN_SPI0_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_OPENDRAIN}, {AFP_SPI0_MOSI, PIN_SPI0_MOSI, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, / SPI1 / {AFP_SPI1_SCK, PIN_V_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MISO, PIN_V_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_OPENDRAIN}, / SPI2 */ {AFP_SPI2_SCK, PIN_I_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MISO, PIN_I_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_OPENDRAIN}, /IIC communication PIN/ {AFP_IIC0_SCL, PIN_IIC0_SCL, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_IIC0_SDA, PIN_IIC0_SDA, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_OPENDRAIN},};#endif#if (APP_HW_VERSION_E6217_0_6 == APP_HW_VERSION)#define BSP_GPIO_NUM 71const GpioCfgType GPIO_CfgTab[BSP_GPIO_NUM]={/* digital input *//system PIN/{AFP_GPIO, PIN_IGN, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE_ON_SLOW_CHARGE_ON, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SAFELINE, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/relay feedback PIN/{AFP_GPIO, PIN_ANODE_RELAY_ST, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_RELAY_ST, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CATHODE_RELAY_ST, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_PRECHARGE_RELAY_ST, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HEAT_RELAY_ST, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE1_RELAY_ST, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/* digital output / /system PIN/#if APP_RUN_MODE == RUN_MODE_TEST{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/ Stop Ext-dog /#else{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},#endif{AFP_GPIO, PIN_POWER_SELFACTIVE, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_POWER_LOCK, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/eeprom write protect PIN/{AFP_GPIO, PIN_MC25LC256_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_FM25LC160_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/CAN ctrl PIN/{AFP_GPIO, PIN_IN_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CH_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/LED PIN/{AFP_GPIO, PIN_LED1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED4, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED5, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay ctrl PIN/{AFP_GPIO, PIN_ANODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CATHODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HEAT_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_PRECHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE1_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE2_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE3_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay adhere detect PIN/{AFP_GPIO, PIN_HV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/insulate detected ctrl PIN/{AFP_GPIO, PIN_INSULATE_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_POWER_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/SPI CS ctrl PIN// SPI0 /{AFP_GPIO, PIN_SPI0_CS_FM, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_EEP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_INSULATE, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI1 /{AFP_GPIO, PIN_V_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI2 */{AFP_GPIO, PIN_I_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/PWM PIN/ {AFP_EMIOS0_CH3, PIN_INTERLOCK_OUTPUT_CHANNEL, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_GPIO, PIN_INTERLOCK_INPUT_CHANNEL, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_EMIOS0_CH14,PIN_CP_CHANNEL, IOA_D_INPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, /ADC PIN/ {AFP_ADC_ANS13, PIN_CC_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS11, PIN_CC2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP4, PIN_BOARD_POWER_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP6, PIN_SHUNT_CURRENT_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP7, PIN_ANODE_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP8, PIN_CATHODE_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP5, PIN_CURRENT_HALL_POWER_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS15, PIN_CURRENT_HALL_CHANNEL1, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS14, PIN_CURRENT_HALL_CHANNEL2, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /CAN communication PIN/ /* CAN0 / {AFP_CAN0_TXD, PIN_CAN0_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN0_RXD, PIN_CAN0_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN1 / {AFP_CAN1_TXD, PIN_CAN1_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN1_RXD, PIN_CAN1_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN2 / {AFP_CAN2_TXD, PIN_CAN2_TX, IOA_D_OUTPUT, 0, IOA_AF3, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN2_RXD, PIN_CAN2_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /SPI communication PIN/ / SPI0 / {AFP_SPI0_SCK, PIN_SPI0_SCK, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MISO, PIN_SPI0_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MOSI, PIN_SPI0_MOSI, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, / SPI1 / {AFP_SPI1_SCK, PIN_V_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MISO, PIN_V_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, / SPI2 */ {AFP_SPI2_SCK, PIN_I_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MISO, PIN_I_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, /IIC communication PIN/ {AFP_IIC0_SCL, PIN_IIC0_SCL, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_IIC0_SDA, PIN_IIC0_SDA, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL},};#endif#if (APP_HW_VERSION_AB00QF02_0_0 == APP_HW_VERSION)#define BSP_GPIO_NUM 83const GpioCfgType GPIO_CfgTab[BSP_GPIO_NUM]={/* digital input *//system PIN/{AFP_GPIO, PIN_IGN, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE_ON_SLOW_CHARGE_ON, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_AIRBAG, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_ERR_IN, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_WAKE, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/* digital output / /system PIN/#if APP_RUN_MODE == RUN_MODE_TEST{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/ Stop Ext-dog /#else{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},#endif{AFP_GPIO, PIN_POWER_SELFACTIVE, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SLAVE_POWER_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_POWER_LOCK, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/eeprom write protect PIN/{AFP_GPIO, PIN_MC25LC256_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_FM25LC160_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/CAN ctrl PIN/{AFP_GPIO, PIN_IN_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_EN, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_WAKE_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_ERR_OUT, IOA_D_OUTPUT, 1, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CH_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/LED PIN/{AFP_GPIO, PIN_LED1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED4, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED5, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay feedback ctrl PIN/{AFP_GPIO, PIN_BTS5180_DOPEN_LOAD, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay ctrl PIN/{AFP_GPIO, PIN_ANODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CATHODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HEAT_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_PRECHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE2_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE3_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE4_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay adhere detect PIN/{AFP_GPIO, PIN_HV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/insulate detected ctrl PIN/{AFP_GPIO, PIN_INSULATE_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_POWER_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/SPI CS ctrl PIN// SPI0 /{AFP_GPIO, PIN_SPI0_CS_FM, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_EEP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_INSULATE, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_FLASH0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_FLASH1, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI1 /{AFP_GPIO, PIN_V_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI2 */{AFP_GPIO, PIN_I_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/PWM PIN/ {AFP_EMIOS0_CH3, PIN_INTERLOCK_OUTPUT_CHANNEL, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_EMIOS0_CH5, PIN_INTERLOCK_INPUT_CHANNEL, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_EMIOS0_CH14,PIN_CP_CHANNEL, IOA_D_INPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, /ADC PIN/ {AFP_ADC_ANS13, PIN_CC_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS11, PIN_CC2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP4, PIN_BOARD_POWER_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP6, PIN_SHUNT_CURRENT_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP7, PIN_ANODE_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP8, PIN_CATHODE_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP5, PIN_CURRENT_HALL_POWER_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS15, PIN_CURRENT_HALL_CHANNEL1, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS14, PIN_CURRENT_HALL_CHANNEL2, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP10, PIN_FAST_CHARGE_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP9, PIN_SLOW_CHARGE_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP11, PIN_BTS5180_IS1_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP12, PIN_BTS5180_IS2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /CAN communication PIN/ /* CAN0 / {AFP_CAN0_TXD, PIN_CAN0_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN0_RXD, PIN_CAN0_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN1 / {AFP_CAN1_TXD, PIN_CAN1_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN1_RXD, PIN_CAN1_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN2 / {AFP_CAN2_TXD, PIN_CAN2_TX, IOA_D_OUTPUT, 0, IOA_AF3, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN2_RXD, PIN_CAN2_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /SPI communication PIN/ / SPI0 / {AFP_SPI0_SCK, PIN_SPI0_SCK, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MISO, PIN_SPI0_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MOSI, PIN_SPI0_MOSI, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, / SPI1 / {AFP_SPI1_SCK, PIN_V_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MISO, PIN_V_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, / SPI2 */ {AFP_SPI2_SCK, PIN_I_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MISO, PIN_I_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, /IIC communication PIN/ {AFP_IIC0_SCL, PIN_IIC0_SCL, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_IIC0_SDA, PIN_IIC0_SDA, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL},};#endif#if (APP_HW_VERSION_E6211_0_4 == APP_HW_VERSION)#define BSP_GPIO_NUM 83const GpioCfgType GPIO_CfgTab[BSP_GPIO_NUM]={/* digital input *//system PIN/{AFP_GPIO, PIN_IGN, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE_ON_SLOW_CHARGE_ON, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_AIRBAG, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_WAKE, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/* digital output / /system PIN/#if APP_RUN_MODE == RUN_MODE_TEST{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/ Stop Ext-dog /#else{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},#endif{AFP_GPIO, PIN_POWER_SELFACTIVE, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_POWER_LOCK, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/eeprom write protect PIN/{AFP_GPIO, PIN_MC25LC256_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_FM25LC160_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/CAN ctrl PIN/{AFP_GPIO, PIN_IN_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_ERR_OUT, IOA_D_OUTPUT, 1, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CH_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/LED PIN/{AFP_GPIO, PIN_LED1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED4, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED5, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay feedback ctrl PIN/{AFP_GPIO, PIN_BTS5180_DOPEN_LOAD, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay ctrl PIN/{AFP_GPIO, PIN_ANODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CATHODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_PRECHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE1_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE2_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE3_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE4_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay adhere detect PIN/{AFP_GPIO, PIN_HV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/insulate detected ctrl PIN/{AFP_GPIO, PIN_INSULATE_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_POWER_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/SPI CS ctrl PIN// SPI0 /{AFP_GPIO, PIN_SPI0_CS_FM, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_EEP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_INSULATE, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI1 /{AFP_GPIO, PIN_6803_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_6803_SPI_CS1, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_6803_SPI_CS2, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI2 */{AFP_GPIO, PIN_V_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_I_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/temperature sample ctrl pin/{AFP_GPIO, PIN_TEMPERATURE_EN, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_TEMPERATURE_S0, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_TEMPERATURE_S1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_TEMPERATURE_S2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_TEMPERATURE_S3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/PWM PIN/ {AFP_EMIOS0_CH9, PIN_INTERLOCK_OUTPUT_CHANNEL, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_GPIO, PIN_INTERLOCK_INPUT_CHANNEL, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_EMIOS1_CH10,PIN_CP_CHANNEL, IOA_D_INPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, /ADC PIN/ {AFP_ADC_ANP6, PIN_CC_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP5, PIN_CC2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP2, PIN_BOARD_POWER_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS8, PIN_SPARE_AD1_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANE2, PIN_SPARE_AD2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP4, PIN_AD74HC4067_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP13, PIN_TEMP16H_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP8, PIN_BTS5180_IS1_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP7, PIN_BTS5180_IS2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /CAN communication PIN/ /* CAN0 / {AFP_CAN0_TXD, PIN_CAN0_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN0_RXD, PIN_CAN0_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN1 / {AFP_CAN1_TXD, PIN_CAN1_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN1_RXD, PIN_CAN1_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN2 / {AFP_CAN2_TXD, PIN_CAN2_TX, IOA_D_OUTPUT, 0, IOA_AF3, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN2_RXD, PIN_CAN2_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /SPI communication PIN/ / SPI0 / {AFP_SPI0_SCK, PIN_SPI0_SCK, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MISO, PIN_SPI0_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MOSI, PIN_SPI0_MOSI, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, / SPI1 / {AFP_SPI1_SCK, PIN_6803_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MISO, PIN_6803_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MOSI, PIN_6803_SPI_MOSI, IOA_D_INPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, / SPI2 */ {AFP_SPI2_SCK, PIN_V_I_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MISO, PIN_V_I_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MOSI, PIN_V_I_SPI_MOSI, IOA_D_INPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, /IIC communication PIN/ {AFP_IIC0_SCL, PIN_IIC0_SCL, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_IIC0_SDA, PIN_IIC0_SDA, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL},};#endif#if (APP_HW_VERSION_E6211_0_5 == APP_HW_VERSION)#define BSP_GPIO_NUM 92const GpioCfgType GPIO_CfgTab[BSP_GPIO_NUM]={/* digital input *//system PIN/{AFP_GPIO, PIN_IGN, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE_ON_SLOW_CHARGE_ON, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_AIRBAG, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_WAKE, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/elect lock/{AFP_GPIO, PIN_NFAULT, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_MOTOR, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_MOTOR_KEY_SWITCH, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/* digital output / /system PIN/#if APP_RUN_MODE == RUN_MODE_TEST{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/ Stop Ext-dog /#else{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},#endif{AFP_GPIO, PIN_POWER_SELFACTIVE, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_POWER_LOCK, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/eeprom write protect PIN/{AFP_GPIO, PIN_MC25LC256_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_FM25LC160_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/CAN ctrl PIN/{AFP_GPIO, PIN_IN_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_ERR_OUT, IOA_D_OUTPUT, 1, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/LED PIN/{AFP_GPIO, PIN_LED1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED4, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED5, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay feedback ctrl PIN/{AFP_GPIO, PIN_BTS5180_DOPEN_LOAD, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay ctrl PIN/{AFP_GPIO, PIN_ANODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CATHODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_PRECHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE1_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE2_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE3_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE4_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay adhere detect PIN/{AFP_GPIO, PIN_HV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/insulate detected ctrl PIN/{AFP_GPIO, PIN_INSULATE_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_POWER_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/SPI CS ctrl PIN// SPI0 /{AFP_GPIO, PIN_SPI0_CS_FM, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_EEP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_INSULATE, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_FLASH0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_FLASH1, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI1 /{AFP_GPIO, PIN_6803_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_6803_SPI_CS1, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_6803_SPI_CS2, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI2 */{AFP_GPIO, PIN_V_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_I_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/temperature sample ctrl pin/{AFP_GPIO, PIN_TEMPERATURE_EN, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_TEMPERATURE_S0, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_TEMPERATURE_S1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_TEMPERATURE_S2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_TEMPERATURE_S3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/485 ctrl pin/{AFP_GPIO, PIN_RS485_EN, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/elect lock/{AFP_GPIO, PIN_MOTOR_P, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_MOTOR_N, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/PWM PIN/ {AFP_EMIOS0_CH9, PIN_INTERLOCK_OUTPUT_CHANNEL, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_GPIO, PIN_INTERLOCK_INPUT_CHANNEL, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_EMIOS1_CH10,PIN_CP_CHANNEL, IOA_D_INPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, /ADC PIN/ {AFP_ADC_ANP6, PIN_CC_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP5, PIN_CC2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP2, PIN_BOARD_POWER_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS8, PIN_SPARE_AD1_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP1, PIN_SPARE_AD2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP4, PIN_AD74HC4067_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP13, PIN_TEMP16H_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP8, PIN_BTS5180_IS1_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP7, PIN_BTS5180_IS2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP12, PIN_HALLCURR_HIGH_CHANNAL1, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP11, PIN_HALLCURR_LOWE_CHANNAL2, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /CAN communication PIN/ /* CAN0 / {AFP_CAN0_TXD, PIN_CAN0_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN0_RXD, PIN_CAN0_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN1 / {AFP_CAN1_TXD, PIN_CAN1_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN1_RXD, PIN_CAN1_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN2 / {AFP_CAN2_TXD, PIN_CAN2_TX, IOA_D_OUTPUT, 0, IOA_AF3, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN2_RXD, PIN_CAN2_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /SPI communication PIN/ / SPI0 / {AFP_SPI0_SCK, PIN_SPI0_SCK, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MISO, PIN_SPI0_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MOSI, PIN_SPI0_MOSI, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, / SPI1 / {AFP_SPI1_SCK, PIN_6803_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MISO, PIN_6803_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MOSI, PIN_6803_SPI_MOSI, IOA_D_INPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, / SPI2 */ {AFP_SPI2_SCK, PIN_V_I_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MISO, PIN_V_I_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MOSI, PIN_V_I_SPI_MOSI, IOA_D_INPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, /IIC communication PIN/ {AFP_IIC0_SCL, PIN_IIC0_SCL, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_IIC0_SDA, PIN_IIC0_SDA, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL},};#endif#if (APP_HW_VERSION_AB802_0_0 == APP_HW_VERSION)#define BSP_GPIO_NUM 112const GpioCfgType GPIO_CfgTab[BSP_GPIO_NUM]={/* digital input *//system PIN/{AFP_GPIO, PIN_IGN, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE_ON_SLOW_CHARGE_ON, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_AIRBAG, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_ERR_IN, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_WAKE, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE_ON, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_E_LOCK, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_E_NFAULT, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_AIRBAG2, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/* digital output / /system PIN/#if APP_RUN_MODE == RUN_MODE_TEST{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/ Stop Ext-dog /#else// {AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/ Stop Ext-dog /#endif{AFP_GPIO, PIN_POWER_SELFACTIVE, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SLAVE_POWER_SWITCH, IOA_D_OUTPUT, 1, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_POWER_LOCK, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_DCDC_WAKEUP, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_GBOX_POWER, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/eeprom write protect PIN/{AFP_GPIO, PIN_MC25LC256_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_FM25LC160_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/CAN ctrl PIN/{AFP_GPIO, PIN_IN_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_EN, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_WAKE_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_ERR_OUT, IOA_D_OUTPUT, 1, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_IN_DIG_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_DIG_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/LED PIN/{AFP_GPIO, PIN_LED1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED4, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED5, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED6, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED7, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay feedback ctrl PIN/{AFP_GPIO, PIN_BTS5180_DOPEN_LOAD, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay ctrl PIN/{AFP_GPIO, PIN_ANODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CATHODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HEAT_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_PRECHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE2_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE3_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE4_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE5_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE6_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_RELAY3_SPARE1_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_RELAY3_SPARE2_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay adhere detect PIN/{AFP_GPIO, PIN_HV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY4, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY5, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/insulate detected ctrl PIN/{AFP_GPIO, PIN_INSULATE_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_POWER_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/SPI CS ctrl PIN// SPI2 /{AFP_GPIO, PIN_SPI0_CS_FM, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_EEP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_INSULATE, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_FLASH0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_FLASH1, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI4 /{AFP_GPIO, PIN_V_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI1 */{AFP_GPIO, PIN_I_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/elect lock/{AFP_GPIO, PIN_MOTOR_P, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_MOTOR_N, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/PWM PIN/ {AFP_EMIOS0_CH3, PIN_INTERLOCK_OUTPUT_CHANNEL, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_GPIO, PIN_INTERLOCK_INPUT_CHANNEL, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_EMIOS0_CH11,PIN_CP_CHANNEL, IOA_D_INPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, /ADC PIN/ {AFP_ADC_ANS8, PIN_CC_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS2, PIN_CC2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP4, PIN_BOARD_POWER_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP6, PIN_SHUNT_CURRENT_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, //{AFP_ADC_ANP7, PIN_ANODE_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, //{AFP_ADC_ANP8, PIN_CATHODE_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_GPIO, PIN_ANODE_FB_CHANNEL, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_GPIO, PIN_CATHODE_FB_CHANNEL, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP5, PIN_CURRENT_HALL_POWER_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS14, PIN_CURRENT_HALL_CHANNEL1, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS15, PIN_CURRENT_HALL_CHANNEL2, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP10, PIN_FAST_CHARGE_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP9, PIN_SLOW_CHARGE_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP15, PIN_BTS5180_IS1_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP14, PIN_BTS5180_IS2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS0, PIN_CC2_2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP11, PIN_FAST_CHARGE_TEMP2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP12, PIN_SLOW_CHARGE_TEMP2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP13, PIN_BTS5180_IS3_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /CAN communication PIN/ /* CAN5 / {AFP_CAN5_TXD, PIN_CAN5_TX, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN5_RXD, PIN_CAN5_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN1 / {AFP_CAN1_TXD, PIN_CAN1_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN1_RXD, PIN_CAN1_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN4 / {AFP_CAN4_TXD, PIN_CAN4_TX, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN4_RXD, PIN_CAN4_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN0 / {AFP_CAN0_TXD, PIN_CAN0_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN0_RXD, PIN_CAN0_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN2 / {AFP_CAN2_TXD, PIN_CAN2_TX, IOA_D_OUTPUT, 0, IOA_AF3, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN2_RXD, PIN_CAN2_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /SPI communication PIN/ / SPI2 / {AFP_SPI2_SCK, PIN_SPI2_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MISO, PIN_SPI2_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MOSI, PIN_SPI2_MOSI, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, / SPI4 / {AFP_SPI4_SCK, PIN_V_SPI4_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI4_MISO, PIN_V_SPI4_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, / SPI1 */ {AFP_SPI1_SCK, PIN_I_SPI1_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MISO, PIN_I_SPI1_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MOSI, PIN_I_SPI1_MOSI, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, /IIC communication PIN/ {AFP_IIC0_SCL, PIN_IIC0_SCL, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_IIC0_SDA, PIN_IIC0_SDA, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL},};#endif///* L O C A L F U N C T I O N S P R O T O T Y P E S //*////* F U N C T I O N S ////Function: BSP_GPIO_InitParam:Param:Return:Discription:Note:REQ IDs:*/void BSP_GPIO_Init(void){U2 i,j;U4 tu4_ADC_NCMR[3]={0,0,0};for(i=0; i>4] |= (1<<(GPIO_CfgTab[i].pin&0x0F));/ break; case IOA_D_INOUT: GPIO_SetInOut(GPIO_CfgTab[i].pin); /gu2_gpio_test_P_OutInd[GPIO_CfgTab[i].pin>>4] |= (1<<(GPIO_CfgTab[i].pin&0x0F));/ break; case IOA_D_ADC: GPIO_SetAdinput(GPIO_CfgTab[i].pin); if(((U2)GPIO_CfgTab[i].AF_PORT) <= ((U2)AFP_ADC_ANP15)) { tu4_ADC_NCMR[0] |= 0x0001<<(((U2)GPIO_CfgTab[i].AF_PORT) - ((U2)AFP_ADC_ANP0)); } else if(((U2)GPIO_CfgTab[i].AF_PORT) <= ((U2)AFP_ADC_ANS15)) { tu4_ADC_NCMR[1] |= 0x0001<<(((U2)GPIO_CfgTab[i].AF_PORT) - ((U2)AFP_ADC_ANS0)); } else if(((U2)GPIO_CfgTab[i].AF_PORT) <= ((U2)AFP_ADC_ANE3)) { tu4_ADC_NCMR[2] |= 0x0001<<(((U2)GPIO_CfgTab[i].AF_PORT) - ((U2)AFP_ADC_ANE0)); } else { /error/ } break; default: break; } /* 管脚模式*/ GPIO_SetAF(GPIO_CfgTab[i].pin, GPIO_CfgTab[i].af); switch(GPIO_CfgTab[i].pull) { case IOA_P_PUSHPULL: GPIO_SetPushPull(GPIO_CfgTab[i].pin); break; case IOA_P_WEAKPULLUP: GPIO_SetWeakPullUp(GPIO_CfgTab[i].pin); break; case IOA_P_WEAKPULLDOWN: GPIO_SetWeakPullDown(GPIO_CfgTab[i].pin); break; case IOA_P_OPENDRAIN: GPIO_SetOpenDrain(GPIO_CfgTab[i].pin); break; default: break; } /* 快速脚*/ if(IOA_FAST == GPIO_CfgTab[i].fast_slow) { GPIO_SetFast(GPIO_CfgTab[i].pin); } else { GPIO_SetSlow(GPIO_CfgTab[i].pin); } /* 复用功能设定*/ if(((U1)GPIO_CfgTab[i].AF_PORT) <= 31) /PSMI Port/ { for(j=0; j<4; j++) { if(GPIO_PSMI_Map[((U1)GPIO_CfgTab[i].AF_PORT)][j] == GPIO_CfgTab[i].pin) { SIU.PSMI[((U1)GPIO_CfgTab[i].AF_PORT)].R = (U1)j; break; } } if(4 == j) { /error,printf debug info/ while(1) { }; } }}/* ADC 开关*/#if (APP_HW_VERSION_AB802_0_0 != APP_HW_VERSION)ADC.NCMR[0].R = tu4_ADC_NCMR[0];ADC.NCMR[1].R = tu4_ADC_NCMR[1];ADC.NCMR[2].R = tu4_ADC_NCMR[2];#elseADC_0.NCMR0.R = tu4_ADC_NCMR[0];ADC_0.NCMR1.R = tu4_ADC_NCMR[1];ADC_0.NCMR2.R = tu4_ADC_NCMR[2];#endif /* (APP_HW_VERSION_AB802_0_0 != APP_HW_VERSION) */}#if 0U2 gu2_gpio_test_P_Status[PORTNUM];U2 gu2_gpio_test_P_Set[PORTNUM];U2 gu2_gpio_test_P_OutInd[PORTNUM];U2 gu2_gpio_test_P_Mask[PORTNUM];U2 gu2_gpio_test_AdcANP[16];U2 gu2_gpio_test_AdcANS[16];void gpio_test_loop(void){#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */OS_CPU_SR cpu_sr = 0;#endifstatic U1 adc_step = 0; static U2 i = 0; U2 j; U2 tu2_d,tu2_m; i ; if(i>=PORTNUM) { i = 0; } tu2_d = GPIO_GetPort(i,0xFFFFu); OS_ENTER_CRITICAL(); gu2_gpio_test_P_Status[i] = tu2_d; tu2_d = gu2_gpio_test_P_Set[i]; tu2_m = gu2_gpio_test_P_Mask[i]; OS_EXIT_CRITICAL(); for(j=0;j<16;j) { if(tu2_m & (0x0001=32) adc_step=0; OS_ENTER_CRITICAL(); if(adc_step<16) { gu2_gpio_test_AdcANP[adc_step] = ADC_GetChannelValue(adc_step); } else { gu2_gpio_test_AdcANS[adc_step-16] = ADC_GetChannelValue(adc_step+16); } OS_EXIT_CRITICAL();}#endif#if APP_RUN_MODE == RUN_MODE_TESTuint8_t test_bsp_IGN = 0;uint8_t test_bsp_SPARE_ONOFF = 0;uint8_t test_bsp_SAFELINE = 0;uint8_t test_bsp_AirBag_Level = 0;uint8_t test_ANODE_RELAY_FB_STATUS = 0;uint8_t test_CHARGE_RELAY_FB_STATUS = 0;uint8_t test_CATHODE_RELAY_FB_STATUS = 0;uint8_t test_PRE_RELAY_FB_STATUS = 0;uint8_t test_HEAT_RELAY_FB_STATUS = 0;uint8_t test_ASSIST_RELAY_FB_STATUS = 0;uint8_t test_bsp_INPUT_INTERLOCK_Level = 0;uint16_t test_bsp_POWER_FB_VAL = 0;uint16_t test_bsp_CURR_POWER_FB_VAL = 0;uint16_t test_bsp_CHARGE_CC2_VAL = 0;uint16_t test_bsp_CURR_CHANNAL2_VAL = 0;uint16_t test_bsp_CURR_CHANNAL1_VAL = 0;uint16_t test_bsp_CHARGE_CC_VAL = 0;uint16_t test_bsp_CURRENT_TEMP_AD_VAL = 0;uint16_t test_bsp_SLCHARGE_TEMP_ADC_VAL = 0;uint16_t test_bsp_QUCHARGE_TEMP_ADC_VAL = 0;uint16_t test_bsp_ANODE_FEEDBACK_VAL = 0;uint16_t test_bsp_CATHODE_FEEDBACK_VAL = 0;uint16_t test_cpHwStatus = 0;uint16_t test_main_volt = 0;uint16_t test_main_current = 0;uint16_t test_insAnodeThr = 0;uint16_t test_insCathodeThr = 0;#endif/*Copyright © 2014,SHENZHEN HANGSHENG ELECTRONICS Co.,Ltd.All Rights Reserved.Dept.:ACECFile:AcecType.hDescription: descript informationREQ IDs: show the handle requirement IDsHistory:2014-3-1, 1306104, original*/#ifndef BSP_CPU_H#define BSP_CPU_H#include “includes.h”#include “bsp_cfg.h”#include “Config.h”#include “gpio.h”#include “emios.h”#include “adc.h”#if (APP_HW_VERSION_E6305_1_3 == APP_HW_VERSION)/------------------------------------------digital I/O PIN setting begin ---------------------------------------------->//* digital input //system PIN/#define PIN_IGN PF0 / M_IGN_ON /#define PIN_SPARE_ON_SLOW_CHARGE_ON PF1 / M_SLCHARGE_ON /#define PIN_AIRBAG PC13 / M_AIRBAG /#define PIN_VE_CAN_ERR_IN PG9 / M_VE_CAN_ERR /#define PIN_CP_WAKE PE11 / M_CP_WAKE *//* digital output //system PIN/#define PIN_WATCHDOG_FEED PA7 / M_FEEDDOG /#define PIN_POWER_SELFACTIVE PB10 / M_POWER_EN /#define PIN_SLAVE_POWER_SWITCH PG12 / M_BMU_POWER /#define PIN_CHARGE_POWER_LOCK PF2 / M_CHARGE /#define PIN_CP_SWITCH PB14 / M_CP_S2 //eeprom write protect PIN/#define PIN_MC25LC256_WP PF11 / M_EEP_\WP /#define PIN_FM25LC160_WP PF13 / M_FM_\WP //CAN ctrl PIN/#define PIN_IN_CAN_STB PG7 / M_IN_CAN_\STB /#define PIN_VE_CAN_EN PC6 / M_VE_CAN_EN /#define PIN_VE_CAN_STB PG6 / M_VE_CAN_STB_H /#define PIN_VE_CAN_WAKE_SWITCH PC7 / M_DO_CAN_WAKE_HS /#define PIN_VE_CAN_ERR_OUT PG8 / M_VE_CAN_OPWM //LED PIN/#define PIN_LED1 PD14 / M_LED1 /#define PIN_LED2 PH0 / M_LED2 /#define PIN_LED3 PD13 / M_LED3 /#define PIN_LED4 PB12 / M_LED4 /#define PIN_LED5 PD15 / M_LED5 //relay feedback ctrl PIN/#define PIN_BTS5180_DOPEN_LOAD PC9 / M_DO_OPEN_LOAD_HS /#define PIN_BTS5180_DEN1 PE10 / M_RELAY1_DEN /#define PIN_BTS5180_DSEL1 PE9 / M_RELAY1_DSEL /#define PIN_BTS5180_DEN2 PA1 / M_RELAY2_DEN /#define PIN_BTS5180_DSEL2 PE0 / M_RELAY2_DSEL //relay ctrl PIN/#define PIN_ANODE_RELAY_CTRL PA0 / M_RELAY1_ANODE /#define PIN_CHARGE_RELAY_CTRL PE8 / M_RELAY1_CHARGE /#define PIN_CATHODE_RELAY_CTRL PE1 / M_RELAY2_CATHODE /#define PIN_HEAT_RELAY_CTRL PA2 / M_RELAY2_HEAT /#define PIN_PRECHARGE_RELAY_CTRL PC8 / M_RELAY_PRECHARGE /#define PIN_SPARE2_RELAY_CTRL PB2 / M_RELAY_SPARE2 /#define PIN_SPARE3_RELAY_CTRL PG5 / M_RELAY_SPARE3 /#define PIN_SPARE4_RELAY_CTRL PG4 / M_RELAY_SPARE4 /#define PIN_SPARE5_RELAY_CTRL PG3 / M_RELAY_SPARE5 /#define PIN_SPARE6_RELAY_CTRL PG2 / M_RELAY_SPARE6 //relay adhere detect PIN/#define PIN_HV_RELAY1 PG11 / M_HV_RELAY1 /#define PIN_HV_RELAY2 PC3 / M_HV_RELAY2 /#define PIN_HV_RELAY3 PG15 / M_HV_RELAY3 /#define PIN_HV_RELAY4 PG14 / M_HV_RELAY4 /#define PIN_HV_RELAY5 PE12 / M_HV_RELAY5 /#define PIN_LV_RELAY1 PE15 / M_LV_RELAY1 /#define PIN_LV_RELAY2 PG10 / M_LV_RELAY2 /#define PIN_LV_RELAY3 PE14 / M_LV_RELAY3 //insulate detected ctrl PIN/#define PIN_INSULATE_RELAY1 PE7 / M_INSULATION_RELAY1 /#define PIN_INSULATE_RELAY2 PE6 / M_INSULATION_RELAY2 /#define PIN_INSULATE_RELAY3 PH8 / M_INSULATION_RELAY3 /#define PIN_INSULATE_POWER_CTRL PH7 / M_INS_POWER //SPI CS ctrl pin/#define PIN_SPI0_CS_FM PA15 / M_FM_\CS /#define PIN_SPI0_CS_EEP PF10 / M_EEP_\CS /#define PIN_SPI0_CS_INSULATE PC2 / M_INS_\CS /#define PIN_SPI0_CS_FLASH0 PB15 / M_FLASH_\CS /#define PIN_SPI0_CS_FLASH1 PD12 / M_FLASH1_\CS /#define PIN_V_SPI_CS0 PE5 / M_VOL_AD_\CS /#define PIN_I_SPI_CS0 PC15 / M_CUR_\CNV *//<----------------------------------digital I/O PIN setting end----------------------------------------------------//-------------------------------------PWM PIN setting begin---------------------------------------------------------/#define PIN_INTERLOCK_OUTPUT_CHANNEL PB11 /* M_INTERLOCK_OPWM, E0UC3 /#define PIN_INTERLOCK_INPUT_CHANNEL PB13 / M_INTERLOCK_IPWM, E0UC5 /#define PIN_CP_CHANNEL PF4 / M_CP, E0UC14 *//#define PWM_CAN_ERROR_CHANNEL OUTPUT PG8//#define PWM_AIRBAG_CHANNEL PC13/ /Airbag signal is used for digital signal/#define PWM_INTERLOCK_OUTPUT_CHANNEL (0u) /OUTPUT PB11//#define PWM_INTERLOCK_INPUT_CHANNEL (1u) INPUT PB13/#define PWM_CP_CHANNEL (0u) /INPUT PF4//-------------------------------------PWM PIN setting end-----------------------------------------------------------//-------------------------------------ADC PIN setting begin---------------------------------------------------------//ADC/#define PIN_CC_CHANNEL PF5 /* M_CC, ANS13 /#define PIN_CC2_CHANNEL PF3 / M_CC2, ANS11 /#define PIN_BOARD_POWER_FB_CHANNEL PD0 / M_POWER_FB, ANP4 /#define PIN_SHUNT_CURRENT_TEMP_CHANNEL PD2 / M_CURR_TEMP, ANP6 /#define PIN_ANODE_FB_CHANNEL PD3 / M_ANO_FEEDBACK, ANP7 /#define PIN_CATHODE_FB_CHANNEL PD4 / M_CAT_FEDBACK, ANP8 /#define PIN_CURRENT_HALL_POWER_CHANNEL PD1 / M_CURR_POWER_FB, ANP5 /#define PIN_CURRENT_HALL_CHANNEL1 PF7 / M_CURR_CHANNAL1, ANS15 /#define PIN_CURRENT_HALL_CHANNEL2 PF6 / M_CURR_CHANNAL2, ANS14 /#define PIN_FAST_CHARGE_TEMP_CHANNEL PD6 / M_QUCHARGE_TEMPH_AI_LS, ANP10 /#define PIN_SLOW_CHARGE_TEMP_CHANNEL PD5 / M_SLCHARGE_TEMPH_AI_LS, ANP9 /#define PIN_BTS5180_IS1_CHANNEL PD7 / M_RELAY1_IS, ANP11 /#define PIN_BTS5180_IS2_CHANNEL PD8 / M_RELAY2_IS, ANP12 */#define ADC_CC_CHANNEL (32u+13u) /PF5/#define ADC_CC2_CHANNEL (32u+11u) /PF3/#define ADC_BOARD_POWER_FB_CHANNEL (4u) /PD0/#define ADC_SHUNT_CURRENT_TEMP_CHANNEL (6u) /PD2/#define ADC_ANODE_FB_CHANNEL (7u) /PD3/#define ADC_CATHODE_FB_CHANNEL (8u) /PD4/#define ADC_CURRENT_HALL_POWER_CHANNEL (5u) /PD1/#define ADC_CURRENT_HALL_CHANNEL1 (32u+15u) /PF7/#define ADC_CURRENT_HALL_CHANNEL2 (32u+14u) /PF6/#define ADC_FAST_CHARGE_TEMP_CHANNEL (10u) /PD6/#define ADC_SLOW_CHARGE_TEMP_CHANNEL (9u) /PD5/#define ADC_BTS5180_IS1_CHANNEL (11u) /PD7/#define ADC_BTS5180_IS2_CHANNEL (12u) /PD8//---------------------------------------ADC PIN setting end-----------------------------------------------------------//-----------------------------------digital communication PIN setting begin ---------------------------------------------->//* CAN0 /#define PIN_CAN0_TX PB0 / M_VE_CAN_TXD /#define PIN_CAN0_RX PB1 / M_VE_CAN_RXD // CAN1 /#define PIN_CAN1_TX PC10 / M_IN_CAN_TXD /#define PIN_CAN1_RX PC11 / M_IN_CAN_RXD // CAN2 /#define PIN_CAN2_TX PF8 / M_CHARGE_CAN_TXD /#define PIN_CAN2_RX PF9 / M_CHARGE_CAN_RXD // SPI0 /#define PIN_SPI0_SCK PA14 / M_SCK /#define PIN_SPI0_MISO PA12 / M_MISO /#define PIN_SPI0_MOSI PA13 / M_MOSI // SPI1 /#define PIN_V_SPI_SCK PE4 / M_VOL_AD_SCK /#define PIN_V_SPI_MISO PC4 / M_VOL_AD_DATA // SPI2 /#define PIN_I_SPI_SCK PC14 / M_CUR_AD_SCK /#define PIN_I_SPI_MISO PC12 / M_CUR_AD_DATA // IIC0 /#define PIN_IIC0_SCL PA11 / M_RTC_SCL /#define PIN_IIC0_SDA PA10 / M_RTC_SDA *//<----------------------------------digital communication PIN setting end--------------------------------------------------//* -----------------------------------GPIO OUTPUT macro define begin-----------------------------------------------------------*//power lock/#define bsp_powerEnable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 1)#define bsp_powerDisable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 0)#define bsp_slavePowerActive_En() GPIO_SetVal(PIN_SLAVE_POWER_SWITCH, 1)#define bsp_slavePowerActive_Dis() GPIO_SetVal(PIN_SLAVE_POWER_SWITCH, 0)/spare output, E6305 is canceled/#define bsp_spare_out_on() 1/GPIO_SetVal(PB3, 1)/#define bsp_spare_out_off() 1/GPIO_SetVal(PB3, 0)//CP switch/#define bsp_CHARGE_CP_S2_ON() GPIO_SetVal(PIN_CP_SWITCH, 1)#define bsp_CHARGE_CP_S2_OFF() GPIO_SetVal(PIN_CP_SWITCH, 0)/charge lock/#define bsp_POWER_KEEP_QUICK_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,1)#define bsp_POWER_KEEP_DRIVER_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,0)/EEPROM/#define bsp_EEP_MC25LC256_WP_ON() GPIO_SetVal(PIN_MC25LC256_WP,0)#define bsp_EEP_MC25LC256_WP_OFF() GPIO_SetVal(PIN_MC25LC256_WP,1)#define bsp_EEP_FM25LC160_WP_ON() GPIO_SetVal(PIN_FM25LC160_WP,0)#define bsp_EEP_FM25LC160_WP_OFF() GPIO_SetVal(PIN_FM25LC160_WP,1)/can error detect/#define bsp_vehicleCanErr_OK() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 1) /pwm信号,需要重新设计否/#define bsp_vehicleCanErr_FAULT() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 0)/LED/#define bsp_set_led1_on() GPIO_SetVal(PIN_LED1, 0)#define bsp_set_led1_off() GPIO_SetVal(PIN_LED1, 1)#define bsp_set_led2_on() GPIO_SetVal(PIN_LED2, 0)#define bsp_set_led2_off() GPIO_SetVal(PIN_LED2, 1)#define bsp_set_led3_on() GPIO_SetVal(PIN_LED3, 0)#define bsp_set_led3_off() GPIO_SetVal(PIN_LED3, 1)#define bsp_set_led4_on() GPIO_SetVal(PIN_LED4, 0)#define bsp_set_led4_off() GPIO_SetVal(PIN_LED4, 1)#define bsp_set_led5_on() GPIO_SetVal(PIN_LED5, 0)#define bsp_set_led5_off() GPIO_SetVal(PIN_LED5, 1)/CAN/#define bsp_SetVehicleCan_STB() {GPIO_SetVal(PIN_VE_CAN_STB, 0);GPIO_SetVal(PIN_VE_CAN_EN, 0);}#define bsp_SetVehicleCan_ON() {GPIO_SetVal(PIN_VE_CAN_STB, 1);GPIO_SetVal(PIN_VE_CAN_EN, 1);GPIO_SetVal(PIN_VE_CAN_WAKE_SWITCH, 0);}#define bsp_SetVehicleCan_SLP() {GPIO_SetVal(PIN_VE_CAN_STB, 0);GPIO_SetVal(PIN_VE_CAN_EN, 1);}#define bsp_SetInnerCan_STB() GPIO_SetVal(PIN_IN_CAN_STB, 1) /stb mode/#define bsp_SetInnerCan_ON() GPIO_SetVal(PIN_IN_CAN_STB, 0) /normal mode/#define bsp_SetChargeCan_STB() 1/GPIO_SetVal(PF12, 1) stb mode/#define bsp_SetChargeCan_ON() 1/GPIO_SetVal(PF12, 0) normal mode//HD WATCHDOG/#define bsp_HD_WDT_CLR_P() GPIO_SetVal(PIN_WATCHDOG_FEED,0)#define bsp_HD_WDT_SET_P() GPIO_SetVal(PIN_WATCHDOG_FEED,1)/INSULATE/#define bsp_INSULATE_POWER_ON() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 0)//#define bsp_INSULATE_POWER_OFF() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 1)//#define bsp_INSULATE_TO_GND_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 1)#define bsp_INSULATE_TO_GND_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 0)#define bsp_INSULATE_ANODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 1)#define bsp_INSULATE_ANODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 0)#define bsp_INSULATE_CATHODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 1)#define bsp_INSULATE_CATHODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 0)/HV ADHERE/#define bsp_HV_SET_ANODE_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY1,0)#define bsp_HV_SET_ANODE_RELAY_F_POINT_ON() GPIO_SetVal(PIN_HV_RELAY1,1)#define bsp_HV_SET_ANODE_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY2,0)#define bsp_HV_SET_ANODE_RELAY_B_POINT_ON() GPIO_SetVal(PIN_HV_RELAY2,1)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY1,0)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_ON() GPIO_SetVal(PIN_LV_RELAY1,1)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY2,0)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_ON() GPIO_SetVal(PIN_LV_RELAY2,1)#define bsp_HV_SET_HV_RELAY3_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY3,0)#define bsp_HV_SET_HV_RELAY3_POINT_ON() GPIO_SetVal(PIN_HV_RELAY3,1)#define bsp_HV_SET_HV_RELAY4_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY4,0)#define bsp_HV_SET_HV_RELAY4_POINT_ON() GPIO_SetVal(PIN_HV_RELAY4,1)#define bsp_HV_SET_HV_RELAY5_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY5,0)#define bsp_HV_SET_HV_RELAY5_POINT_ON() GPIO_SetVal(PIN_HV_RELAY5,1)#define bsp_HV_SET_LV_RELAY3_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY3,0)#define bsp_HV_SET_LV_RELAY3_POINT_ON() GPIO_SetVal(PIN_LV_RELAY3,1)/HV RELAY/#define bsp_HV_SET_ANODE_RELAY_ON() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,1)#define bsp_HV_SET_ANODE_RELAY_OFF() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,0)#define bsp_HV_SET_CHARGE_RELAY_ON() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,1)#define bsp_HV_SET_CHARGE_RELAY_OFF() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,0)#define bsp_HV_SET_CATHODE_RELAY_ON() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,1)#define bsp_HV_SET_CATHODE_RELAY_OFF() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,0)#define bsp_HV_SET_PRE_DISCh_RELAY_ON() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 1)#define bsp_HV_SET_PRE_DISCh_RELAY_OFF() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 0)#define bsp_HV_SET_HEAT_RELAY_ON() GPIO_SetVal(PIN_HEAT_RELAY_CTRL,1)#define bsp_HV_SET_HEAT_RELAY_OFF() GPIO_SetVal(PIN_HEAT_RELAY_CTRL,0)#define bsp_HV_SET_ASSIST_A_RELAY_ON() 1/GPIO_SetVal(PE0,1)/#define bsp_HV_SET_ASSIST_A_RELAY_OFF() 0/GPIO_SetVal(PE0,0)/#define bsp_HV_SET_SPARE2_RELAY_ON() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,1)#define bsp_HV_SET_SPARE2_RELAY_OFF() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,0)#define bsp_HV_SET_SPARE3_RELAY_ON() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,1)#define bsp_HV_SET_SPARE3_RELAY_OFF() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,0)#define bsp_HV_SET_SPARE4_RELAY_ON() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,1)#define bsp_HV_SET_SPARE4_RELAY_OFF() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,0)#define bsp_HV_SET_SPARE5_RELAY_ON() GPIO_SetVal(PIN_SPARE5_RELAY_CTRL,1)#define bsp_HV_SET_SPARE5_RELAY_OFF() GPIO_SetVal(PIN_SPARE5_RELAY_CTRL,0)#define bsp_HV_SET_SPARE6_RELAY_ON() GPIO_SetVal(PIN_SPARE6_RELAY_CTRL,1)#define bsp_HV_SET_SPARE6_RELAY_OFF() GPIO_SetVal(PIN_SPARE6_RELAY_CTRL,0)/* -----------------------------------GPIO OUTPUT macro define end-----------------------------------------------------------*//* -----------------------------------GPIO FEEDBACK macro define begin-----------------------------------------------------------*//feedback, it’s used for test normally/#define bsp_selfActive GPIO_GetOutputVal(PIN_POWER_SELFACTIVE)#define bsp_slavePowerActive GPIO_GetOutputVal(PIN_SLAVE_POWER_SWITCH)#define bsp_vehicleCanErr GPIO_GetOutputVal(PIN_VE_CAN_ERR_OUT) /pwm信号,需要重新设计否/#define bsp_CP_S2Switch GPIO_GetOutputVal(PIN_CP_SWITCH)/HV ADHERE/#define bsp_GET_ANODE_RELAY_F_POINT GPIO_GetOutputVal(PIN_HV_RELAY1)#define bsp_GET_ANODE_RELAY_B_POINT GPIO_GetOutputVal(PIN_HV_RELAY2)#define bsp_GET_CATHOD_RELAY_F_POINT GPIO_GetOutputVal(PIN_LV_RELAY1)#define bsp_GET_CATHOD_RELAY_B_POINT GPIO_GetOutputVal(PIN_LV_RELAY2)#define bsp_GET_HV_RELAY3_POINT GPIO_GetOutputVal(PIN_HV_RELAY3)#define bsp_GET_HV_RELAY4_POINT GPIO_GetOutputVal(PIN_HV_RELAY4)#define bsp_GET_HV_RELAY5_POINT GPIO_GetOutputVal(PIN_HV_RELAY5)#define bsp_GET_LV_RELAY3_POINT GPIO_GetOutputVal(PIN_LV_RELAY3)/HV RELAY/#define bsp_GET_ANODE_RELAY_SETTING GPIO_GetOutputVal(PIN_ANODE_RELAY_CTRL)#define bsp_GET_CHARGE_RELAY_SETTING GPIO_GetOutputVal(PIN_CHARGE_RELAY_CTRL)#define bsp_GET_CATHODE_RELAY_SETTING GPIO_GetOutputVal(PIN_CATHODE_RELAY_CTRL)#define bsp_GET_PRE_DISCh_RELAY_SETTING GPIO_GetOutputVal(PIN_PRECHARGE_RELAY_CTRL)#define bsp_GET_HEAT_RELAY_SETTING GPIO_GetOutputVal(PIN_HEAT_RELAY_CTRL)#define bsp_GET_SPARE2_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE2_RELAY_CTRL)#define bsp_GET_SPARE3_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE3_RELAY_CTRL)#define bsp_GET_SPARE4_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE4_RELAY_CTRL)#define bsp_GET_SPARE5_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE5_RELAY_CTRL)#define bsp_GET_SPARE6_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE6_RELAY_CTRL)#define bsp_ChargeFirst GPIO_GetOutputVal(PIN_CHARGE_POWER_LOCK)#define bsp_HD_WATCHDOG_FEED_LEVEL GPIO_GetOutputVal(PIN_WATCHDOG_FEED)/* -----------------------------------GPIO FEEDBACK macro define end--------------------------------------------------*//* -----------------------------------PWM macro define begin-----------------------------------------------------------*///#define PWM_OUTPUT_CAN_ERROR po_write_channel(PWM_CAN_ERROR_CHANNEL,50)#define PWM_OUTPUT_INTERLOCK po_write_channel(PWM_INTERLOCK_OUTPUT_CHANNEL,50)#define PWM_INPUT_CP(pulse_width) pi_read_channel(PWM_CP_CHANNEL, pulse_width)//#define PWM_INPUT_INTERLOCK(pulse_width) pi_read_channel(PWM_INTERLOCK_INPUT_CHANNEL,pulse_width)/* -----------------------------------PWM macro define end--------------------------------------------------------------*/#if APP_RUN_MODE == RUN_MODE_NORMAL/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN GPIO_GetVal(PIN_IGN)#define bsp_SPARE_ONOFF GPIO_GetVal(PIN_SPARE_ON_SLOW_CHARGE_ON)#define bsp_SAFELINE 1#define bsp_AirBag_Level GPIO_GetVal(PIN_AIRBAG) /airbag is pwm signal, but it’s a digital signal here?/#define bsp_INPUT_INTERLOCK_Level GPIO_GetVal(PIN_INTERLOCK_INPUT_CHANNEL)#define bsp_slowChargeLockLocation //GPIO_GetVal(PIN_SLOWCHARGELOCK_LOCATION) / the signal of slowcharge lock location */#define bsp_SLOWCHARGELOCK1_ON()#define bsp_SLOWCHARGELOCK2_ON()#define bsp_SLOWCHARGELOCK1_OFF()#define bsp_SLOWCHARGELOCK2_OFF()/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS 0#define bsp_GET_CHARGE_RELAY_STATUS 0#define bsp_GET_CATHODE_RELAY_STATUS 0#define bsp_GET_PRE_DISCh_RELAY_STATUS 0#define bsp_GET_HEAT_RELAY_STATUS 0#define bsp_GET_ASSIST_A_RELAY_STATUS 0/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL ADC_GetChannelValue(ADC_CC_CHANNEL)#define bsp_CHARGE_CC2_VAL ADC_GetChannelValue(ADC_CC2_CHANNEL)#define bsp_POWER_FB_VAL ADC_GetChannelValue(ADC_BOARD_POWER_FB_CHANNEL)#define bsp_CURRENT_TEMP_AD_VAL ADC_GetChannelValue(ADC_SHUNT_CURRENT_TEMP_CHANNEL)#define bsp_ANODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_ANODE_FB_CHANNEL)#define bsp_CATHODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_CATHODE_FB_CHANNEL)#define bsp_CURR_POWER_FB_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_POWER_CHANNEL)#define bsp_CURR_CHANNAL2_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_CHANNEL2)#define bsp_CURR_CHANNAL1_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_CHANNEL1)#define bsp_SLCHARGE_TEMP_ADC_VAL ADC_GetChannelValue(ADC_SLOW_CHARGE_TEMP_CHANNEL)#define bsp_QUCHARGE_TEMP_ADC_VAL ADC_GetChannelValue(ADC_FAST_CHARGE_TEMP_CHANNEL)/* -----------------------------------ADC macro define end------------------------------------------------------------*/#elif APP_RUN_MODE == RUN_MODE_TESTextern uint8_t test_bsp_IGN;extern uint8_t test_bsp_SPARE_ONOFF;extern uint8_t test_bsp_SAFELINE;extern uint8_t test_bsp_AirBag_Level;extern uint8_t test_ANODE_RELAY_FB_STATUS;extern uint8_t test_CHARGE_RELAY_FB_STATUS;extern uint8_t test_CATHODE_RELAY_FB_STATUS;extern uint8_t test_PRE_RELAY_FB_STATUS;extern uint8_t test_HEAT_RELAY_FB_STATUS;extern uint8_t test_ASSIST_RELAY_FB_STATUS;extern uint8_t test_bsp_INPUT_INTERLOCK_Level;extern uint16_t test_bsp_POWER_FB_VAL;extern uint16_t test_bsp_CURR_POWER_FB_VAL;extern uint16_t test_bsp_CHARGE_CC2_VAL;extern uint16_t test_bsp_CURR_CHANNAL2_VAL;extern uint16_t test_bsp_CURR_CHANNAL1_VAL;extern uint16_t test_bsp_CHARGE_CC_VAL;extern uint16_t test_bsp_CURRENT_TEMP_AD_VAL;extern uint16_t test_bsp_SLCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_QUCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_ANODE_FEEDBACK_VAL;extern uint16_t test_bsp_CATHODE_FEEDBACK_VAL;extern uint16_t test_cpHwStatus;extern uint16_t test_main_volt;extern uint16_t test_main_current;extern uint16_t test_insAnodeThr;extern uint16_t test_insCathodeThr;/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------*/#define bsp_IGN test_bsp_IGN#define bsp_SPARE_ONOFF test_bsp_SPARE_ONOFF#define bsp_SAFELINE test_bsp_SAFELINE#define bsp_AirBag_Level test_bsp_AirBag_Level/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS test_ANODE_RELAY_FB_STATUS#define bsp_GET_CHARGE_RELAY_STATUS test_CHARGE_RELAY_FB_STATUS#define bsp_GET_CATHODE_RELAY_STATUS test_CATHODE_RELAY_FB_STATUS#define bsp_GET_PRE_DISCh_RELAY_STATUS test_PRE_RELAY_FB_STATUS#define bsp_GET_HEAT_RELAY_STATUS test_HEAT_RELAY_FB_STATUS#define bsp_GET_ASSIST_A_RELAY_STATUS test_ASSIST_RELAY_FB_STATUS/* hv lock check level /#define bsp_INPUT_INTERLOCK_Level test_bsp_INPUT_INTERLOCK_Level#define bsp_slowChargeLockLocation //GPIO_GetVal(PIN_SLOWCHARGELOCK_LOCATION) / the signal of slowcharge lock location */#define bsp_SLOWCHARGELOCK1_ON()#define bsp_SLOWCHARGELOCK2_ON()#define bsp_SLOWCHARGELOCK1_OFF()#define bsp_SLOWCHARGELOCK2_OFF()/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL test_bsp_CHARGE_CC_VAL#define bsp_CHARGE_CC2_VAL test_bsp_CHARGE_CC2_VAL#define bsp_POWER_FB_VAL test_bsp_POWER_FB_VAL#define bsp_CURRENT_TEMP_AD_VAL test_bsp_CURRENT_TEMP_AD_VAL#define bsp_ANODE_FEEDBACK_VAL test_bsp_ANODE_FEEDBACK_VAL#define bsp_CATHODE_FEEDBACK_VAL test_bsp_CATHODE_FEEDBACK_VAL#define bsp_CURR_POWER_FB_VAL test_bsp_CURR_POWER_FB_VAL#define bsp_CURR_CHANNAL2_VAL test_bsp_CURR_CHANNAL2_VAL#define bsp_CURR_CHANNAL1_VAL test_bsp_CURR_CHANNAL1_VAL#define bsp_SLCHARGE_TEMP_ADC_VAL test_bsp_SLCHARGE_TEMP_ADC_VAL#define bsp_QUCHARGE_TEMP_ADC_VAL test_bsp_QUCHARGE_TEMP_ADC_VAL/* -----------------------------------ADC macro define end------------------------------------------------------------/#endif / APP_RUN_MODE == RUN_MODE_TEST */#endif /* APP_HW_VERSION_E6305_1_3 == APP_HW_VERSION */#if (APP_HW_VERSION_E6217_0_6 == APP_HW_VERSION)/------------------------------------------digital I/O PIN setting begin ---------------------------------------------->//* digital input //system PIN/#define PIN_IGN PF0 / M_IGN_ON /#define PIN_SPARE_ON_SLOW_CHARGE_ON PF1 / M_SPARE_ON /#define PIN_SAFELINE PF2 / M_SAFELINE //relay feedback PIN/#define PIN_ANODE_RELAY_ST PE10 / M_ANODE_RELAY_ST /#define PIN_CHARGE_RELAY_ST PE8 / M_CHARGE_RELAY_ST /#define PIN_CATHODE_RELAY_ST PA1 / M_CATHODE_RELAY_ST /#define PIN_PRECHARGE_RELAY_ST PG3 / M_PRECHARGE_RELAY_ST /#define PIN_HEAT_RELAY_ST PG5 / M_HEAT_RELAY_ST /#define PIN_SPARE1_RELAY_ST PA2 / M_SPARE1_RELAY_ST *//* digital output //system PIN/#define PIN_WATCHDOG_FEED PE11 / M_FEEDDOG /#define PIN_POWER_SELFACTIVE PB10 / M_POWER_EN /#define PIN_CHARGE_POWER_LOCK PA3 / M_CHARGE /#define PIN_CP_SWITCH PB14 / M_CP_S2 //eeprom write protect PIN/#define PIN_MC25LC256_WP PF11 / M_EEP_\WP /#define PIN_FM25LC160_WP PF13 / M_FM_\WP //CAN ctrl PIN/#define PIN_IN_CAN_STB PG7 / M_IN_CAN_\STB /#define PIN_VE_CAN_STB PG6 / M_VE_CAN_\STB /#define PIN_CH_CAN_STB PF12 / M_VE_CAN_\STB //LED PIN/#define PIN_LED1 PD14 / M_LED1 /#define PIN_LED2 PB13 / M_LED2 /#define PIN_LED3 PD13 / M_LED3 /#define PIN_LED4 PB12 / M_LED4 /#define PIN_LED5 PD12 / M_LED5 //relay ctrl PIN/#define PIN_ANODE_RELAY_CTRL PA0 / M_RELAY_ANODE /#define PIN_CHARGE_RELAY_CTRL PE9 / M_RELAY_CHARGE /#define PIN_CATHODE_RELAY_CTRL PE1 / M_RELAY_CATHODE /#define PIN_HEAT_RELAY_CTRL PG4 / M_RELAY_HEAT /#define PIN_PRECHARGE_RELAY_CTRL PG2 / M_RELAY_PRECHARGE /#define PIN_SPARE1_RELAY_CTRL PE0 / M_RELAY_SPARE1 /#define PIN_SPARE2_RELAY_CTRL PB2 / M_RELAY_SPARE2 /#define PIN_SPARE3_RELAY_CTRL PB3 / M_SPARE_OUTPUT //relay adhere detect PIN/#define PIN_HV_RELAY1 PE7 / M_HV_RELAY1 /#define PIN_HV_RELAY2 PE6 / M_HV_RELAY2 /#define PIN_LV_RELAY1 PH8 / M_LV_RELAY1 /#define PIN_LV_RELAY2 PH7 / M_LV_RELAY2 //insulate detected ctrl PIN/#define PIN_INSULATE_RELAY1 PC3 / M_INSULATION_RELAY1 /#define PIN_INSULATE_RELAY2 PG11 / M_INSULATION_RELAY2 /#define PIN_INSULATE_RELAY3 PG10 / M_INSULATION_RELAY3 /#define PIN_INSULATE_POWER_CTRL PE15 / M_INS_POWER //SPI CS ctrl pin// SPI0 /#define PIN_SPI0_CS_FM PA15 / M_FM_\CS /#define PIN_SPI0_CS_EEP PF10 / M_EEP_\CS /#define PIN_SPI0_CS_INSULATE PC2 / M_INS_\CS // SPI1 /#define PIN_V_SPI_CS0 PE5 / M_VOL_AD_\CS // SPI2 /#define PIN_I_SPI_CS0 PC15 / M_CUR_\CNV *//<----------------------------------digital I/O PIN setting end----------------------------------------------------//-------------------------------------PWM PIN setting begin---------------------------------------------------------/#define PIN_INTERLOCK_OUTPUT_CHANNEL PB11 /* M_INTERLOCK_OPWM, E0UC3 /#define PIN_INTERLOCK_INPUT_CHANNEL PH0 / M_INTERLOCK_IPWM, E1UC2 /#define PIN_CP_CHANNEL PF4 / M_CP, E0UC14 */#define PWM_INTERLOCK_OUTPUT_CHANNEL (0u) /OUTPUT//#define PWM_INTERLOCK_INPUT_CHANNEL (1u) INPUT/#define PWM_CP_CHANNEL (0u) /INPUT//-------------------------------------PWM PIN setting end-----------------------------------------------------------//-------------------------------------ADC PIN setting begin---------------------------------------------------------//ADC/#define PIN_CC_CHANNEL PF5 /* M_CC, ANS13 /#define PIN_CC2_CHANNEL PF3 / M_CC2, ANS11 /#define PIN_BOARD_POWER_FB_CHANNEL PD0 / M_POWER_FB, ANP4 /#define PIN_SHUNT_CURRENT_TEMP_CHANNEL PD2 / M_CURR_TEMP, ANP6 /#define PIN_ANODE_FB_CHANNEL PD3 / M_ANO_FEEDBACK, ANP7 /#define PIN_CATHODE_FB_CHANNEL PD4 / M_CAT_FEEDBACK, ANP8 /#define PIN_CURRENT_HALL_POWER_CHANNEL PD1 / M_CURR_POWER_FB, ANP5 /#define PIN_CURRENT_HALL_CHANNEL1 PF7 / M_CURR_CHANNAL1, ANS15 /#define PIN_CURRENT_HALL_CHANNEL2 PF6 / M_CURR_CHANNAL2, ANS14 *//* must to check the adc channel of the pointed pin, when the pin had been change /#define ADC_CC_CHANNEL (32u+13u) / PF5 /#define ADC_CC2_CHANNEL (32u+11u) / PF3 /#define ADC_BOARD_POWER_FB_CHANNEL (4u) / PD0 /#define ADC_SHUNT_CURRENT_TEMP_CHANNEL (6u) / PD2 /#define ADC_ANODE_FB_CHANNEL (7u) / PD3 /#define ADC_CATHODE_FB_CHANNEL (8u) / PD4 /#define ADC_CURRENT_HALL_POWER_CHANNEL (5u) / PD1 /#define ADC_CURRENT_HALL_CHANNEL1 (32u+15u) / PF7 /#define ADC_CURRENT_HALL_CHANNEL2 (32u+14u) / PF6 *//---------------------------------------ADC PIN setting end-----------------------------------------------------------//-----------------------------------digital communication PIN setting begin ---------------------------------------------->//* CAN0 /#define PIN_CAN0_TX PB0 / M_VE_CAN_TXD /#define PIN_CAN0_RX PB1 / M_VE_CAN_RXD // CAN1 /#define PIN_CAN1_TX PC10 / M_IN_CAN_TXD /#define PIN_CAN1_RX PC11 / M_IN_CAN_RXD // CAN2 /#define PIN_CAN2_TX PF8 / M_CHARGE_CAN_TXD /#define PIN_CAN2_RX PF9 / M_CHARGE_CAN_RXD // SPI0 /#define PIN_SPI0_SCK PA14 / M_SCK /#define PIN_SPI0_MISO PA12 / M_MISO /#define PIN_SPI0_MOSI PA13 / M_MOSI // SPI1 /#define PIN_V_SPI_SCK PE4 / M_VOL_AD_SCK /#define PIN_V_SPI_MISO PC4 / M_VOL_AD_DATA // SPI2 /#define PIN_I_SPI_SCK PC14 / M_CUR_AD_SCK /#define PIN_I_SPI_MISO PC12 / M_CUR_AD_DATA // IIC0 /#define PIN_IIC0_SCL PA11 / M_RTC_SCL /#define PIN_IIC0_SDA PA10 / M_RTC_SDA *//<----------------------------------digital communication PIN setting end--------------------------------------------------//* -----------------------------------GPIO OUTPUT macro define begin-----------------------------------------------------------*//power lock/#define bsp_powerEnable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 1)#define bsp_powerDisable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 0)/spare output/#define bsp_spare_out_on()#define bsp_spare_out_off()/CP switch/#define bsp_CHARGE_CP_S2_ON() GPIO_SetVal(PIN_CP_SWITCH, 1)#define bsp_CHARGE_CP_S2_OFF() GPIO_SetVal(PIN_CP_SWITCH, 0)/charge lock/#define bsp_POWER_KEEP_QUICK_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,1)#define bsp_POWER_KEEP_DRIVER_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,0)/EEPROM/#define bsp_EEP_MC25LC256_WP_ON() GPIO_SetVal(PIN_MC25LC256_WP,0)#define bsp_EEP_MC25LC256_WP_OFF() GPIO_SetVal(PIN_MC25LC256_WP,1)#define bsp_EEP_FM25LC160_WP_ON() GPIO_SetVal(PIN_FM25LC160_WP,0)#define bsp_EEP_FM25LC160_WP_OFF() GPIO_SetVal(PIN_FM25LC160_WP,1)/can error detect/#define bsp_vehicleCanErr_OK()#define bsp_vehicleCanErr_FAULT()/LED/#define bsp_set_led1_on() GPIO_SetVal(PIN_LED1, 0)#define bsp_set_led1_off() GPIO_SetVal(PIN_LED1, 1)#define bsp_set_led2_on() GPIO_SetVal(PIN_LED2, 0)#define bsp_set_led2_off() GPIO_SetVal(PIN_LED2, 1)#define bsp_set_led3_on() GPIO_SetVal(PIN_LED3, 0)#define bsp_set_led3_off() GPIO_SetVal(PIN_LED3, 1)#define bsp_set_led4_on() GPIO_SetVal(PIN_LED4, 0)#define bsp_set_led4_off() GPIO_SetVal(PIN_LED4, 1)#define bsp_set_led5_on() GPIO_SetVal(PIN_LED5, 0)#define bsp_set_led5_off() GPIO_SetVal(PIN_LED5, 1)/CAN/#define bsp_SetVehicleCan_STB() GPIO_SetVal(PIN_VE_CAN_STB, 1)#define bsp_SetVehicleCan_ON() GPIO_SetVal(PIN_VE_CAN_STB, 0)#define bsp_SetInnerCan_STB() GPIO_SetVal(PIN_IN_CAN_STB, 1)#define bsp_SetInnerCan_ON() GPIO_SetVal(PIN_IN_CAN_STB, 0)#define bsp_SetChargeCan_STB() GPIO_SetVal(PIN_CH_CAN_STB, 1)#define bsp_SetChargeCan_ON() GPIO_SetVal(PIN_CH_CAN_STB, 0)/HD WATCHDOG/#define bsp_HD_WDT_CLR_P() GPIO_SetVal(PIN_WATCHDOG_FEED,0)#define bsp_HD_WDT_SET_P() GPIO_SetVal(PIN_WATCHDOG_FEED,1)/INSULATE/#define bsp_INSULATE_POWER_ON() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 0)#define bsp_INSULATE_POWER_OFF() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 1)#define bsp_INSULATE_TO_GND_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 1)#define bsp_INSULATE_TO_GND_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 0)#define bsp_INSULATE_ANODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 1)#define bsp_INSULATE_ANODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 0)#define bsp_INSULATE_CATHODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 1)#define bsp_INSULATE_CATHODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 0)/HV ADHERE/#define bsp_HV_SET_ANODE_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY1,0)#define bsp_HV_SET_ANODE_RELAY_F_POINT_ON() GPIO_SetVal(PIN_HV_RELAY1,1)#define bsp_HV_SET_ANODE_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY2,0)#define bsp_HV_SET_ANODE_RELAY_B_POINT_ON() GPIO_SetVal(PIN_HV_RELAY2,1)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY1,0)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_ON() GPIO_SetVal(PIN_LV_RELAY1,1)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY2,0)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_ON() GPIO_SetVal(PIN_LV_RELAY2,1)#define bsp_HV_SET_HV_RELAY3_POINT_OFF()#define bsp_HV_SET_HV_RELAY3_POINT_ON()#define bsp_HV_SET_HV_RELAY4_POINT_OFF()#define bsp_HV_SET_HV_RELAY4_POINT_ON()#define bsp_HV_SET_HV_RELAY5_POINT_OFF()#define bsp_HV_SET_HV_RELAY5_POINT_ON()#define bsp_HV_SET_LV_RELAY3_POINT_OFF()#define bsp_HV_SET_LV_RELAY3_POINT_ON()/HV RELAY/#define bsp_HV_SET_ANODE_RELAY_ON() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,1)#define bsp_HV_SET_ANODE_RELAY_OFF() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,0)#define bsp_HV_SET_CHARGE_RELAY_ON() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,1)#define bsp_HV_SET_CHARGE_RELAY_OFF() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,0)#define bsp_HV_SET_CATHODE_RELAY_ON() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,1)#define bsp_HV_SET_CATHODE_RELAY_OFF() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,0)#define bsp_HV_SET_PRE_DISCh_RELAY_ON() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 1)#define bsp_HV_SET_PRE_DISCh_RELAY_OFF() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 0)#define bsp_HV_SET_HEAT_RELAY_ON() GPIO_SetVal(PIN_HEAT_RELAY_CTRL,1)#define bsp_HV_SET_HEAT_RELAY_OFF() GPIO_SetVal(PIN_HEAT_RELAY_CTRL,0)#define bsp_HV_SET_SPARE1_RELAY_ON() GPIO_SetVal(PIN_SPARE1_RELAY_CTRL,1)#define bsp_HV_SET_SPARE1_RELAY_OFF() GPIO_SetVal(PIN_SPARE1_RELAY_CTRL,0)#define bsp_HV_SET_SPARE2_RELAY_ON() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,1)#define bsp_HV_SET_SPARE2_RELAY_OFF() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,0)#define bsp_HV_SET_SPARE3_RELAY_ON() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,1)#define bsp_HV_SET_SPARE3_RELAY_OFF() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,0)/* -----------------------------------GPIO OUTPUT macro define end-----------------------------------------------------------*//* -----------------------------------GPIO FEEDBACK macro define begin-----------------------------------------------------------*//feedback, it’s used for test normally/#define bsp_selfActive GPIO_GetOutputVal(PIN_POWER_SELFACTIVE)#define bsp_slavePowerActive 0#define bsp_vehicleCanErr 0#define bsp_CP_S2Switch GPIO_GetOutputVal(PIN_CP_SWITCH)/HV ADHERE/#define bsp_GET_ANODE_RELAY_F_POINT GPIO_GetOutputVal(PIN_HV_RELAY1)#define bsp_GET_ANODE_RELAY_B_POINT GPIO_GetOutputVal(PIN_HV_RELAY2)#define bsp_GET_CATHOD_RELAY_F_POINT GPIO_GetOutputVal(PIN_LV_RELAY1)#define bsp_GET_CATHOD_RELAY_B_POINT GPIO_GetOutputVal(PIN_LV_RELAY2)#define bsp_GET_HV_RELAY3_POINT 0#define bsp_GET_HV_RELAY4_POINT 0#define bsp_GET_HV_RELAY5_POINT 0#define bsp_GET_LV_RELAY3_POINT 0/HV RELAY/#define bsp_GET_ANODE_RELAY_SETTING GPIO_GetOutputVal(PIN_ANODE_RELAY_CTRL)#define bsp_GET_CHARGE_RELAY_SETTING GPIO_GetOutputVal(PIN_CHARGE_RELAY_CTRL)#define bsp_GET_CATHODE_RELAY_SETTING GPIO_GetOutputVal(PIN_CATHODE_RELAY_CTRL)#define bsp_GET_PRE_DISCh_RELAY_SETTING GPIO_GetOutputVal(PIN_PRECHARGE_RELAY_CTRL)#define bsp_GET_HEAT_RELAY_SETTING GPIO_GetOutputVal(PIN_HEAT_RELAY_CTRL)#define bsp_GET_SPARE2_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE2_RELAY_CTRL)#define bsp_GET_SPARE3_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE3_RELAY_CTRL)#define bsp_GET_SPARE4_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE1_RELAY_CTRL)#define bsp_GET_SPARE5_RELAY_SETTING 0#define bsp_GET_SPARE6_RELAY_SETTING 0#define bsp_ChargeFirst GPIO_GetOutputVal(PIN_CHARGE_POWER_LOCK)#define bsp_HD_WATCHDOG_FEED_LEVEL GPIO_GetOutputVal(PIN_WATCHDOG_FEED)/* -----------------------------------GPIO FEEDBACK macro define end--------------------------------------------------*//* -----------------------------------PWM macro define begin-----------------------------------------------------------*///#define PWM_OUTPUT_CAN_ERROR po_write_channel(PWM_CAN_ERROR_CHANNEL,50)#define PWM_OUTPUT_INTERLOCK po_write_channel(PWM_INTERLOCK_OUTPUT_CHANNEL,50)#define PWM_INPUT_CP(pulse_width) pi_read_channel(PWM_CP_CHANNEL, pulse_width)//#define PWM_INPUT_INTERLOCK(pulse_width) pi_read_channel(PWM_INTERLOCK_INPUT_CHANNEL,pulse_width)/* -----------------------------------PWM macro define end--------------------------------------------------------------*/#if APP_RUN_MODE == RUN_MODE_NORMAL/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN GPIO_GetVal(PIN_IGN)#define bsp_SPARE_ONOFF GPIO_GetVal(PIN_SPARE_ON_SLOW_CHARGE_ON)#define bsp_SAFELINE GPIO_GetVal(PIN_SAFELINE)#define bsp_AirBag_Level 0#define bsp_INPUT_INTERLOCK_Level GPIO_GetVal(PIN_INTERLOCK_INPUT_CHANNEL)#define bsp_slowChargeLockLocation //GPIO_GetVal(PIN_SLOWCHARGELOCK_LOCATION) / the signal of slowcharge lock location */#define bsp_SLOWCHARGELOCK1_ON()#define bsp_SLOWCHARGELOCK2_ON()#define bsp_SLOWCHARGELOCK1_OFF()#define bsp_SLOWCHARGELOCK2_OFF()/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS GPIO_GetVal(PIN_ANODE_RELAY_ST)#define bsp_GET_CHARGE_RELAY_STATUS GPIO_GetVal(PIN_CHARGE_RELAY_ST)#define bsp_GET_CATHODE_RELAY_STATUS GPIO_GetVal(PIN_CATHODE_RELAY_ST)#define bsp_GET_PRE_DISCh_RELAY_STATUS GPIO_GetVal(PIN_PRECHARGE_RELAY_ST)#define bsp_GET_HEAT_RELAY_STATUS GPIO_GetVal(PIN_HEAT_RELAY_ST)#define bsp_GET_ASSIST_A_RELAY_STATUS GPIO_GetVal(PIN_SPARE1_RELAY_ST)/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL ADC_GetChannelValue(ADC_CC_CHANNEL)#define bsp_CHARGE_CC2_VAL ADC_GetChannelValue(ADC_CC2_CHANNEL)#define bsp_POWER_FB_VAL ADC_GetChannelValue(ADC_BOARD_POWER_FB_CHANNEL)#define bsp_CURRENT_TEMP_AD_VAL ADC_GetChannelValue(ADC_SHUNT_CURRENT_TEMP_CHANNEL)#define bsp_ANODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_ANODE_FB_CHANNEL)#define bsp_CATHODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_CATHODE_FB_CHANNEL)#define bsp_CURR_POWER_FB_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_POWER_CHANNEL)#define bsp_CURR_CHANNAL2_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_CHANNEL2)#define bsp_CURR_CHANNAL1_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_CHANNEL1)#define bsp_SLCHARGE_TEMP_ADC_VAL 0#define bsp_QUCHARGE_TEMP_ADC_VAL 0/* -----------------------------------ADC macro define end------------------------------------------------------------*/#elif APP_RUN_MODE == RUN_MODE_TESTextern uint8_t test_bsp_IGN;extern uint8_t test_bsp_SPARE_ONOFF;extern uint8_t test_bsp_SAFELINE;extern uint8_t test_bsp_AirBag_Level;extern uint8_t test_ANODE_RELAY_FB_STATUS;extern uint8_t test_CHARGE_RELAY_FB_STATUS;extern uint8_t test_CATHODE_RELAY_FB_STATUS;extern uint8_t test_PRE_RELAY_FB_STATUS;extern uint8_t test_HEAT_RELAY_FB_STATUS;extern uint8_t test_ASSIST_RELAY_FB_STATUS;extern uint8_t test_bsp_INPUT_INTERLOCK_Level;extern uint16_t test_bsp_POWER_FB_VAL;extern uint16_t test_bsp_CURR_POWER_FB_VAL;extern uint16_t test_bsp_CHARGE_CC2_VAL;extern uint16_t test_bsp_CURR_CHANNAL2_VAL;extern uint16_t test_bsp_CURR_CHANNAL1_VAL;extern uint16_t test_bsp_CHARGE_CC_VAL;extern uint16_t test_bsp_CURRENT_TEMP_AD_VAL;extern uint16_t test_bsp_SLCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_QUCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_ANODE_FEEDBACK_VAL;extern uint16_t test_bsp_CATHODE_FEEDBACK_VAL;extern uint16_t test_cpHwStatus;extern uint16_t test_main_volt;extern uint16_t test_main_current;extern uint16_t test_insAnodeThr;extern uint16_t test_insCathodeThr;/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN test_bsp_IGN#define bsp_SPARE_ONOFF test_bsp_SPARE_ONOFF#define bsp_SAFELINE test_bsp_SAFELINE#define bsp_AirBag_Level 0/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS test_ANODE_RELAY_FB_STATUS#define bsp_GET_CHARGE_RELAY_STATUS test_CHARGE_RELAY_FB_STATUS#define bsp_GET_CATHODE_RELAY_STATUS test_CATHODE_RELAY_FB_STATUS#define bsp_GET_PRE_DISCh_RELAY_STATUS test_PRE_RELAY_FB_STATUS#define bsp_GET_HEAT_RELAY_STATUS test_HEAT_RELAY_FB_STATUS#define bsp_GET_ASSIST_A_RELAY_STATUS test_ASSIST_RELAY_FB_STATUS/ hv lock check level /#define bsp_INPUT_INTERLOCK_Level test_bsp_INPUT_INTERLOCK_Level#define bsp_slowChargeLockLocation //GPIO_GetVal(PIN_SLOWCHARGELOCK_LOCATION) / the signal of slowcharge lock location */#define bsp_SLOWCHARGELOCK1_ON()#define bsp_SLOWCHARGELOCK2_ON()#define bsp_SLOWCHARGELOCK1_OFF()#define bsp_SLOWCHARGELOCK2_OFF()/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL test_bsp_CHARGE_CC_VAL#define bsp_CHARGE_CC2_VAL test_bsp_CHARGE_CC2_VAL#define bsp_POWER_FB_VAL test_bsp_POWER_FB_VAL#define bsp_CURRENT_TEMP_AD_VAL test_bsp_CURRENT_TEMP_AD_VAL#define bsp_ANODE_FEEDBACK_VAL test_bsp_ANODE_FEEDBACK_VAL#define bsp_CATHODE_FEEDBACK_VAL test_bsp_CATHODE_FEEDBACK_VAL#define bsp_CURR_POWER_FB_VAL test_bsp_CURR_POWER_FB_VAL#define bsp_CURR_CHANNAL2_VAL test_bsp_CURR_CHANNAL2_VAL#define bsp_CURR_CHANNAL1_VAL test_bsp_CURR_CHANNAL1_VAL#define bsp_SLCHARGE_TEMP_ADC_VAL 0#define bsp_QUCHARGE_TEMP_ADC_VAL 0/* -----------------------------------ADC macro define end------------------------------------------------------------/#endif / APP_RUN_MODE == RUN_MODE_TEST */#endif /* APP_HW_VERSION_E6217_0_6 == APP_HW_VERSION */#if (APP_HW_VERSION_AB00QF02_0_0 == APP_HW_VERSION)/------------------------------------------digital I/O PIN setting begin ---------------------------------------------->//* digital input //system PIN/#define PIN_IGN PF0 / M_IGN_ON /#define PIN_SPARE_ON_SLOW_CHARGE_ON PF1 / M_SLCHARGE_ON /#define PIN_AIRBAG PC13 / M_AIRBAG /#define PIN_VE_CAN_ERR_IN PG9 / M_VE_CAN_ERR /#define PIN_CP_WAKE PE11 / M_CP_ON *//* digital output //system PIN/#define PIN_WATCHDOG_FEED PA7 / M_FEEDDOG /#define PIN_POWER_SELFACTIVE PB10 / M_POWER_EN /#define PIN_SLAVE_POWER_SWITCH PG12 / M_BMU_POWER /#define PIN_CHARGE_POWER_LOCK PF2 / M_CHARGE /#define PIN_CP_SWITCH PB14 / M_CP_S2 //eeprom write protect PIN/#define PIN_MC25LC256_WP PF11 / M_EEP_\WP /#define PIN_FM25LC160_WP PF13 / M_FM_\WP //CAN ctrl PIN/#define PIN_IN_CAN_STB PG7 / M_IN_CAN_\STB /#define PIN_VE_CAN_EN PC6 / M_VE_CAN_EN /#define PIN_VE_CAN_STB PG6 / M_VE_CAN_STB_H /#define PIN_VE_CAN_WAKE_SWITCH PC7 / M_DO_CAN_WAKE_HS /#define PIN_VE_CAN_ERR_OUT PG8 / M_VE_CAN_OPWM /#define PIN_CH_CAN_STB PF12 / M_VE_CAN_\STB //LED PIN/#define PIN_LED1 PD14 / M_LED1 /#define PIN_LED2 PH0 / M_LED2 /#define PIN_LED3 PD13 / M_LED3 /#define PIN_LED4 PB12 / M_LED4 /#define PIN_LED5 PD15 / M_LED5 //relay feedback ctrl PIN/#define PIN_BTS5180_DOPEN_LOAD PC9 / M_OPEN_LOAD /#define PIN_BTS5180_DEN1 PE10 / M_RELAY1_DEN /#define PIN_BTS5180_DSEL1 PE9 / M_RELAY1_DSEL /#define PIN_BTS5180_DEN2 PA1 / M_RELAY2_DEN /#define PIN_BTS5180_DSEL2 PE0 / M_RELAY2_DSEL //relay ctrl PIN/#define PIN_ANODE_RELAY_CTRL PE8 / M_RELAY1_ANODE /#define PIN_CHARGE_RELAY_CTRL PA0 / M_RELAY1_CHARGE /#define PIN_CATHODE_RELAY_CTRL PA2 / M_RELAY2_CATHODE /#define PIN_HEAT_RELAY_CTRL PE1 / M_RELAY2_HEAT /#define PIN_PRECHARGE_RELAY_CTRL PC8 / M_RELAY_PRECHARGE /#define PIN_SPARE2_RELAY_CTRL PB2 / M_RELAY_SPARE2 /#define PIN_SPARE3_RELAY_CTRL PG5 / M_RELAY_SPARE3 /#define PIN_SPARE4_RELAY_CTRL PG4 / M_RELAY_SPARE4 //relay adhere detect PIN/#define PIN_HV_RELAY1 PG11 / M_HV_RELAY1 /#define PIN_HV_RELAY2 PC3 / M_HV_RELAY2 /#define PIN_HV_RELAY3 PG15 / M_HV_RELAY3 /#define PIN_LV_RELAY1 PE15 / M_LV_RELAY1 /#define PIN_LV_RELAY2 PG10 / M_LV_RELAY2 //insulate detected ctrl PIN/#define PIN_INSULATE_RELAY1 PE7 / M_INSULATION_RELAY1 /#define PIN_INSULATE_RELAY2 PE6 / M_INSULATION_RELAY2 /#define PIN_INSULATE_RELAY3 PH8 / M_INSULATION_RELAY3 /#define PIN_INSULATE_POWER_CTRL PH7 / M_INS_POWER //SPI CS ctrl pin/#define PIN_SPI0_CS_FM PA15 / M_FM_\CS /#define PIN_SPI0_CS_EEP PF10 / M_EEP_\CS /#define PIN_SPI0_CS_INSULATE PC2 / M_INS_\CS /#define PIN_SPI0_CS_FLASH0 PB15 / M_FLASH_\CS /#define PIN_SPI0_CS_FLASH1 PD12 / M_FLASH1_\CS /#define PIN_V_SPI_CS0 PE5 / M_VOL_AD_\CS /#define PIN_I_SPI_CS0 PC15 / M_CUR_\CNV *//<----------------------------------digital I/O PIN setting end----------------------------------------------------//-------------------------------------PWM PIN setting begin---------------------------------------------------------/#define PIN_INTERLOCK_OUTPUT_CHANNEL PB11 /* M_INTERLOCK_OPWM, E0UC3 /#define PIN_INTERLOCK_INPUT_CHANNEL PB13 / M_INTERLOCK_IPWM, E0UC5 /#define PIN_CP_CHANNEL PF4 / M_CP, E0UC14 *//#define PWM_CAN_ERROR_CHANNEL OUTPUT PG8//#define PWM_AIRBAG_CHANNEL PC13/ /Airbag signal is used for digital signal/#define PWM_INTERLOCK_OUTPUT_CHANNEL (0u) /OUTPUT PB11//#define PWM_INTERLOCK_INPUT_CHANNEL (1u) INPUT PB13/#define PWM_CP_CHANNEL (0u) /INPUT PF4//-------------------------------------PWM PIN setting end-----------------------------------------------------------//-------------------------------------ADC PIN setting begin---------------------------------------------------------//ADC/#define PIN_CC_CHANNEL PF5 /* M_CC, ANS13 /#define PIN_CC2_CHANNEL PF3 / M_CC2, ANS11 /#define PIN_BOARD_POWER_FB_CHANNEL PD0 / M_POWER_FB, ANP4 /#define PIN_SHUNT_CURRENT_TEMP_CHANNEL PD2 / M_CURR_TEMP, ANP6 /#define PIN_ANODE_FB_CHANNEL PD3 / M_ANO_FEEDBACK, ANP7 /#define PIN_CATHODE_FB_CHANNEL PD4 / M_CAT_FEEDBACK, ANP8 /#define PIN_CURRENT_HALL_POWER_CHANNEL PD1 / M_CURR_POWER_FB, ANP5 /#define PIN_CURRENT_HALL_CHANNEL1 PF7 / M_CURR_CHANNAL1, ANS15 /#define PIN_CURRENT_HALL_CHANNEL2 PF6 / M_CURR_CHANNAL2, ANS14 /#define PIN_FAST_CHARGE_TEMP_CHANNEL PD6 / M_QUCHARGE_TEMPH_AI_LS, ANP10 /#define PIN_SLOW_CHARGE_TEMP_CHANNEL PD5 / M_SLCHARGE_TEMPH_AI_LS, ANP9 /#define PIN_BTS5180_IS1_CHANNEL PD7 / M_RELAY1_IS, ANP11 /#define PIN_BTS5180_IS2_CHANNEL PD8 / M_RELAY2_IS, ANP12 */#define ADC_CC_CHANNEL (32u+13u) /PF5/#define ADC_CC2_CHANNEL (32u+11u) /PF3/#define ADC_BOARD_POWER_FB_CHANNEL (4u) /PD0/#define ADC_SHUNT_CURRENT_TEMP_CHANNEL (6u) /PD2/#define ADC_ANODE_FB_CHANNEL (7u) /PD3/#define ADC_CATHODE_FB_CHANNEL (8u) /PD4/#define ADC_CURRENT_HALL_POWER_CHANNEL (5u) /PD1/#define ADC_CURRENT_HALL_CHANNEL1 (32u+15u) /PF7/#define ADC_CURRENT_HALL_CHANNEL2 (32u+14u) /PF6/#define ADC_FAST_CHARGE_TEMP_CHANNEL (10u) /PD6/#define ADC_SLOW_CHARGE_TEMP_CHANNEL (9u) /PD5/#define ADC_BTS5180_IS1_CHANNEL (11u) /PD7/#define ADC_BTS5180_IS2_CHANNEL (12u) /PD8//---------------------------------------ADC PIN setting end-----------------------------------------------------------//-----------------------------------digital communication PIN setting begin ---------------------------------------------->//* CAN0 /#define PIN_CAN0_TX PB0 / M_VE_CAN_TXD /#define PIN_CAN0_RX PB1 / M_VE_CAN_RXD // CAN1 /#define PIN_CAN1_TX PC10 / M_IN_CAN_TXD /#define PIN_CAN1_RX PC11 / M_IN_CAN_RXD // CAN2 /#define PIN_CAN2_TX PF8 / M_CHARGE_CAN_TXD /#define PIN_CAN2_RX PF9 / M_CHARGE_CAN_RXD // SPI0 /#define PIN_SPI0_SCK PA14 / M_SCK /#define PIN_SPI0_MISO PA12 / M_MISO /#define PIN_SPI0_MOSI PA13 / M_MOSI // SPI1 /#define PIN_V_SPI_SCK PE4 / M_VOL_AD_SCK /#define PIN_V_SPI_MISO PC4 / M_VOL_AD_DATA // SPI2 /#define PIN_I_SPI_SCK PC14 / M_CUR_AD_SCK /#define PIN_I_SPI_MISO PC12 / M_CUR_AD_DATA // IIC0 /#define PIN_IIC0_SCL PA11 / M_RTC_SCL /#define PIN_IIC0_SDA PA10 / M_RTC_SDA *//<----------------------------------digital communication PIN setting end--------------------------------------------------//* -----------------------------------GPIO OUTPUT macro define begin-----------------------------------------------------------*//power lock/#define bsp_powerEnable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 1)#define bsp_powerDisable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 0)#define bsp_slavePowerActive_En() GPIO_SetVal(PIN_SLAVE_POWER_SWITCH, 1)#define bsp_slavePowerActive_Dis() GPIO_SetVal(PIN_SLAVE_POWER_SWITCH, 0)/spare output/#define bsp_spare_out_on()#define bsp_spare_out_off()/CP switch/#define bsp_CHARGE_CP_S2_ON() GPIO_SetVal(PIN_CP_SWITCH, 1)#define bsp_CHARGE_CP_S2_OFF() GPIO_SetVal(PIN_CP_SWITCH, 0)/charge lock/#define bsp_POWER_KEEP_QUICK_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,1)#define bsp_POWER_KEEP_DRIVER_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,0)/EEPROM/#define bsp_EEP_MC25LC256_WP_ON() GPIO_SetVal(PIN_MC25LC256_WP,0)#define bsp_EEP_MC25LC256_WP_OFF() GPIO_SetVal(PIN_MC25LC256_WP,1)#define bsp_EEP_FM25LC160_WP_ON() GPIO_SetVal(PIN_FM25LC160_WP,0)#define bsp_EEP_FM25LC160_WP_OFF() GPIO_SetVal(PIN_FM25LC160_WP,1)/can error detect/#define bsp_vehicleCanErr_OK() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 1) /pwm信号,需要重新设计否/#define bsp_vehicleCanErr_FAULT() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 0)/LED/#define bsp_set_led1_on() GPIO_SetVal(PIN_LED1, 0)#define bsp_set_led1_off() GPIO_SetVal(PIN_LED1, 1)#define bsp_set_led2_on() GPIO_SetVal(PIN_LED2, 0)#define bsp_set_led2_off() GPIO_SetVal(PIN_LED2, 1)#define bsp_set_led3_on() GPIO_SetVal(PIN_LED3, 0)#define bsp_set_led3_off() GPIO_SetVal(PIN_LED3, 1)#define bsp_set_led4_on() GPIO_SetVal(PIN_LED4, 0)#define bsp_set_led4_off() GPIO_SetVal(PIN_LED4, 1)#define bsp_set_led5_on() GPIO_SetVal(PIN_LED5, 0)#define bsp_set_led5_off() GPIO_SetVal(PIN_LED5, 1)/CAN/#define bsp_SetVehicleCan_STB() {GPIO_SetVal(PIN_VE_CAN_STB, 0);GPIO_SetVal(PIN_VE_CAN_EN, 0);}#define bsp_SetVehicleCan_ON() {GPIO_SetVal(PIN_VE_CAN_STB, 1);GPIO_SetVal(PIN_VE_CAN_EN, 1);GPIO_SetVal(PIN_VE_CAN_WAKE_SWITCH, 0);}#define bsp_SetVehicleCan_SLP() {GPIO_SetVal(PIN_VE_CAN_STB, 0);GPIO_SetVal(PIN_VE_CAN_EN, 1);}#define bsp_SetInnerCan_STB() GPIO_SetVal(PIN_IN_CAN_STB, 1)#define bsp_SetInnerCan_ON() GPIO_SetVal(PIN_IN_CAN_STB, 0)#define bsp_SetChargeCan_STB() GPIO_SetVal(PIN_CH_CAN_STB, 1)#define bsp_SetChargeCan_ON() GPIO_SetVal(PIN_CH_CAN_STB, 0)/HD WATCHDOG/#define bsp_HD_WDT_CLR_P() GPIO_SetVal(PIN_WATCHDOG_FEED,0)#define bsp_HD_WDT_SET_P() GPIO_SetVal(PIN_WATCHDOG_FEED,1)/INSULATE/#define bsp_INSULATE_POWER_ON() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 0)#define bsp_INSULATE_POWER_OFF() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 1)#define bsp_INSULATE_TO_GND_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 1)#define bsp_INSULATE_TO_GND_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 0)#define bsp_INSULATE_ANODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 1)#define bsp_INSULATE_ANODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 0)#define bsp_INSULATE_CATHODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 1)#define bsp_INSULATE_CATHODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 0)/HV ADHERE/#define bsp_HV_SET_ANODE_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY1,0)#define bsp_HV_SET_ANODE_RELAY_F_POINT_ON() GPIO_SetVal(PIN_HV_RELAY1,1)#define bsp_HV_SET_ANODE_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY2,0)#define bsp_HV_SET_ANODE_RELAY_B_POINT_ON() GPIO_SetVal(PIN_HV_RELAY2,1)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY1,0)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_ON() GPIO_SetVal(PIN_LV_RELAY1,1)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY2,0)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_ON() GPIO_SetVal(PIN_LV_RELAY2,1)#define bsp_HV_SET_HV_RELAY3_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY3,0)#define bsp_HV_SET_HV_RELAY3_POINT_ON() GPIO_SetVal(PIN_HV_RELAY3,1)#define bsp_HV_SET_HV_RELAY4_POINT_OFF()#define bsp_HV_SET_HV_RELAY4_POINT_ON()#define bsp_HV_SET_HV_RELAY5_POINT_OFF()#define bsp_HV_SET_HV_RELAY5_POINT_ON()#define bsp_HV_SET_LV_RELAY3_POINT_OFF()#define bsp_HV_SET_LV_RELAY3_POINT_ON()/HV RELAY/#define bsp_HV_SET_ANODE_RELAY_ON() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,1)#define bsp_HV_SET_ANODE_RELAY_OFF() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,0)#define bsp_HV_SET_CHARGE_RELAY_ON() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,1)#define bsp_HV_SET_CHARGE_RELAY_OFF() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,0)#define bsp_HV_SET_CATHODE_RELAY_ON() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,1)#define bsp_HV_SET_CATHODE_RELAY_OFF() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,0)#define bsp_HV_SET_PRE_DISCh_RELAY_ON() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 1)#define bsp_HV_SET_PRE_DISCh_RELAY_OFF() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 0)#define bsp_HV_SET_HEAT_RELAY_ON() GPIO_SetVal(PIN_HEAT_RELAY_CTRL,1)#define bsp_HV_SET_HEAT_RELAY_OFF() GPIO_SetVal(PIN_HEAT_RELAY_CTRL,0)#define bsp_HV_SET_ASSIST_A_RELAY_ON()#define bsp_HV_SET_ASSIST_A_RELAY_OFF()#define bsp_HV_SET_SPARE2_RELAY_ON() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,1)#define bsp_HV_SET_SPARE2_RELAY_OFF() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,0)#define bsp_HV_SET_SPARE3_RELAY_ON() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,1)#define bsp_HV_SET_SPARE3_RELAY_OFF() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,0)#define bsp_HV_SET_SPARE4_RELAY_ON() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,1)#define bsp_HV_SET_SPARE4_RELAY_OFF() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,0)#define bsp_HV_SET_SPARE5_RELAY_ON()#define bsp_HV_SET_SPARE5_RELAY_OFF()#define bsp_HV_SET_SPARE6_RELAY_ON()#define bsp_HV_SET_SPARE6_RELAY_OFF()/* -----------------------------------GPIO OUTPUT macro define end-----------------------------------------------------------*//* -----------------------------------GPIO FEEDBACK macro define begin-----------------------------------------------------------*//feedback, it’s used for test normally/#define bsp_selfActive GPIO_GetOutputVal(PIN_POWER_SELFACTIVE)#define bsp_slavePowerActive GPIO_GetOutputVal(PIN_SLAVE_POWER_SWITCH)#define bsp_vehicleCanErr GPIO_GetOutputVal(PIN_VE_CAN_ERR_OUT) /pwm信号,需要重新设计否/#define bsp_CP_S2Switch GPIO_GetOutputVal(PIN_CP_SWITCH)/HV ADHERE/#define bsp_GET_ANODE_RELAY_F_POINT GPIO_GetOutputVal(PIN_HV_RELAY1)#define bsp_GET_ANODE_RELAY_B_POINT GPIO_GetOutputVal(PIN_HV_RELAY2)#define bsp_GET_CATHOD_RELAY_F_POINT GPIO_GetOutputVal(PIN_LV_RELAY1)#define bsp_GET_CATHOD_RELAY_B_POINT GPIO_GetOutputVal(PIN_LV_RELAY2)#define bsp_GET_HV_RELAY3_POINT GPIO_GetOutputVal(PIN_HV_RELAY3)#define bsp_GET_HV_RELAY4_POINT 0#define bsp_GET_HV_RELAY5_POINT 0#define bsp_GET_LV_RELAY3_POINT 0/HV RELAY/#define bsp_GET_ANODE_RELAY_SETTING GPIO_GetOutputVal(PIN_ANODE_RELAY_CTRL)#define bsp_GET_CHARGE_RELAY_SETTING GPIO_GetOutputVal(PIN_CHARGE_RELAY_CTRL)#define bsp_GET_CATHODE_RELAY_SETTING GPIO_GetOutputVal(PIN_CATHODE_RELAY_CTRL)#define bsp_GET_PRE_DISCh_RELAY_SETTING GPIO_GetOutputVal(PIN_PRECHARGE_RELAY_CTRL)#define bsp_GET_HEAT_RELAY_SETTING GPIO_GetOutputVal(PIN_HEAT_RELAY_CTRL)#define bsp_GET_SPARE2_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE2_RELAY_CTRL)#define bsp_GET_SPARE3_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE3_RELAY_CTRL)#define bsp_GET_SPARE4_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE4_RELAY_CTRL)#define bsp_GET_SPARE5_RELAY_SETTING 0#define bsp_GET_SPARE6_RELAY_SETTING 0#define bsp_ChargeFirst GPIO_GetOutputVal(PIN_CHARGE_POWER_LOCK)#define bsp_HD_WATCHDOG_FEED_LEVEL GPIO_GetOutputVal(PIN_WATCHDOG_FEED)/* -----------------------------------GPIO FEEDBACK macro define end--------------------------------------------------*//* -----------------------------------PWM macro define begin-----------------------------------------------------------*///#define PWM_OUTPUT_CAN_ERROR po_write_channel(PWM_CAN_ERROR_CHANNEL,50)#define PWM_OUTPUT_INTERLOCK po_write_channel(PWM_INTERLOCK_OUTPUT_CHANNEL,50)#define PWM_INPUT_CP(pulse_width) pi_read_channel(PWM_CP_CHANNEL, pulse_width)//#define PWM_INPUT_INTERLOCK(pulse_width) pi_read_channel(PWM_INTERLOCK_INPUT_CHANNEL,pulse_width)/* -----------------------------------PWM macro define end--------------------------------------------------------------*/#if APP_RUN_MODE == RUN_MODE_NORMAL/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN GPIO_GetVal(PIN_IGN)#define bsp_SPARE_ONOFF GPIO_GetVal(PIN_SPARE_ON_SLOW_CHARGE_ON)#define bsp_SAFELINE 1#define bsp_AirBag_Level GPIO_GetVal(PIN_AIRBAG) /airbag is pwm signal, but it’s a digital signal here?/#define bsp_INPUT_INTERLOCK_Level GPIO_GetVal(PIN_INTERLOCK_INPUT_CHANNEL)#define bsp_slowChargeLockLocation //GPIO_GetVal(PIN_SLOWCHARGELOCK_LOCATION) / the signal of slowcharge lock location */#define bsp_SLOWCHARGELOCK1_ON()#define bsp_SLOWCHARGELOCK2_ON()#define bsp_SLOWCHARGELOCK1_OFF()#define bsp_SLOWCHARGELOCK2_OFF()/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS 0#define bsp_GET_CHARGE_RELAY_STATUS 0#define bsp_GET_CATHODE_RELAY_STATUS 0#define bsp_GET_PRE_DISCh_RELAY_STATUS 0#define bsp_GET_HEAT_RELAY_STATUS 0#define bsp_GET_ASSIST_A_RELAY_STATUS 0/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL ADC_GetChannelValue(ADC_CC_CHANNEL)#define bsp_CHARGE_CC2_VAL ADC_GetChannelValue(ADC_CC2_CHANNEL)#define bsp_POWER_FB_VAL ADC_GetChannelValue(ADC_BOARD_POWER_FB_CHANNEL)#define bsp_CURRENT_TEMP_AD_VAL ADC_GetChannelValue(ADC_SHUNT_CURRENT_TEMP_CHANNEL)#define bsp_ANODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_ANODE_FB_CHANNEL)#define bsp_CATHODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_CATHODE_FB_CHANNEL)#define bsp_CURR_POWER_FB_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_POWER_CHANNEL)#define bsp_CURR_CHANNAL2_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_CHANNEL2)#define bsp_CURR_CHANNAL1_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_CHANNEL1)#define bsp_SLCHARGE_TEMP_ADC_VAL ADC_GetChannelValue(ADC_SLOW_CHARGE_TEMP_CHANNEL)#define bsp_QUCHARGE_TEMP_ADC_VAL ADC_GetChannelValue(ADC_FAST_CHARGE_TEMP_CHANNEL)/* -----------------------------------ADC macro define end------------------------------------------------------------*/#elif APP_RUN_MODE == RUN_MODE_TESTextern uint8_t test_bsp_IGN;extern uint8_t test_bsp_SPARE_ONOFF;extern uint8_t test_bsp_SAFELINE;extern uint8_t test_bsp_AirBag_Level;extern uint8_t test_ANODE_RELAY_FB_STATUS;extern uint8_t test_CHARGE_RELAY_FB_STATUS;extern uint8_t test_CATHODE_RELAY_FB_STATUS;extern uint8_t test_PRE_RELAY_FB_STATUS;extern uint8_t test_HEAT_RELAY_FB_STATUS;extern uint8_t test_ASSIST_RELAY_FB_STATUS;extern uint8_t test_bsp_INPUT_INTERLOCK_Level;extern uint16_t test_bsp_POWER_FB_VAL;extern uint16_t test_bsp_CURR_POWER_FB_VAL;extern uint16_t test_bsp_CHARGE_CC2_VAL;extern uint16_t test_bsp_CURR_CHANNAL2_VAL;extern uint16_t test_bsp_CURR_CHANNAL1_VAL;extern uint16_t test_bsp_CHARGE_CC_VAL;extern uint16_t test_bsp_CURRENT_TEMP_AD_VAL;extern uint16_t test_bsp_SLCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_QUCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_ANODE_FEEDBACK_VAL;extern uint16_t test_bsp_CATHODE_FEEDBACK_VAL;extern uint16_t test_cpHwStatus;extern uint16_t test_main_volt;extern uint16_t test_main_current;extern uint16_t test_insAnodeThr;extern uint16_t test_insCathodeThr;/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN test_bsp_IGN#define bsp_SPARE_ONOFF test_bsp_SPARE_ONOFF#define bsp_SAFELINE test_bsp_SAFELINE#define bsp_AirBag_Level test_bsp_AirBag_Level/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS test_ANODE_RELAY_FB_STATUS#define bsp_GET_CHARGE_RELAY_STATUS test_CHARGE_RELAY_FB_STATUS#define bsp_GET_CATHODE_RELAY_STATUS test_CATHODE_RELAY_FB_STATUS#define bsp_GET_PRE_DISCh_RELAY_STATUS test_PRE_RELAY_FB_STATUS#define bsp_GET_HEAT_RELAY_STATUS test_HEAT_RELAY_FB_STATUS#define bsp_GET_ASSIST_A_RELAY_STATUS test_ASSIST_RELAY_FB_STATUS/ hv lock check level /#define bsp_INPUT_INTERLOCK_Level test_bsp_INPUT_INTERLOCK_Level#define bsp_slowChargeLockLocation //GPIO_GetVal(PIN_SLOWCHARGELOCK_LOCATION) / the signal of slowcharge lock location */#define bsp_SLOWCHARGELOCK1_ON()#define bsp_SLOWCHARGELOCK2_ON()#define bsp_SLOWCHARGELOCK1_OFF()#define bsp_SLOWCHARGELOCK2_OFF()/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL test_bsp_CHARGE_CC_VAL#define bsp_CHARGE_CC2_VAL test_bsp_CHARGE_CC2_VAL#define bsp_POWER_FB_VAL test_bsp_POWER_FB_VAL#define bsp_CURRENT_TEMP_AD_VAL test_bsp_CURRENT_TEMP_AD_VAL#define bsp_ANODE_FEEDBACK_VAL test_bsp_ANODE_FEEDBACK_VAL#define bsp_CATHODE_FEEDBACK_VAL test_bsp_CATHODE_FEEDBACK_VAL#define bsp_CURR_POWER_FB_VAL test_bsp_CURR_POWER_FB_VAL#define bsp_CURR_CHANNAL2_VAL test_bsp_CURR_CHANNAL2_VAL#define bsp_CURR_CHANNAL1_VAL test_bsp_CURR_CHANNAL1_VAL#define bsp_SLCHARGE_TEMP_ADC_VAL test_bsp_SLCHARGE_TEMP_ADC_VAL#define bsp_QUCHARGE_TEMP_ADC_VAL test_bsp_QUCHARGE_TEMP_ADC_VAL/* -----------------------------------ADC macro define end------------------------------------------------------------/#endif / APP_RUN_MODE == RUN_MODE_TEST */#endif /* APP_HW_VERSION_AB00QF02_0_0 == APP_HW_VERSION */#if (APP_HW_VERSION_E6211_0_4 == APP_HW_VERSION)/------------------------------------------digital I/O PIN setting begin ---------------------------------------------->//* digital input //system PIN/#define PIN_IGN PH6 / M_IGN_ON /#define PIN_SPARE_ON_SLOW_CHARGE_ON PE7 / M_SPARE_ON /#define PIN_AIRBAG PA0 / M_AIRBAG /#define PIN_CP_WAKE PG3 / M_CP_WAKE *//* digital output //system PIN/#define PIN_WATCHDOG_FEED PE11 / M_FEEDDOG /#define PIN_POWER_SELFACTIVE PE6 / M_POWER_EN /#define PIN_CHARGE_POWER_LOCK PA3 / M_POS_CHARGE /#define PIN_CP_SWITCH PH4 / M_CP_S2 //eeprom write protect PIN/#define PIN_MC25LC256_WP PF11 / M_EEP_\WP /#define PIN_FM25LC160_WP PF13 / M_FM_\WP //CAN ctrl PIN/#define PIN_IN_CAN_STB PG7 / M_IN_CAN_\STB /#define PIN_VE_CAN_STB PG6 / M_VE_CAN_\STB /#define PIN_VE_CAN_ERR_OUT PA4 / M_VE_CAN_OPWM /#define PIN_CH_CAN_STB PF12 / M_CHARGE_CAN_\STB //LED PIN/#define PIN_LED1 PA6 / M_LED1 /#define PIN_LED2 PA5 / M_LED2 /#define PIN_LED3 PC2 / M_LED3 /#define PIN_LED4 PC3 / M_LED4 /#define PIN_LED5 PG11 / M_LED5 //relay feedback ctrl PIN/#define PIN_BTS5180_DOPEN_LOAD PG13 / M_OPEN_LOAD /#define PIN_BTS5180_DEN1 PA1 / M_RELAY_0ANODE_1CHARGE_DEN /#define PIN_BTS5180_DSEL1 PE9 / M_RELAY_0ANODE_1CHARGE_DSEL /#define PIN_BTS5180_DEN2 PG12 / M_RELAY_0CATHODE+1PRECHARG_DEN /#define PIN_BTS5180_DSEL2 PE0 / M_RELAY_0CATHODE+1PRECHARG_DSEL //relay ctrl PIN/#define PIN_ANODE_RELAY_CTRL PE8 / M_RELAY_ANODE /#define PIN_CHARGE_RELAY_CTRL PE1 / M_RELAY_CHARGE /#define PIN_CATHODE_RELAY_CTRL PA2 / M_RELAY_CATHODE /#define PIN_PRECHARGE_RELAY_CTRL PG2 / M_RELAY_PRECHARGE /#define PIN_SPARE1_RELAY_CTRL PG4 / M_SPARE_OUTPUT1 /#define PIN_SPARE2_RELAY_CTRL PG5 / M_SPARE_OUTPUT2 /#define PIN_SPARE3_RELAY_CTRL PB3 / M_SPARE_OUTPUT3 /#define PIN_SPARE4_RELAY_CTRL PB2 / M_SPARE_OUTPUT4 //relay adhere detect PIN/#define PIN_HV_RELAY1 PB10 / M_HV_RELAY1 /#define PIN_HV_RELAY2 PF2 / M_HV_RELAY2 /#define PIN_HV_RELAY3 PG15 / M_CHARGE_RELAY /#define PIN_LV_RELAY1 PF3 / M_LV_RELAY1 /#define PIN_LV_RELAY2 PF4 / M_LV_RELAY2 //insulate detected ctrl PIN/#define PIN_INSULATE_RELAY1 PF7 / M_INSULATION_RELAY1 /#define PIN_INSULATE_RELAY2 PF6 / M_INSULATION_RELAY2 /#define PIN_INSULATE_RELAY3 PF5 / M_INSULATION_RELAY3 /#define PIN_INSULATE_POWER_CTRL PE12 / M_INS_POWER //SPI CS ctrl pin// SPI0 /#define PIN_SPI0_CS_FM PA15 / M_FM_\CS /#define PIN_SPI0_CS_EEP PB12 / M_EEP_\CS /#define PIN_SPI0_CS_INSULATE PB13 / M_INS_\CS // SPI1 /#define PIN_6803_SPI_CS0 PD15 / M_6803_SS1 /#define PIN_6803_SPI_CS1 PD14 / M_6803_SS2 /#define PIN_6803_SPI_CS2 PD13 / M_6803_SS3 // SPI2 /#define PIN_V_SPI_CS0 PC15 / M_VOL_AD_\CS /#define PIN_I_SPI_CS0 PH7 / M_CUR_\CNV //temperature sample ctrl pin/#define PIN_TEMPERATURE_EN PG9 / M_TEMPERATURE_\EN /#define PIN_TEMPERATURE_S0 PC6 / M_TEMPERATURE_S0 /#define PIN_TEMPERATURE_S1 PC7 / M_TEMPERATURE_S1 /#define PIN_TEMPERATURE_S2 PG8 / M_TEMPERATURE_S2 /#define PIN_TEMPERATURE_S3 PC9 / M_TEMPERATURE_S3 *//<----------------------------------digital I/O PIN setting end----------------------------------------------------//-------------------------------------PWM PIN setting begin---------------------------------------------------------/#define PIN_INTERLOCK_OUTPUT_CHANNEL PA9 /* M_INTERLOCK_OPWM, E0UC9 /#define PIN_INTERLOCK_INPUT_CHANNEL PA7 / M_INTERLOCK_IPWM, E0UC7 /#define PIN_CP_CHANNEL PH8 / M_CP, E1UC10 *//#define PWM_CAN_ERROR_CHANNEL OUTPUT PG8//#define PWM_AIRBAG_CHANNEL PC13/ /Airbag signal is used for digital signal/#define PWM_INTERLOCK_OUTPUT_CHANNEL (0u) /OUTPUT PA9//#define PWM_INTERLOCK_INPUT_CHANNEL (1u) INPUT PA7/#define PWM_CP_CHANNEL (0u) /INPUT PH8//-------------------------------------PWM PIN setting end-----------------------------------------------------------//-------------------------------------ADC PIN setting begin---------------------------------------------------------//ADC/#define PIN_CC_CHANNEL PD2 /* M_CC, ANP6 /#define PIN_CC2_CHANNEL PD1 / M_CC2, ANP5 /#define PIN_BOARD_POWER_FB_CHANNEL PB6 / M_POWER_FB, ANP2 /#define PIN_SPARE_AD1_CHANNEL PF0 / M_SPARE_AD_1, ANS8 /#define PIN_SPARE_AD2_CHANNEL PB14 / M_SPARE_AD_2, ANX2,MA[2:0]+2*8+64 /#define PIN_AD74HC4067_CHANNEL PD0 / M_TEMPERATURE_AD, ANP4 /#define PIN_TEMP16H_CHANNEL PD9 / M_TEMP16H_AI_ADC, ANP13 /#define PIN_BTS5180_IS1_CHANNEL PD4 / M_RELAY_0ANODE+1CHARGE_IS, ANP8 /#define PIN_BTS5180_IS2_CHANNEL PD3 / M_RELAY_0CATHODE+1PRECHARG_IS, ANP7 */#define ADC_CC_CHANNEL (6u) /PD2/#define ADC_CC2_CHANNEL (5u) /PD1/#define ADC_BOARD_POWER_FB_CHANNEL (2u) /PB6/#define ADC_SPARE_AD1_CHANNEL (8u+32u) /PF0/#define ADC_SPARE_AD2_CHANNEL (0u+80u) /PB14/#define ADC_AD74HC4067_CHANNEL (4u) /PD0/#define ADC_TEMP16H_CHANNEL (13u) /PD9/#define ADC_BTS5180_IS1_CHANNEL (8u) /PD4/#define ADC_BTS5180_IS2_CHANNEL (7u) /PD3//---------------------------------------ADC PIN setting end-----------------------------------------------------------//-----------------------------------digital communication PIN setting begin ---------------------------------------------->//* CAN0 /#define PIN_CAN0_TX PB0 / M_VE_CAN_TXD /#define PIN_CAN0_RX PB1 / M_VE_CAN_RXD // CAN1 /#define PIN_CAN1_TX PC10 / M_IN_CAN_TXD /#define PIN_CAN1_RX PC11 / M_IN_CAN_RXD // CAN2 /#define PIN_CAN2_TX PF8 / M_CHARGE_CAN_TXD /#define PIN_CAN2_RX PF9 / M_CHARGE_CAN_RXD // SPI0 /#define PIN_SPI0_SCK PA14 / M_SCK /#define PIN_SPI0_MISO PA12 / M_MISO_1 /#define PIN_SPI0_MOSI PA13 / M_MOSI // SPI1 /#define PIN_6803_SPI_SCK PE4 / M_6803_SCK /#define PIN_6803_SPI_MISO PC4 / M_6803_MISO /#define PIN_6803_SPI_MOSI PE3 / M_6803_MOSI // SPI2 /#define PIN_V_I_SPI_SCK PC14 / M_CUR_AD_SCK /#define PIN_V_I_SPI_MISO PC12 / M_VOL_CUR_AD_DATA /#define PIN_V_I_SPI_MOSI PC13 / M_CUR_AD_SDI // IIC0 /#define PIN_IIC0_SCL PA11 / M_RTC_SCL /#define PIN_IIC0_SDA PA10 / M_RTC_SDA *//<----------------------------------digital communication PIN setting end--------------------------------------------------//* -----------------------------------GPIO OUTPUT macro define begin-----------------------------------------------------------*//power lock/#define bsp_powerEnable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 1)#define bsp_powerDisable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 0)#define bsp_slavePowerActive_En()#define bsp_slavePowerActive_Dis()/spare output/#define bsp_spare_out_on()#define bsp_spare_out_off()/CP switch/#define bsp_CHARGE_CP_S2_ON() GPIO_SetVal(PIN_CP_SWITCH, 1)#define bsp_CHARGE_CP_S2_OFF() GPIO_SetVal(PIN_CP_SWITCH, 0)/charge lock/#define bsp_POWER_KEEP_QUICK_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,1)#define bsp_POWER_KEEP_DRIVER_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,0)/EEPROM/#define bsp_EEP_MC25LC256_WP_ON() GPIO_SetVal(PIN_MC25LC256_WP,0)#define bsp_EEP_MC25LC256_WP_OFF() GPIO_SetVal(PIN_MC25LC256_WP,1)#define bsp_EEP_FM25LC160_WP_ON() GPIO_SetVal(PIN_FM25LC160_WP,0)#define bsp_EEP_FM25LC160_WP_OFF() GPIO_SetVal(PIN_FM25LC160_WP,1)/can error detect/#define bsp_vehicleCanErr_OK() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 1) /pwm信号,需要重新设计否/#define bsp_vehicleCanErr_FAULT() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 0)/LED/#define bsp_set_led1_on() GPIO_SetVal(PIN_LED1, 0)#define bsp_set_led1_off() GPIO_SetVal(PIN_LED1, 1)#define bsp_set_led2_on() GPIO_SetVal(PIN_LED2, 0)#define bsp_set_led2_off() GPIO_SetVal(PIN_LED2, 1)#define bsp_set_led3_on() GPIO_SetVal(PIN_LED3, 0)#define bsp_set_led3_off() GPIO_SetVal(PIN_LED3, 1)#define bsp_set_led4_on() GPIO_SetVal(PIN_LED4, 0)#define bsp_set_led4_off() GPIO_SetVal(PIN_LED4, 1)#define bsp_set_led5_on() GPIO_SetVal(PIN_LED5, 0)#define bsp_set_led5_off() GPIO_SetVal(PIN_LED5, 1)/CAN/#define bsp_SetVehicleCan_STB() GPIO_SetVal(PIN_VE_CAN_STB, 1)#define bsp_SetVehicleCan_ON() GPIO_SetVal(PIN_VE_CAN_STB, 0)#define bsp_SetInnerCan_STB() GPIO_SetVal(PIN_IN_CAN_STB, 1)#define bsp_SetInnerCan_ON() GPIO_SetVal(PIN_IN_CAN_STB, 0)#define bsp_SetChargeCan_STB() GPIO_SetVal(PIN_CH_CAN_STB, 1)#define bsp_SetChargeCan_ON() GPIO_SetVal(PIN_CH_CAN_STB, 0)/HD WATCHDOG/#define bsp_HD_WDT_CLR_P() GPIO_SetVal(PIN_WATCHDOG_FEED,0)#define bsp_HD_WDT_SET_P() GPIO_SetVal(PIN_WATCHDOG_FEED,1)/INSULATE/#define bsp_INSULATE_POWER_ON() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 0)#define bsp_INSULATE_POWER_OFF() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 1)#define bsp_INSULATE_TO_GND_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 1)#define bsp_INSULATE_TO_GND_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 0)#define bsp_INSULATE_ANODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 1)#define bsp_INSULATE_ANODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 0)#define bsp_INSULATE_CATHODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 1)#define bsp_INSULATE_CATHODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 0)/HV ADHERE/#define bsp_HV_SET_ANODE_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY1,0)#define bsp_HV_SET_ANODE_RELAY_F_POINT_ON() GPIO_SetVal(PIN_HV_RELAY1,1)#define bsp_HV_SET_ANODE_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY2,0)#define bsp_HV_SET_ANODE_RELAY_B_POINT_ON() GPIO_SetVal(PIN_HV_RELAY2,1)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY1,0)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_ON() GPIO_SetVal(PIN_LV_RELAY1,1)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY2,0)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_ON() GPIO_SetVal(PIN_LV_RELAY2,1)#define bsp_HV_SET_HV_RELAY3_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY3,0)#define bsp_HV_SET_HV_RELAY3_POINT_ON() GPIO_SetVal(PIN_HV_RELAY3,1)#define bsp_HV_SET_HV_RELAY4_POINT_OFF()#define bsp_HV_SET_HV_RELAY4_POINT_ON()#define bsp_HV_SET_HV_RELAY5_POINT_OFF()#define bsp_HV_SET_HV_RELAY5_POINT_ON()#define bsp_HV_SET_LV_RELAY3_POINT_OFF()#define bsp_HV_SET_LV_RELAY3_POINT_ON()/HV RELAY/#define bsp_HV_SET_ANODE_RELAY_ON() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,1)#define bsp_HV_SET_ANODE_RELAY_OFF() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,0)#define bsp_HV_SET_CHARGE_RELAY_ON() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,1)#define bsp_HV_SET_CHARGE_RELAY_OFF() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,0)#define bsp_HV_SET_CATHODE_RELAY_ON() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,1)#define bsp_HV_SET_CATHODE_RELAY_OFF() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,0)#define bsp_HV_SET_PRE_DISCh_RELAY_ON() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 1)#define bsp_HV_SET_PRE_DISCh_RELAY_OFF() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 0)#define bsp_HV_SET_HEAT_RELAY_ON() GPIO_SetVal(PIN_SPARE1_RELAY_CTRL,1)#define bsp_HV_SET_HEAT_RELAY_OFF() GPIO_SetVal(PIN_SPARE1_RELAY_CTRL,0)#define bsp_HV_SET_ASSIST_A_RELAY_ON()#define bsp_HV_SET_ASSIST_A_RELAY_OFF()#define bsp_HV_SET_SPARE2_RELAY_ON() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,1)#define bsp_HV_SET_SPARE2_RELAY_OFF() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,0)#define bsp_HV_SET_SPARE3_RELAY_ON() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,1)#define bsp_HV_SET_SPARE3_RELAY_OFF() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,0)#define bsp_HV_SET_SPARE4_RELAY_ON() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,1)#define bsp_HV_SET_SPARE4_RELAY_OFF() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,0)#define bsp_HV_SET_SPARE5_RELAY_ON()#define bsp_HV_SET_SPARE5_RELAY_OFF()#define bsp_HV_SET_SPARE6_RELAY_ON()#define bsp_HV_SET_SPARE6_RELAY_OFF()/temperature sample/#define bsp_AD74HC4067_ENABLE GPIO_SetVal(PIN_TEMPERATURE_EN, 0)#define bsp_AD74HC4067_DISABLE GPIO_SetVal(PIN_TEMPERATURE_EN, 1)#define bsp_AD74HC4067_S0_ON GPIO_SetVal(PIN_TEMPERATURE_S0, 1)#define bsp_AD74HC4067_S0_OFF GPIO_SetVal(PIN_TEMPERATURE_S0, 0)#define bsp_AD74HC4067_S1_ON GPIO_SetVal(PIN_TEMPERATURE_S1, 1)#define bsp_AD74HC4067_S1_OFF GPIO_SetVal(PIN_TEMPERATURE_S1, 0)#define bsp_AD74HC4067_S2_ON GPIO_SetVal(PIN_TEMPERATURE_S2, 1)#define bsp_AD74HC4067_S2_OFF GPIO_SetVal(PIN_TEMPERATURE_S2, 0)#define bsp_AD74HC4067_S3_ON GPIO_SetVal(PIN_TEMPERATURE_S3, 1)#define bsp_AD74HC4067_S3_OFF GPIO_SetVal(PIN_TEMPERATURE_S3, 0)/* -----------------------------------GPIO OUTPUT macro define end-----------------------------------------------------------*//* -----------------------------------GPIO FEEDBACK macro define begin-----------------------------------------------------------*//feedback, it’s used for test normally/#define bsp_selfActive GPIO_GetOutputVal(PIN_POWER_SELFACTIVE)#define bsp_slavePowerActive 0#define bsp_vehicleCanErr GPIO_GetOutputVal(PIN_VE_CAN_ERR_OUT) /pwm信号,需要重新设计否/#define bsp_CP_S2Switch GPIO_GetOutputVal(PIN_CP_SWITCH)/HV ADHERE/#define bsp_GET_ANODE_RELAY_F_POINT GPIO_GetOutputVal(PIN_HV_RELAY1)#define bsp_GET_ANODE_RELAY_B_POINT GPIO_GetOutputVal(PIN_HV_RELAY2)#define bsp_GET_CATHOD_RELAY_F_POINT GPIO_GetOutputVal(PIN_LV_RELAY1)#define bsp_GET_CATHOD_RELAY_B_POINT GPIO_GetOutputVal(PIN_LV_RELAY2)#define bsp_GET_HV_RELAY3_POINT GPIO_GetOutputVal(PIN_HV_RELAY3)#define bsp_GET_HV_RELAY4_POINT 0#define bsp_GET_HV_RELAY5_POINT 0#define bsp_GET_LV_RELAY3_POINT 0/HV RELAY/#define bsp_GET_ANODE_RELAY_SETTING GPIO_GetOutputVal(PIN_ANODE_RELAY_CTRL)#define bsp_GET_CHARGE_RELAY_SETTING GPIO_GetOutputVal(PIN_CHARGE_RELAY_CTRL)#define bsp_GET_CATHODE_RELAY_SETTING GPIO_GetOutputVal(PIN_CATHODE_RELAY_CTRL)#define bsp_GET_PRE_DISCh_RELAY_SETTING GPIO_GetOutputVal(PIN_PRECHARGE_RELAY_CTRL)#define bsp_GET_HEAT_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE1_RELAY_CTRL)#define bsp_GET_SPARE2_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE2_RELAY_CTRL)#define bsp_GET_SPARE3_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE3_RELAY_CTRL)#define bsp_GET_SPARE4_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE4_RELAY_CTRL)#define bsp_GET_SPARE5_RELAY_SETTING 0#define bsp_GET_SPARE6_RELAY_SETTING 0#define bsp_ChargeFirst GPIO_GetOutputVal(PIN_CHARGE_POWER_LOCK)#define bsp_HD_WATCHDOG_FEED_LEVEL GPIO_GetOutputVal(PIN_WATCHDOG_FEED)/* -----------------------------------GPIO FEEDBACK macro define end--------------------------------------------------*//* -----------------------------------PWM macro define begin-----------------------------------------------------------*///#define PWM_OUTPUT_CAN_ERROR po_write_channel(PWM_CAN_ERROR_CHANNEL,50)#define PWM_OUTPUT_INTERLOCK po_write_channel(PWM_INTERLOCK_OUTPUT_CHANNEL,50)#define PWM_INPUT_CP(pulse_width) pi_read_channel(PWM_CP_CHANNEL, pulse_width)//#define PWM_INPUT_INTERLOCK(pulse_width) pi_read_channel(PWM_INTERLOCK_INPUT_CHANNEL,pulse_width)/* -----------------------------------PWM macro define end--------------------------------------------------------------*/#if APP_RUN_MODE == RUN_MODE_NORMAL/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN GPIO_GetVal(PIN_IGN)#define bsp_SPARE_ONOFF GPIO_GetVal(PIN_SPARE_ON_SLOW_CHARGE_ON)#define bsp_SAFELINE 1#define bsp_AirBag_Level GPIO_GetVal(PIN_AIRBAG) /airbag is pwm signal, but it’s a digital signal here?/#define bsp_INPUT_INTERLOCK_Level GPIO_GetVal(PIN_INTERLOCK_INPUT_CHANNEL)#define bsp_slowChargeLockLocation //GPIO_GetVal(PIN_SLOWCHARGELOCK_LOCATION) / the signal of slowcharge lock location */#define bsp_SLOWCHARGELOCK1_ON()#define bsp_SLOWCHARGELOCK2_ON()#define bsp_SLOWCHARGELOCK1_OFF()#define bsp_SLOWCHARGELOCK2_OFF()/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS 0#define bsp_GET_CHARGE_RELAY_STATUS 0#define bsp_GET_CATHODE_RELAY_STATUS 0#define bsp_GET_PRE_DISCh_RELAY_STATUS 0#define bsp_GET_HEAT_RELAY_STATUS 0#define bsp_GET_ASSIST_A_RELAY_STATUS 0/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL ADC_GetChannelValue(ADC_CC_CHANNEL)#define bsp_CHARGE_CC2_VAL ADC_GetChannelValue(ADC_CC2_CHANNEL)#define bsp_POWER_FB_VAL ADC_GetChannelValue(ADC_BOARD_POWER_FB_CHANNEL)#define bsp_CURRENT_TEMP_AD_VAL ADC_GetChannelValue(ADC_AD74HC4067_CHANNEL)#define bsp_ANODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_SPARE_AD1_CHANNEL)#define bsp_CATHODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_SPARE_AD2_CHANNEL)#define bsp_CURR_POWER_FB_VAL ADC_GetChannelValue(ADC_TEMP16H_CHANNEL)#define bsp_CURR_CHANNAL2_VAL ADC_GetChannelValue(ADC_BTS5180_IS1_CHANNEL)#define bsp_CURR_CHANNAL1_VAL ADC_GetChannelValue(ADC_BTS5180_IS2_CHANNEL)#define bsp_SLCHARGE_TEMP_ADC_VAL 0#define bsp_QUCHARGE_TEMP_ADC_VAL 0#define bsp_AD74HC4067_AD_VAL bsp_CURRENT_TEMP_AD_VAL/* -----------------------------------ADC macro define end------------------------------------------------------------*/#elif APP_RUN_MODE == RUN_MODE_TESTextern uint8_t test_bsp_IGN;extern uint8_t test_bsp_SPARE_ONOFF;extern uint8_t test_bsp_SAFELINE;extern uint8_t test_bsp_AirBag_Level;extern uint8_t test_ANODE_RELAY_FB_STATUS;extern uint8_t test_CHARGE_RELAY_FB_STATUS;extern uint8_t test_CATHODE_RELAY_FB_STATUS;extern uint8_t test_PRE_RELAY_FB_STATUS;extern uint8_t test_HEAT_RELAY_FB_STATUS;extern uint8_t test_ASSIST_RELAY_FB_STATUS;extern uint8_t test_bsp_INPUT_INTERLOCK_Level;extern uint16_t test_bsp_POWER_FB_VAL;extern uint16_t test_bsp_CURR_POWER_FB_VAL;extern uint16_t test_bsp_CHARGE_CC2_VAL;extern uint16_t test_bsp_CURR_CHANNAL2_VAL;extern uint16_t test_bsp_CURR_CHANNAL1_VAL;extern uint16_t test_bsp_CHARGE_CC_VAL;extern uint16_t test_bsp_CURRENT_TEMP_AD_VAL;extern uint16_t test_bsp_SLCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_QUCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_ANODE_FEEDBACK_VAL;extern uint16_t test_bsp_CATHODE_FEEDBACK_VAL;extern uint16_t test_cpHwStatus;extern uint16_t test_main_volt;extern uint16_t test_main_current;extern uint16_t test_insAnodeThr;extern uint16_t test_insCathodeThr;/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN test_bsp_IGN#define bsp_SPARE_ONOFF test_bsp_SPARE_ONOFF#define bsp_SAFELINE test_bsp_SAFELINE#define bsp_AirBag_Level test_bsp_AirBag_Level/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS test_ANODE_RELAY_FB_STATUS#define bsp_GET_CHARGE_RELAY_STATUS test_CHARGE_RELAY_FB_STATUS#define bsp_GET_CATHODE_RELAY_STATUS test_CATHODE_RELAY_FB_STATUS#define bsp_GET_PRE_DISCh_RELAY_STATUS test_PRE_RELAY_FB_STATUS#define bsp_GET_HEAT_RELAY_STATUS test_HEAT_RELAY_FB_STATUS#define bsp_GET_ASSIST_A_RELAY_STATUS test_ASSIST_RELAY_FB_STATUS/ hv lock check level /#define bsp_INPUT_INTERLOCK_Level test_bsp_INPUT_INTERLOCK_Level#define bsp_slowChargeLockLocation //GPIO_GetVal(PIN_SLOWCHARGELOCK_LOCATION) / the signal of slowcharge lock location */#define bsp_SLOWCHARGELOCK1_ON()#define bsp_SLOWCHARGELOCK2_ON()#define bsp_SLOWCHARGELOCK1_OFF()#define bsp_SLOWCHARGELOCK2_OFF()/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL test_bsp_CHARGE_CC_VAL#define bsp_CHARGE_CC2_VAL test_bsp_CHARGE_CC2_VAL#define bsp_POWER_FB_VAL test_bsp_POWER_FB_VAL#define bsp_CURRENT_TEMP_AD_VAL test_bsp_CURRENT_TEMP_AD_VAL#define bsp_ANODE_FEEDBACK_VAL test_bsp_ANODE_FEEDBACK_VAL#define bsp_CATHODE_FEEDBACK_VAL test_bsp_CATHODE_FEEDBACK_VAL#define bsp_CURR_POWER_FB_VAL test_bsp_CURR_POWER_FB_VAL#define bsp_CURR_CHANNAL2_VAL test_bsp_CURR_CHANNAL2_VAL#define bsp_CURR_CHANNAL1_VAL test_bsp_CURR_CHANNAL1_VAL#define bsp_SLCHARGE_TEMP_ADC_VAL test_bsp_SLCHARGE_TEMP_ADC_VAL#define bsp_QUCHARGE_TEMP_ADC_VAL test_bsp_QUCHARGE_TEMP_ADC_VAL/* -----------------------------------ADC macro define end------------------------------------------------------------/#endif / APP_RUN_MODE == RUN_MODE_TEST */#endif /* APP_HW_VERSION_E6211_0_4 == APP_HW_VERSION */#if (APP_HW_VERSION_E6211_0_5 == APP_HW_VERSION)/------------------------------------------digital I/O PIN setting begin ---------------------------------------------->//* digital input //system PIN/#define PIN_IGN PH6 / M_IGN_ON /#define PIN_SPARE_ON_SLOW_CHARGE_ON PE7 / M_SPARE_ON /#define PIN_AIRBAG PA0 / M_AIRBAG /#define PIN_CP_WAKE PG3 / M_CP_WAKE //elect lock/#define PIN_NFAULT PG15 / M_NFAULT_IN_DI /#define PIN_MOTOR PB8 / M_MOTOR_IN_DI /#define PIN_MOTOR_KEY_SWITCH PF1 / M_MOTOR_KEY_SWITCH_IN_DI *//* digital output //system PIN/#define PIN_WATCHDOG_FEED PE11 / M_FEEDDOG /#define PIN_POWER_SELFACTIVE PE6 / M_POWER_EN /#define PIN_CHARGE_POWER_LOCK PA3 / M_POS_CHARGE /#define PIN_CP_SWITCH PH4 / M_CP_S2 //eeprom write protect PIN/#define PIN_MC25LC256_WP PF11 / M_EEP_\WP /#define PIN_FM25LC160_WP PF13 / M_FM_\WP //CAN ctrl PIN/#define PIN_IN_CAN_STB PG7 / M_IN_CAN_\STB /#define PIN_VE_CAN_STB PG6 / M_VE_CAN_\STB /#define PIN_VE_CAN_ERR_OUT PA4 / M_VE_CAN_OPWM //LED PIN/#define PIN_LED1 PA6 / M_LED1 /#define PIN_LED2 PA5 / M_LED2 /#define PIN_LED3 PC2 / M_LED3 /#define PIN_LED4 PC3 / M_LED4 /#define PIN_LED5 PG11 / M_LED5 //relay feedback ctrl PIN/#define PIN_BTS5180_DOPEN_LOAD PG13 / M_OPEN_LOAD /#define PIN_BTS5180_DEN1 PA1 / M_RELAY_0ANODE_1CHARGE_DEN /#define PIN_BTS5180_DSEL1 PE9 / M_RELAY_0ANODE_1CHARGE_DSEL /#define PIN_BTS5180_DEN2 PG12 / M_RELAY_0CATHODE+1PRECHARG_DEN /#define PIN_BTS5180_DSEL2 PE0 / M_RELAY_0CATHODE+1PRECHARG_DSEL //relay ctrl PIN/#define PIN_ANODE_RELAY_CTRL PE8 / M_RELAY_ANODE /#define PIN_CHARGE_RELAY_CTRL PE1 / M_RELAY_CHARGE /#define PIN_CATHODE_RELAY_CTRL PA2 / M_RELAY_CATHODE /#define PIN_PRECHARGE_RELAY_CTRL PG2 / M_RELAY_PRECHARGE /#define PIN_SPARE1_RELAY_CTRL PG4 / M_SPARE_OUTPUT1 /#define PIN_SPARE2_RELAY_CTRL PG5 / M_SPARE_OUTPUT2 /#define PIN_SPARE3_RELAY_CTRL PB3 / M_SPARE_OUTPUT3 /#define PIN_SPARE4_RELAY_CTRL PB2 / M_SPARE_OUTPUT4 //relay adhere detect PIN/#define PIN_HV_RELAY1 PB10 / M_HV_RELAY1 /#define PIN_HV_RELAY2 PF2 / M_HV_RELAY2 /#define PIN_HV_RELAY3 PG15 / M_CHARGE_RELAY /#define PIN_LV_RELAY1 PF3 / M_LV_RELAY1 /#define PIN_LV_RELAY2 PF4 / M_LV_RELAY2 //insulate detected ctrl PIN/#define PIN_INSULATE_RELAY1 PF7 / M_INSULATION_RELAY1 /#define PIN_INSULATE_RELAY2 PF6 / M_INSULATION_RELAY2 /#define PIN_INSULATE_RELAY3 PF5 / M_INSULATION_RELAY3 /#define PIN_INSULATE_POWER_CTRL PE12 / M_INS_POWER //SPI CS ctrl pin// SPI0 /#define PIN_SPI0_CS_FM PA15 / M_FM_\CS /#define PIN_SPI0_CS_EEP PB12 / M_EEP_\CS /#define PIN_SPI0_CS_INSULATE PB13 / M_INS_\CS /#define PIN_SPI0_CS_FLASH0 PB15 / M_FLASH_\CS /#define PIN_SPI0_CS_FLASH1 PB14 / M_FLASH1_\CS // SPI1 /#define PIN_6803_SPI_CS0 PD15 / M_6803_SS1 /#define PIN_6803_SPI_CS1 PD14 / M_6803_SS2 /#define PIN_6803_SPI_CS2 PD13 / M_6803_SS3 // SPI2 /#define PIN_V_SPI_CS0 PC15 / M_VOL_AD_\CS /#define PIN_I_SPI_CS0 PH7 / M_CUR_\CNV //temperature sample ctrl pin/#define PIN_TEMPERATURE_EN PG9 / M_TEMPERATURE_\EN /#define PIN_TEMPERATURE_S0 PC6 / M_TEMPERATURE_S0 /#define PIN_TEMPERATURE_S1 PC7 / M_TEMPERATURE_S1 /#define PIN_TEMPERATURE_S2 PG8 / M_TEMPERATURE_S2 /#define PIN_TEMPERATURE_S3 PC9 / M_TEMPERATURE_S3 //485 ctrl pin/#define PIN_RS485_EN PE13 / M_485-EN //elect lock/#define PIN_MOTOR_P PE15 / M_MOTOR+_IN_DO /#define PIN_MOTOR_N PE14 / M_MOTOR-_IN_DO //<----------------------------------digital I/O PIN setting end----------------------------------------------------*//-------------------------------------PWM PIN setting begin---------------------------------------------------------/#define PIN_INTERLOCK_OUTPUT_CHANNEL PD12 /* M_INTERLOCK_OPWM, E0UC9 /#define PIN_INTERLOCK_INPUT_CHANNEL PB11 / M_INTERLOCK_IPWM, E0UC7 /#define PIN_CP_CHANNEL PH8 / M_CP, E1UC10 *//#define PWM_CAN_ERROR_CHANNEL OUTPUT PG8//#define PWM_AIRBAG_CHANNEL PC13/ /Airbag signal is used for digital signal/#define PWM_INTERLOCK_OUTPUT_CHANNEL (0u) /OUTPUT PA9//#define PWM_INTERLOCK_INPUT_CHANNEL (1u) INPUT PA7/#define PWM_CP_CHANNEL (0u) /INPUT PH8//-------------------------------------PWM PIN setting end-----------------------------------------------------------//-------------------------------------ADC PIN setting begin---------------------------------------------------------//ADC/#define PIN_CC_CHANNEL PD2 /* M_CC, ANP6 /#define PIN_CC2_CHANNEL PD1 / M_CC2, ANP5 /#define PIN_BOARD_POWER_FB_CHANNEL PB6 / M_POWER_FB, ANP2 /#define PIN_SPARE_AD1_CHANNEL PF0 / M_SPARE_AD_1, ANS8 /#define PIN_SPARE_AD2_CHANNEL PB5 / M_SPARE_AD_2, ANP1 /#define PIN_AD74HC4067_CHANNEL PD0 / M_TEMPERATURE_AD, ANP4 /#define PIN_TEMP16H_CHANNEL PD9 / M_TEMP16H_AI_ADC, ANP13 /#define PIN_BTS5180_IS1_CHANNEL PD4 / M_RELAY_0ANODE+1CHARGE_IS, ANP8 /#define PIN_BTS5180_IS2_CHANNEL PD3 / M_RELAY_0CATHODE+1PRECHARG_IS, ANP7 /#define PIN_HALLCURR_HIGH_CHANNAL1 PD8 / M_CURR_CHANNAL1 /#define PIN_HALLCURR_LOWE_CHANNAL2 PD7 / M_CURR_CHANNAL2 */#define ADC_CC_CHANNEL (6u) /PD2/#define ADC_CC2_CHANNEL (5u) /PD1/#define ADC_BOARD_POWER_FB_CHANNEL (2u) /PB6/#define ADC_SPARE_AD1_CHANNEL (8u+32u) /PF0/#define ADC_SPARE_AD2_CHANNEL (1u) /PB5/#define ADC_AD74HC4067_CHANNEL (4u) /PD0/#define ADC_TEMP16H_CHANNEL (13u) /PD9/#define ADC_BTS5180_IS1_CHANNEL (8u) /PD4/#define ADC_BTS5180_IS2_CHANNEL (7u) /PD3/#define ADC_HALLCURR_HIGH_CHANNAL1 (12u) /PD8/#define ADC_HALLCURR_LOWE_CHANNAL2 (11u) /PD7//---------------------------------------ADC PIN setting end-----------------------------------------------------------//-----------------------------------digital communication PIN setting begin ---------------------------------------------->//* CAN0 /#define PIN_CAN0_TX PB0 / M_VE_CAN_TXD /#define PIN_CAN0_RX PB1 / M_VE_CAN_RXD // CAN1 /#define PIN_CAN1_TX PC10 / M_IN_CAN_TXD /#define PIN_CAN1_RX PC11 / M_IN_CAN_RXD // CAN2 /#define PIN_CAN2_TX PF8 / M_CHARGE_CAN_TXD /#define PIN_CAN2_RX PF9 / M_CHARGE_CAN_RXD // SPI0 /#define PIN_SPI0_SCK PA14 / M_SCK /#define PIN_SPI0_MISO PA12 / M_MISO_1 /#define PIN_SPI0_MOSI PA13 / M_MOSI // SPI1 /#define PIN_6803_SPI_SCK PE4 / M_6803_SCK /#define PIN_6803_SPI_MISO PC4 / M_6803_MISO /#define PIN_6803_SPI_MOSI PE3 / M_6803_MOSI // SPI2 /#define PIN_V_I_SPI_SCK PC14 / M_CUR_AD_SCK /#define PIN_V_I_SPI_MISO PC12 / M_VOL_CUR_AD_DATA /#define PIN_V_I_SPI_MOSI PC13 / M_CUR_AD_SDI // IIC0 /#define PIN_IIC0_SCL PA11 / M_RTC_SCL /#define PIN_IIC0_SDA PA10 / M_RTC_SDA *//<----------------------------------digital communication PIN setting end--------------------------------------------------//* -----------------------------------GPIO OUTPUT macro define begin-----------------------------------------------------------*//power lock/#define bsp_powerEnable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 1)#define bsp_powerDisable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 0)#define bsp_slavePowerActive_En()#define bsp_slavePowerActive_Dis()/spare output/#define bsp_spare_out_on()#define bsp_spare_out_off()/CP switch/#define bsp_CHARGE_CP_S2_ON() GPIO_SetVal(PIN_CP_SWITCH, 1)#define bsp_CHARGE_CP_S2_OFF() GPIO_SetVal(PIN_CP_SWITCH, 0)/charge lock/#define bsp_POWER_KEEP_QUICK_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,1)#define bsp_POWER_KEEP_DRIVER_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,0)/EEPROM/#define bsp_EEP_MC25LC256_WP_ON() GPIO_SetVal(PIN_MC25LC256_WP,0)#define bsp_EEP_MC25LC256_WP_OFF() GPIO_SetVal(PIN_MC25LC256_WP,1)#define bsp_EEP_FM25LC160_WP_ON() GPIO_SetVal(PIN_FM25LC160_WP,0)#define bsp_EEP_FM25LC160_WP_OFF() GPIO_SetVal(PIN_FM25LC160_WP,1)/can error detect/#define bsp_vehicleCanErr_OK() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 1) /pwmD?o?£?Dèòa??D?éè??·?/#define bsp_vehicleCanErr_FAULT() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 0)/LED/#define bsp_set_led1_on() GPIO_SetVal(PIN_LED1, 0)#define bsp_set_led1_off() GPIO_SetVal(PIN_LED1, 1)#define bsp_set_led2_on() GPIO_SetVal(PIN_LED2, 0)#define bsp_set_led2_off() GPIO_SetVal(PIN_LED2, 1)#define bsp_set_led3_on() GPIO_SetVal(PIN_LED3, 0)#define bsp_set_led3_off() GPIO_SetVal(PIN_LED3, 1)#define bsp_set_led4_on() GPIO_SetVal(PIN_LED4, 0)#define bsp_set_led4_off() GPIO_SetVal(PIN_LED4, 1)#define bsp_set_led5_on() GPIO_SetVal(PIN_LED5, 0)#define bsp_set_led5_off() GPIO_SetVal(PIN_LED5, 1)/CAN/#define bsp_SetVehicleCan_STB() GPIO_SetVal(PIN_VE_CAN_STB, 1)#define bsp_SetVehicleCan_ON() GPIO_SetVal(PIN_VE_CAN_STB, 0)#define bsp_SetInnerCan_STB() GPIO_SetVal(PIN_IN_CAN_STB, 1)#define bsp_SetInnerCan_ON() GPIO_SetVal(PIN_IN_CAN_STB, 0)#define bsp_SetChargeCan_STB()#define bsp_SetChargeCan_ON()/HD WATCHDOG/#define bsp_HD_WDT_CLR_P() GPIO_SetVal(PIN_WATCHDOG_FEED,0)#define bsp_HD_WDT_SET_P() GPIO_SetVal(PIN_WATCHDOG_FEED,1)/INSULATE/#define bsp_INSULATE_POWER_ON() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 0)#define bsp_INSULATE_POWER_OFF() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 1)#define bsp_INSULATE_TO_GND_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 1)#define bsp_INSULATE_TO_GND_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 0)#define bsp_INSULATE_ANODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 1)#define bsp_INSULATE_ANODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 0)#define bsp_INSULATE_CATHODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 1)#define bsp_INSULATE_CATHODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 0)/HV ADHERE/#define bsp_HV_SET_ANODE_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY1,0)#define bsp_HV_SET_ANODE_RELAY_F_POINT_ON() GPIO_SetVal(PIN_HV_RELAY1,1)#define bsp_HV_SET_ANODE_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY2,0)#define bsp_HV_SET_ANODE_RELAY_B_POINT_ON() GPIO_SetVal(PIN_HV_RELAY2,1)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY1,0)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_ON() GPIO_SetVal(PIN_LV_RELAY1,1)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY2,0)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_ON() GPIO_SetVal(PIN_LV_RELAY2,1)#define bsp_HV_SET_HV_RELAY3_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY3,0)#define bsp_HV_SET_HV_RELAY3_POINT_ON() GPIO_SetVal(PIN_HV_RELAY3,1)#define bsp_HV_SET_HV_RELAY4_POINT_OFF()#define bsp_HV_SET_HV_RELAY4_POINT_ON()#define bsp_HV_SET_HV_RELAY5_POINT_OFF()#define bsp_HV_SET_HV_RELAY5_POINT_ON()#define bsp_HV_SET_LV_RELAY3_POINT_OFF()#define bsp_HV_SET_LV_RELAY3_POINT_ON()/HV RELAY/#define bsp_HV_SET_ANODE_RELAY_ON() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,1)#define bsp_HV_SET_ANODE_RELAY_OFF() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,0)#define bsp_HV_SET_CHARGE_RELAY_ON() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,1)#define bsp_HV_SET_CHARGE_RELAY_OFF() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,0)#define bsp_HV_SET_CATHODE_RELAY_ON() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,1)#define bsp_HV_SET_CATHODE_RELAY_OFF() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,0)#define bsp_HV_SET_PRE_DISCh_RELAY_ON() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 1)#define bsp_HV_SET_PRE_DISCh_RELAY_OFF() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 0)#define bsp_HV_SET_HEAT_RELAY_ON() GPIO_SetVal(PIN_SPARE1_RELAY_CTRL,1)#define bsp_HV_SET_HEAT_RELAY_OFF() GPIO_SetVal(PIN_SPARE1_RELAY_CTRL,0)#define bsp_HV_SET_ASSIST_A_RELAY_ON()#define bsp_HV_SET_ASSIST_A_RELAY_OFF()#define bsp_HV_SET_SPARE2_RELAY_ON() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,1)#define bsp_HV_SET_SPARE2_RELAY_OFF() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,0)#define bsp_HV_SET_SPARE3_RELAY_ON() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,1)#define bsp_HV_SET_SPARE3_RELAY_OFF() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,0)#define bsp_HV_SET_SPARE4_RELAY_ON() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,1)#define bsp_HV_SET_SPARE4_RELAY_OFF() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,0)#define bsp_HV_SET_SPARE5_RELAY_ON()#define bsp_HV_SET_SPARE5_RELAY_OFF()#define bsp_HV_SET_SPARE6_RELAY_ON()#define bsp_HV_SET_SPARE6_RELAY_OFF()/temperature sample/#define bsp_AD74HC4067_ENABLE GPIO_SetVal(PIN_TEMPERATURE_EN, 0)#define bsp_AD74HC4067_DISABLE GPIO_SetVal(PIN_TEMPERATURE_EN, 1)#define bsp_AD74HC4067_S0_ON GPIO_SetVal(PIN_TEMPERATURE_S0, 1)#define bsp_AD74HC4067_S0_OFF GPIO_SetVal(PIN_TEMPERATURE_S0, 0)#define bsp_AD74HC4067_S1_ON GPIO_SetVal(PIN_TEMPERATURE_S1, 1)#define bsp_AD74HC4067_S1_OFF GPIO_SetVal(PIN_TEMPERATURE_S1, 0)#define bsp_AD74HC4067_S2_ON GPIO_SetVal(PIN_TEMPERATURE_S2, 1)#define bsp_AD74HC4067_S2_OFF GPIO_SetVal(PIN_TEMPERATURE_S2, 0)#define bsp_AD74HC4067_S3_ON GPIO_SetVal(PIN_TEMPERATURE_S3, 1)#define bsp_AD74HC4067_S3_OFF GPIO_SetVal(PIN_TEMPERATURE_S3, 0)/configure 485/#define bsp_RS485ENABLE GPIO_SetVal(PIN_RS485_EN,1)#define bsp_RS485DISABLE GPIO_SetVal(PIN_RS485_EN,0)/elect lock/#define bsp_SLOWCHARGELOCK1_ON() GPIO_SetVal(PIN_MOTOR_P,1)#define bsp_SLOWCHARGELOCK2_ON() GPIO_SetVal(PIN_MOTOR_N,1)#define bsp_SLOWCHARGELOCK1_OFF() GPIO_SetVal(PIN_MOTOR_P,0)#define bsp_SLOWCHARGELOCK2_OFF() GPIO_SetVal(PIN_MOTOR_N,0)/* -----------------------------------GPIO OUTPUT macro define end-----------------------------------------------------------*//* -----------------------------------GPIO FEEDBACK macro define begin-----------------------------------------------------------*//feedback, it’s used for test normally/#define bsp_selfActive GPIO_GetOutputVal(PIN_POWER_SELFACTIVE)#define bsp_slavePowerActive 0#define bsp_vehicleCanErr GPIO_GetOutputVal(PIN_VE_CAN_ERR_OUT) /pwmD?o?£?Dèòa??D?éè??·?/#define bsp_CP_S2Switch GPIO_GetOutputVal(PIN_CP_SWITCH)/HV ADHERE/#define bsp_GET_ANODE_RELAY_F_POINT GPIO_GetOutputVal(PIN_HV_RELAY1)#define bsp_GET_ANODE_RELAY_B_POINT GPIO_GetOutputVal(PIN_HV_RELAY2)#define bsp_GET_CATHOD_RELAY_F_POINT GPIO_GetOutputVal(PIN_LV_RELAY1)#define bsp_GET_CATHOD_RELAY_B_POINT GPIO_GetOutputVal(PIN_LV_RELAY2)#define bsp_GET_HV_RELAY3_POINT GPIO_GetOutputVal(PIN_HV_RELAY3)#define bsp_GET_HV_RELAY4_POINT 0#define bsp_GET_HV_RELAY5_POINT 0#define bsp_GET_LV_RELAY3_POINT 0/HV RELAY/#define bsp_GET_ANODE_RELAY_SETTING GPIO_GetOutputVal(PIN_ANODE_RELAY_CTRL)#define bsp_GET_CHARGE_RELAY_SETTING GPIO_GetOutputVal(PIN_CHARGE_RELAY_CTRL)#define bsp_GET_CATHODE_RELAY_SETTING GPIO_GetOutputVal(PIN_CATHODE_RELAY_CTRL)#define bsp_GET_PRE_DISCh_RELAY_SETTING GPIO_GetOutputVal(PIN_PRECHARGE_RELAY_CTRL)#define bsp_GET_HEAT_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE1_RELAY_CTRL)#define bsp_GET_SPARE2_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE2_RELAY_CTRL)#define bsp_GET_SPARE3_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE3_RELAY_CTRL)#define bsp_GET_SPARE4_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE4_RELAY_CTRL)#define bsp_GET_SPARE5_RELAY_SETTING 0#define bsp_GET_SPARE6_RELAY_SETTING 0#define bsp_ChargeFirst GPIO_GetOutputVal(PIN_CHARGE_POWER_LOCK)#define bsp_HD_WATCHDOG_FEED_LEVEL GPIO_GetOutputVal(PIN_WATCHDOG_FEED)/* -----------------------------------GPIO FEEDBACK macro define end--------------------------------------------------*//* -----------------------------------PWM macro define begin-----------------------------------------------------------*///#define PWM_OUTPUT_CAN_ERROR po_write_channel(PWM_CAN_ERROR_CHANNEL,50)#define PWM_OUTPUT_INTERLOCK po_write_channel(PWM_INTERLOCK_OUTPUT_CHANNEL,50)#define PWM_INPUT_CP(pulse_width) pi_read_channel(PWM_CP_CHANNEL, pulse_width)//#define PWM_INPUT_INTERLOCK(pulse_width) pi_read_channel(PWM_INTERLOCK_INPUT_CHANNEL,pulse_width)/* -----------------------------------PWM macro define end--------------------------------------------------------------*/#if APP_RUN_MODE == RUN_MODE_NORMAL/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN GPIO_GetVal(PIN_IGN)#define bsp_SPARE_ONOFF GPIO_GetVal(PIN_SPARE_ON_SLOW_CHARGE_ON)#define bsp_SAFELINE 1#define bsp_AirBag_Level GPIO_GetVal(PIN_AIRBAG) /airbag is pwm signal, but it’s a digital signal here?/#define bsp_INPUT_INTERLOCK_Level GPIO_GetVal(PIN_INTERLOCK_INPUT_CHANNEL)#define bsp_slowChargeLockLocation GPIO_GetVal(PIN_MOTOR) / the signal of slowcharge lock location *//HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS 0#define bsp_GET_CHARGE_RELAY_STATUS 0#define bsp_GET_CATHODE_RELAY_STATUS 0#define bsp_GET_PRE_DISCh_RELAY_STATUS 0#define bsp_GET_HEAT_RELAY_STATUS 0#define bsp_GET_ASSIST_A_RELAY_STATUS 0/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL ADC_GetChannelValue(ADC_CC_CHANNEL)#define bsp_CHARGE_CC2_VAL ADC_GetChannelValue(ADC_CC2_CHANNEL)#define bsp_POWER_FB_VAL ADC_GetChannelValue(ADC_BOARD_POWER_FB_CHANNEL)#define bsp_CURRENT_TEMP_AD_VAL ADC_GetChannelValue(ADC_AD74HC4067_CHANNEL)#define bsp_ANODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_SPARE_AD1_CHANNEL)#define bsp_CATHODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_SPARE_AD2_CHANNEL)#define bsp_CURR_POWER_FB_VAL ADC_GetChannelValue(ADC_TEMP16H_CHANNEL)#define bsp_CURR_CHANNAL2_VAL ADC_GetChannelValue(ADC_HALLCURR_LOWE_CHANNAL2)#define bsp_CURR_CHANNAL1_VAL ADC_GetChannelValue(ADC_HALLCURR_HIGH_CHANNAL1)#define bsp_SLCHARGE_TEMP_ADC_VAL 0#define bsp_QUCHARGE_TEMP_ADC_VAL 0#define bsp_AD74HC4067_AD_VAL bsp_CURRENT_TEMP_AD_VAL/* -----------------------------------ADC macro define end------------------------------------------------------------*/#elif APP_RUN_MODE == RUN_MODE_TESTextern uint8_t test_bsp_IGN;extern uint8_t test_bsp_SPARE_ONOFF;extern uint8_t test_bsp_SAFELINE;extern uint8_t test_bsp_AirBag_Level;extern uint8_t test_ANODE_RELAY_FB_STATUS;extern uint8_t test_CHARGE_RELAY_FB_STATUS;extern uint8_t test_CATHODE_RELAY_FB_STATUS;extern uint8_t test_PRE_RELAY_FB_STATUS;extern uint8_t test_HEAT_RELAY_FB_STATUS;extern uint8_t test_ASSIST_RELAY_FB_STATUS;extern uint8_t test_bsp_INPUT_INTERLOCK_Level;extern uint16_t test_bsp_POWER_FB_VAL;extern uint16_t test_bsp_CURR_POWER_FB_VAL;extern uint16_t test_bsp_CHARGE_CC2_VAL;extern uint16_t test_bsp_CURR_CHANNAL2_VAL;extern uint16_t test_bsp_CURR_CHANNAL1_VAL;extern uint16_t test_bsp_CHARGE_CC_VAL;extern uint16_t test_bsp_CURRENT_TEMP_AD_VAL;extern uint16_t test_bsp_SLCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_QUCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_ANODE_FEEDBACK_VAL;extern uint16_t test_bsp_CATHODE_FEEDBACK_VAL;extern uint16_t test_cpHwStatus;extern uint16_t test_main_volt;extern uint16_t test_main_current;extern uint16_t test_insAnodeThr;extern uint16_t test_insCathodeThr;/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN test_bsp_IGN#define bsp_SPARE_ONOFF test_bsp_SPARE_ONOFF#define bsp_SAFELINE test_bsp_SAFELINE#define bsp_AirBag_Level test_bsp_AirBag_Level/HV RELAY FEEDBACK/#define bsp_HV_GET_ANODE_RELAY_STATUS test_ANODE_RELAY_FB_STATUS#define bsp_HV_GET_CHARGE_RELAY_STATUS test_CHARGE_RELAY_FB_STATUS#define bsp_HV_GET_CATHODE_RELAY_STATUS test_CATHODE_RELAY_FB_STATUS#define bsp_HV_GET_PRE_DISCh_RELAY_STATUS test_PRE_RELAY_FB_STATUS#define bsp_HV_GET_HEAT_RELAY_STATUS test_HEAT_RELAY_FB_STATUS#define bsp_HV_GET_ASSIST_A_RELAY_STATUS test_ASSIST_RELAY_FB_STATUS/ hv lock check level */#define bsp_INPUT_INTERLOCK_Level test_bsp_INPUT_INTERLOCK_Level#define bsp_slowChargeLockLocation 0/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL test_bsp_CHARGE_CC_VAL#define bsp_CHARGE_CC2_VAL test_bsp_CHARGE_CC2_VAL#define bsp_POWER_FB_VAL test_bsp_POWER_FB_VAL#define bsp_CURRENT_TEMP_AD_VAL test_bsp_CURRENT_TEMP_AD_VAL#define bsp_ANODE_FEEDBACK_VAL test_bsp_ANODE_FEEDBACK_VAL#define bsp_CATHODE_FEEDBACK_VAL test_bsp_CATHODE_FEEDBACK_VAL#define bsp_CURR_POWER_FB_VAL test_bsp_CURR_POWER_FB_VAL#define bsp_CURR_CHANNAL2_VAL test_bsp_CURR_CHANNAL2_VAL#define bsp_CURR_CHANNAL1_VAL test_bsp_CURR_CHANNAL1_VAL#define bsp_SLCHARGE_TEMP_ADC_VAL test_bsp_SLCHARGE_TEMP_ADC_VAL#define bsp_QUCHARGE_TEMP_ADC_VAL test_bsp_QUCHARGE_TEMP_ADC_VAL#define bsp_AD74HC4067_AD_VAL bsp_CURRENT_TEMP_AD_VAL/* -----------------------------------ADC macro define end------------------------------------------------------------*/#endif /RUN_MODE_TEST/#endif /(APP_HW_VERSION_E6211_0_5 == APP_HW_VERSION)/#if (APP_HW_VERSION_AB802_0_0 == APP_HW_VERSION)/------------------------------------------digital I/O PIN setting begin ---------------------------------------------->//* digital input //system PIN/#define PIN_IGN PB6 / M_IGN_ON /#define PIN_SPARE_ON_SLOW_CHARGE_ON PB7 / M_SLCHARGE_ON /#define PIN_AIRBAG PA15 / M_AIRBAG /#define PIN_VE_CAN_ERR_IN PG9 / M_VE_CAN_ERR /#define PIN_CP_WAKE PE11 / M_CP_WAKE /#define PIN_SPARE_ON PB5 / M_SPARE_ON /#define PIN_E_LOCK PB4 / M_ELOCK /#define PIN_E_NFAULT PE10 / M_NFAULT /#define PIN_AIRBAG2 PB15 / M_AIRBAG_2 *//* digital output //system PIN/#define PIN_WATCHDOG_FEED PI4 / M_FEEDDOG /#define PIN_POWER_SELFACTIVE PI12 / M_POWER_EN /#define PIN_SLAVE_POWER_SWITCH PG13 / M_BMU_POWER /#define PIN_CHARGE_POWER_LOCK PI13 / M_CHARGE /#define PIN_CP_SWITCH PB14 / M_CP_S2 /#define PIN_DCDC_WAKEUP PI11 / M_DCDC_WAKEUP /#define PIN_GBOX_POWER PA3 / M_GBOX_POWER //eeprom write protect PIN/#define PIN_MC25LC256_WP PC9 / M_EEP_\WP /#define PIN_FM25LC160_WP PC8 / M_FM_\WP //CAN ctrl PIN/#define PIN_IN_CAN_STB PG2 / M_IN_CAN_\STB /#define PIN_VE_CAN_EN PA0 / M_VE_CAN_EN /#define PIN_VE_CAN_STB PG7 / M_VE_CAN_STB_H /#define PIN_VE_CAN_WAKE_SWITCH PG6 / M_DO_CAN_WAKE_HS /#define PIN_VE_CAN_ERR_OUT PA14 / M_VE_CAN_OPWM /#define PIN_IN_DIG_CAN_STB PF12 / M_IN_DIG_CAN_\STB /#define PIN_VE_DIG_CAN_STB PC6 / M_VE_DIG_CAN_\STB //LED PIN/#define PIN_LED1 PG12 / M_LED1 /#define PIN_LED2 PH0 / M_LED2 /#define PIN_LED3 PH1 / M_LED3 /#define PIN_LED4 PH2 / M_LED4 /#define PIN_LED5 PH3 / M_LED5 /#define PIN_LED6 PG1 / M_LED6 /#define PIN_LED7 PG0 / M_LED7 //relay feedback ctrl PIN/#define PIN_BTS5180_DOPEN_LOAD PJ4 / M_DO_OPEN_LOAD_HS /#define PIN_BTS5180_DEN1 PG4 / M_RELAY1_DEN /#define PIN_BTS5180_DSEL1 PG5 / M_RELAY1_DSEL /#define PIN_BTS5180_DEN2 PH14 / M_RELAY2_DEN /#define PIN_BTS5180_DSEL2 PH13 / M_RELAY2_DSEL /#define PIN_BTS5180_DEN3 PF11 / M_RELAY3_DEN /#define PIN_BTS5180_DSEL3 PF10 / M_RELAY3_DSEL //relay ctrl PIN/#define PIN_ANODE_RELAY_CTRL PG3 / M_RELAY1_ANODE /#define PIN_CHARGE_RELAY_CTRL PI7 / M_RELAY1_CHARGE /#define PIN_CATHODE_RELAY_CTRL PI6 / M_RELAY2_CATHODE /#define PIN_HEAT_RELAY_CTRL PH15 / M_RELAY2_HEAT /#define PIN_PRECHARGE_RELAY_CTRL PE6 / M_RELAY_PRECHARGE /#define PIN_SPARE2_RELAY_CTRL PE7 / M_RELAY_SPARE2 /#define PIN_SPARE3_RELAY_CTRL PI3 / M_RELAY_SPARE3 /#define PIN_SPARE4_RELAY_CTRL PI2 / M_RELAY_SPARE4 /#define PIN_SPARE5_RELAY_CTRL PI1 / M_RELAY_SPARE5 /#define PIN_SPARE6_RELAY_CTRL PI0 / M_RELAY_SPARE6 /#define PIN_RELAY3_SPARE1_CTRL PF13 / M_RELAY3_SPARE1 /#define PIN_RELAY3_SPARE2_CTRL PC7 / M_RELAY3_SPARE2 //relay adhere detect PIN/#define PIN_HV_RELAY1 PH12 / M_HV_RELAY1 /#define PIN_HV_RELAY2 PH11 / M_HV_RELAY2 /#define PIN_HV_RELAY3 PG15 / M_HV_RELAY3 /#define PIN_HV_RELAY4 PG14 / M_HV_RELAY4 /#define PIN_HV_RELAY5 PE12 / M_HV_RELAY5 /#define PIN_LV_RELAY1 PE15 / M_LV_RELAY1 /#define PIN_LV_RELAY2 PF15 / M_LV_RELAY2 /#define PIN_LV_RELAY3 PE14 / M_LV_RELAY3 //insulate detected ctrl PIN/#define PIN_INSULATE_RELAY1 PH8 / M_INSULATION_RELAY1 /#define PIN_INSULATE_RELAY2 PH7 / M_INSULATION_RELAY2 /#define PIN_INSULATE_RELAY3 PH6 / M_INSULATION_RELAY3 /#define PIN_INSULATE_POWER_CTRL PF14 / M_INS_POWER //SPI CS ctrl pin/#define PIN_SPI0_CS_FM PF2 / M_FM_\CS /#define PIN_SPI0_CS_EEP PF3 / M_EEP_\CS /#define PIN_SPI0_CS_INSULATE PC15 / M_INS_\CS /#define PIN_SPI0_CS_FLASH0 PF5 / M_FLASH_\CS /#define PIN_SPI0_CS_FLASH1 PF4 / M_FLASH1_\CS /#define PIN_V_SPI_CS0 PG11 / M_VOL_AD_\CS /#define PIN_I_SPI_CS0 PE5 / M_CUR_\CNV //elect lock/#define PIN_MOTOR_P PA13 / M_ELOCK_IN1 /#define PIN_MOTOR_N PA4 / M_ELOCK_IN2 *//<----------------------------------digital I/O PIN setting end----------------------------------------------------//-------------------------------------PWM PIN setting begin---------------------------------------------------------/#define PIN_INTERLOCK_OUTPUT_CHANNEL PB11 /* M_INTERLOCK_OPWM, E0UC3 /#define PIN_INTERLOCK_INPUT_CHANNEL PB13 / M_INTERLOCK_IPWM, E0UC5 /#define PIN_CP_CHANNEL PF1 / M_CP, E0UC11 *//#define PWM_CAN_ERROR_CHANNEL OUTPUT PG8//#define PWM_AIRBAG_CHANNEL PC13/ /Airbag signal is used for digital signal/#define PWM_INTERLOCK_OUTPUT_CHANNEL (0u) /OUTPUT PB11//#define PWM_INTERLOCK_INPUT_CHANNEL (1u) INPUT PB13/#define PWM_CP_CHANNEL (0u) /INPUT PF4//-------------------------------------PWM PIN setting end-----------------------------------------------------------//-------------------------------------ADC PIN setting begin---------------------------------------------------------//ADC/#define PIN_CC_CHANNEL PF0 /* M_CC, ANS8 /#define PIN_CC2_CHANNEL PB10 / M_CC2, ANS2 /#define PIN_BOARD_POWER_FB_CHANNEL PD0 / M_POWER_FB, ANP4 /#define PIN_SHUNT_CURRENT_TEMP_CHANNEL PD2 / M_CURR_TEMP, ANP6 /#define PIN_ANODE_FB_CHANNEL PD3 / M_ANO_FEEDBACK, ANP7 /#define PIN_CATHODE_FB_CHANNEL PD4 / M_CAT_FEDBACK, ANP8 /#define PIN_CURRENT_HALL_POWER_CHANNEL PD1 / M_CURR_POWER_FB, ANP5 /#define PIN_CURRENT_HALL_CHANNEL1 PF6 / M_CURR_CHANNAL1, ANS14 /#define PIN_CURRENT_HALL_CHANNEL2 PF7 / M_CURR_CHANNAL2, ANS15 /#define PIN_FAST_CHARGE_TEMP_CHANNEL PD6 / M_QUCHARGE_TEMPH_AI_LS, ANP10 /#define PIN_SLOW_CHARGE_TEMP_CHANNEL PD5 / M_SLCHARGE_TEMPH_AI_LS, ANP9 /#define PIN_BTS5180_IS1_CHANNEL PD11 / M_RELAY1_IS, ANP15 /#define PIN_BTS5180_IS2_CHANNEL PD10 / M_RELAY2_IS, ANP14 /#define PIN_CC2_2_CHANNEL PB8 / M_CC2_2, ANS0 /#define PIN_FAST_CHARGE_TEMP2_CHANNEL PD7 / M_QUCHARGE_TEMPH_AI_LS2, ANP11 /#define PIN_SLOW_CHARGE_TEMP2_CHANNEL PD8 / M_SLCHARGE_TEMPH_AI_LS2, ANP12 /#define PIN_BTS5180_IS3_CHANNEL PD9 / M_RELAY3_IS, ANP13 */#define ADC_CC_CHANNEL (32u+8u) /PF0/#define ADC_CC2_CHANNEL (32u+2u) /PB10/#define ADC_BOARD_POWER_FB_CHANNEL (4u) /PD0/#define ADC_SHUNT_CURRENT_TEMP_CHANNEL (6u) /PD2/#define ADC_ANODE_FB_CHANNEL (7u) /PD3/#define ADC_CATHODE_FB_CHANNEL (8u) /PD4/#define ADC_CURRENT_HALL_POWER_CHANNEL (5u) /PD1/#define ADC_CURRENT_HALL_CHANNEL1 (32u+14u) /PF6/#define ADC_CURRENT_HALL_CHANNEL2 (32u+15u) /PF7/#define ADC_FAST_CHARGE_TEMP_CHANNEL (10u) /PD6/#define ADC_SLOW_CHARGE_TEMP_CHANNEL (9u) /PD5/#define ADC_BTS5180_IS1_CHANNEL (15u) /PD11/#define ADC_BTS5180_IS2_CHANNEL (14u) /PD10/#define ADC_CC2_2_CHANNEL (32u+0u) /PB8/#define ADC_FAST_CHARGE_TEMP2_CHANNEL (11u) /PD7/#define ADC_SLOW_CHARGE_TEMP2_CHANNEL (12u) /PD8/#define ADC_BTS5180_IS3_CHANNEL (13u) /PD9//---------------------------------------ADC PIN setting end-----------------------------------------------------------//-----------------------------------digital communication PIN setting begin ---------------------------------------------->//* CAN5 /#define PIN_CAN5_TX PE1 / M_VE_CAN_TXD /#define PIN_CAN5_RX PE0 / M_VE_CAN_RXD // CAN1 /#define PIN_CAN1_TX PC10 / M_IN_CAN_TXD /#define PIN_CAN1_RX PC11 / M_IN_CAN_RXD // CAN4 /#define PIN_CAN4_TX PC2 / M_CHARGE_CAN_TXD /#define PIN_CAN4_RX PC3 / M_CHARGE_CAN_RXD // CAN0 /#define PIN_CAN0_TX PB0 / M_IN_DIG_CAN_TXD /#define PIN_CAN0_RX PB1 / M_IN_DIG_CAN_RXD // CAN2 /#define PIN_CAN2_TX PF8 / M_VE_DIG_CAN_TXD /#define PIN_CAN2_RX PF9 / M_VE_DIG_CAN_RXD *//* SPI2 /#define PIN_SPI2_SCK PC14 / M_SCK /#define PIN_SPI2_MISO PC12 / M_MISO /#define PIN_SPI2_MOSI PC13 / M_MOSI // SPI4 /#define PIN_V_SPI4_SCK PI5 / M_VOL_AD_SCK /#define PIN_V_SPI4_MISO PG10 / M_VOL_AD_DATA // SPI1 /#define PIN_I_SPI1_SCK PE4 / M_CUR_AD_SCK /#define PIN_I_SPI1_MISO PE2 / M_CUR_AD_DATA /#define PIN_I_SPI1_MOSI PE3 / M_CUR_AD_DATA *//* IIC0 /#define PIN_IIC0_SCL PA11 / M_RTC_SCL /#define PIN_IIC0_SDA PA10 / M_RTC_SDA *//<----------------------------------digital communication PIN setting end--------------------------------------------------//* -----------------------------------GPIO OUTPUT macro define begin-----------------------------------------------------------*//power lock/#define bsp_powerEnable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 1)#define bsp_powerDisable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 0)#define bsp_slavePowerActive_En() GPIO_SetVal(PIN_SLAVE_POWER_SWITCH, 1)#define bsp_slavePowerActive_Dis() GPIO_SetVal(PIN_SLAVE_POWER_SWITCH, 0)/spare output, E6305 is canceled/#define bsp_spare_out_on() 1/GPIO_SetVal(PB3, 1)/#define bsp_spare_out_off() 1/GPIO_SetVal(PB3, 0)//CP switch/#define bsp_CHARGE_CP_S2_ON() GPIO_SetVal(PIN_CP_SWITCH, 1)#define bsp_CHARGE_CP_S2_OFF() GPIO_SetVal(PIN_CP_SWITCH, 0)/charge lock/#define bsp_POWER_KEEP_QUICK_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,1)#define bsp_POWER_KEEP_DRIVER_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,0)/EEPROM/#define bsp_EEP_MC25LC256_WP_ON() GPIO_SetVal(PIN_MC25LC256_WP,0)#define bsp_EEP_MC25LC256_WP_OFF() GPIO_SetVal(PIN_MC25LC256_WP,1)#define bsp_EEP_FM25LC160_WP_ON() GPIO_SetVal(PIN_FM25LC160_WP,0)#define bsp_EEP_FM25LC160_WP_OFF() GPIO_SetVal(PIN_FM25LC160_WP,1)/can error detect/#define bsp_vehicleCanErr_OK() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 1) /pwm信号,需要重新设计否/#define bsp_vehicleCanErr_FAULT() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 0)/LED/#define bsp_set_led1_on() GPIO_SetVal(PIN_LED1, 0)#define bsp_set_led1_off() GPIO_SetVal(PIN_LED1, 1)#define bsp_set_led2_on() GPIO_SetVal(PIN_LED2, 0)#define bsp_set_led2_off() GPIO_SetVal(PIN_LED2, 1)#define bsp_set_led3_on() GPIO_SetVal(PIN_LED3, 0)#define bsp_set_led3_off() GPIO_SetVal(PIN_LED3, 1)#define bsp_set_led4_on() GPIO_SetVal(PIN_LED4, 0)#define bsp_set_led4_off() GPIO_SetVal(PIN_LED4, 1)#define bsp_set_led5_on() GPIO_SetVal(PIN_LED5, 0)#define bsp_set_led5_off() GPIO_SetVal(PIN_LED5, 1)#define bsp_set_led6_on() GPIO_SetVal(PIN_LED6, 0)#define bsp_set_led6_off() GPIO_SetVal(PIN_LED6, 1)#define bsp_set_led7_on() GPIO_SetVal(PIN_LED7, 0)#define bsp_set_led7_off() GPIO_SetVal(PIN_LED7, 1)/CAN/#define bsp_SetVehicleCan_STB() {GPIO_SetVal(PIN_VE_CAN_STB, 0);GPIO_SetVal(PIN_VE_CAN_EN, 0);}#define bsp_SetVehicleCan_ON() {GPIO_SetVal(PIN_VE_CAN_STB, 1);GPIO_SetVal(PIN_VE_CAN_EN, 1);GPIO_SetVal(PIN_VE_CAN_WAKE_SWITCH, 0);}#define bsp_SetVehicleCan_SLP() {GPIO_SetVal(PIN_VE_CAN_STB, 0);GPIO_SetVal(PIN_VE_CAN_EN, 1);}#define bsp_SetInnerCan_STB() GPIO_SetVal(PIN_IN_CAN_STB, 1) /stb mode/#define bsp_SetInnerCan_ON() GPIO_SetVal(PIN_IN_CAN_STB, 0) /normal mode/#define bsp_SetChargeCan_STB() 1/GPIO_SetVal(PF12, 1) stb mode/#define bsp_SetChargeCan_ON() 1/GPIO_SetVal(PF12, 0) normal mode/#define bsp_SetInnerDigCan_STB() GPIO_SetVal(PIN_IN_DIG_CAN_STB, 1) /stb mode/#define bsp_SetInnerDigCan_ON() GPIO_SetVal(PIN_IN_DIG_CAN_STB, 0) /normal mode/#define bsp_SetVehicleDigCan_STB() GPIO_SetVal(PIN_VE_DIG_CAN_STB, 1) /stb mode/#define bsp_SetVehicleDigCan_ON() GPIO_SetVal(PIN_VE_DIG_CAN_STB, 0) /normal mode/#define bsp_Set_IN_CAN_STB_ON() GPIO_SetVal(PIN_IN_CAN_STB, 1)#define bsp_Set_IN_CAN_STB_OFF() GPIO_SetVal(PIN_IN_CAN_STB, 0)#define bsp_Set_VE_CAN_EN_ON() GPIO_SetVal(PIN_VE_CAN_EN, 1)#define bsp_Set_VE_CAN_EN_OFF() GPIO_SetVal(PIN_VE_CAN_EN, 0)#define bsp_Set_VE_CAN_STB_ON() GPIO_SetVal(PIN_VE_CAN_STB, 1)#define bsp_Set_VE_CAN_STB_OFF() GPIO_SetVal(PIN_VE_CAN_STB, 0)#define bsp_Set_VE_CAN_WAKE_SWITCH_ON() GPIO_SetVal(PIN_VE_CAN_WAKE_SWITCH, 1)#define bsp_Set_VE_CAN_WAKE_SWITCH_OFF() GPIO_SetVal(PIN_VE_CAN_WAKE_SWITCH, 0)#define bsp_Set_IN_DIG_CAN_STB_ON() GPIO_SetVal(PIN_IN_DIG_CAN_STB, 1)#define bsp_Set_IN_DIG_CAN_STB_OFF() GPIO_SetVal(PIN_IN_DIG_CAN_STB, 0)#define bsp_Set_VE_DIG_CAN_STB_ON() GPIO_SetVal(PIN_VE_DIG_CAN_STB, 1)#define bsp_Set_VE_DIG_CAN_STB_OFF() GPIO_SetVal(PIN_VE_DIG_CAN_STB, 0)/HD WATCHDOG/#define bsp_HD_WDT_CLR_P() GPIO_SetVal(PIN_WATCHDOG_FEED,0)#define bsp_HD_WDT_SET_P() GPIO_SetVal(PIN_WATCHDOG_FEED,1)/INSULATE/#define bsp_INSULATE_POWER_ON() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 0)//#define bsp_INSULATE_POWER_OFF() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 1)//#define bsp_INSULATE_TO_GND_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 1)#define bsp_INSULATE_TO_GND_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 0)#define bsp_INSULATE_ANODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 1)#define bsp_INSULATE_ANODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 0)#define bsp_INSULATE_CATHODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 1)#define bsp_INSULATE_CATHODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 0)/HV ADHERE/#define bsp_HV_SET_ANODE_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY1,0)#define bsp_HV_SET_ANODE_RELAY_F_POINT_ON() GPIO_SetVal(PIN_HV_RELAY1,1)#define bsp_HV_SET_ANODE_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY2,0)#define bsp_HV_SET_ANODE_RELAY_B_POINT_ON() GPIO_SetVal(PIN_HV_RELAY2,1)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY1,0)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_ON() GPIO_SetVal(PIN_LV_RELAY1,1)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY2,0)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_ON() GPIO_SetVal(PIN_LV_RELAY2,1)#define bsp_HV_SET_HV_RELAY3_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY3,0)#define bsp_HV_SET_HV_RELAY3_POINT_ON() GPIO_SetVal(PIN_HV_RELAY3,1)#define bsp_HV_SET_HV_RELAY4_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY4,0)#define bsp_HV_SET_HV_RELAY4_POINT_ON() GPIO_SetVal(PIN_HV_RELAY4,1)#define bsp_HV_SET_HV_RELAY5_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY5,0)#define bsp_HV_SET_HV_RELAY5_POINT_ON() GPIO_SetVal(PIN_HV_RELAY5,1)#define bsp_HV_SET_LV_RELAY3_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY3,0)#define bsp_HV_SET_LV_RELAY3_POINT_ON() GPIO_SetVal(PIN_LV_RELAY3,1)/HV RELAY/#define bsp_HV_SET_ANODE_RELAY_ON() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,1)#define bsp_HV_SET_ANODE_RELAY_OFF() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,0)#define bsp_HV_SET_CHARGE_RELAY_ON() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,1)#define bsp_HV_SET_CHARGE_RELAY_OFF() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,0)#define bsp_HV_SET_CATHODE_RELAY_ON() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,1)#define bsp_HV_SET_CATHODE_RELAY_OFF() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,0)#define bsp_HV_SET_PRE_DISCh_RELAY_ON() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 1)#define bsp_HV_SET_PRE_DISCh_RELAY_OFF() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 0)#define bsp_HV_SET_HEAT_RELAY_ON() GPIO_SetVal(PIN_HEAT_RELAY_CTRL,1)#define bsp_HV_SET_HEAT_RELAY_OFF() GPIO_SetVal(PIN_HEAT_RELAY_CTRL,0)#define bsp_HV_SET_ASSIST_A_RELAY_ON() 1/GPIO_SetVal(PE0,1)/#define bsp_HV_SET_ASSIST_A_RELAY_OFF() 0/GPIO_SetVal(PE0,0)/#define bsp_HV_SET_SPARE2_RELAY_ON() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,1)#define bsp_HV_SET_SPARE2_RELAY_OFF() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,0)#define bsp_HV_SET_SPARE3_RELAY_ON() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,1)#define bsp_HV_SET_SPARE3_RELAY_OFF() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,0)#define bsp_HV_SET_SPARE4_RELAY_ON() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,1)#define bsp_HV_SET_SPARE4_RELAY_OFF() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,0)#define bsp_HV_SET_SPARE5_RELAY_ON() GPIO_SetVal(PIN_SPARE5_RELAY_CTRL,1)#define bsp_HV_SET_SPARE5_RELAY_OFF() GPIO_SetVal(PIN_SPARE5_RELAY_CTRL,0)#define bsp_HV_SET_SPARE6_RELAY_ON() GPIO_SetVal(PIN_SPARE6_RELAY_CTRL,1)#define bsp_HV_SET_SPARE6_RELAY_OFF() GPIO_SetVal(PIN_SPARE6_RELAY_CTRL,0)#define bsp_HV_SET_RELAY3_SPARE1_ON() GPIO_SetVal(PIN_RELAY3_SPARE1_CTRL,1)#define bsp_HV_SET_RELAY3_SPARE1_OFF() GPIO_SetVal(PIN_RELAY3_SPARE1_CTRL,0)#define bsp_HV_SET_RELAY3_SPARE2_ON() GPIO_SetVal(PIN_RELAY3_SPARE2_CTRL,1)#define bsp_HV_SET_RELAY3_SPARE2_OFF() GPIO_SetVal(PIN_RELAY3_SPARE2_CTRL,0)/elect lock/#define bsp_SLOWCHARGELOCK1_ON() GPIO_SetVal(PIN_MOTOR_P,1)#define bsp_SLOWCHARGELOCK2_ON() GPIO_SetVal(PIN_MOTOR_N,1)#define bsp_SLOWCHARGELOCK1_OFF() GPIO_SetVal(PIN_MOTOR_P,0)#define bsp_SLOWCHARGELOCK2_OFF() GPIO_SetVal(PIN_MOTOR_N,0)/DCDC ctrl/#define bsp_DCDC_WAKEUP_ON() GPIO_SetVal(PIN_DCDC_WAKEUP,1)#define bsp_DCDC_WAKEUP_OFF() GPIO_SetVal(PIN_DCDC_WAKEUP,0)/GBOX ctrl/#define bsp_GBOX_POWER_ON() GPIO_SetVal(PIN_GBOX_POWER,1)#define bsp_GBOX_POWER_OFF() GPIO_SetVal(PIN_GBOX_POWER,0)/relay feedback ctrl/#define bsp_Set_BTS5180_DOPEN_LOAD_ON() GPIO_SetVal(PIN_BTS5180_DOPEN_LOAD, 1)#define bsp_Set_BTS5180_DOPEN_LOAD_OFF() GPIO_SetVal(PIN_BTS5180_DOPEN_LOAD, 0)#define bsp_Set_BTS5180_DEN1_ON() GPIO_SetVal(PIN_BTS5180_DEN1, 1)#define bsp_Set_BTS5180_DEN1_OFF() GPIO_SetVal(PIN_BTS5180_DEN1, 0)#define bsp_Set_BTS5180_DSEL1_ON() GPIO_SetVal(PIN_BTS5180_DSEL1, 1)#define bsp_Set_BTS5180_DSEL1_OFF() GPIO_SetVal(PIN_BTS5180_DSEL1, 0)#define bsp_Set_BTS5180_DEN2_ON() GPIO_SetVal(PIN_BTS5180_DEN2, 1)#define bsp_Set_BTS5180_DEN2_OFF() GPIO_SetVal(PIN_BTS5180_DEN2, 0)#define bsp_Set_BTS5180_DSEL2_ON() GPIO_SetVal(PIN_BTS5180_DSEL2, 1)#define bsp_Set_BTS5180_DSEL2_OFF() GPIO_SetVal(PIN_BTS5180_DSEL2, 0)#define bsp_Set_BTS5180_DEN3_ON() GPIO_SetVal(PIN_BTS5180_DEN3, 1)#define bsp_Set_BTS5180_DEN3_OFF() GPIO_SetVal(PIN_BTS5180_DEN3, 0)#define bsp_Set_BTS5180_DSEL3_ON() GPIO_SetVal(PIN_BTS5180_DSEL3, 1)#define bsp_Set_BTS5180_DSEL3_OFF() GPIO_SetVal(PIN_BTS5180_DSEL3, 0)/SPI CS ctrl/#define bsp_Set_SPI0_CS_FM_ON() GPIO_SetVal(PIN_SPI0_CS_FM, 1)#define bsp_Set_SPI0_CS_FM_OFF() GPIO_SetVal(PIN_SPI0_CS_FM, 0)#define bsp_Set_SPI0_CS_EEP_ON() GPIO_SetVal(PIN_SPI0_CS_EEP, 1)#define bsp_Set_SPI0_CS_EEP_OFF() GPIO_SetVal(PIN_SPI0_CS_EEP, 0)#define bsp_Set_SPI0_CS_INSULATE_ON() GPIO_SetVal(PIN_SPI0_CS_INSULATE, 1)#define bsp_Set_SPI0_CS_INSULATE_OFF() GPIO_SetVal(PIN_SPI0_CS_INSULATE, 0)#define bsp_Set_SPI0_CS_FLASH0_ON() GPIO_SetVal(PIN_SPI0_CS_FLASH0, 1)#define bsp_Set_SPI0_CS_FLASH0_OFF() GPIO_SetVal(PIN_SPI0_CS_FLASH0, 0)#define bsp_Set_SPI0_CS_FLASH1_ON() GPIO_SetVal(PIN_SPI0_CS_FLASH1, 1)#define bsp_Set_SPI0_CS_FLASH1_OFF() GPIO_SetVal(PIN_SPI0_CS_FLASH1, 0)#define bsp_Set_V_SPI_CS0_ON() GPIO_SetVal(PIN_V_SPI_CS0, 1)#define bsp_Set_V_SPI_CS0_OFF() GPIO_SetVal(PIN_V_SPI_CS0, 0)#define bsp_Set_I_SPI_CS0_ON() GPIO_SetVal(PIN_I_SPI_CS0, 1)#define bsp_Set_I_SPI_CS0_OFF() GPIO_SetVal(PIN_I_SPI_CS0, 0)/* -----------------------------------GPIO OUTPUT macro define end-----------------------------------------------------------*//* -----------------------------------GPIO FEEDBACK macro define begin-----------------------------------------------------------*//feedback, it’s used for test normally/#define bsp_HD_WATCHDOG_FEED_LEVEL GPIO_GetOutputVal(PIN_WATCHDOG_FEED)#define bsp_selfActive GPIO_GetOutputVal(PIN_POWER_SELFACTIVE)#define bsp_slavePowerActive GPIO_GetOutputVal(PIN_SLAVE_POWER_SWITCH)#define bsp_ChargeFirst GPIO_GetOutputVal(PIN_CHARGE_POWER_LOCK)#define bsp_CP_S2Switch GPIO_GetOutputVal(PIN_CP_SWITCH)#define bsp_DCDC_WAKEUP_SETTING GPIO_GetOutputVal(PIN_DCDC_WAKEUP)#define bsp_GBOX_POWER_SETTING GPIO_GetOutputVal(PIN_GBOX_POWER)/eeprom write protect/#define bsp_MC25LC256_WP_SETTING GPIO_GetOutputVal(PIN_MC25LC256_WP)#define bsp_FM25LC160_SETTING GPIO_GetOutputVal(PIN_FM25LC160_WP)/CAN ctrl/#define bsp_vehicleCanErr GPIO_GetOutputVal(PIN_VE_CAN_ERR_OUT)#define bsp_IN_CAN_STB_SETTING GPIO_GetOutputVal(PIN_IN_CAN_STB)#define bsp_VE_CAN_EN_SETTING GPIO_GetOutputVal(PIN_VE_CAN_EN)#define bsp_VE_CAN_STB_SETTING GPIO_GetOutputVal(PIN_VE_CAN_STB)#define bsp_VE_CAN_WAKE_SWITCH_SETTING GPIO_GetOutputVal(PIN_VE_CAN_WAKE_SWITCH)#define bsp_IN_DIG_CAN_STB_SETTING GPIO_GetOutputVal(PIN_IN_DIG_CAN_STB)#define bsp_VE_DIG_CAN_STB_SETTING GPIO_GetOutputVal(PIN_VE_DIG_CAN_STB)/LED/#define bsp_LED1_SETTING() GPIO_GetOutputVal(PIN_LED1)#define bsp_LED2_SETTING() GPIO_GetOutputVal(PIN_LED2)#define bsp_LED3_SETTING() GPIO_GetOutputVal(PIN_LED3)#define bsp_LED4_SETTING() GPIO_GetOutputVal(PIN_LED4)#define bsp_LED5_SETTING() GPIO_GetOutputVal(PIN_LED5)#define bsp_LED6_SETTING() GPIO_GetOutputVal(PIN_LED6)#define bsp_LED7_SETTING() GPIO_GetOutputVal(PIN_LED7)/relay feedback ctrl/#define bsp_BTS5180_DOPEN_LOAD_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DOPEN_LOAD)#define bsp_BTS5180_DEN1_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DEN1)#define bsp_BTS5180_DSEL1_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DSEL1)#define bsp_BTS5180_DEN2_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DEN2)#define bsp_BTS5180_DSEL2_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DSEL2)#define bsp_BTS5180_DEN3_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DEN3)#define bsp_BTS5180_DSEL3_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DSEL3)/HV RELAY/#define bsp_GET_ANODE_RELAY_SETTING GPIO_GetOutputVal(PIN_ANODE_RELAY_CTRL)#define bsp_GET_CHARGE_RELAY_SETTING GPIO_GetOutputVal(PIN_CHARGE_RELAY_CTRL)#define bsp_GET_CATHODE_RELAY_SETTING GPIO_GetOutputVal(PIN_CATHODE_RELAY_CTRL)#define bsp_GET_PRE_DISCh_RELAY_SETTING GPIO_GetOutputVal(PIN_PRECHARGE_RELAY_CTRL)#define bsp_GET_HEAT_RELAY_SETTING GPIO_GetOutputVal(PIN_HEAT_RELAY_CTRL)#define bsp_GET_SPARE2_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE2_RELAY_CTRL)#define bsp_GET_SPARE3_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE3_RELAY_CTRL)#define bsp_GET_SPARE4_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE4_RELAY_CTRL)#define bsp_GET_SPARE5_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE5_RELAY_CTRL)#define bsp_GET_SPARE6_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE6_RELAY_CTRL)#define bsp_HV_GET_RELAY3_SPARE1_SETTING GPIO_GetOutputVal(PIN_RELAY3_SPARE1_CTRL)#define bsp_HV_GET_RELAY3_SPARE2_SETTING GPIO_GetOutputVal(PIN_RELAY3_SPARE2_CTRL)/relay feedback ctrl/#define bsp_Get_BTS5180_DOPEN_LOAD_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DOPEN_LOAD)#define bsp_Get_BTS5180_DEN1_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DEN1)#define bsp_Get_BTS5180_DSEL1_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DSEL1)#define bsp_Get_BTS5180_DEN2_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DEN2)#define bsp_Get_BTS5180_DSEL2_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DSEL2)#define bsp_Get_BTS5180_DEN3_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DEN3)#define bsp_Get_BTS5180_DSEL3_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DSEL3)/HV ADHERE/#define bsp_GET_ANODE_RELAY_F_POINT GPIO_GetOutputVal(PIN_HV_RELAY1)#define bsp_GET_ANODE_RELAY_B_POINT GPIO_GetOutputVal(PIN_HV_RELAY2)#define bsp_GET_CATHOD_RELAY_F_POINT GPIO_GetOutputVal(PIN_LV_RELAY1)#define bsp_GET_CATHOD_RELAY_B_POINT GPIO_GetOutputVal(PIN_LV_RELAY2)#define bsp_GET_HV_RELAY3_POINT GPIO_GetOutputVal(PIN_HV_RELAY3)#define bsp_GET_HV_RELAY4_POINT GPIO_GetOutputVal(PIN_HV_RELAY4)#define bsp_GET_HV_RELAY5_POINT GPIO_GetOutputVal(PIN_HV_RELAY5)#define bsp_GET_LV_RELAY3_POINT GPIO_GetOutputVal(PIN_LV_RELAY3)/insulate detected ctrl/#define bsp_INSULATE_RELAY1_SETTING() GPIO_GetOutputVal(PIN_INSULATE_RELAY1)#define bsp_INSULATE_RELAY2_SETTING() GPIO_GetOutputVal(PIN_INSULATE_RELAY2)#define bsp_INSULATE_RELAY3_SETTING() GPIO_GetOutputVal(PIN_INSULATE_RELAY3)#define bsp_INSULATE_POWER_CTRL_SETTING() GPIO_GetOutputVal(PIN_INSULATE_POWER_CTRL)/SPI CS ctrl/#define bsp_SPI0_CS_FM_SETTING() GPIO_GetOutputVal(PIN_SPI0_CS_FM)#define bsp_SPI0_CS_EEP_SETTING() GPIO_GetOutputVal(PIN_SPI0_CS_EEP)#define bsp_SPI0_CS_INSULATE_SETTING() GPIO_GetOutputVal(PIN_SPI0_CS_INSULATE)#define bsp_SPI0_CS_FLASH0_SETTING() GPIO_GetOutputVal(PIN_SPI0_CS_FLASH0)#define bsp_SPI0_CS_FLASH1_SETTING() GPIO_GetOutputVal(PIN_SPI0_CS_FLASH1)#define bsp_V_SPI_CS0_SETTING() GPIO_GetOutputVal(PIN_V_SPI_CS0)#define bsp_I_SPI_CS0_SETTING() GPIO_GetOutputVal(PIN_I_SPI_CS0)/elect lock/#define bsp_MOTOR_P_SETTING() GPIO_GetOutputVal(PIN_MOTOR_P)#define bsp_MOTOR_N_SETTING() GPIO_GetOutputVal(PIN_MOTOR_N)/* -----------------------------------GPIO FEEDBACK macro define end--------------------------------------------------*//* -----------------------------------PWM macro define begin-----------------------------------------------------------*///#define PWM_OUTPUT_CAN_ERROR po_write_channel(PWM_CAN_ERROR_CHANNEL,50)#define PWM_OUTPUT_INTERLOCK po_write_channel(PWM_INTERLOCK_OUTPUT_CHANNEL,50)#define PWM_INPUT_CP(pulse_width) pi_read_channel(PWM_CP_CHANNEL, pulse_width)//#define PWM_INPUT_INTERLOCK(pulse_width) pi_read_channel(PWM_INTERLOCK_INPUT_CHANNEL,pulse_width)/* -----------------------------------PWM macro define end--------------------------------------------------------------*/#if APP_RUN_MODE == RUN_MODE_NORMAL/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN GPIO_GetVal(PIN_IGN)#define bsp_SPARE_ONOFF GPIO_GetVal(PIN_SPARE_ON_SLOW_CHARGE_ON)#define bsp_SAFELINE 1#define bsp_AirBag_Level GPIO_GetVal(PIN_AIRBAG) /airbag is pwm signal, but it’s a digital signal here?/#define bsp_INPUT_INTERLOCK_Level GPIO_GetVal(PIN_INTERLOCK_INPUT_CHANNEL)#define bsp_slowChargeLockLocation GPIO_GetVal(PIN_E_LOCK) / the signal of slowcharge lock location */#define bsp_E_NFAULT_Level GPIO_GetVal(PIN_E_NFAULT)#define bsp_VE_CAN_ERR_IN_Level GPIO_GetVal(PIN_VE_CAN_ERR_IN)#define bsp_SPARE_ON_Level GPIO_GetVal(PIN_SPARE_ON)#define bsp_AIRBAG2_Level GPIO_GetVal(PIN_AIRBAG2)#define bsp_CP_WAKE_Level GPIO_GetVal(PIN_CP_WAKE)/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS 0#define bsp_GET_CHARGE_RELAY_STATUS 0#define bsp_GET_CATHODE_RELAY_STATUS 0#define bsp_GET_PRE_DISCh_RELAY_STATUS 0#define bsp_GET_HEAT_RELAY_STATUS 0#define bsp_GET_ASSIST_A_RELAY_STATUS 0#define bsp_ANODE_FEEDBACK_LV GPIO_GetVal(PIN_ANODE_FB_CHANNEL)#define bsp_CATHODE_FEEDBACK_LV GPIO_GetVal(PIN_CATHODE_FB_CHANNEL)/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL ADC_GetChannelValue(ADC_CC_CHANNEL)#define bsp_CHARGE_CC2_VAL ADC_GetChannelValue(ADC_CC2_CHANNEL)#define bsp_POWER_FB_VAL ADC_GetChannelValue(ADC_BOARD_POWER_FB_CHANNEL)#define bsp_CURRENT_TEMP_AD_VAL ADC_GetChannelValue(ADC_SHUNT_CURRENT_TEMP_CHANNEL)#define bsp_ANODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_ANODE_FB_CHANNEL)#define bsp_CATHODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_CATHODE_FB_CHANNEL)#define bsp_CURR_POWER_FB_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_POWER_CHANNEL)#define bsp_CURR_CHANNAL2_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_CHANNEL2)#define bsp_CURR_CHANNAL1_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_CHANNEL1)#define bsp_SLCHARGE_TEMP_ADC_VAL ADC_GetChannelValue(ADC_SLOW_CHARGE_TEMP_CHANNEL)#define bsp_QUCHARGE_TEMP_ADC_VAL ADC_GetChannelValue(ADC_FAST_CHARGE_TEMP_CHANNEL)#define bsp_BTS5180_IS1_ADC_VAL ADC_GetChannelValue(ADC_BTS5180_IS1_CHANNEL)#define bsp_BTS5180_IS2_ADC_VAL ADC_GetChannelValue(ADC_BTS5180_IS2_CHANNEL)#define bsp_CHARGE2_CC2_VAL ADC_GetChannelValue(ADC_CC2_2_CHANNEL)#define bsp_QUCHARGE_TEMP2_ADC_VAL ADC_GetChannelValue(ADC_FAST_CHARGE_TEMP2_CHANNEL)#define bsp_SLCHARGE_TEMP2_ADC_VAL ADC_GetChannelValue(ADC_SLOW_CHARGE_TEMP2_CHANNEL)#define bsp_BTS5180_IS3_ADC_VAL ADC_GetChannelValue(ADC_BTS5180_IS3_CHANNEL)/* -----------------------------------ADC macro define end------------------------------------------------------------*/#elif APP_RUN_MODE == RUN_MODE_TESTextern uint8_t test_bsp_IGN;extern uint8_t test_bsp_SPARE_ONOFF;extern uint8_t test_bsp_SAFELINE;extern uint8_t test_bsp_AirBag_Level;extern uint8_t test_ANODE_RELAY_FB_STATUS;extern uint8_t test_CHARGE_RELAY_FB_STATUS;extern uint8_t test_CATHODE_RELAY_FB_STATUS;extern uint8_t test_PRE_RELAY_FB_STATUS;extern uint8_t test_HEAT_RELAY_FB_STATUS;extern uint8_t test_ASSIST_RELAY_FB_STATUS;extern uint8_t test_bsp_INPUT_INTERLOCK_Level;extern uint16_t test_bsp_POWER_FB_VAL;extern uint16_t test_bsp_CURR_POWER_FB_VAL;extern uint16_t test_bsp_CHARGE_CC2_VAL;extern uint16_t test_bsp_CURR_CHANNAL2_VAL;extern uint16_t test_bsp_CURR_CHANNAL1_VAL;extern uint16_t test_bsp_CHARGE_CC_VAL;extern uint16_t test_bsp_CURRENT_TEMP_AD_VAL;extern uint16_t test_bsp_SLCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_QUCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_ANODE_FEEDBACK_VAL;extern uint16_t test_bsp_CATHODE_FEEDBACK_VAL;extern uint16_t test_cpHwStatus;extern uint16_t test_main_volt;extern uint16_t test_main_current;extern uint16_t test_insAnodeThr;extern uint16_t test_insCathodeThr;/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------*/#define bsp_IGN test_bsp_IGN#define bsp_SPARE_ONOFF test_bsp_SPARE_ONOFF#define bsp_SAFELINE test_bsp_SAFELINE#define bsp_AirBag_Level test_bsp_AirBag_Level#define bsp_AIRBAG2_Level test_bsp_AirBag_Level#define bsp_SPARE_ON_Level test_bsp_IGN#define bsp_CP_WAKE_Level test_bsp_IGN/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS test_ANODE_RELAY_FB_STATUS#define bsp_GET_CHARGE_RELAY_STATUS test_CHARGE_RELAY_FB_STATUS#define bsp_GET_CATHODE_RELAY_STATUS test_CATHODE_RELAY_FB_STATUS#define bsp_GET_PRE_DISCh_RELAY_STATUS test_PRE_RELAY_FB_STATUS#define bsp_GET_HEAT_RELAY_STATUS test_HEAT_RELAY_FB_STATUS#define bsp_GET_ASSIST_A_RELAY_STATUS test_ASSIST_RELAY_FB_STATUS/* hv lock check level */#define bsp_INPUT_INTERLOCK_Level test_bsp_INPUT_INTERLOCK_Level#define bsp_slowChargeLockLocation 0#define bsp_E_NFAULT_Level 0#define bsp_ANODE_FEEDBACK_LV test_ANODE_RELAY_FB_STATUS#define bsp_CATHODE_FEEDBACK_LV test_CATHODE_RELAY_FB_STATUS#define bsp_VE_CAN_ERR_IN_Level 0/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL test_bsp_CHARGE_CC_VAL#define bsp_CHARGE_CC2_VAL test_bsp_CHARGE_CC2_VAL#define bsp_POWER_FB_VAL test_bsp_POWER_FB_VAL#define bsp_CURRENT_TEMP_AD_VAL test_bsp_CURRENT_TEMP_AD_VAL#define bsp_ANODE_FEEDBACK_VAL test_bsp_ANODE_FEEDBACK_VAL#define bsp_CATHODE_FEEDBACK_VAL test_bsp_CATHODE_FEEDBACK_VAL#define bsp_CURR_POWER_FB_VAL test_bsp_CURR_POWER_FB_VAL#define bsp_CURR_CHANNAL2_VAL test_bsp_CURR_CHANNAL2_VAL#define bsp_CURR_CHANNAL1_VAL test_bsp_CURR_CHANNAL1_VAL#define bsp_SLCHARGE_TEMP_ADC_VAL test_bsp_SLCHARGE_TEMP_ADC_VAL#define bsp_QUCHARGE_TEMP_ADC_VAL test_bsp_QUCHARGE_TEMP_ADC_VAL#define bsp_CHARGE2_CC2_VAL test_bsp_CHARGE_CC2_VAL#define bsp_SLCHARGE_TEMP2_ADC_VAL test_bsp_SLCHARGE_TEMP_ADC_VAL#define bsp_QUCHARGE_TEMP2_ADC_VAL test_bsp_QUCHARGE_TEMP_ADC_VAL#define bsp_BTS5180_IS1_ADC_VAL 0#define bsp_BTS5180_IS2_ADC_VAL 0#define bsp_BTS5180_IS3_ADC_VAL 0/* -----------------------------------ADC macro define end------------------------------------------------------------/#endif / APP_RUN_MODE == RUN_MODE_TEST */#endif /* APP_HW_VERSION_AB802_0_0 == APP_HW_VERSION */extern void BSP_GPIO_Init(void);#endif/*Copyright © 2014,SHENZHEN HANGSHENG ELECTRONICS Co.,Ltd.All Rights Reserved.Dept.:ACECFile:AcecType.hDescription: descript informationREQ IDs: show the handle requirement IDsHistory:2014-3-1, 1306104, original*/#include “includes.h”U4 sys_clk;U4 peri_set1_clk;U4 peri_set2_clk;U4 peri_set3_clk;OS_EVENT * OBD_MutexEvent=0;/*Copyright © 2014,SHENZHEN HANGSHENG ELECTRONICS Co.,Ltd.All Rights Reserved.Dept.:ACECFile:AcecType.hDescription: descript informationREQ IDs: show the handle requirement IDsHistory:2014-3-1, 1306104, original*/#ifndef BSP_VAR_H#define BSP_VAR_H#include “includes.h”extern U4 sys_clk;extern U4 peri_set1_clk;extern U4 peri_set2_clk;extern U4 peri_set3_clk;/extern U4 UT_1US;/extern OS_EVENT * OBD_MutexEvent;#endif将上述代码中的ucosii部分替换为裸机代码,配合前文内容,将上述代码修改后的完整代码发出
sujianyisgi
Deneyap RTC Kütüphanesi: MCP79400 Gerçek Zamanlı Saat Entegresi ile Zaman Yönetimi
Xi Zi
/ percision channels: (126-1)+1+(103)=156, so 1560.25us=39us, per channel */ADC_0.CTR0.B.INPLATCH = 1;ADC_0.CTR0.B.INPCMP = 3;ADC_0.CTR0.B.INPSAMP = 126;/* standard channels: (126-1)+1+(103)=156, so 1560.25us=39us, per channel / ADC_0.CTR1.B.INPLATCH = 1; ADC_0.CTR1.B.INPCMP = 3; ADC_0.CTR1.B.INPSAMP = 126; / extend channels: (126-1)+1+(103)=156, so 1560.25us=39us, per channel / ADC_0.CTR2.B.INPLATCH = 1; ADC_0.CTR2.B.INPCMP = 3; ADC_0.CTR2.B.INPSAMP = 126;#else/ peri_set3_clk = 4000000, so Tck is 0.25us // all channels: (3-0.5)+0.5+(101)=13, so 130.25us=3.25us, per channel */#endif#if AI_USING_EXTENDED_CHANNEL/For extend AI pin , Enabled this./if(35 == PIN_AI_MA_0){SIU.PCR[PIN_AI_MA_0].B.PA = 2u;}else{SIU.PCR[PIN_AI_MA_0].B.PA = 3u;}SIU.PCR[PIN_AI_MA_1].B.PA = 3u;SIU.PCR[PIN_AI_MA_2].B.PA = 3u;#endifADC_0.MCR.B.OWREN = 1u; ADC_0.MCR.B.MODE = 1u; /* scan mode is enabled / ADC_0.MCR.B.NSTART = 1u; / start conversion */}/*Function: BSP_DeInitADCParam:Param:Return:Discription:Note:REQ IDs:*/void BSP_DeInitADC(void){ADC_0.MCR.R = 0ul;}/*Function: ADC_GetChannelValueParam:Param:Return:Discription:Note:REQ IDs:*/U2 ADC_GetChannelValue(U1 ADn){return (U2)(ADC_0.CDR[ADn].R & 0x000003FF);}#endif /* (APP_HW_VERSION_AB802_0_0 == APP_HW_VERSION) *//*uC/OS-IIThe Real-Time KernelFreescale MPC55xx Board Support Package© Copyright 2007; Micrium; Weston, FLAll Rights ReservedFile : BSP.HBy : Fabiano Kovalski*//*CPU CLOCK FREQUENCY//INTERRUPT CONTROLLER*/#ifndef BSP_H#define BSP_H/device mode define:/#include “includes.h”#define uC_PROBE_COM_MODULE 0#define uC_PROBE_OS_PLUGIN 0#define OS_PROBE_HOOKS_EN 0#define ME_ME_RESET (0u)#define ME_ME_TEST (1u)#define ME_ME_SAFE (2u)#define ME_ME_DRUN (3u)#define ME_ME_RUN0 (4u)#define ME_ME_RUN1 (5u)#define ME_ME_RUN2 (6u)#define ME_ME_RUN3 (7u)#define ME_ME_HALT0 (8u)#define ME_ME_STOP0 (10u)#define ME_ME_STANDBY0 (13u)/$PAGE/#define WAKEUP_PIN_ALLINVALID_MASK (0x00)/WAKEUP_PIN_KEY_MASK (0x02)WAKEUP_PIN_CHARGER_CAN_RX_MASK (0x01)/#define GetWakeupPinStatus() (((U4)SIU.GPDI[PF0].B.PDI<<1) + (U4)SIU.GPDI[PF1].B.PDI)/*FUNCTION PROTOTYPES/extern uint32_t EXCEPTION_HANDLERS; / Interrupt Vector Prefix vaue from link file*/extern uint32_t INTCInterruptsHandlerTable[];void BSP_Init(void);StatusType BSP_INTC_IntReg(CPU_FNCT_VOID handler, U4 irq, U4 int_level);U4 BSP_CPU_ClkFreq(void);StatusType MCU_Mode_ChangeTo(U4 device_mode);void BSP_TmrTickISR (void);void SleepA(void);void SleepB(void);void BSP_SWDT_Enable(void);void Feed_sw_dog(void);void Feed_hw_sw_dog(void);/*LED SERVICES*//*MISCELLANEOUS*/#endif/*Copyright © 2014,SHENZHEN HANGSHENG ELECTRONICS Co.,Ltd.All Rights Reserved.Dept.:ACECFile:AcecType.hDescription: descript informationREQ IDs: show the handle requirement IDsHistory:2014-3-1, 1306104, original*/#ifndef BSP_CFG_H#define BSP_CFG_H#define RELEASE 0#define DBG_EN 0#define USE_PIT 1 /OS TimeTick ISR/#define USE_SPI 1 /MC25LC256/#define USE_IIC 1 /PCF8563/#define USE_CAN 1 /3 CAN channels/#define USE_LIN 0#define USE_ADC 1 /ad sample/#endif/*Copyright © 2014,SHENZHEN HANGSHENG ELECTRONICS Co.,Ltd.All Rights Reserved.Dept.:ACECFile:AcecType.hDescription: descript informationREQ IDs: show the handle requirement IDsHistory:2014-3-1, 1306104, original*/#include “bsp_cpu.h”typedef enum{IOA_D_INPUT = 0,IOA_D_OUTPUT,IOA_D_INOUT,IOA_D_ADC}IO_Attr_Direct;typedef enum{IOA_P_PUSHPULL = 0,IOA_P_WEAKPULLUP,IOA_P_WEAKPULLDOWN,IOA_P_OPENDRAIN}IO_Attr_PULL;/only for output port/#define IOA_SLOW 0#define IOA_FAST 1#define IOA_AF0 0#define IOA_AF1 1#define IOA_AF2 2#define IOA_AF3 3typedef struct{U1 AF_PORT;U1 pin;IO_Attr_Direct direct;U1 default_val;U1 af;U1 fast_slow;IO_Attr_PULL pull;}GpioCfgType;#if (APP_HW_VERSION_AB802_0_0 != APP_HW_VERSION)typedef enum{/start of PSMI/AFP_CAN1_RXD=0,AFP_CAN2_RXD,AFP_CAN3_RXD,AFP_CAN4_RXD,AFP_CAN5_RXD,AFP_SPI0_SCK,AFP_SPI0_CS0,AFP_SPI1_SCK,AFP_SPI1_MISO,AFP_SPI1_CS0,AFP_SPI2_SCK,AFP_SPI2_MISO,AFP_SPI2_CS0,AFP_EMIOS0_CH3,AFP_EMIOS0_CH4,AFP_EMIOS0_CH5,AFP_EMIOS0_CH6,AFP_EMIOS0_CH7,AFP_EMIOS0_CH10,AFP_EMIOS0_CH11,AFP_EMIOS0_CH12,AFP_EMIOS0_CH13,AFP_EMIOS0_CH14,AFP_EMIOS0_CH22,AFP_EMIOS0_CH23,AFP_EMIOS0_CH24,AFP_EMIOS0_CH25,AFP_EMIOS0_CH26,AFP_EMIOS0_CH27,AFP_IIC0_SCL,AFP_IIC0_SDA,AFP_LIN3_RXD,/end of PSMI/AFP_IIC1_SCL, AFP_IIC1_SDA, AFP_LIN0_TXD, AFP_LIN0_RXD, AFP_LIN1_TXD, AFP_LIN1_RXD, AFP_LIN2_TXD, AFP_LIN2_RXD, AFP_LIN3_TXD, AFP_CAN0_TXD, AFP_CAN0_RXD, AFP_CAN1_TXD, AFP_CAN2_TXD, AFP_CAN3_TXD, AFP_CAN4_TXD, AFP_CAN5_TXD, AFP_SPI0_CS1, AFP_SPI0_CS2, AFP_SPI0_CS3, AFP_SPI0_CS4, AFP_SPI0_CS5, AFP_SPI0_MISO, AFP_SPI0_MOSI, AFP_SPI1_CS1, AFP_SPI1_CS2, AFP_SPI1_CS3, AFP_SPI1_CS4, AFP_SPI1_CS5, AFP_SPI1_MOSI, AFP_SPI2_CS1, AFP_SPI2_CS2, AFP_SPI2_CS3, AFP_SPI2_CS4, AFP_SPI2_CS5, AFP_SPI2_MOSI, AFP_EMIOS0_CH0, AFP_EMIOS0_CH1, AFP_EMIOS0_CH2, AFP_EMIOS0_CH8, AFP_EMIOS0_CH9, AFP_EMIOS0_CH15, AFP_EMIOS0_CH16, AFP_EMIOS0_CH17, AFP_EMIOS0_CH18, AFP_EMIOS0_CH19, AFP_EMIOS0_CH20, AFP_EMIOS0_CH21, AFP_EMIOS1_CH0, AFP_EMIOS1_CH1, AFP_EMIOS1_CH2, AFP_EMIOS1_CH3, AFP_EMIOS1_CH4, AFP_EMIOS1_CH5, AFP_EMIOS1_CH6, AFP_EMIOS1_CH7, AFP_EMIOS1_CH8, AFP_EMIOS1_CH9, AFP_EMIOS1_CH10, AFP_EMIOS1_CH11, AFP_EMIOS1_CH12, AFP_EMIOS1_CH13, AFP_EMIOS1_CH14, AFP_EMIOS1_CH15, AFP_EMIOS1_CH16, AFP_EMIOS1_CH17, AFP_EMIOS1_CH18, AFP_EMIOS1_CH19, AFP_EMIOS1_CH20, AFP_EMIOS1_CH21, AFP_EMIOS1_CH22, AFP_EMIOS1_CH23, AFP_EMIOS1_CH24, AFP_EMIOS1_CH25, AFP_EMIOS1_CH26, AFP_EMIOS1_CH27, AFP_ADC_ANP0, AFP_ADC_ANP1, AFP_ADC_ANP2, AFP_ADC_ANP3, AFP_ADC_ANP4, AFP_ADC_ANP5, AFP_ADC_ANP6, AFP_ADC_ANP7, AFP_ADC_ANP8, AFP_ADC_ANP9, AFP_ADC_ANP10, AFP_ADC_ANP11, AFP_ADC_ANP12, AFP_ADC_ANP13, AFP_ADC_ANP14, AFP_ADC_ANP15, AFP_ADC_ANS0, AFP_ADC_ANS1, AFP_ADC_ANS2, AFP_ADC_ANS3, AFP_ADC_ANS4, AFP_ADC_ANS5, AFP_ADC_ANS6, AFP_ADC_ANS7, AFP_ADC_ANS8, AFP_ADC_ANS9, AFP_ADC_ANS10, AFP_ADC_ANS11, AFP_ADC_ANS12, AFP_ADC_ANS13, AFP_ADC_ANS14, AFP_ADC_ANS15, AFP_ADC_ANE0, AFP_ADC_ANE1, AFP_ADC_ANE2, AFP_ADC_ANE3, AFP_GPIO}AF_PORT;const U2 GPIO_PSMI_Map[32][4]={/start of PSMI/{35,43,95,0xFFFF},/AFP_CAN1_RXD=0,/{73,89,0xFFFF,0xFFFF},/AFP_CAN2_RXD,/{36,73,89,0xFFFF},/AFP_CAN3_RXD,/{35,43,95,0xFFFF},/AFP_CAN4_RXD,/{64,97,0xFFFF,0xFFFF},/AFP_CAN5_RXD,/{14,15,0xFFFF,0xFFFF},/AFP_SPI0_SCK,/{14,15,27,0xFFFF},/AFP_SPI0_CS0,/{34,68,114,0xFFFF},/AFP_SPI1_SCK,/{36,66,112,0xFFFF},/AFP_SPI1_MISO,/{35,61,69,115},/AFP_SPI1_CS0,/{46,78,105,0xFFFF},/AFP_SPI2_SCK,/{44,76,0xFFFF,0xFFFF},/AFP_SPI2_MISO,/{47,79,82,104},/AFP_SPI2_CS0,/{3,27,0xFFFF,0xFFFF},/AFP_EMIOS0_CH3,/{4,28,0xFFFF,0xFFFF},/AFP_EMIOS0_CH4,/{5,29,0xFFFF,0xFFFF},/AFP_EMIOS0_CH5,/{6,30,0xFFFF,0xFFFF},/AFP_EMIOS0_CH6,/{7,31,0xFFFF,0xFFFF},/AFP_EMIOS0_CH7,/{10,80,0xFFFF,0xFFFF},/AFP_EMIOS0_CH10,/{11,81,0xFFFF,0xFFFF},/AFP_EMIOS0_CH11,/{44,82,0xFFFF,0xFFFF},/AFP_EMIOS0_CH12,/{45,83,0xFFFF,0xFFFF},/AFP_EMIOS0_CH13,/{46,84,0xFFFF,0xFFFF},/AFP_EMIOS0_CH14,/{70,72,85,0xFFFF},/AFP_EMIOS0_CH22,/{71,73,86,0xFFFF},/AFP_EMIOS0_CH23,/{60,106,0xFFFF,0xFFFF},/AFP_EMIOS0_CH24,/{61,107,0xFFFF,0xFFFF},/AFP_EMIOS0_CH25,/{62,108,0xFFFF,0xFFFF},/AFP_EMIOS0_CH26,/{63,109,0xFFFF,0xFFFF},/AFP_EMIOS0_CH27,/{11,19,0xFFFF,0xFFFF},/AFP_IIC0_SCL,/{10,18,0xFFFF,0xFFFF},/AFP_IIC0_SDA,/{8,75,0xFFFF,0xFFFF},/AFP_LIN3_RXD,//end of PSMI/};#elsetypedef enum{/start of PSMI/AFP_CAN1_RXD=0,AFP_CAN2_RXD,AFP_CAN3_RXD,AFP_CAN4_RXD,AFP_CAN5_RXD,AFP_SPI0_SCK,AFP_SPI0_CS0,AFP_SPI1_SCK,AFP_SPI1_MISO,AFP_SPI1_CS0,AFP_SPI2_SCK,AFP_SPI2_MISO,AFP_SPI2_CS0,AFP_EMIOS0_CH3,AFP_EMIOS0_CH4,AFP_EMIOS0_CH5,AFP_EMIOS0_CH6,AFP_EMIOS0_CH7,AFP_EMIOS0_CH10,AFP_EMIOS0_CH11,AFP_EMIOS0_CH12,AFP_EMIOS0_CH13,AFP_EMIOS0_CH14,AFP_EMIOS0_CH22,AFP_EMIOS0_CH23,AFP_EMIOS0_CH24,AFP_EMIOS0_CH25,AFP_EMIOS0_CH26,AFP_EMIOS0_CH27,AFP_IIC0_SCL,AFP_IIC0_SDA,AFP_LIN3_RXD,AFP_SPI3_SCK, AFP_SPI3_MISO, AFP_SPI3_CS0, AFP_SPI4_SCK, AFP_SPI4_MISO, AFP_SPI4_CS0, AFP_EMIOS0_CH0, AFP_EMIOS0_CH1, AFP_EMIOS0_CH28, AFP_EMIOS0_CH29, AFP_EMIOS0_CH30, AFP_EMIOS0_CH31, AFP_EMIOS1_CH1, AFP_EMIOS1_CH2, AFP_EMIOS1_CH3, AFP_EMIOS1_CH4, AFP_EMIOS1_CH5, AFP_EMIOS1_CH17, AFP_EMIOS1_CH18, AFP_EMIOS1_CH25, AFP_EMIOS1_CH26, AFP_EMIOS1_CH27, AFP_EMIOS1_CH28, AFP_EMIOS1_CH29, AFP_EMIOS1_CH30, AFP_EMIOS1_CH31, AFP_LIN2_RXD, AFP_LIN4_RXD, AFP_LIN5_RXD, AFP_RESERVED0, AFP_LIN0_RXD, AFP_RESERVED1, /end of PSMI/ AFP_IIC1_SCL, AFP_IIC1_SDA, AFP_LIN0_TXD, AFP_LIN1_TXD, AFP_LIN1_RXD, AFP_LIN2_TXD, AFP_LIN3_TXD, AFP_LIN4_TXD, AFP_LIN5_TXD, AFP_LIN6_TXD, AFP_LIN6_RXD, AFP_LIN7_TXD, AFP_LIN7_RXD, AFP_CAN0_TXD, AFP_CAN0_RXD, AFP_CAN1_TXD, AFP_CAN2_TXD, AFP_CAN3_TXD, AFP_CAN4_TXD, AFP_CAN5_TXD, AFP_SPI0_CS1, AFP_SPI0_CS2, AFP_SPI0_CS3, AFP_SPI0_CS4, AFP_SPI0_CS5, AFP_SPI0_MISO, AFP_SPI0_MOSI, AFP_SPI1_CS1, AFP_SPI1_CS2, AFP_SPI1_CS3, AFP_SPI1_CS4, AFP_SPI1_CS5, AFP_SPI1_MOSI, AFP_SPI2_CS1, AFP_SPI2_CS2, AFP_SPI2_CS3, AFP_SPI2_CS4, AFP_SPI2_CS5, AFP_SPI2_MOSI, AFP_SPI3_CS1, AFP_SPI3_CS2, AFP_SPI3_CS3, AFP_SPI3_CS4, AFP_SPI3_CS5, AFP_SPI3_MOSI, AFP_SPI4_CS1, AFP_SPI4_CS2, AFP_SPI4_CS3, AFP_SPI4_CS4, AFP_SPI4_CS5, AFP_SPI4_MOSI, AFP_SPI5_CS1, AFP_SPI5_CS2, AFP_SPI5_CS3, AFP_SPI5_CS4, AFP_SPI5_CS5, AFP_SPI5_MOSI, AFP_EMIOS0_CH2, AFP_EMIOS0_CH8, AFP_EMIOS0_CH9, AFP_EMIOS0_CH15, AFP_EMIOS0_CH16, AFP_EMIOS0_CH17, AFP_EMIOS0_CH18, AFP_EMIOS0_CH19, AFP_EMIOS0_CH20, AFP_EMIOS0_CH21, AFP_EMIOS1_CH0, AFP_EMIOS1_CH6, AFP_EMIOS1_CH7, AFP_EMIOS1_CH8, AFP_EMIOS1_CH9, AFP_EMIOS1_CH10, AFP_EMIOS1_CH11, AFP_EMIOS1_CH12, AFP_EMIOS1_CH13, AFP_EMIOS1_CH14, AFP_EMIOS1_CH15, AFP_EMIOS1_CH16, AFP_EMIOS1_CH19, AFP_EMIOS1_CH20, AFP_EMIOS1_CH21, AFP_EMIOS1_CH22, AFP_EMIOS1_CH23, AFP_EMIOS1_CH24, AFP_ADC_ANP0, AFP_ADC_ANP1, AFP_ADC_ANP2, AFP_ADC_ANP3, AFP_ADC_ANP4, AFP_ADC_ANP5, AFP_ADC_ANP6, AFP_ADC_ANP7, AFP_ADC_ANP8, AFP_ADC_ANP9, AFP_ADC_ANP10, AFP_ADC_ANP11, AFP_ADC_ANP12, AFP_ADC_ANP13, AFP_ADC_ANP14, AFP_ADC_ANP15, AFP_ADC_ANS0, AFP_ADC_ANS1, AFP_ADC_ANS2, AFP_ADC_ANS3, AFP_ADC_ANS4, AFP_ADC_ANS5, AFP_ADC_ANS6, AFP_ADC_ANS7, AFP_ADC_ANS8, AFP_ADC_ANS9, AFP_ADC_ANS10, AFP_ADC_ANS11, AFP_ADC_ANS12, AFP_ADC_ANS13, AFP_ADC_ANS14, AFP_ADC_ANS15, AFP_ADC_ANS16, AFP_ADC_ANS17, AFP_ADC_ANS18, AFP_ADC_ANS19, AFP_ADC_ANS20, AFP_ADC_ANS21, AFP_ADC_ANS22, AFP_ADC_ANS23, AFP_ADC_ANS24, AFP_ADC_ANS25, AFP_ADC_ANS26, AFP_ADC_ANS27, AFP_ADC_ANE0, AFP_ADC_ANE1, AFP_ADC_ANE2, AFP_ADC_ANE3, AFP_GPIO}AF_PORT;const U2 GPIO_PSMI_Map[64][4]={/start of PSMI/{ 35, 43, 95,0xFFFF},/*AFP_CAN1_RXD=0, */{ 73, 89,0xFFFF,0xFFFF},/*AFP_CAN2_RXD, */{ 36, 73, 89,0xFFFF},/*AFP_CAN3_RXD, */{ 35, 43, 95,0xFFFF},/*AFP_CAN4_RXD, */{ 64, 97,0xFFFF,0xFFFF},/*AFP_CAN5_RXD, */{ 14, 15,0xFFFF,0xFFFF},/*AFP_SPI0_SCK, */{ 14, 15, 27,0xFFFF},/*AFP_SPI0_CS0, */{ 34, 68, 114,0xFFFF},/*AFP_SPI1_SCK, */{ 36, 66, 112,0xFFFF},/*AFP_SPI1_MISO, */{ 35, 61, 69, 115},/*AFP_SPI1_CS0, */{ 46, 78, 105,0xFFFF},/*AFP_SPI2_SCK, */{ 44, 76,0xFFFF,0xFFFF},/*AFP_SPI2_MISO, */{ 47, 79, 82, 104},/*AFP_SPI2_CS0, */{ 3, 27,0xFFFF,0xFFFF},/*AFP_EMIOS1_CH3, */{ 4, 28,0xFFFF,0xFFFF},/*AFP_EMIOS0_CH4, */{ 5, 29,0xFFFF,0xFFFF},/*AFP_EMIOS0_CH5, */{ 6, 30,0xFFFF,0xFFFF},/*AFP_EMIOS0_CH6, */{ 7, 31,0xFFFF,0xFFFF},/*AFP_EMIOS0_CH7, */{ 10, 80,0xFFFF,0xFFFF},/AFP_EMIOS0_CH10,/{ 11, 81,0xFFFF,0xFFFF},/AFP_EMIOS0_CH11,/{ 44, 82,0xFFFF,0xFFFF},/AFP_EMIOS0_CH12,/{ 45, 83,0xFFFF,0xFFFF},/AFP_EMIOS0_CH13,/{ 46, 84,0xFFFF,0xFFFF},/AFP_EMIOS0_CH14,/{ 70, 72, 85,0xFFFF},/AFP_EMIOS0_CH22,/{ 71, 73, 86,0xFFFF},/AFP_EMIOS0_CH23,/{ 60, 106,0xFFFF,0xFFFF},/AFP_EMIOS0_CH24,/{ 61, 107,0xFFFF,0xFFFF},/AFP_EMIOS0_CH25,/{ 62, 108,0xFFFF,0xFFFF},/AFP_EMIOS0_CH26,/{ 63, 109,0xFFFF,0xFFFF},/AFP_EMIOS0_CH27,/{ 11, 19,0xFFFF,0xFFFF},/*AFP_IIC0_SCL, */{ 10, 18,0xFFFF,0xFFFF},/*AFP_IIC0_SDA, */{ 8, 75,0xFFFF,0xFFFF},/*AFP_LIN3_RXD, */{ 100, 124,0xFFFF,0xFFFF},/*AFP_SPI3_SCK, */ { 101, 139,0xFFFF,0xFFFF},/*AFP_SPI3_MISO, */ { 99, 125, 140,0xFFFF},/*AFP_SPI3_CS0, */ { 109, 126, 133,0xFFFF},/*AFP_SPI4_SCK, */ { 106, 142,0xFFFF,0xFFFF},/*AFP_SPI4_MISO, */ { 107, 123, 134, 143},/*AFP_SPI4_CS0, */ { 0, 14,0xFFFF,0xFFFF},/*AFP_EMIOS0_CH0, */ { 1, 15,0xFFFF,0xFFFF},/*AFP_EMIOS0_CH1, */ { 12, 128,0xFFFF,0xFFFF},/AFP_EMIOS0_CH28,/ { 13, 129,0xFFFF,0xFFFF},/AFP_EMIOS0_CH29,/ { 16, 18, 130,0xFFFF},/AFP_EMIOS0_CH30,/ { 17, 19, 131,0xFFFF},/AFP_EMIOS0_CH31,/ { 111, 89,0xFFFF,0xFFFF},/*AFP_EMIOS1_CH1, */ { 112, 90,0xFFFF,0xFFFF},/*AFP_EMIOS1_CH2, */ { 113, 91,0xFFFF,0xFFFF},/*AFP_EMIOS1_CH3, */ { 114, 95,0xFFFF,0xFFFF},/*AFP_EMIOS1_CH4, */ { 115, 123,0xFFFF,0xFFFF},/*AFP_EMIOS1_CH5, */ { 104, 127,0xFFFF,0xFFFF},/AFP_EMIOS1_CH17,/ { 105, 148,0xFFFF,0xFFFF},/AFP_EMIOS1_CH18,/ { 92, 124,0xFFFF,0xFFFF},/AFP_EMIOS1_CH25,/ { 93, 125,0xFFFF,0xFFFF},/AFP_EMIOS1_CH26,/ { 94, 126,0xFFFF,0xFFFF},/AFP_EMIOS1_CH27,/ { 38, 132,0xFFFF,0xFFFF},/AFP_EMIOS1_CH28,/ { 39, 133,0xFFFF,0xFFFF},/AFP_EMIOS1_CH29,/ { 74, 103, 134,0xFFFF},/AFP_EMIOS1_CH30,/ { 36, 106, 135,0xFFFF},/AFP_EMIOS1_CH31,/ { 41, 11,0xFFFF,0xFFFF},/*AFP_LIN2_RXD, */ { 6, 91,0xFFFF,0xFFFF},/*AFP_LIN4_RXD, */ { 4, 93,0xFFFF,0xFFFF},/*AFP_LIN5_RXD, */ {0xFFFF,0xFFFF,0xFFFF,0xFFFF},/*AFP_RESERVED0, */ { 19, 17,0xFFFF,0xFFFF},/*AFP_LIN0_RXD, */ {0xFFFF,0xFFFF,0xFFFF,0xFFFF},/*AFP_RESERVED1, / /end of PSMI/ };#endif / (APP_HW_VERSION_AB802_0_0 != APP_HW_VERSION) */#if (APP_HW_VERSION_E6305_1_3 == APP_HW_VERSION)#define BSP_GPIO_NUM 87const GpioCfgType GPIO_CfgTab[BSP_GPIO_NUM]={/* digital input *//system PIN/{AFP_GPIO, PIN_IGN, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},{AFP_GPIO, PIN_SPARE_ON_SLOW_CHARGE_ON, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},{AFP_GPIO, PIN_AIRBAG, IOA_D_INPUT, 0, IOA_AF1, IOA_FAST, IOA_P_OPENDRAIN},{AFP_GPIO, PIN_VE_CAN_ERR_IN, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_CP_WAKE, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},/* digital output / /system PIN/#if APP_RUN_MODE == RUN_MODE_TEST{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/ Stop Ext-dog /#else// {AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/ Stop Ext-dog /#endif{AFP_GPIO, PIN_POWER_SELFACTIVE, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_SLAVE_POWER_SWITCH, IOA_D_OUTPUT, 1, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_POWER_LOCK, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/eeprom write protect PIN/{AFP_GPIO, PIN_MC25LC256_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_FM25LC160_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/CAN ctrl PIN/{AFP_GPIO, PIN_IN_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_VE_CAN_EN, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_VE_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_VE_CAN_WAKE_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_VE_CAN_ERR_OUT, IOA_D_OUTPUT, 1, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},/LED PIN/{AFP_GPIO, PIN_LED1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},{AFP_GPIO, PIN_LED2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},{AFP_GPIO, PIN_LED3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},{AFP_GPIO, PIN_LED4, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},{AFP_GPIO, PIN_LED5, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/relay feedback ctrl PIN/{AFP_GPIO, PIN_BTS5180_DOPEN_LOAD, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay ctrl PIN/{AFP_GPIO, PIN_ANODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CATHODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HEAT_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_PRECHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE2_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE3_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE4_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE5_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE6_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay adhere detect PIN/{AFP_GPIO, PIN_HV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_HV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_HV_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_HV_RELAY4, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_HV_RELAY5, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_LV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_LV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_LV_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},/insulate detected ctrl PIN/{AFP_GPIO, PIN_INSULATE_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_INSULATE_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_INSULATE_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_INSULATE_POWER_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},/SPI CS ctrl PIN// SPI0 /{AFP_GPIO, PIN_SPI0_CS_FM, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_EEP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_INSULATE, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_FLASH0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_FLASH1, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI1 /{AFP_GPIO, PIN_V_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI2 */{AFP_GPIO, PIN_I_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/PWM PIN/ {AFP_EMIOS0_CH3, PIN_INTERLOCK_OUTPUT_CHANNEL, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_GPIO, PIN_INTERLOCK_INPUT_CHANNEL, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_OPENDRAIN}, {AFP_EMIOS0_CH14,PIN_CP_CHANNEL, IOA_D_INPUT, 0, IOA_AF1, IOA_FAST, IOA_P_OPENDRAIN}, /ADC PIN/ {AFP_ADC_ANS13, PIN_CC_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANS11, PIN_CC2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP4, PIN_BOARD_POWER_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP6, PIN_SHUNT_CURRENT_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP7, PIN_ANODE_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP8, PIN_CATHODE_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP10, PIN_FAST_CHARGE_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP9, PIN_SLOW_CHARGE_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP5, PIN_CURRENT_HALL_POWER_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANS15, PIN_CURRENT_HALL_CHANNEL1, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANS14, PIN_CURRENT_HALL_CHANNEL2, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP11, PIN_BTS5180_IS1_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_ADC_ANP12, PIN_BTS5180_IS2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN}, /CAN communication PIN/ /* CAN0 / {AFP_CAN0_TXD, PIN_CAN0_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN0_RXD, PIN_CAN0_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN1 / {AFP_CAN1_TXD, PIN_CAN1_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN1_RXD, PIN_CAN1_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN2 / {AFP_CAN2_TXD, PIN_CAN2_TX, IOA_D_OUTPUT, 0, IOA_AF3, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN2_RXD, PIN_CAN2_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /SPI communication PIN/ / SPI0 / {AFP_SPI0_SCK, PIN_SPI0_SCK, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MISO, PIN_SPI0_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_OPENDRAIN}, {AFP_SPI0_MOSI, PIN_SPI0_MOSI, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, / SPI1 / {AFP_SPI1_SCK, PIN_V_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MISO, PIN_V_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_OPENDRAIN}, / SPI2 */ {AFP_SPI2_SCK, PIN_I_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MISO, PIN_I_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_OPENDRAIN}, /IIC communication PIN/ {AFP_IIC0_SCL, PIN_IIC0_SCL, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_OPENDRAIN}, {AFP_IIC0_SDA, PIN_IIC0_SDA, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_OPENDRAIN},};#endif#if (APP_HW_VERSION_E6217_0_6 == APP_HW_VERSION)#define BSP_GPIO_NUM 71const GpioCfgType GPIO_CfgTab[BSP_GPIO_NUM]={/* digital input *//system PIN/{AFP_GPIO, PIN_IGN, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE_ON_SLOW_CHARGE_ON, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SAFELINE, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/relay feedback PIN/{AFP_GPIO, PIN_ANODE_RELAY_ST, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_RELAY_ST, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CATHODE_RELAY_ST, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_PRECHARGE_RELAY_ST, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HEAT_RELAY_ST, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE1_RELAY_ST, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/* digital output / /system PIN/#if APP_RUN_MODE == RUN_MODE_TEST{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/ Stop Ext-dog /#else{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},#endif{AFP_GPIO, PIN_POWER_SELFACTIVE, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_POWER_LOCK, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/eeprom write protect PIN/{AFP_GPIO, PIN_MC25LC256_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_FM25LC160_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/CAN ctrl PIN/{AFP_GPIO, PIN_IN_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CH_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/LED PIN/{AFP_GPIO, PIN_LED1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED4, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED5, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay ctrl PIN/{AFP_GPIO, PIN_ANODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CATHODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HEAT_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_PRECHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE1_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE2_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE3_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay adhere detect PIN/{AFP_GPIO, PIN_HV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/insulate detected ctrl PIN/{AFP_GPIO, PIN_INSULATE_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_POWER_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/SPI CS ctrl PIN// SPI0 /{AFP_GPIO, PIN_SPI0_CS_FM, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_EEP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_INSULATE, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI1 /{AFP_GPIO, PIN_V_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI2 */{AFP_GPIO, PIN_I_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/PWM PIN/ {AFP_EMIOS0_CH3, PIN_INTERLOCK_OUTPUT_CHANNEL, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_GPIO, PIN_INTERLOCK_INPUT_CHANNEL, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_EMIOS0_CH14,PIN_CP_CHANNEL, IOA_D_INPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, /ADC PIN/ {AFP_ADC_ANS13, PIN_CC_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS11, PIN_CC2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP4, PIN_BOARD_POWER_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP6, PIN_SHUNT_CURRENT_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP7, PIN_ANODE_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP8, PIN_CATHODE_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP5, PIN_CURRENT_HALL_POWER_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS15, PIN_CURRENT_HALL_CHANNEL1, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS14, PIN_CURRENT_HALL_CHANNEL2, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /CAN communication PIN/ /* CAN0 / {AFP_CAN0_TXD, PIN_CAN0_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN0_RXD, PIN_CAN0_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN1 / {AFP_CAN1_TXD, PIN_CAN1_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN1_RXD, PIN_CAN1_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN2 / {AFP_CAN2_TXD, PIN_CAN2_TX, IOA_D_OUTPUT, 0, IOA_AF3, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN2_RXD, PIN_CAN2_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /SPI communication PIN/ / SPI0 / {AFP_SPI0_SCK, PIN_SPI0_SCK, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MISO, PIN_SPI0_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MOSI, PIN_SPI0_MOSI, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, / SPI1 / {AFP_SPI1_SCK, PIN_V_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MISO, PIN_V_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, / SPI2 */ {AFP_SPI2_SCK, PIN_I_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MISO, PIN_I_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, /IIC communication PIN/ {AFP_IIC0_SCL, PIN_IIC0_SCL, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_IIC0_SDA, PIN_IIC0_SDA, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL},};#endif#if (APP_HW_VERSION_AB00QF02_0_0 == APP_HW_VERSION)#define BSP_GPIO_NUM 83const GpioCfgType GPIO_CfgTab[BSP_GPIO_NUM]={/* digital input *//system PIN/{AFP_GPIO, PIN_IGN, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE_ON_SLOW_CHARGE_ON, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_AIRBAG, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_ERR_IN, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_WAKE, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/* digital output / /system PIN/#if APP_RUN_MODE == RUN_MODE_TEST{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/ Stop Ext-dog /#else{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},#endif{AFP_GPIO, PIN_POWER_SELFACTIVE, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SLAVE_POWER_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_POWER_LOCK, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/eeprom write protect PIN/{AFP_GPIO, PIN_MC25LC256_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_FM25LC160_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/CAN ctrl PIN/{AFP_GPIO, PIN_IN_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_EN, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_WAKE_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_ERR_OUT, IOA_D_OUTPUT, 1, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CH_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/LED PIN/{AFP_GPIO, PIN_LED1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED4, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED5, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay feedback ctrl PIN/{AFP_GPIO, PIN_BTS5180_DOPEN_LOAD, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay ctrl PIN/{AFP_GPIO, PIN_ANODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CATHODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HEAT_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_PRECHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE2_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE3_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE4_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay adhere detect PIN/{AFP_GPIO, PIN_HV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/insulate detected ctrl PIN/{AFP_GPIO, PIN_INSULATE_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_POWER_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/SPI CS ctrl PIN// SPI0 /{AFP_GPIO, PIN_SPI0_CS_FM, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_EEP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_INSULATE, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_FLASH0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_FLASH1, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI1 /{AFP_GPIO, PIN_V_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI2 */{AFP_GPIO, PIN_I_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/PWM PIN/ {AFP_EMIOS0_CH3, PIN_INTERLOCK_OUTPUT_CHANNEL, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_EMIOS0_CH5, PIN_INTERLOCK_INPUT_CHANNEL, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_EMIOS0_CH14,PIN_CP_CHANNEL, IOA_D_INPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, /ADC PIN/ {AFP_ADC_ANS13, PIN_CC_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS11, PIN_CC2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP4, PIN_BOARD_POWER_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP6, PIN_SHUNT_CURRENT_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP7, PIN_ANODE_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP8, PIN_CATHODE_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP5, PIN_CURRENT_HALL_POWER_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS15, PIN_CURRENT_HALL_CHANNEL1, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS14, PIN_CURRENT_HALL_CHANNEL2, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP10, PIN_FAST_CHARGE_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP9, PIN_SLOW_CHARGE_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP11, PIN_BTS5180_IS1_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP12, PIN_BTS5180_IS2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /CAN communication PIN/ /* CAN0 / {AFP_CAN0_TXD, PIN_CAN0_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN0_RXD, PIN_CAN0_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN1 / {AFP_CAN1_TXD, PIN_CAN1_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN1_RXD, PIN_CAN1_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN2 / {AFP_CAN2_TXD, PIN_CAN2_TX, IOA_D_OUTPUT, 0, IOA_AF3, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN2_RXD, PIN_CAN2_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /SPI communication PIN/ / SPI0 / {AFP_SPI0_SCK, PIN_SPI0_SCK, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MISO, PIN_SPI0_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MOSI, PIN_SPI0_MOSI, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, / SPI1 / {AFP_SPI1_SCK, PIN_V_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MISO, PIN_V_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, / SPI2 */ {AFP_SPI2_SCK, PIN_I_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MISO, PIN_I_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, /IIC communication PIN/ {AFP_IIC0_SCL, PIN_IIC0_SCL, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_IIC0_SDA, PIN_IIC0_SDA, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL},};#endif#if (APP_HW_VERSION_E6211_0_4 == APP_HW_VERSION)#define BSP_GPIO_NUM 83const GpioCfgType GPIO_CfgTab[BSP_GPIO_NUM]={/* digital input *//system PIN/{AFP_GPIO, PIN_IGN, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE_ON_SLOW_CHARGE_ON, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_AIRBAG, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_WAKE, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/* digital output / /system PIN/#if APP_RUN_MODE == RUN_MODE_TEST{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/ Stop Ext-dog /#else{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},#endif{AFP_GPIO, PIN_POWER_SELFACTIVE, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_POWER_LOCK, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/eeprom write protect PIN/{AFP_GPIO, PIN_MC25LC256_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_FM25LC160_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/CAN ctrl PIN/{AFP_GPIO, PIN_IN_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_ERR_OUT, IOA_D_OUTPUT, 1, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CH_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/LED PIN/{AFP_GPIO, PIN_LED1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED4, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED5, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay feedback ctrl PIN/{AFP_GPIO, PIN_BTS5180_DOPEN_LOAD, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay ctrl PIN/{AFP_GPIO, PIN_ANODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CATHODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_PRECHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE1_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE2_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE3_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE4_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay adhere detect PIN/{AFP_GPIO, PIN_HV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/insulate detected ctrl PIN/{AFP_GPIO, PIN_INSULATE_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_POWER_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/SPI CS ctrl PIN// SPI0 /{AFP_GPIO, PIN_SPI0_CS_FM, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_EEP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_INSULATE, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI1 /{AFP_GPIO, PIN_6803_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_6803_SPI_CS1, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_6803_SPI_CS2, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI2 */{AFP_GPIO, PIN_V_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_I_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/temperature sample ctrl pin/{AFP_GPIO, PIN_TEMPERATURE_EN, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_TEMPERATURE_S0, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_TEMPERATURE_S1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_TEMPERATURE_S2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_TEMPERATURE_S3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/PWM PIN/ {AFP_EMIOS0_CH9, PIN_INTERLOCK_OUTPUT_CHANNEL, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_GPIO, PIN_INTERLOCK_INPUT_CHANNEL, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_EMIOS1_CH10,PIN_CP_CHANNEL, IOA_D_INPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, /ADC PIN/ {AFP_ADC_ANP6, PIN_CC_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP5, PIN_CC2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP2, PIN_BOARD_POWER_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS8, PIN_SPARE_AD1_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANE2, PIN_SPARE_AD2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP4, PIN_AD74HC4067_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP13, PIN_TEMP16H_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP8, PIN_BTS5180_IS1_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP7, PIN_BTS5180_IS2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /CAN communication PIN/ /* CAN0 / {AFP_CAN0_TXD, PIN_CAN0_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN0_RXD, PIN_CAN0_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN1 / {AFP_CAN1_TXD, PIN_CAN1_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN1_RXD, PIN_CAN1_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN2 / {AFP_CAN2_TXD, PIN_CAN2_TX, IOA_D_OUTPUT, 0, IOA_AF3, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN2_RXD, PIN_CAN2_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /SPI communication PIN/ / SPI0 / {AFP_SPI0_SCK, PIN_SPI0_SCK, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MISO, PIN_SPI0_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MOSI, PIN_SPI0_MOSI, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, / SPI1 / {AFP_SPI1_SCK, PIN_6803_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MISO, PIN_6803_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MOSI, PIN_6803_SPI_MOSI, IOA_D_INPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, / SPI2 */ {AFP_SPI2_SCK, PIN_V_I_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MISO, PIN_V_I_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MOSI, PIN_V_I_SPI_MOSI, IOA_D_INPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, /IIC communication PIN/ {AFP_IIC0_SCL, PIN_IIC0_SCL, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_IIC0_SDA, PIN_IIC0_SDA, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL},};#endif#if (APP_HW_VERSION_E6211_0_5 == APP_HW_VERSION)#define BSP_GPIO_NUM 92const GpioCfgType GPIO_CfgTab[BSP_GPIO_NUM]={/* digital input *//system PIN/{AFP_GPIO, PIN_IGN, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE_ON_SLOW_CHARGE_ON, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_AIRBAG, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_WAKE, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/elect lock/{AFP_GPIO, PIN_NFAULT, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_MOTOR, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_MOTOR_KEY_SWITCH, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/* digital output / /system PIN/#if APP_RUN_MODE == RUN_MODE_TEST{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/ Stop Ext-dog /#else{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},#endif{AFP_GPIO, PIN_POWER_SELFACTIVE, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_POWER_LOCK, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/eeprom write protect PIN/{AFP_GPIO, PIN_MC25LC256_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_FM25LC160_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/CAN ctrl PIN/{AFP_GPIO, PIN_IN_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_ERR_OUT, IOA_D_OUTPUT, 1, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/LED PIN/{AFP_GPIO, PIN_LED1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED4, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED5, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay feedback ctrl PIN/{AFP_GPIO, PIN_BTS5180_DOPEN_LOAD, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay ctrl PIN/{AFP_GPIO, PIN_ANODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CATHODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_PRECHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE1_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE2_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE3_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE4_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay adhere detect PIN/{AFP_GPIO, PIN_HV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/insulate detected ctrl PIN/{AFP_GPIO, PIN_INSULATE_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_POWER_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/SPI CS ctrl PIN// SPI0 /{AFP_GPIO, PIN_SPI0_CS_FM, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_EEP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_INSULATE, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_FLASH0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_FLASH1, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI1 /{AFP_GPIO, PIN_6803_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_6803_SPI_CS1, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_6803_SPI_CS2, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI2 */{AFP_GPIO, PIN_V_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_I_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/temperature sample ctrl pin/{AFP_GPIO, PIN_TEMPERATURE_EN, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_TEMPERATURE_S0, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_TEMPERATURE_S1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_TEMPERATURE_S2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_TEMPERATURE_S3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/485 ctrl pin/{AFP_GPIO, PIN_RS485_EN, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/elect lock/{AFP_GPIO, PIN_MOTOR_P, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_MOTOR_N, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/PWM PIN/ {AFP_EMIOS0_CH9, PIN_INTERLOCK_OUTPUT_CHANNEL, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_GPIO, PIN_INTERLOCK_INPUT_CHANNEL, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_EMIOS1_CH10,PIN_CP_CHANNEL, IOA_D_INPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, /ADC PIN/ {AFP_ADC_ANP6, PIN_CC_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP5, PIN_CC2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP2, PIN_BOARD_POWER_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS8, PIN_SPARE_AD1_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP1, PIN_SPARE_AD2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP4, PIN_AD74HC4067_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP13, PIN_TEMP16H_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP8, PIN_BTS5180_IS1_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP7, PIN_BTS5180_IS2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP12, PIN_HALLCURR_HIGH_CHANNAL1, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP11, PIN_HALLCURR_LOWE_CHANNAL2, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /CAN communication PIN/ /* CAN0 / {AFP_CAN0_TXD, PIN_CAN0_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN0_RXD, PIN_CAN0_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN1 / {AFP_CAN1_TXD, PIN_CAN1_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN1_RXD, PIN_CAN1_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN2 / {AFP_CAN2_TXD, PIN_CAN2_TX, IOA_D_OUTPUT, 0, IOA_AF3, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN2_RXD, PIN_CAN2_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /SPI communication PIN/ / SPI0 / {AFP_SPI0_SCK, PIN_SPI0_SCK, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MISO, PIN_SPI0_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI0_MOSI, PIN_SPI0_MOSI, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, / SPI1 / {AFP_SPI1_SCK, PIN_6803_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MISO, PIN_6803_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MOSI, PIN_6803_SPI_MOSI, IOA_D_INPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, / SPI2 */ {AFP_SPI2_SCK, PIN_V_I_SPI_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MISO, PIN_V_I_SPI_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MOSI, PIN_V_I_SPI_MOSI, IOA_D_INPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, /IIC communication PIN/ {AFP_IIC0_SCL, PIN_IIC0_SCL, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_IIC0_SDA, PIN_IIC0_SDA, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL},};#endif#if (APP_HW_VERSION_AB802_0_0 == APP_HW_VERSION)#define BSP_GPIO_NUM 112const GpioCfgType GPIO_CfgTab[BSP_GPIO_NUM]={/* digital input *//system PIN/{AFP_GPIO, PIN_IGN, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE_ON_SLOW_CHARGE_ON, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_AIRBAG, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_ERR_IN, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_WAKE, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE_ON, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_E_LOCK, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_E_NFAULT, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_AIRBAG2, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/* digital output / /system PIN/#if APP_RUN_MODE == RUN_MODE_TEST{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/ Stop Ext-dog /#else// {AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_WEAKPULLUP},{AFP_GPIO, PIN_WATCHDOG_FEED, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_OPENDRAIN},/ Stop Ext-dog /#endif{AFP_GPIO, PIN_POWER_SELFACTIVE, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SLAVE_POWER_SWITCH, IOA_D_OUTPUT, 1, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_POWER_LOCK, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CP_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_DCDC_WAKEUP, IOA_D_OUTPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_GBOX_POWER, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/eeprom write protect PIN/{AFP_GPIO, PIN_MC25LC256_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_FM25LC160_WP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/CAN ctrl PIN/{AFP_GPIO, PIN_IN_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_EN, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_WAKE_SWITCH, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_CAN_ERR_OUT, IOA_D_OUTPUT, 1, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_IN_DIG_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_VE_DIG_CAN_STB, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/LED PIN/{AFP_GPIO, PIN_LED1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED4, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED5, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED6, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LED7, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay feedback ctrl PIN/{AFP_GPIO, PIN_BTS5180_DOPEN_LOAD, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DEN3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_BTS5180_DSEL3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay ctrl PIN/{AFP_GPIO, PIN_ANODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_CATHODE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HEAT_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_PRECHARGE_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE2_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE3_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE4_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE5_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPARE6_RELAY_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_RELAY3_SPARE1_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_RELAY3_SPARE2_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/relay adhere detect PIN/{AFP_GPIO, PIN_HV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY4, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_HV_RELAY5, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_LV_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/insulate detected ctrl PIN/{AFP_GPIO, PIN_INSULATE_RELAY1, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY2, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_RELAY3, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_INSULATE_POWER_CTRL, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/SPI CS ctrl PIN// SPI2 /{AFP_GPIO, PIN_SPI0_CS_FM, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_EEP, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_INSULATE, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_FLASH0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},{AFP_GPIO, PIN_SPI0_CS_FLASH1, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI4 /{AFP_GPIO, PIN_V_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/ SPI1 */{AFP_GPIO, PIN_I_SPI_CS0, IOA_D_OUTPUT, 1, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL},/elect lock/{AFP_GPIO, PIN_MOTOR_P, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},{AFP_GPIO, PIN_MOTOR_N, IOA_D_OUTPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL},/PWM PIN/ {AFP_EMIOS0_CH3, PIN_INTERLOCK_OUTPUT_CHANNEL, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_GPIO, PIN_INTERLOCK_INPUT_CHANNEL, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_EMIOS0_CH11,PIN_CP_CHANNEL, IOA_D_INPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, /ADC PIN/ {AFP_ADC_ANS8, PIN_CC_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS2, PIN_CC2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP4, PIN_BOARD_POWER_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP6, PIN_SHUNT_CURRENT_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, //{AFP_ADC_ANP7, PIN_ANODE_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, //{AFP_ADC_ANP8, PIN_CATHODE_FB_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_GPIO, PIN_ANODE_FB_CHANNEL, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_GPIO, PIN_CATHODE_FB_CHANNEL, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP5, PIN_CURRENT_HALL_POWER_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS14, PIN_CURRENT_HALL_CHANNEL1, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS15, PIN_CURRENT_HALL_CHANNEL2, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP10, PIN_FAST_CHARGE_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP9, PIN_SLOW_CHARGE_TEMP_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP15, PIN_BTS5180_IS1_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP14, PIN_BTS5180_IS2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANS0, PIN_CC2_2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP11, PIN_FAST_CHARGE_TEMP2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP12, PIN_SLOW_CHARGE_TEMP2_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_ADC_ANP13, PIN_BTS5180_IS3_CHANNEL, IOA_D_ADC, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /CAN communication PIN/ /* CAN5 / {AFP_CAN5_TXD, PIN_CAN5_TX, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN5_RXD, PIN_CAN5_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN1 / {AFP_CAN1_TXD, PIN_CAN1_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN1_RXD, PIN_CAN1_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN4 / {AFP_CAN4_TXD, PIN_CAN4_TX, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN4_RXD, PIN_CAN4_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN0 / {AFP_CAN0_TXD, PIN_CAN0_TX, IOA_D_OUTPUT, 0, IOA_AF1, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN0_RXD, PIN_CAN0_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, / CAN2 / {AFP_CAN2_TXD, PIN_CAN2_TX, IOA_D_OUTPUT, 0, IOA_AF3, IOA_FAST, IOA_P_PUSHPULL}, {AFP_CAN2_RXD, PIN_CAN2_RX, IOA_D_INPUT, 0, IOA_AF0, IOA_SLOW, IOA_P_PUSHPULL}, /SPI communication PIN/ / SPI2 / {AFP_SPI2_SCK, PIN_SPI2_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MISO, PIN_SPI2_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI2_MOSI, PIN_SPI2_MOSI, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, / SPI4 / {AFP_SPI4_SCK, PIN_V_SPI4_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI4_MISO, PIN_V_SPI4_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, / SPI1 */ {AFP_SPI1_SCK, PIN_I_SPI1_SCK, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MISO, PIN_I_SPI1_MISO, IOA_D_INPUT, 0, IOA_AF0, IOA_FAST, IOA_P_PUSHPULL}, {AFP_SPI1_MOSI, PIN_I_SPI1_MOSI, IOA_D_OUTPUT, 0, IOA_AF2, IOA_FAST, IOA_P_PUSHPULL}, /IIC communication PIN/ {AFP_IIC0_SCL, PIN_IIC0_SCL, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL}, {AFP_IIC0_SDA, PIN_IIC0_SDA, IOA_D_INPUT, 0, IOA_AF2, IOA_SLOW, IOA_P_PUSHPULL},};#endif///* L O C A L F U N C T I O N S P R O T O T Y P E S //*////* F U N C T I O N S ////Function: BSP_GPIO_InitParam:Param:Return:Discription:Note:REQ IDs:*/void BSP_GPIO_Init(void){U2 i,j;U4 tu4_ADC_NCMR[3]={0,0,0};for(i=0; i>4] |= (1<<(GPIO_CfgTab[i].pin&0x0F));/ break; case IOA_D_INOUT: GPIO_SetInOut(GPIO_CfgTab[i].pin); /gu2_gpio_test_P_OutInd[GPIO_CfgTab[i].pin>>4] |= (1<<(GPIO_CfgTab[i].pin&0x0F));/ break; case IOA_D_ADC: GPIO_SetAdinput(GPIO_CfgTab[i].pin); if(((U2)GPIO_CfgTab[i].AF_PORT) <= ((U2)AFP_ADC_ANP15)) { tu4_ADC_NCMR[0] |= 0x0001<<(((U2)GPIO_CfgTab[i].AF_PORT) - ((U2)AFP_ADC_ANP0)); } else if(((U2)GPIO_CfgTab[i].AF_PORT) <= ((U2)AFP_ADC_ANS15)) { tu4_ADC_NCMR[1] |= 0x0001<<(((U2)GPIO_CfgTab[i].AF_PORT) - ((U2)AFP_ADC_ANS0)); } else if(((U2)GPIO_CfgTab[i].AF_PORT) <= ((U2)AFP_ADC_ANE3)) { tu4_ADC_NCMR[2] |= 0x0001<<(((U2)GPIO_CfgTab[i].AF_PORT) - ((U2)AFP_ADC_ANE0)); } else { /error/ } break; default: break; } /* 管脚模式*/ GPIO_SetAF(GPIO_CfgTab[i].pin, GPIO_CfgTab[i].af); switch(GPIO_CfgTab[i].pull) { case IOA_P_PUSHPULL: GPIO_SetPushPull(GPIO_CfgTab[i].pin); break; case IOA_P_WEAKPULLUP: GPIO_SetWeakPullUp(GPIO_CfgTab[i].pin); break; case IOA_P_WEAKPULLDOWN: GPIO_SetWeakPullDown(GPIO_CfgTab[i].pin); break; case IOA_P_OPENDRAIN: GPIO_SetOpenDrain(GPIO_CfgTab[i].pin); break; default: break; } /* 快速脚*/ if(IOA_FAST == GPIO_CfgTab[i].fast_slow) { GPIO_SetFast(GPIO_CfgTab[i].pin); } else { GPIO_SetSlow(GPIO_CfgTab[i].pin); } /* 复用功能设定*/ if(((U1)GPIO_CfgTab[i].AF_PORT) <= 31) /PSMI Port/ { for(j=0; j<4; j++) { if(GPIO_PSMI_Map[((U1)GPIO_CfgTab[i].AF_PORT)][j] == GPIO_CfgTab[i].pin) { SIU.PSMI[((U1)GPIO_CfgTab[i].AF_PORT)].R = (U1)j; break; } } if(4 == j) { /error,printf debug info/ while(1) { }; } }}/* ADC 开关*/#if (APP_HW_VERSION_AB802_0_0 != APP_HW_VERSION)ADC.NCMR[0].R = tu4_ADC_NCMR[0];ADC.NCMR[1].R = tu4_ADC_NCMR[1];ADC.NCMR[2].R = tu4_ADC_NCMR[2];#elseADC_0.NCMR0.R = tu4_ADC_NCMR[0];ADC_0.NCMR1.R = tu4_ADC_NCMR[1];ADC_0.NCMR2.R = tu4_ADC_NCMR[2];#endif /* (APP_HW_VERSION_AB802_0_0 != APP_HW_VERSION) */}#if 0U2 gu2_gpio_test_P_Status[PORTNUM];U2 gu2_gpio_test_P_Set[PORTNUM];U2 gu2_gpio_test_P_OutInd[PORTNUM];U2 gu2_gpio_test_P_Mask[PORTNUM];U2 gu2_gpio_test_AdcANP[16];U2 gu2_gpio_test_AdcANS[16];void gpio_test_loop(void){#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */OS_CPU_SR cpu_sr = 0;#endifstatic U1 adc_step = 0; static U2 i = 0; U2 j; U2 tu2_d,tu2_m; i ; if(i>=PORTNUM) { i = 0; } tu2_d = GPIO_GetPort(i,0xFFFFu); OS_ENTER_CRITICAL(); gu2_gpio_test_P_Status[i] = tu2_d; tu2_d = gu2_gpio_test_P_Set[i]; tu2_m = gu2_gpio_test_P_Mask[i]; OS_EXIT_CRITICAL(); for(j=0;j<16;j) { if(tu2_m & (0x0001=32) adc_step=0; OS_ENTER_CRITICAL(); if(adc_step<16) { gu2_gpio_test_AdcANP[adc_step] = ADC_GetChannelValue(adc_step); } else { gu2_gpio_test_AdcANS[adc_step-16] = ADC_GetChannelValue(adc_step+16); } OS_EXIT_CRITICAL();}#endif#if APP_RUN_MODE == RUN_MODE_TESTuint8_t test_bsp_IGN = 0;uint8_t test_bsp_SPARE_ONOFF = 0;uint8_t test_bsp_SAFELINE = 0;uint8_t test_bsp_AirBag_Level = 0;uint8_t test_ANODE_RELAY_FB_STATUS = 0;uint8_t test_CHARGE_RELAY_FB_STATUS = 0;uint8_t test_CATHODE_RELAY_FB_STATUS = 0;uint8_t test_PRE_RELAY_FB_STATUS = 0;uint8_t test_HEAT_RELAY_FB_STATUS = 0;uint8_t test_ASSIST_RELAY_FB_STATUS = 0;uint8_t test_bsp_INPUT_INTERLOCK_Level = 0;uint16_t test_bsp_POWER_FB_VAL = 0;uint16_t test_bsp_CURR_POWER_FB_VAL = 0;uint16_t test_bsp_CHARGE_CC2_VAL = 0;uint16_t test_bsp_CURR_CHANNAL2_VAL = 0;uint16_t test_bsp_CURR_CHANNAL1_VAL = 0;uint16_t test_bsp_CHARGE_CC_VAL = 0;uint16_t test_bsp_CURRENT_TEMP_AD_VAL = 0;uint16_t test_bsp_SLCHARGE_TEMP_ADC_VAL = 0;uint16_t test_bsp_QUCHARGE_TEMP_ADC_VAL = 0;uint16_t test_bsp_ANODE_FEEDBACK_VAL = 0;uint16_t test_bsp_CATHODE_FEEDBACK_VAL = 0;uint16_t test_cpHwStatus = 0;uint16_t test_main_volt = 0;uint16_t test_main_current = 0;uint16_t test_insAnodeThr = 0;uint16_t test_insCathodeThr = 0;#endif/*Copyright © 2014,SHENZHEN HANGSHENG ELECTRONICS Co.,Ltd.All Rights Reserved.Dept.:ACECFile:AcecType.hDescription: descript informationREQ IDs: show the handle requirement IDsHistory:2014-3-1, 1306104, original*/#ifndef BSP_CPU_H#define BSP_CPU_H#include “includes.h”#include “bsp_cfg.h”#include “Config.h”#include “gpio.h”#include “emios.h”#include “adc.h”#if (APP_HW_VERSION_E6305_1_3 == APP_HW_VERSION)/------------------------------------------digital I/O PIN setting begin ---------------------------------------------->//* digital input //system PIN/#define PIN_IGN PF0 / M_IGN_ON /#define PIN_SPARE_ON_SLOW_CHARGE_ON PF1 / M_SLCHARGE_ON /#define PIN_AIRBAG PC13 / M_AIRBAG /#define PIN_VE_CAN_ERR_IN PG9 / M_VE_CAN_ERR /#define PIN_CP_WAKE PE11 / M_CP_WAKE *//* digital output //system PIN/#define PIN_WATCHDOG_FEED PA7 / M_FEEDDOG /#define PIN_POWER_SELFACTIVE PB10 / M_POWER_EN /#define PIN_SLAVE_POWER_SWITCH PG12 / M_BMU_POWER /#define PIN_CHARGE_POWER_LOCK PF2 / M_CHARGE /#define PIN_CP_SWITCH PB14 / M_CP_S2 //eeprom write protect PIN/#define PIN_MC25LC256_WP PF11 / M_EEP_\WP /#define PIN_FM25LC160_WP PF13 / M_FM_\WP //CAN ctrl PIN/#define PIN_IN_CAN_STB PG7 / M_IN_CAN_\STB /#define PIN_VE_CAN_EN PC6 / M_VE_CAN_EN /#define PIN_VE_CAN_STB PG6 / M_VE_CAN_STB_H /#define PIN_VE_CAN_WAKE_SWITCH PC7 / M_DO_CAN_WAKE_HS /#define PIN_VE_CAN_ERR_OUT PG8 / M_VE_CAN_OPWM //LED PIN/#define PIN_LED1 PD14 / M_LED1 /#define PIN_LED2 PH0 / M_LED2 /#define PIN_LED3 PD13 / M_LED3 /#define PIN_LED4 PB12 / M_LED4 /#define PIN_LED5 PD15 / M_LED5 //relay feedback ctrl PIN/#define PIN_BTS5180_DOPEN_LOAD PC9 / M_DO_OPEN_LOAD_HS /#define PIN_BTS5180_DEN1 PE10 / M_RELAY1_DEN /#define PIN_BTS5180_DSEL1 PE9 / M_RELAY1_DSEL /#define PIN_BTS5180_DEN2 PA1 / M_RELAY2_DEN /#define PIN_BTS5180_DSEL2 PE0 / M_RELAY2_DSEL //relay ctrl PIN/#define PIN_ANODE_RELAY_CTRL PA0 / M_RELAY1_ANODE /#define PIN_CHARGE_RELAY_CTRL PE8 / M_RELAY1_CHARGE /#define PIN_CATHODE_RELAY_CTRL PE1 / M_RELAY2_CATHODE /#define PIN_HEAT_RELAY_CTRL PA2 / M_RELAY2_HEAT /#define PIN_PRECHARGE_RELAY_CTRL PC8 / M_RELAY_PRECHARGE /#define PIN_SPARE2_RELAY_CTRL PB2 / M_RELAY_SPARE2 /#define PIN_SPARE3_RELAY_CTRL PG5 / M_RELAY_SPARE3 /#define PIN_SPARE4_RELAY_CTRL PG4 / M_RELAY_SPARE4 /#define PIN_SPARE5_RELAY_CTRL PG3 / M_RELAY_SPARE5 /#define PIN_SPARE6_RELAY_CTRL PG2 / M_RELAY_SPARE6 //relay adhere detect PIN/#define PIN_HV_RELAY1 PG11 / M_HV_RELAY1 /#define PIN_HV_RELAY2 PC3 / M_HV_RELAY2 /#define PIN_HV_RELAY3 PG15 / M_HV_RELAY3 /#define PIN_HV_RELAY4 PG14 / M_HV_RELAY4 /#define PIN_HV_RELAY5 PE12 / M_HV_RELAY5 /#define PIN_LV_RELAY1 PE15 / M_LV_RELAY1 /#define PIN_LV_RELAY2 PG10 / M_LV_RELAY2 /#define PIN_LV_RELAY3 PE14 / M_LV_RELAY3 //insulate detected ctrl PIN/#define PIN_INSULATE_RELAY1 PE7 / M_INSULATION_RELAY1 /#define PIN_INSULATE_RELAY2 PE6 / M_INSULATION_RELAY2 /#define PIN_INSULATE_RELAY3 PH8 / M_INSULATION_RELAY3 /#define PIN_INSULATE_POWER_CTRL PH7 / M_INS_POWER //SPI CS ctrl pin/#define PIN_SPI0_CS_FM PA15 / M_FM_\CS /#define PIN_SPI0_CS_EEP PF10 / M_EEP_\CS /#define PIN_SPI0_CS_INSULATE PC2 / M_INS_\CS /#define PIN_SPI0_CS_FLASH0 PB15 / M_FLASH_\CS /#define PIN_SPI0_CS_FLASH1 PD12 / M_FLASH1_\CS /#define PIN_V_SPI_CS0 PE5 / M_VOL_AD_\CS /#define PIN_I_SPI_CS0 PC15 / M_CUR_\CNV *//<----------------------------------digital I/O PIN setting end----------------------------------------------------//-------------------------------------PWM PIN setting begin---------------------------------------------------------/#define PIN_INTERLOCK_OUTPUT_CHANNEL PB11 /* M_INTERLOCK_OPWM, E0UC3 /#define PIN_INTERLOCK_INPUT_CHANNEL PB13 / M_INTERLOCK_IPWM, E0UC5 /#define PIN_CP_CHANNEL PF4 / M_CP, E0UC14 *//#define PWM_CAN_ERROR_CHANNEL OUTPUT PG8//#define PWM_AIRBAG_CHANNEL PC13/ /Airbag signal is used for digital signal/#define PWM_INTERLOCK_OUTPUT_CHANNEL (0u) /OUTPUT PB11//#define PWM_INTERLOCK_INPUT_CHANNEL (1u) INPUT PB13/#define PWM_CP_CHANNEL (0u) /INPUT PF4//-------------------------------------PWM PIN setting end-----------------------------------------------------------//-------------------------------------ADC PIN setting begin---------------------------------------------------------//ADC/#define PIN_CC_CHANNEL PF5 /* M_CC, ANS13 /#define PIN_CC2_CHANNEL PF3 / M_CC2, ANS11 /#define PIN_BOARD_POWER_FB_CHANNEL PD0 / M_POWER_FB, ANP4 /#define PIN_SHUNT_CURRENT_TEMP_CHANNEL PD2 / M_CURR_TEMP, ANP6 /#define PIN_ANODE_FB_CHANNEL PD3 / M_ANO_FEEDBACK, ANP7 /#define PIN_CATHODE_FB_CHANNEL PD4 / M_CAT_FEDBACK, ANP8 /#define PIN_CURRENT_HALL_POWER_CHANNEL PD1 / M_CURR_POWER_FB, ANP5 /#define PIN_CURRENT_HALL_CHANNEL1 PF7 / M_CURR_CHANNAL1, ANS15 /#define PIN_CURRENT_HALL_CHANNEL2 PF6 / M_CURR_CHANNAL2, ANS14 /#define PIN_FAST_CHARGE_TEMP_CHANNEL PD6 / M_QUCHARGE_TEMPH_AI_LS, ANP10 /#define PIN_SLOW_CHARGE_TEMP_CHANNEL PD5 / M_SLCHARGE_TEMPH_AI_LS, ANP9 /#define PIN_BTS5180_IS1_CHANNEL PD7 / M_RELAY1_IS, ANP11 /#define PIN_BTS5180_IS2_CHANNEL PD8 / M_RELAY2_IS, ANP12 */#define ADC_CC_CHANNEL (32u+13u) /PF5/#define ADC_CC2_CHANNEL (32u+11u) /PF3/#define ADC_BOARD_POWER_FB_CHANNEL (4u) /PD0/#define ADC_SHUNT_CURRENT_TEMP_CHANNEL (6u) /PD2/#define ADC_ANODE_FB_CHANNEL (7u) /PD3/#define ADC_CATHODE_FB_CHANNEL (8u) /PD4/#define ADC_CURRENT_HALL_POWER_CHANNEL (5u) /PD1/#define ADC_CURRENT_HALL_CHANNEL1 (32u+15u) /PF7/#define ADC_CURRENT_HALL_CHANNEL2 (32u+14u) /PF6/#define ADC_FAST_CHARGE_TEMP_CHANNEL (10u) /PD6/#define ADC_SLOW_CHARGE_TEMP_CHANNEL (9u) /PD5/#define ADC_BTS5180_IS1_CHANNEL (11u) /PD7/#define ADC_BTS5180_IS2_CHANNEL (12u) /PD8//---------------------------------------ADC PIN setting end-----------------------------------------------------------//-----------------------------------digital communication PIN setting begin ---------------------------------------------->//* CAN0 /#define PIN_CAN0_TX PB0 / M_VE_CAN_TXD /#define PIN_CAN0_RX PB1 / M_VE_CAN_RXD // CAN1 /#define PIN_CAN1_TX PC10 / M_IN_CAN_TXD /#define PIN_CAN1_RX PC11 / M_IN_CAN_RXD // CAN2 /#define PIN_CAN2_TX PF8 / M_CHARGE_CAN_TXD /#define PIN_CAN2_RX PF9 / M_CHARGE_CAN_RXD // SPI0 /#define PIN_SPI0_SCK PA14 / M_SCK /#define PIN_SPI0_MISO PA12 / M_MISO /#define PIN_SPI0_MOSI PA13 / M_MOSI // SPI1 /#define PIN_V_SPI_SCK PE4 / M_VOL_AD_SCK /#define PIN_V_SPI_MISO PC4 / M_VOL_AD_DATA // SPI2 /#define PIN_I_SPI_SCK PC14 / M_CUR_AD_SCK /#define PIN_I_SPI_MISO PC12 / M_CUR_AD_DATA // IIC0 /#define PIN_IIC0_SCL PA11 / M_RTC_SCL /#define PIN_IIC0_SDA PA10 / M_RTC_SDA *//<----------------------------------digital communication PIN setting end--------------------------------------------------//* -----------------------------------GPIO OUTPUT macro define begin-----------------------------------------------------------*//power lock/#define bsp_powerEnable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 1)#define bsp_powerDisable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 0)#define bsp_slavePowerActive_En() GPIO_SetVal(PIN_SLAVE_POWER_SWITCH, 1)#define bsp_slavePowerActive_Dis() GPIO_SetVal(PIN_SLAVE_POWER_SWITCH, 0)/spare output, E6305 is canceled/#define bsp_spare_out_on() 1/GPIO_SetVal(PB3, 1)/#define bsp_spare_out_off() 1/GPIO_SetVal(PB3, 0)//CP switch/#define bsp_CHARGE_CP_S2_ON() GPIO_SetVal(PIN_CP_SWITCH, 1)#define bsp_CHARGE_CP_S2_OFF() GPIO_SetVal(PIN_CP_SWITCH, 0)/charge lock/#define bsp_POWER_KEEP_QUICK_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,1)#define bsp_POWER_KEEP_DRIVER_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,0)/EEPROM/#define bsp_EEP_MC25LC256_WP_ON() GPIO_SetVal(PIN_MC25LC256_WP,0)#define bsp_EEP_MC25LC256_WP_OFF() GPIO_SetVal(PIN_MC25LC256_WP,1)#define bsp_EEP_FM25LC160_WP_ON() GPIO_SetVal(PIN_FM25LC160_WP,0)#define bsp_EEP_FM25LC160_WP_OFF() GPIO_SetVal(PIN_FM25LC160_WP,1)/can error detect/#define bsp_vehicleCanErr_OK() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 1) /pwm信号,需要重新设计否/#define bsp_vehicleCanErr_FAULT() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 0)/LED/#define bsp_set_led1_on() GPIO_SetVal(PIN_LED1, 0)#define bsp_set_led1_off() GPIO_SetVal(PIN_LED1, 1)#define bsp_set_led2_on() GPIO_SetVal(PIN_LED2, 0)#define bsp_set_led2_off() GPIO_SetVal(PIN_LED2, 1)#define bsp_set_led3_on() GPIO_SetVal(PIN_LED3, 0)#define bsp_set_led3_off() GPIO_SetVal(PIN_LED3, 1)#define bsp_set_led4_on() GPIO_SetVal(PIN_LED4, 0)#define bsp_set_led4_off() GPIO_SetVal(PIN_LED4, 1)#define bsp_set_led5_on() GPIO_SetVal(PIN_LED5, 0)#define bsp_set_led5_off() GPIO_SetVal(PIN_LED5, 1)/CAN/#define bsp_SetVehicleCan_STB() {GPIO_SetVal(PIN_VE_CAN_STB, 0);GPIO_SetVal(PIN_VE_CAN_EN, 0);}#define bsp_SetVehicleCan_ON() {GPIO_SetVal(PIN_VE_CAN_STB, 1);GPIO_SetVal(PIN_VE_CAN_EN, 1);GPIO_SetVal(PIN_VE_CAN_WAKE_SWITCH, 0);}#define bsp_SetVehicleCan_SLP() {GPIO_SetVal(PIN_VE_CAN_STB, 0);GPIO_SetVal(PIN_VE_CAN_EN, 1);}#define bsp_SetInnerCan_STB() GPIO_SetVal(PIN_IN_CAN_STB, 1) /stb mode/#define bsp_SetInnerCan_ON() GPIO_SetVal(PIN_IN_CAN_STB, 0) /normal mode/#define bsp_SetChargeCan_STB() 1/GPIO_SetVal(PF12, 1) stb mode/#define bsp_SetChargeCan_ON() 1/GPIO_SetVal(PF12, 0) normal mode//HD WATCHDOG/#define bsp_HD_WDT_CLR_P() GPIO_SetVal(PIN_WATCHDOG_FEED,0)#define bsp_HD_WDT_SET_P() GPIO_SetVal(PIN_WATCHDOG_FEED,1)/INSULATE/#define bsp_INSULATE_POWER_ON() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 0)//#define bsp_INSULATE_POWER_OFF() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 1)//#define bsp_INSULATE_TO_GND_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 1)#define bsp_INSULATE_TO_GND_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 0)#define bsp_INSULATE_ANODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 1)#define bsp_INSULATE_ANODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 0)#define bsp_INSULATE_CATHODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 1)#define bsp_INSULATE_CATHODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 0)/HV ADHERE/#define bsp_HV_SET_ANODE_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY1,0)#define bsp_HV_SET_ANODE_RELAY_F_POINT_ON() GPIO_SetVal(PIN_HV_RELAY1,1)#define bsp_HV_SET_ANODE_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY2,0)#define bsp_HV_SET_ANODE_RELAY_B_POINT_ON() GPIO_SetVal(PIN_HV_RELAY2,1)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY1,0)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_ON() GPIO_SetVal(PIN_LV_RELAY1,1)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY2,0)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_ON() GPIO_SetVal(PIN_LV_RELAY2,1)#define bsp_HV_SET_HV_RELAY3_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY3,0)#define bsp_HV_SET_HV_RELAY3_POINT_ON() GPIO_SetVal(PIN_HV_RELAY3,1)#define bsp_HV_SET_HV_RELAY4_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY4,0)#define bsp_HV_SET_HV_RELAY4_POINT_ON() GPIO_SetVal(PIN_HV_RELAY4,1)#define bsp_HV_SET_HV_RELAY5_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY5,0)#define bsp_HV_SET_HV_RELAY5_POINT_ON() GPIO_SetVal(PIN_HV_RELAY5,1)#define bsp_HV_SET_LV_RELAY3_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY3,0)#define bsp_HV_SET_LV_RELAY3_POINT_ON() GPIO_SetVal(PIN_LV_RELAY3,1)/HV RELAY/#define bsp_HV_SET_ANODE_RELAY_ON() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,1)#define bsp_HV_SET_ANODE_RELAY_OFF() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,0)#define bsp_HV_SET_CHARGE_RELAY_ON() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,1)#define bsp_HV_SET_CHARGE_RELAY_OFF() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,0)#define bsp_HV_SET_CATHODE_RELAY_ON() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,1)#define bsp_HV_SET_CATHODE_RELAY_OFF() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,0)#define bsp_HV_SET_PRE_DISCh_RELAY_ON() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 1)#define bsp_HV_SET_PRE_DISCh_RELAY_OFF() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 0)#define bsp_HV_SET_HEAT_RELAY_ON() GPIO_SetVal(PIN_HEAT_RELAY_CTRL,1)#define bsp_HV_SET_HEAT_RELAY_OFF() GPIO_SetVal(PIN_HEAT_RELAY_CTRL,0)#define bsp_HV_SET_ASSIST_A_RELAY_ON() 1/GPIO_SetVal(PE0,1)/#define bsp_HV_SET_ASSIST_A_RELAY_OFF() 0/GPIO_SetVal(PE0,0)/#define bsp_HV_SET_SPARE2_RELAY_ON() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,1)#define bsp_HV_SET_SPARE2_RELAY_OFF() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,0)#define bsp_HV_SET_SPARE3_RELAY_ON() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,1)#define bsp_HV_SET_SPARE3_RELAY_OFF() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,0)#define bsp_HV_SET_SPARE4_RELAY_ON() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,1)#define bsp_HV_SET_SPARE4_RELAY_OFF() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,0)#define bsp_HV_SET_SPARE5_RELAY_ON() GPIO_SetVal(PIN_SPARE5_RELAY_CTRL,1)#define bsp_HV_SET_SPARE5_RELAY_OFF() GPIO_SetVal(PIN_SPARE5_RELAY_CTRL,0)#define bsp_HV_SET_SPARE6_RELAY_ON() GPIO_SetVal(PIN_SPARE6_RELAY_CTRL,1)#define bsp_HV_SET_SPARE6_RELAY_OFF() GPIO_SetVal(PIN_SPARE6_RELAY_CTRL,0)/* -----------------------------------GPIO OUTPUT macro define end-----------------------------------------------------------*//* -----------------------------------GPIO FEEDBACK macro define begin-----------------------------------------------------------*//feedback, it’s used for test normally/#define bsp_selfActive GPIO_GetOutputVal(PIN_POWER_SELFACTIVE)#define bsp_slavePowerActive GPIO_GetOutputVal(PIN_SLAVE_POWER_SWITCH)#define bsp_vehicleCanErr GPIO_GetOutputVal(PIN_VE_CAN_ERR_OUT) /pwm信号,需要重新设计否/#define bsp_CP_S2Switch GPIO_GetOutputVal(PIN_CP_SWITCH)/HV ADHERE/#define bsp_GET_ANODE_RELAY_F_POINT GPIO_GetOutputVal(PIN_HV_RELAY1)#define bsp_GET_ANODE_RELAY_B_POINT GPIO_GetOutputVal(PIN_HV_RELAY2)#define bsp_GET_CATHOD_RELAY_F_POINT GPIO_GetOutputVal(PIN_LV_RELAY1)#define bsp_GET_CATHOD_RELAY_B_POINT GPIO_GetOutputVal(PIN_LV_RELAY2)#define bsp_GET_HV_RELAY3_POINT GPIO_GetOutputVal(PIN_HV_RELAY3)#define bsp_GET_HV_RELAY4_POINT GPIO_GetOutputVal(PIN_HV_RELAY4)#define bsp_GET_HV_RELAY5_POINT GPIO_GetOutputVal(PIN_HV_RELAY5)#define bsp_GET_LV_RELAY3_POINT GPIO_GetOutputVal(PIN_LV_RELAY3)/HV RELAY/#define bsp_GET_ANODE_RELAY_SETTING GPIO_GetOutputVal(PIN_ANODE_RELAY_CTRL)#define bsp_GET_CHARGE_RELAY_SETTING GPIO_GetOutputVal(PIN_CHARGE_RELAY_CTRL)#define bsp_GET_CATHODE_RELAY_SETTING GPIO_GetOutputVal(PIN_CATHODE_RELAY_CTRL)#define bsp_GET_PRE_DISCh_RELAY_SETTING GPIO_GetOutputVal(PIN_PRECHARGE_RELAY_CTRL)#define bsp_GET_HEAT_RELAY_SETTING GPIO_GetOutputVal(PIN_HEAT_RELAY_CTRL)#define bsp_GET_SPARE2_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE2_RELAY_CTRL)#define bsp_GET_SPARE3_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE3_RELAY_CTRL)#define bsp_GET_SPARE4_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE4_RELAY_CTRL)#define bsp_GET_SPARE5_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE5_RELAY_CTRL)#define bsp_GET_SPARE6_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE6_RELAY_CTRL)#define bsp_ChargeFirst GPIO_GetOutputVal(PIN_CHARGE_POWER_LOCK)#define bsp_HD_WATCHDOG_FEED_LEVEL GPIO_GetOutputVal(PIN_WATCHDOG_FEED)/* -----------------------------------GPIO FEEDBACK macro define end--------------------------------------------------*//* -----------------------------------PWM macro define begin-----------------------------------------------------------*///#define PWM_OUTPUT_CAN_ERROR po_write_channel(PWM_CAN_ERROR_CHANNEL,50)#define PWM_OUTPUT_INTERLOCK po_write_channel(PWM_INTERLOCK_OUTPUT_CHANNEL,50)#define PWM_INPUT_CP(pulse_width) pi_read_channel(PWM_CP_CHANNEL, pulse_width)//#define PWM_INPUT_INTERLOCK(pulse_width) pi_read_channel(PWM_INTERLOCK_INPUT_CHANNEL,pulse_width)/* -----------------------------------PWM macro define end--------------------------------------------------------------*/#if APP_RUN_MODE == RUN_MODE_NORMAL/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN GPIO_GetVal(PIN_IGN)#define bsp_SPARE_ONOFF GPIO_GetVal(PIN_SPARE_ON_SLOW_CHARGE_ON)#define bsp_SAFELINE 1#define bsp_AirBag_Level GPIO_GetVal(PIN_AIRBAG) /airbag is pwm signal, but it’s a digital signal here?/#define bsp_INPUT_INTERLOCK_Level GPIO_GetVal(PIN_INTERLOCK_INPUT_CHANNEL)#define bsp_slowChargeLockLocation //GPIO_GetVal(PIN_SLOWCHARGELOCK_LOCATION) / the signal of slowcharge lock location */#define bsp_SLOWCHARGELOCK1_ON()#define bsp_SLOWCHARGELOCK2_ON()#define bsp_SLOWCHARGELOCK1_OFF()#define bsp_SLOWCHARGELOCK2_OFF()/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS 0#define bsp_GET_CHARGE_RELAY_STATUS 0#define bsp_GET_CATHODE_RELAY_STATUS 0#define bsp_GET_PRE_DISCh_RELAY_STATUS 0#define bsp_GET_HEAT_RELAY_STATUS 0#define bsp_GET_ASSIST_A_RELAY_STATUS 0/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL ADC_GetChannelValue(ADC_CC_CHANNEL)#define bsp_CHARGE_CC2_VAL ADC_GetChannelValue(ADC_CC2_CHANNEL)#define bsp_POWER_FB_VAL ADC_GetChannelValue(ADC_BOARD_POWER_FB_CHANNEL)#define bsp_CURRENT_TEMP_AD_VAL ADC_GetChannelValue(ADC_SHUNT_CURRENT_TEMP_CHANNEL)#define bsp_ANODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_ANODE_FB_CHANNEL)#define bsp_CATHODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_CATHODE_FB_CHANNEL)#define bsp_CURR_POWER_FB_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_POWER_CHANNEL)#define bsp_CURR_CHANNAL2_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_CHANNEL2)#define bsp_CURR_CHANNAL1_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_CHANNEL1)#define bsp_SLCHARGE_TEMP_ADC_VAL ADC_GetChannelValue(ADC_SLOW_CHARGE_TEMP_CHANNEL)#define bsp_QUCHARGE_TEMP_ADC_VAL ADC_GetChannelValue(ADC_FAST_CHARGE_TEMP_CHANNEL)/* -----------------------------------ADC macro define end------------------------------------------------------------*/#elif APP_RUN_MODE == RUN_MODE_TESTextern uint8_t test_bsp_IGN;extern uint8_t test_bsp_SPARE_ONOFF;extern uint8_t test_bsp_SAFELINE;extern uint8_t test_bsp_AirBag_Level;extern uint8_t test_ANODE_RELAY_FB_STATUS;extern uint8_t test_CHARGE_RELAY_FB_STATUS;extern uint8_t test_CATHODE_RELAY_FB_STATUS;extern uint8_t test_PRE_RELAY_FB_STATUS;extern uint8_t test_HEAT_RELAY_FB_STATUS;extern uint8_t test_ASSIST_RELAY_FB_STATUS;extern uint8_t test_bsp_INPUT_INTERLOCK_Level;extern uint16_t test_bsp_POWER_FB_VAL;extern uint16_t test_bsp_CURR_POWER_FB_VAL;extern uint16_t test_bsp_CHARGE_CC2_VAL;extern uint16_t test_bsp_CURR_CHANNAL2_VAL;extern uint16_t test_bsp_CURR_CHANNAL1_VAL;extern uint16_t test_bsp_CHARGE_CC_VAL;extern uint16_t test_bsp_CURRENT_TEMP_AD_VAL;extern uint16_t test_bsp_SLCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_QUCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_ANODE_FEEDBACK_VAL;extern uint16_t test_bsp_CATHODE_FEEDBACK_VAL;extern uint16_t test_cpHwStatus;extern uint16_t test_main_volt;extern uint16_t test_main_current;extern uint16_t test_insAnodeThr;extern uint16_t test_insCathodeThr;/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------*/#define bsp_IGN test_bsp_IGN#define bsp_SPARE_ONOFF test_bsp_SPARE_ONOFF#define bsp_SAFELINE test_bsp_SAFELINE#define bsp_AirBag_Level test_bsp_AirBag_Level/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS test_ANODE_RELAY_FB_STATUS#define bsp_GET_CHARGE_RELAY_STATUS test_CHARGE_RELAY_FB_STATUS#define bsp_GET_CATHODE_RELAY_STATUS test_CATHODE_RELAY_FB_STATUS#define bsp_GET_PRE_DISCh_RELAY_STATUS test_PRE_RELAY_FB_STATUS#define bsp_GET_HEAT_RELAY_STATUS test_HEAT_RELAY_FB_STATUS#define bsp_GET_ASSIST_A_RELAY_STATUS test_ASSIST_RELAY_FB_STATUS/* hv lock check level /#define bsp_INPUT_INTERLOCK_Level test_bsp_INPUT_INTERLOCK_Level#define bsp_slowChargeLockLocation //GPIO_GetVal(PIN_SLOWCHARGELOCK_LOCATION) / the signal of slowcharge lock location */#define bsp_SLOWCHARGELOCK1_ON()#define bsp_SLOWCHARGELOCK2_ON()#define bsp_SLOWCHARGELOCK1_OFF()#define bsp_SLOWCHARGELOCK2_OFF()/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL test_bsp_CHARGE_CC_VAL#define bsp_CHARGE_CC2_VAL test_bsp_CHARGE_CC2_VAL#define bsp_POWER_FB_VAL test_bsp_POWER_FB_VAL#define bsp_CURRENT_TEMP_AD_VAL test_bsp_CURRENT_TEMP_AD_VAL#define bsp_ANODE_FEEDBACK_VAL test_bsp_ANODE_FEEDBACK_VAL#define bsp_CATHODE_FEEDBACK_VAL test_bsp_CATHODE_FEEDBACK_VAL#define bsp_CURR_POWER_FB_VAL test_bsp_CURR_POWER_FB_VAL#define bsp_CURR_CHANNAL2_VAL test_bsp_CURR_CHANNAL2_VAL#define bsp_CURR_CHANNAL1_VAL test_bsp_CURR_CHANNAL1_VAL#define bsp_SLCHARGE_TEMP_ADC_VAL test_bsp_SLCHARGE_TEMP_ADC_VAL#define bsp_QUCHARGE_TEMP_ADC_VAL test_bsp_QUCHARGE_TEMP_ADC_VAL/* -----------------------------------ADC macro define end------------------------------------------------------------/#endif / APP_RUN_MODE == RUN_MODE_TEST */#endif /* APP_HW_VERSION_E6305_1_3 == APP_HW_VERSION */#if (APP_HW_VERSION_E6217_0_6 == APP_HW_VERSION)/------------------------------------------digital I/O PIN setting begin ---------------------------------------------->//* digital input //system PIN/#define PIN_IGN PF0 / M_IGN_ON /#define PIN_SPARE_ON_SLOW_CHARGE_ON PF1 / M_SPARE_ON /#define PIN_SAFELINE PF2 / M_SAFELINE //relay feedback PIN/#define PIN_ANODE_RELAY_ST PE10 / M_ANODE_RELAY_ST /#define PIN_CHARGE_RELAY_ST PE8 / M_CHARGE_RELAY_ST /#define PIN_CATHODE_RELAY_ST PA1 / M_CATHODE_RELAY_ST /#define PIN_PRECHARGE_RELAY_ST PG3 / M_PRECHARGE_RELAY_ST /#define PIN_HEAT_RELAY_ST PG5 / M_HEAT_RELAY_ST /#define PIN_SPARE1_RELAY_ST PA2 / M_SPARE1_RELAY_ST *//* digital output //system PIN/#define PIN_WATCHDOG_FEED PE11 / M_FEEDDOG /#define PIN_POWER_SELFACTIVE PB10 / M_POWER_EN /#define PIN_CHARGE_POWER_LOCK PA3 / M_CHARGE /#define PIN_CP_SWITCH PB14 / M_CP_S2 //eeprom write protect PIN/#define PIN_MC25LC256_WP PF11 / M_EEP_\WP /#define PIN_FM25LC160_WP PF13 / M_FM_\WP //CAN ctrl PIN/#define PIN_IN_CAN_STB PG7 / M_IN_CAN_\STB /#define PIN_VE_CAN_STB PG6 / M_VE_CAN_\STB /#define PIN_CH_CAN_STB PF12 / M_VE_CAN_\STB //LED PIN/#define PIN_LED1 PD14 / M_LED1 /#define PIN_LED2 PB13 / M_LED2 /#define PIN_LED3 PD13 / M_LED3 /#define PIN_LED4 PB12 / M_LED4 /#define PIN_LED5 PD12 / M_LED5 //relay ctrl PIN/#define PIN_ANODE_RELAY_CTRL PA0 / M_RELAY_ANODE /#define PIN_CHARGE_RELAY_CTRL PE9 / M_RELAY_CHARGE /#define PIN_CATHODE_RELAY_CTRL PE1 / M_RELAY_CATHODE /#define PIN_HEAT_RELAY_CTRL PG4 / M_RELAY_HEAT /#define PIN_PRECHARGE_RELAY_CTRL PG2 / M_RELAY_PRECHARGE /#define PIN_SPARE1_RELAY_CTRL PE0 / M_RELAY_SPARE1 /#define PIN_SPARE2_RELAY_CTRL PB2 / M_RELAY_SPARE2 /#define PIN_SPARE3_RELAY_CTRL PB3 / M_SPARE_OUTPUT //relay adhere detect PIN/#define PIN_HV_RELAY1 PE7 / M_HV_RELAY1 /#define PIN_HV_RELAY2 PE6 / M_HV_RELAY2 /#define PIN_LV_RELAY1 PH8 / M_LV_RELAY1 /#define PIN_LV_RELAY2 PH7 / M_LV_RELAY2 //insulate detected ctrl PIN/#define PIN_INSULATE_RELAY1 PC3 / M_INSULATION_RELAY1 /#define PIN_INSULATE_RELAY2 PG11 / M_INSULATION_RELAY2 /#define PIN_INSULATE_RELAY3 PG10 / M_INSULATION_RELAY3 /#define PIN_INSULATE_POWER_CTRL PE15 / M_INS_POWER //SPI CS ctrl pin// SPI0 /#define PIN_SPI0_CS_FM PA15 / M_FM_\CS /#define PIN_SPI0_CS_EEP PF10 / M_EEP_\CS /#define PIN_SPI0_CS_INSULATE PC2 / M_INS_\CS // SPI1 /#define PIN_V_SPI_CS0 PE5 / M_VOL_AD_\CS // SPI2 /#define PIN_I_SPI_CS0 PC15 / M_CUR_\CNV *//<----------------------------------digital I/O PIN setting end----------------------------------------------------//-------------------------------------PWM PIN setting begin---------------------------------------------------------/#define PIN_INTERLOCK_OUTPUT_CHANNEL PB11 /* M_INTERLOCK_OPWM, E0UC3 /#define PIN_INTERLOCK_INPUT_CHANNEL PH0 / M_INTERLOCK_IPWM, E1UC2 /#define PIN_CP_CHANNEL PF4 / M_CP, E0UC14 */#define PWM_INTERLOCK_OUTPUT_CHANNEL (0u) /OUTPUT//#define PWM_INTERLOCK_INPUT_CHANNEL (1u) INPUT/#define PWM_CP_CHANNEL (0u) /INPUT//-------------------------------------PWM PIN setting end-----------------------------------------------------------//-------------------------------------ADC PIN setting begin---------------------------------------------------------//ADC/#define PIN_CC_CHANNEL PF5 /* M_CC, ANS13 /#define PIN_CC2_CHANNEL PF3 / M_CC2, ANS11 /#define PIN_BOARD_POWER_FB_CHANNEL PD0 / M_POWER_FB, ANP4 /#define PIN_SHUNT_CURRENT_TEMP_CHANNEL PD2 / M_CURR_TEMP, ANP6 /#define PIN_ANODE_FB_CHANNEL PD3 / M_ANO_FEEDBACK, ANP7 /#define PIN_CATHODE_FB_CHANNEL PD4 / M_CAT_FEEDBACK, ANP8 /#define PIN_CURRENT_HALL_POWER_CHANNEL PD1 / M_CURR_POWER_FB, ANP5 /#define PIN_CURRENT_HALL_CHANNEL1 PF7 / M_CURR_CHANNAL1, ANS15 /#define PIN_CURRENT_HALL_CHANNEL2 PF6 / M_CURR_CHANNAL2, ANS14 *//* must to check the adc channel of the pointed pin, when the pin had been change /#define ADC_CC_CHANNEL (32u+13u) / PF5 /#define ADC_CC2_CHANNEL (32u+11u) / PF3 /#define ADC_BOARD_POWER_FB_CHANNEL (4u) / PD0 /#define ADC_SHUNT_CURRENT_TEMP_CHANNEL (6u) / PD2 /#define ADC_ANODE_FB_CHANNEL (7u) / PD3 /#define ADC_CATHODE_FB_CHANNEL (8u) / PD4 /#define ADC_CURRENT_HALL_POWER_CHANNEL (5u) / PD1 /#define ADC_CURRENT_HALL_CHANNEL1 (32u+15u) / PF7 /#define ADC_CURRENT_HALL_CHANNEL2 (32u+14u) / PF6 *//---------------------------------------ADC PIN setting end-----------------------------------------------------------//-----------------------------------digital communication PIN setting begin ---------------------------------------------->//* CAN0 /#define PIN_CAN0_TX PB0 / M_VE_CAN_TXD /#define PIN_CAN0_RX PB1 / M_VE_CAN_RXD // CAN1 /#define PIN_CAN1_TX PC10 / M_IN_CAN_TXD /#define PIN_CAN1_RX PC11 / M_IN_CAN_RXD // CAN2 /#define PIN_CAN2_TX PF8 / M_CHARGE_CAN_TXD /#define PIN_CAN2_RX PF9 / M_CHARGE_CAN_RXD // SPI0 /#define PIN_SPI0_SCK PA14 / M_SCK /#define PIN_SPI0_MISO PA12 / M_MISO /#define PIN_SPI0_MOSI PA13 / M_MOSI // SPI1 /#define PIN_V_SPI_SCK PE4 / M_VOL_AD_SCK /#define PIN_V_SPI_MISO PC4 / M_VOL_AD_DATA // SPI2 /#define PIN_I_SPI_SCK PC14 / M_CUR_AD_SCK /#define PIN_I_SPI_MISO PC12 / M_CUR_AD_DATA // IIC0 /#define PIN_IIC0_SCL PA11 / M_RTC_SCL /#define PIN_IIC0_SDA PA10 / M_RTC_SDA *//<----------------------------------digital communication PIN setting end--------------------------------------------------//* -----------------------------------GPIO OUTPUT macro define begin-----------------------------------------------------------*//power lock/#define bsp_powerEnable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 1)#define bsp_powerDisable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 0)/spare output/#define bsp_spare_out_on()#define bsp_spare_out_off()/CP switch/#define bsp_CHARGE_CP_S2_ON() GPIO_SetVal(PIN_CP_SWITCH, 1)#define bsp_CHARGE_CP_S2_OFF() GPIO_SetVal(PIN_CP_SWITCH, 0)/charge lock/#define bsp_POWER_KEEP_QUICK_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,1)#define bsp_POWER_KEEP_DRIVER_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,0)/EEPROM/#define bsp_EEP_MC25LC256_WP_ON() GPIO_SetVal(PIN_MC25LC256_WP,0)#define bsp_EEP_MC25LC256_WP_OFF() GPIO_SetVal(PIN_MC25LC256_WP,1)#define bsp_EEP_FM25LC160_WP_ON() GPIO_SetVal(PIN_FM25LC160_WP,0)#define bsp_EEP_FM25LC160_WP_OFF() GPIO_SetVal(PIN_FM25LC160_WP,1)/can error detect/#define bsp_vehicleCanErr_OK()#define bsp_vehicleCanErr_FAULT()/LED/#define bsp_set_led1_on() GPIO_SetVal(PIN_LED1, 0)#define bsp_set_led1_off() GPIO_SetVal(PIN_LED1, 1)#define bsp_set_led2_on() GPIO_SetVal(PIN_LED2, 0)#define bsp_set_led2_off() GPIO_SetVal(PIN_LED2, 1)#define bsp_set_led3_on() GPIO_SetVal(PIN_LED3, 0)#define bsp_set_led3_off() GPIO_SetVal(PIN_LED3, 1)#define bsp_set_led4_on() GPIO_SetVal(PIN_LED4, 0)#define bsp_set_led4_off() GPIO_SetVal(PIN_LED4, 1)#define bsp_set_led5_on() GPIO_SetVal(PIN_LED5, 0)#define bsp_set_led5_off() GPIO_SetVal(PIN_LED5, 1)/CAN/#define bsp_SetVehicleCan_STB() GPIO_SetVal(PIN_VE_CAN_STB, 1)#define bsp_SetVehicleCan_ON() GPIO_SetVal(PIN_VE_CAN_STB, 0)#define bsp_SetInnerCan_STB() GPIO_SetVal(PIN_IN_CAN_STB, 1)#define bsp_SetInnerCan_ON() GPIO_SetVal(PIN_IN_CAN_STB, 0)#define bsp_SetChargeCan_STB() GPIO_SetVal(PIN_CH_CAN_STB, 1)#define bsp_SetChargeCan_ON() GPIO_SetVal(PIN_CH_CAN_STB, 0)/HD WATCHDOG/#define bsp_HD_WDT_CLR_P() GPIO_SetVal(PIN_WATCHDOG_FEED,0)#define bsp_HD_WDT_SET_P() GPIO_SetVal(PIN_WATCHDOG_FEED,1)/INSULATE/#define bsp_INSULATE_POWER_ON() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 0)#define bsp_INSULATE_POWER_OFF() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 1)#define bsp_INSULATE_TO_GND_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 1)#define bsp_INSULATE_TO_GND_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 0)#define bsp_INSULATE_ANODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 1)#define bsp_INSULATE_ANODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 0)#define bsp_INSULATE_CATHODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 1)#define bsp_INSULATE_CATHODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 0)/HV ADHERE/#define bsp_HV_SET_ANODE_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY1,0)#define bsp_HV_SET_ANODE_RELAY_F_POINT_ON() GPIO_SetVal(PIN_HV_RELAY1,1)#define bsp_HV_SET_ANODE_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY2,0)#define bsp_HV_SET_ANODE_RELAY_B_POINT_ON() GPIO_SetVal(PIN_HV_RELAY2,1)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY1,0)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_ON() GPIO_SetVal(PIN_LV_RELAY1,1)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY2,0)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_ON() GPIO_SetVal(PIN_LV_RELAY2,1)#define bsp_HV_SET_HV_RELAY3_POINT_OFF()#define bsp_HV_SET_HV_RELAY3_POINT_ON()#define bsp_HV_SET_HV_RELAY4_POINT_OFF()#define bsp_HV_SET_HV_RELAY4_POINT_ON()#define bsp_HV_SET_HV_RELAY5_POINT_OFF()#define bsp_HV_SET_HV_RELAY5_POINT_ON()#define bsp_HV_SET_LV_RELAY3_POINT_OFF()#define bsp_HV_SET_LV_RELAY3_POINT_ON()/HV RELAY/#define bsp_HV_SET_ANODE_RELAY_ON() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,1)#define bsp_HV_SET_ANODE_RELAY_OFF() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,0)#define bsp_HV_SET_CHARGE_RELAY_ON() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,1)#define bsp_HV_SET_CHARGE_RELAY_OFF() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,0)#define bsp_HV_SET_CATHODE_RELAY_ON() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,1)#define bsp_HV_SET_CATHODE_RELAY_OFF() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,0)#define bsp_HV_SET_PRE_DISCh_RELAY_ON() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 1)#define bsp_HV_SET_PRE_DISCh_RELAY_OFF() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 0)#define bsp_HV_SET_HEAT_RELAY_ON() GPIO_SetVal(PIN_HEAT_RELAY_CTRL,1)#define bsp_HV_SET_HEAT_RELAY_OFF() GPIO_SetVal(PIN_HEAT_RELAY_CTRL,0)#define bsp_HV_SET_SPARE1_RELAY_ON() GPIO_SetVal(PIN_SPARE1_RELAY_CTRL,1)#define bsp_HV_SET_SPARE1_RELAY_OFF() GPIO_SetVal(PIN_SPARE1_RELAY_CTRL,0)#define bsp_HV_SET_SPARE2_RELAY_ON() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,1)#define bsp_HV_SET_SPARE2_RELAY_OFF() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,0)#define bsp_HV_SET_SPARE3_RELAY_ON() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,1)#define bsp_HV_SET_SPARE3_RELAY_OFF() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,0)/* -----------------------------------GPIO OUTPUT macro define end-----------------------------------------------------------*//* -----------------------------------GPIO FEEDBACK macro define begin-----------------------------------------------------------*//feedback, it’s used for test normally/#define bsp_selfActive GPIO_GetOutputVal(PIN_POWER_SELFACTIVE)#define bsp_slavePowerActive 0#define bsp_vehicleCanErr 0#define bsp_CP_S2Switch GPIO_GetOutputVal(PIN_CP_SWITCH)/HV ADHERE/#define bsp_GET_ANODE_RELAY_F_POINT GPIO_GetOutputVal(PIN_HV_RELAY1)#define bsp_GET_ANODE_RELAY_B_POINT GPIO_GetOutputVal(PIN_HV_RELAY2)#define bsp_GET_CATHOD_RELAY_F_POINT GPIO_GetOutputVal(PIN_LV_RELAY1)#define bsp_GET_CATHOD_RELAY_B_POINT GPIO_GetOutputVal(PIN_LV_RELAY2)#define bsp_GET_HV_RELAY3_POINT 0#define bsp_GET_HV_RELAY4_POINT 0#define bsp_GET_HV_RELAY5_POINT 0#define bsp_GET_LV_RELAY3_POINT 0/HV RELAY/#define bsp_GET_ANODE_RELAY_SETTING GPIO_GetOutputVal(PIN_ANODE_RELAY_CTRL)#define bsp_GET_CHARGE_RELAY_SETTING GPIO_GetOutputVal(PIN_CHARGE_RELAY_CTRL)#define bsp_GET_CATHODE_RELAY_SETTING GPIO_GetOutputVal(PIN_CATHODE_RELAY_CTRL)#define bsp_GET_PRE_DISCh_RELAY_SETTING GPIO_GetOutputVal(PIN_PRECHARGE_RELAY_CTRL)#define bsp_GET_HEAT_RELAY_SETTING GPIO_GetOutputVal(PIN_HEAT_RELAY_CTRL)#define bsp_GET_SPARE2_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE2_RELAY_CTRL)#define bsp_GET_SPARE3_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE3_RELAY_CTRL)#define bsp_GET_SPARE4_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE1_RELAY_CTRL)#define bsp_GET_SPARE5_RELAY_SETTING 0#define bsp_GET_SPARE6_RELAY_SETTING 0#define bsp_ChargeFirst GPIO_GetOutputVal(PIN_CHARGE_POWER_LOCK)#define bsp_HD_WATCHDOG_FEED_LEVEL GPIO_GetOutputVal(PIN_WATCHDOG_FEED)/* -----------------------------------GPIO FEEDBACK macro define end--------------------------------------------------*//* -----------------------------------PWM macro define begin-----------------------------------------------------------*///#define PWM_OUTPUT_CAN_ERROR po_write_channel(PWM_CAN_ERROR_CHANNEL,50)#define PWM_OUTPUT_INTERLOCK po_write_channel(PWM_INTERLOCK_OUTPUT_CHANNEL,50)#define PWM_INPUT_CP(pulse_width) pi_read_channel(PWM_CP_CHANNEL, pulse_width)//#define PWM_INPUT_INTERLOCK(pulse_width) pi_read_channel(PWM_INTERLOCK_INPUT_CHANNEL,pulse_width)/* -----------------------------------PWM macro define end--------------------------------------------------------------*/#if APP_RUN_MODE == RUN_MODE_NORMAL/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN GPIO_GetVal(PIN_IGN)#define bsp_SPARE_ONOFF GPIO_GetVal(PIN_SPARE_ON_SLOW_CHARGE_ON)#define bsp_SAFELINE GPIO_GetVal(PIN_SAFELINE)#define bsp_AirBag_Level 0#define bsp_INPUT_INTERLOCK_Level GPIO_GetVal(PIN_INTERLOCK_INPUT_CHANNEL)#define bsp_slowChargeLockLocation //GPIO_GetVal(PIN_SLOWCHARGELOCK_LOCATION) / the signal of slowcharge lock location */#define bsp_SLOWCHARGELOCK1_ON()#define bsp_SLOWCHARGELOCK2_ON()#define bsp_SLOWCHARGELOCK1_OFF()#define bsp_SLOWCHARGELOCK2_OFF()/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS GPIO_GetVal(PIN_ANODE_RELAY_ST)#define bsp_GET_CHARGE_RELAY_STATUS GPIO_GetVal(PIN_CHARGE_RELAY_ST)#define bsp_GET_CATHODE_RELAY_STATUS GPIO_GetVal(PIN_CATHODE_RELAY_ST)#define bsp_GET_PRE_DISCh_RELAY_STATUS GPIO_GetVal(PIN_PRECHARGE_RELAY_ST)#define bsp_GET_HEAT_RELAY_STATUS GPIO_GetVal(PIN_HEAT_RELAY_ST)#define bsp_GET_ASSIST_A_RELAY_STATUS GPIO_GetVal(PIN_SPARE1_RELAY_ST)/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL ADC_GetChannelValue(ADC_CC_CHANNEL)#define bsp_CHARGE_CC2_VAL ADC_GetChannelValue(ADC_CC2_CHANNEL)#define bsp_POWER_FB_VAL ADC_GetChannelValue(ADC_BOARD_POWER_FB_CHANNEL)#define bsp_CURRENT_TEMP_AD_VAL ADC_GetChannelValue(ADC_SHUNT_CURRENT_TEMP_CHANNEL)#define bsp_ANODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_ANODE_FB_CHANNEL)#define bsp_CATHODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_CATHODE_FB_CHANNEL)#define bsp_CURR_POWER_FB_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_POWER_CHANNEL)#define bsp_CURR_CHANNAL2_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_CHANNEL2)#define bsp_CURR_CHANNAL1_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_CHANNEL1)#define bsp_SLCHARGE_TEMP_ADC_VAL 0#define bsp_QUCHARGE_TEMP_ADC_VAL 0/* -----------------------------------ADC macro define end------------------------------------------------------------*/#elif APP_RUN_MODE == RUN_MODE_TESTextern uint8_t test_bsp_IGN;extern uint8_t test_bsp_SPARE_ONOFF;extern uint8_t test_bsp_SAFELINE;extern uint8_t test_bsp_AirBag_Level;extern uint8_t test_ANODE_RELAY_FB_STATUS;extern uint8_t test_CHARGE_RELAY_FB_STATUS;extern uint8_t test_CATHODE_RELAY_FB_STATUS;extern uint8_t test_PRE_RELAY_FB_STATUS;extern uint8_t test_HEAT_RELAY_FB_STATUS;extern uint8_t test_ASSIST_RELAY_FB_STATUS;extern uint8_t test_bsp_INPUT_INTERLOCK_Level;extern uint16_t test_bsp_POWER_FB_VAL;extern uint16_t test_bsp_CURR_POWER_FB_VAL;extern uint16_t test_bsp_CHARGE_CC2_VAL;extern uint16_t test_bsp_CURR_CHANNAL2_VAL;extern uint16_t test_bsp_CURR_CHANNAL1_VAL;extern uint16_t test_bsp_CHARGE_CC_VAL;extern uint16_t test_bsp_CURRENT_TEMP_AD_VAL;extern uint16_t test_bsp_SLCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_QUCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_ANODE_FEEDBACK_VAL;extern uint16_t test_bsp_CATHODE_FEEDBACK_VAL;extern uint16_t test_cpHwStatus;extern uint16_t test_main_volt;extern uint16_t test_main_current;extern uint16_t test_insAnodeThr;extern uint16_t test_insCathodeThr;/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN test_bsp_IGN#define bsp_SPARE_ONOFF test_bsp_SPARE_ONOFF#define bsp_SAFELINE test_bsp_SAFELINE#define bsp_AirBag_Level 0/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS test_ANODE_RELAY_FB_STATUS#define bsp_GET_CHARGE_RELAY_STATUS test_CHARGE_RELAY_FB_STATUS#define bsp_GET_CATHODE_RELAY_STATUS test_CATHODE_RELAY_FB_STATUS#define bsp_GET_PRE_DISCh_RELAY_STATUS test_PRE_RELAY_FB_STATUS#define bsp_GET_HEAT_RELAY_STATUS test_HEAT_RELAY_FB_STATUS#define bsp_GET_ASSIST_A_RELAY_STATUS test_ASSIST_RELAY_FB_STATUS/ hv lock check level /#define bsp_INPUT_INTERLOCK_Level test_bsp_INPUT_INTERLOCK_Level#define bsp_slowChargeLockLocation //GPIO_GetVal(PIN_SLOWCHARGELOCK_LOCATION) / the signal of slowcharge lock location */#define bsp_SLOWCHARGELOCK1_ON()#define bsp_SLOWCHARGELOCK2_ON()#define bsp_SLOWCHARGELOCK1_OFF()#define bsp_SLOWCHARGELOCK2_OFF()/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL test_bsp_CHARGE_CC_VAL#define bsp_CHARGE_CC2_VAL test_bsp_CHARGE_CC2_VAL#define bsp_POWER_FB_VAL test_bsp_POWER_FB_VAL#define bsp_CURRENT_TEMP_AD_VAL test_bsp_CURRENT_TEMP_AD_VAL#define bsp_ANODE_FEEDBACK_VAL test_bsp_ANODE_FEEDBACK_VAL#define bsp_CATHODE_FEEDBACK_VAL test_bsp_CATHODE_FEEDBACK_VAL#define bsp_CURR_POWER_FB_VAL test_bsp_CURR_POWER_FB_VAL#define bsp_CURR_CHANNAL2_VAL test_bsp_CURR_CHANNAL2_VAL#define bsp_CURR_CHANNAL1_VAL test_bsp_CURR_CHANNAL1_VAL#define bsp_SLCHARGE_TEMP_ADC_VAL 0#define bsp_QUCHARGE_TEMP_ADC_VAL 0/* -----------------------------------ADC macro define end------------------------------------------------------------/#endif / APP_RUN_MODE == RUN_MODE_TEST */#endif /* APP_HW_VERSION_E6217_0_6 == APP_HW_VERSION */#if (APP_HW_VERSION_AB00QF02_0_0 == APP_HW_VERSION)/------------------------------------------digital I/O PIN setting begin ---------------------------------------------->//* digital input //system PIN/#define PIN_IGN PF0 / M_IGN_ON /#define PIN_SPARE_ON_SLOW_CHARGE_ON PF1 / M_SLCHARGE_ON /#define PIN_AIRBAG PC13 / M_AIRBAG /#define PIN_VE_CAN_ERR_IN PG9 / M_VE_CAN_ERR /#define PIN_CP_WAKE PE11 / M_CP_ON *//* digital output //system PIN/#define PIN_WATCHDOG_FEED PA7 / M_FEEDDOG /#define PIN_POWER_SELFACTIVE PB10 / M_POWER_EN /#define PIN_SLAVE_POWER_SWITCH PG12 / M_BMU_POWER /#define PIN_CHARGE_POWER_LOCK PF2 / M_CHARGE /#define PIN_CP_SWITCH PB14 / M_CP_S2 //eeprom write protect PIN/#define PIN_MC25LC256_WP PF11 / M_EEP_\WP /#define PIN_FM25LC160_WP PF13 / M_FM_\WP //CAN ctrl PIN/#define PIN_IN_CAN_STB PG7 / M_IN_CAN_\STB /#define PIN_VE_CAN_EN PC6 / M_VE_CAN_EN /#define PIN_VE_CAN_STB PG6 / M_VE_CAN_STB_H /#define PIN_VE_CAN_WAKE_SWITCH PC7 / M_DO_CAN_WAKE_HS /#define PIN_VE_CAN_ERR_OUT PG8 / M_VE_CAN_OPWM /#define PIN_CH_CAN_STB PF12 / M_VE_CAN_\STB //LED PIN/#define PIN_LED1 PD14 / M_LED1 /#define PIN_LED2 PH0 / M_LED2 /#define PIN_LED3 PD13 / M_LED3 /#define PIN_LED4 PB12 / M_LED4 /#define PIN_LED5 PD15 / M_LED5 //relay feedback ctrl PIN/#define PIN_BTS5180_DOPEN_LOAD PC9 / M_OPEN_LOAD /#define PIN_BTS5180_DEN1 PE10 / M_RELAY1_DEN /#define PIN_BTS5180_DSEL1 PE9 / M_RELAY1_DSEL /#define PIN_BTS5180_DEN2 PA1 / M_RELAY2_DEN /#define PIN_BTS5180_DSEL2 PE0 / M_RELAY2_DSEL //relay ctrl PIN/#define PIN_ANODE_RELAY_CTRL PE8 / M_RELAY1_ANODE /#define PIN_CHARGE_RELAY_CTRL PA0 / M_RELAY1_CHARGE /#define PIN_CATHODE_RELAY_CTRL PA2 / M_RELAY2_CATHODE /#define PIN_HEAT_RELAY_CTRL PE1 / M_RELAY2_HEAT /#define PIN_PRECHARGE_RELAY_CTRL PC8 / M_RELAY_PRECHARGE /#define PIN_SPARE2_RELAY_CTRL PB2 / M_RELAY_SPARE2 /#define PIN_SPARE3_RELAY_CTRL PG5 / M_RELAY_SPARE3 /#define PIN_SPARE4_RELAY_CTRL PG4 / M_RELAY_SPARE4 //relay adhere detect PIN/#define PIN_HV_RELAY1 PG11 / M_HV_RELAY1 /#define PIN_HV_RELAY2 PC3 / M_HV_RELAY2 /#define PIN_HV_RELAY3 PG15 / M_HV_RELAY3 /#define PIN_LV_RELAY1 PE15 / M_LV_RELAY1 /#define PIN_LV_RELAY2 PG10 / M_LV_RELAY2 //insulate detected ctrl PIN/#define PIN_INSULATE_RELAY1 PE7 / M_INSULATION_RELAY1 /#define PIN_INSULATE_RELAY2 PE6 / M_INSULATION_RELAY2 /#define PIN_INSULATE_RELAY3 PH8 / M_INSULATION_RELAY3 /#define PIN_INSULATE_POWER_CTRL PH7 / M_INS_POWER //SPI CS ctrl pin/#define PIN_SPI0_CS_FM PA15 / M_FM_\CS /#define PIN_SPI0_CS_EEP PF10 / M_EEP_\CS /#define PIN_SPI0_CS_INSULATE PC2 / M_INS_\CS /#define PIN_SPI0_CS_FLASH0 PB15 / M_FLASH_\CS /#define PIN_SPI0_CS_FLASH1 PD12 / M_FLASH1_\CS /#define PIN_V_SPI_CS0 PE5 / M_VOL_AD_\CS /#define PIN_I_SPI_CS0 PC15 / M_CUR_\CNV *//<----------------------------------digital I/O PIN setting end----------------------------------------------------//-------------------------------------PWM PIN setting begin---------------------------------------------------------/#define PIN_INTERLOCK_OUTPUT_CHANNEL PB11 /* M_INTERLOCK_OPWM, E0UC3 /#define PIN_INTERLOCK_INPUT_CHANNEL PB13 / M_INTERLOCK_IPWM, E0UC5 /#define PIN_CP_CHANNEL PF4 / M_CP, E0UC14 *//#define PWM_CAN_ERROR_CHANNEL OUTPUT PG8//#define PWM_AIRBAG_CHANNEL PC13/ /Airbag signal is used for digital signal/#define PWM_INTERLOCK_OUTPUT_CHANNEL (0u) /OUTPUT PB11//#define PWM_INTERLOCK_INPUT_CHANNEL (1u) INPUT PB13/#define PWM_CP_CHANNEL (0u) /INPUT PF4//-------------------------------------PWM PIN setting end-----------------------------------------------------------//-------------------------------------ADC PIN setting begin---------------------------------------------------------//ADC/#define PIN_CC_CHANNEL PF5 /* M_CC, ANS13 /#define PIN_CC2_CHANNEL PF3 / M_CC2, ANS11 /#define PIN_BOARD_POWER_FB_CHANNEL PD0 / M_POWER_FB, ANP4 /#define PIN_SHUNT_CURRENT_TEMP_CHANNEL PD2 / M_CURR_TEMP, ANP6 /#define PIN_ANODE_FB_CHANNEL PD3 / M_ANO_FEEDBACK, ANP7 /#define PIN_CATHODE_FB_CHANNEL PD4 / M_CAT_FEEDBACK, ANP8 /#define PIN_CURRENT_HALL_POWER_CHANNEL PD1 / M_CURR_POWER_FB, ANP5 /#define PIN_CURRENT_HALL_CHANNEL1 PF7 / M_CURR_CHANNAL1, ANS15 /#define PIN_CURRENT_HALL_CHANNEL2 PF6 / M_CURR_CHANNAL2, ANS14 /#define PIN_FAST_CHARGE_TEMP_CHANNEL PD6 / M_QUCHARGE_TEMPH_AI_LS, ANP10 /#define PIN_SLOW_CHARGE_TEMP_CHANNEL PD5 / M_SLCHARGE_TEMPH_AI_LS, ANP9 /#define PIN_BTS5180_IS1_CHANNEL PD7 / M_RELAY1_IS, ANP11 /#define PIN_BTS5180_IS2_CHANNEL PD8 / M_RELAY2_IS, ANP12 */#define ADC_CC_CHANNEL (32u+13u) /PF5/#define ADC_CC2_CHANNEL (32u+11u) /PF3/#define ADC_BOARD_POWER_FB_CHANNEL (4u) /PD0/#define ADC_SHUNT_CURRENT_TEMP_CHANNEL (6u) /PD2/#define ADC_ANODE_FB_CHANNEL (7u) /PD3/#define ADC_CATHODE_FB_CHANNEL (8u) /PD4/#define ADC_CURRENT_HALL_POWER_CHANNEL (5u) /PD1/#define ADC_CURRENT_HALL_CHANNEL1 (32u+15u) /PF7/#define ADC_CURRENT_HALL_CHANNEL2 (32u+14u) /PF6/#define ADC_FAST_CHARGE_TEMP_CHANNEL (10u) /PD6/#define ADC_SLOW_CHARGE_TEMP_CHANNEL (9u) /PD5/#define ADC_BTS5180_IS1_CHANNEL (11u) /PD7/#define ADC_BTS5180_IS2_CHANNEL (12u) /PD8//---------------------------------------ADC PIN setting end-----------------------------------------------------------//-----------------------------------digital communication PIN setting begin ---------------------------------------------->//* CAN0 /#define PIN_CAN0_TX PB0 / M_VE_CAN_TXD /#define PIN_CAN0_RX PB1 / M_VE_CAN_RXD // CAN1 /#define PIN_CAN1_TX PC10 / M_IN_CAN_TXD /#define PIN_CAN1_RX PC11 / M_IN_CAN_RXD // CAN2 /#define PIN_CAN2_TX PF8 / M_CHARGE_CAN_TXD /#define PIN_CAN2_RX PF9 / M_CHARGE_CAN_RXD // SPI0 /#define PIN_SPI0_SCK PA14 / M_SCK /#define PIN_SPI0_MISO PA12 / M_MISO /#define PIN_SPI0_MOSI PA13 / M_MOSI // SPI1 /#define PIN_V_SPI_SCK PE4 / M_VOL_AD_SCK /#define PIN_V_SPI_MISO PC4 / M_VOL_AD_DATA // SPI2 /#define PIN_I_SPI_SCK PC14 / M_CUR_AD_SCK /#define PIN_I_SPI_MISO PC12 / M_CUR_AD_DATA // IIC0 /#define PIN_IIC0_SCL PA11 / M_RTC_SCL /#define PIN_IIC0_SDA PA10 / M_RTC_SDA *//<----------------------------------digital communication PIN setting end--------------------------------------------------//* -----------------------------------GPIO OUTPUT macro define begin-----------------------------------------------------------*//power lock/#define bsp_powerEnable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 1)#define bsp_powerDisable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 0)#define bsp_slavePowerActive_En() GPIO_SetVal(PIN_SLAVE_POWER_SWITCH, 1)#define bsp_slavePowerActive_Dis() GPIO_SetVal(PIN_SLAVE_POWER_SWITCH, 0)/spare output/#define bsp_spare_out_on()#define bsp_spare_out_off()/CP switch/#define bsp_CHARGE_CP_S2_ON() GPIO_SetVal(PIN_CP_SWITCH, 1)#define bsp_CHARGE_CP_S2_OFF() GPIO_SetVal(PIN_CP_SWITCH, 0)/charge lock/#define bsp_POWER_KEEP_QUICK_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,1)#define bsp_POWER_KEEP_DRIVER_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,0)/EEPROM/#define bsp_EEP_MC25LC256_WP_ON() GPIO_SetVal(PIN_MC25LC256_WP,0)#define bsp_EEP_MC25LC256_WP_OFF() GPIO_SetVal(PIN_MC25LC256_WP,1)#define bsp_EEP_FM25LC160_WP_ON() GPIO_SetVal(PIN_FM25LC160_WP,0)#define bsp_EEP_FM25LC160_WP_OFF() GPIO_SetVal(PIN_FM25LC160_WP,1)/can error detect/#define bsp_vehicleCanErr_OK() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 1) /pwm信号,需要重新设计否/#define bsp_vehicleCanErr_FAULT() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 0)/LED/#define bsp_set_led1_on() GPIO_SetVal(PIN_LED1, 0)#define bsp_set_led1_off() GPIO_SetVal(PIN_LED1, 1)#define bsp_set_led2_on() GPIO_SetVal(PIN_LED2, 0)#define bsp_set_led2_off() GPIO_SetVal(PIN_LED2, 1)#define bsp_set_led3_on() GPIO_SetVal(PIN_LED3, 0)#define bsp_set_led3_off() GPIO_SetVal(PIN_LED3, 1)#define bsp_set_led4_on() GPIO_SetVal(PIN_LED4, 0)#define bsp_set_led4_off() GPIO_SetVal(PIN_LED4, 1)#define bsp_set_led5_on() GPIO_SetVal(PIN_LED5, 0)#define bsp_set_led5_off() GPIO_SetVal(PIN_LED5, 1)/CAN/#define bsp_SetVehicleCan_STB() {GPIO_SetVal(PIN_VE_CAN_STB, 0);GPIO_SetVal(PIN_VE_CAN_EN, 0);}#define bsp_SetVehicleCan_ON() {GPIO_SetVal(PIN_VE_CAN_STB, 1);GPIO_SetVal(PIN_VE_CAN_EN, 1);GPIO_SetVal(PIN_VE_CAN_WAKE_SWITCH, 0);}#define bsp_SetVehicleCan_SLP() {GPIO_SetVal(PIN_VE_CAN_STB, 0);GPIO_SetVal(PIN_VE_CAN_EN, 1);}#define bsp_SetInnerCan_STB() GPIO_SetVal(PIN_IN_CAN_STB, 1)#define bsp_SetInnerCan_ON() GPIO_SetVal(PIN_IN_CAN_STB, 0)#define bsp_SetChargeCan_STB() GPIO_SetVal(PIN_CH_CAN_STB, 1)#define bsp_SetChargeCan_ON() GPIO_SetVal(PIN_CH_CAN_STB, 0)/HD WATCHDOG/#define bsp_HD_WDT_CLR_P() GPIO_SetVal(PIN_WATCHDOG_FEED,0)#define bsp_HD_WDT_SET_P() GPIO_SetVal(PIN_WATCHDOG_FEED,1)/INSULATE/#define bsp_INSULATE_POWER_ON() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 0)#define bsp_INSULATE_POWER_OFF() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 1)#define bsp_INSULATE_TO_GND_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 1)#define bsp_INSULATE_TO_GND_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 0)#define bsp_INSULATE_ANODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 1)#define bsp_INSULATE_ANODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 0)#define bsp_INSULATE_CATHODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 1)#define bsp_INSULATE_CATHODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 0)/HV ADHERE/#define bsp_HV_SET_ANODE_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY1,0)#define bsp_HV_SET_ANODE_RELAY_F_POINT_ON() GPIO_SetVal(PIN_HV_RELAY1,1)#define bsp_HV_SET_ANODE_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY2,0)#define bsp_HV_SET_ANODE_RELAY_B_POINT_ON() GPIO_SetVal(PIN_HV_RELAY2,1)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY1,0)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_ON() GPIO_SetVal(PIN_LV_RELAY1,1)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY2,0)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_ON() GPIO_SetVal(PIN_LV_RELAY2,1)#define bsp_HV_SET_HV_RELAY3_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY3,0)#define bsp_HV_SET_HV_RELAY3_POINT_ON() GPIO_SetVal(PIN_HV_RELAY3,1)#define bsp_HV_SET_HV_RELAY4_POINT_OFF()#define bsp_HV_SET_HV_RELAY4_POINT_ON()#define bsp_HV_SET_HV_RELAY5_POINT_OFF()#define bsp_HV_SET_HV_RELAY5_POINT_ON()#define bsp_HV_SET_LV_RELAY3_POINT_OFF()#define bsp_HV_SET_LV_RELAY3_POINT_ON()/HV RELAY/#define bsp_HV_SET_ANODE_RELAY_ON() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,1)#define bsp_HV_SET_ANODE_RELAY_OFF() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,0)#define bsp_HV_SET_CHARGE_RELAY_ON() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,1)#define bsp_HV_SET_CHARGE_RELAY_OFF() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,0)#define bsp_HV_SET_CATHODE_RELAY_ON() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,1)#define bsp_HV_SET_CATHODE_RELAY_OFF() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,0)#define bsp_HV_SET_PRE_DISCh_RELAY_ON() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 1)#define bsp_HV_SET_PRE_DISCh_RELAY_OFF() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 0)#define bsp_HV_SET_HEAT_RELAY_ON() GPIO_SetVal(PIN_HEAT_RELAY_CTRL,1)#define bsp_HV_SET_HEAT_RELAY_OFF() GPIO_SetVal(PIN_HEAT_RELAY_CTRL,0)#define bsp_HV_SET_ASSIST_A_RELAY_ON()#define bsp_HV_SET_ASSIST_A_RELAY_OFF()#define bsp_HV_SET_SPARE2_RELAY_ON() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,1)#define bsp_HV_SET_SPARE2_RELAY_OFF() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,0)#define bsp_HV_SET_SPARE3_RELAY_ON() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,1)#define bsp_HV_SET_SPARE3_RELAY_OFF() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,0)#define bsp_HV_SET_SPARE4_RELAY_ON() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,1)#define bsp_HV_SET_SPARE4_RELAY_OFF() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,0)#define bsp_HV_SET_SPARE5_RELAY_ON()#define bsp_HV_SET_SPARE5_RELAY_OFF()#define bsp_HV_SET_SPARE6_RELAY_ON()#define bsp_HV_SET_SPARE6_RELAY_OFF()/* -----------------------------------GPIO OUTPUT macro define end-----------------------------------------------------------*//* -----------------------------------GPIO FEEDBACK macro define begin-----------------------------------------------------------*//feedback, it’s used for test normally/#define bsp_selfActive GPIO_GetOutputVal(PIN_POWER_SELFACTIVE)#define bsp_slavePowerActive GPIO_GetOutputVal(PIN_SLAVE_POWER_SWITCH)#define bsp_vehicleCanErr GPIO_GetOutputVal(PIN_VE_CAN_ERR_OUT) /pwm信号,需要重新设计否/#define bsp_CP_S2Switch GPIO_GetOutputVal(PIN_CP_SWITCH)/HV ADHERE/#define bsp_GET_ANODE_RELAY_F_POINT GPIO_GetOutputVal(PIN_HV_RELAY1)#define bsp_GET_ANODE_RELAY_B_POINT GPIO_GetOutputVal(PIN_HV_RELAY2)#define bsp_GET_CATHOD_RELAY_F_POINT GPIO_GetOutputVal(PIN_LV_RELAY1)#define bsp_GET_CATHOD_RELAY_B_POINT GPIO_GetOutputVal(PIN_LV_RELAY2)#define bsp_GET_HV_RELAY3_POINT GPIO_GetOutputVal(PIN_HV_RELAY3)#define bsp_GET_HV_RELAY4_POINT 0#define bsp_GET_HV_RELAY5_POINT 0#define bsp_GET_LV_RELAY3_POINT 0/HV RELAY/#define bsp_GET_ANODE_RELAY_SETTING GPIO_GetOutputVal(PIN_ANODE_RELAY_CTRL)#define bsp_GET_CHARGE_RELAY_SETTING GPIO_GetOutputVal(PIN_CHARGE_RELAY_CTRL)#define bsp_GET_CATHODE_RELAY_SETTING GPIO_GetOutputVal(PIN_CATHODE_RELAY_CTRL)#define bsp_GET_PRE_DISCh_RELAY_SETTING GPIO_GetOutputVal(PIN_PRECHARGE_RELAY_CTRL)#define bsp_GET_HEAT_RELAY_SETTING GPIO_GetOutputVal(PIN_HEAT_RELAY_CTRL)#define bsp_GET_SPARE2_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE2_RELAY_CTRL)#define bsp_GET_SPARE3_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE3_RELAY_CTRL)#define bsp_GET_SPARE4_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE4_RELAY_CTRL)#define bsp_GET_SPARE5_RELAY_SETTING 0#define bsp_GET_SPARE6_RELAY_SETTING 0#define bsp_ChargeFirst GPIO_GetOutputVal(PIN_CHARGE_POWER_LOCK)#define bsp_HD_WATCHDOG_FEED_LEVEL GPIO_GetOutputVal(PIN_WATCHDOG_FEED)/* -----------------------------------GPIO FEEDBACK macro define end--------------------------------------------------*//* -----------------------------------PWM macro define begin-----------------------------------------------------------*///#define PWM_OUTPUT_CAN_ERROR po_write_channel(PWM_CAN_ERROR_CHANNEL,50)#define PWM_OUTPUT_INTERLOCK po_write_channel(PWM_INTERLOCK_OUTPUT_CHANNEL,50)#define PWM_INPUT_CP(pulse_width) pi_read_channel(PWM_CP_CHANNEL, pulse_width)//#define PWM_INPUT_INTERLOCK(pulse_width) pi_read_channel(PWM_INTERLOCK_INPUT_CHANNEL,pulse_width)/* -----------------------------------PWM macro define end--------------------------------------------------------------*/#if APP_RUN_MODE == RUN_MODE_NORMAL/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN GPIO_GetVal(PIN_IGN)#define bsp_SPARE_ONOFF GPIO_GetVal(PIN_SPARE_ON_SLOW_CHARGE_ON)#define bsp_SAFELINE 1#define bsp_AirBag_Level GPIO_GetVal(PIN_AIRBAG) /airbag is pwm signal, but it’s a digital signal here?/#define bsp_INPUT_INTERLOCK_Level GPIO_GetVal(PIN_INTERLOCK_INPUT_CHANNEL)#define bsp_slowChargeLockLocation //GPIO_GetVal(PIN_SLOWCHARGELOCK_LOCATION) / the signal of slowcharge lock location */#define bsp_SLOWCHARGELOCK1_ON()#define bsp_SLOWCHARGELOCK2_ON()#define bsp_SLOWCHARGELOCK1_OFF()#define bsp_SLOWCHARGELOCK2_OFF()/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS 0#define bsp_GET_CHARGE_RELAY_STATUS 0#define bsp_GET_CATHODE_RELAY_STATUS 0#define bsp_GET_PRE_DISCh_RELAY_STATUS 0#define bsp_GET_HEAT_RELAY_STATUS 0#define bsp_GET_ASSIST_A_RELAY_STATUS 0/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL ADC_GetChannelValue(ADC_CC_CHANNEL)#define bsp_CHARGE_CC2_VAL ADC_GetChannelValue(ADC_CC2_CHANNEL)#define bsp_POWER_FB_VAL ADC_GetChannelValue(ADC_BOARD_POWER_FB_CHANNEL)#define bsp_CURRENT_TEMP_AD_VAL ADC_GetChannelValue(ADC_SHUNT_CURRENT_TEMP_CHANNEL)#define bsp_ANODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_ANODE_FB_CHANNEL)#define bsp_CATHODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_CATHODE_FB_CHANNEL)#define bsp_CURR_POWER_FB_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_POWER_CHANNEL)#define bsp_CURR_CHANNAL2_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_CHANNEL2)#define bsp_CURR_CHANNAL1_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_CHANNEL1)#define bsp_SLCHARGE_TEMP_ADC_VAL ADC_GetChannelValue(ADC_SLOW_CHARGE_TEMP_CHANNEL)#define bsp_QUCHARGE_TEMP_ADC_VAL ADC_GetChannelValue(ADC_FAST_CHARGE_TEMP_CHANNEL)/* -----------------------------------ADC macro define end------------------------------------------------------------*/#elif APP_RUN_MODE == RUN_MODE_TESTextern uint8_t test_bsp_IGN;extern uint8_t test_bsp_SPARE_ONOFF;extern uint8_t test_bsp_SAFELINE;extern uint8_t test_bsp_AirBag_Level;extern uint8_t test_ANODE_RELAY_FB_STATUS;extern uint8_t test_CHARGE_RELAY_FB_STATUS;extern uint8_t test_CATHODE_RELAY_FB_STATUS;extern uint8_t test_PRE_RELAY_FB_STATUS;extern uint8_t test_HEAT_RELAY_FB_STATUS;extern uint8_t test_ASSIST_RELAY_FB_STATUS;extern uint8_t test_bsp_INPUT_INTERLOCK_Level;extern uint16_t test_bsp_POWER_FB_VAL;extern uint16_t test_bsp_CURR_POWER_FB_VAL;extern uint16_t test_bsp_CHARGE_CC2_VAL;extern uint16_t test_bsp_CURR_CHANNAL2_VAL;extern uint16_t test_bsp_CURR_CHANNAL1_VAL;extern uint16_t test_bsp_CHARGE_CC_VAL;extern uint16_t test_bsp_CURRENT_TEMP_AD_VAL;extern uint16_t test_bsp_SLCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_QUCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_ANODE_FEEDBACK_VAL;extern uint16_t test_bsp_CATHODE_FEEDBACK_VAL;extern uint16_t test_cpHwStatus;extern uint16_t test_main_volt;extern uint16_t test_main_current;extern uint16_t test_insAnodeThr;extern uint16_t test_insCathodeThr;/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN test_bsp_IGN#define bsp_SPARE_ONOFF test_bsp_SPARE_ONOFF#define bsp_SAFELINE test_bsp_SAFELINE#define bsp_AirBag_Level test_bsp_AirBag_Level/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS test_ANODE_RELAY_FB_STATUS#define bsp_GET_CHARGE_RELAY_STATUS test_CHARGE_RELAY_FB_STATUS#define bsp_GET_CATHODE_RELAY_STATUS test_CATHODE_RELAY_FB_STATUS#define bsp_GET_PRE_DISCh_RELAY_STATUS test_PRE_RELAY_FB_STATUS#define bsp_GET_HEAT_RELAY_STATUS test_HEAT_RELAY_FB_STATUS#define bsp_GET_ASSIST_A_RELAY_STATUS test_ASSIST_RELAY_FB_STATUS/ hv lock check level /#define bsp_INPUT_INTERLOCK_Level test_bsp_INPUT_INTERLOCK_Level#define bsp_slowChargeLockLocation //GPIO_GetVal(PIN_SLOWCHARGELOCK_LOCATION) / the signal of slowcharge lock location */#define bsp_SLOWCHARGELOCK1_ON()#define bsp_SLOWCHARGELOCK2_ON()#define bsp_SLOWCHARGELOCK1_OFF()#define bsp_SLOWCHARGELOCK2_OFF()/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL test_bsp_CHARGE_CC_VAL#define bsp_CHARGE_CC2_VAL test_bsp_CHARGE_CC2_VAL#define bsp_POWER_FB_VAL test_bsp_POWER_FB_VAL#define bsp_CURRENT_TEMP_AD_VAL test_bsp_CURRENT_TEMP_AD_VAL#define bsp_ANODE_FEEDBACK_VAL test_bsp_ANODE_FEEDBACK_VAL#define bsp_CATHODE_FEEDBACK_VAL test_bsp_CATHODE_FEEDBACK_VAL#define bsp_CURR_POWER_FB_VAL test_bsp_CURR_POWER_FB_VAL#define bsp_CURR_CHANNAL2_VAL test_bsp_CURR_CHANNAL2_VAL#define bsp_CURR_CHANNAL1_VAL test_bsp_CURR_CHANNAL1_VAL#define bsp_SLCHARGE_TEMP_ADC_VAL test_bsp_SLCHARGE_TEMP_ADC_VAL#define bsp_QUCHARGE_TEMP_ADC_VAL test_bsp_QUCHARGE_TEMP_ADC_VAL/* -----------------------------------ADC macro define end------------------------------------------------------------/#endif / APP_RUN_MODE == RUN_MODE_TEST */#endif /* APP_HW_VERSION_AB00QF02_0_0 == APP_HW_VERSION */#if (APP_HW_VERSION_E6211_0_4 == APP_HW_VERSION)/------------------------------------------digital I/O PIN setting begin ---------------------------------------------->//* digital input //system PIN/#define PIN_IGN PH6 / M_IGN_ON /#define PIN_SPARE_ON_SLOW_CHARGE_ON PE7 / M_SPARE_ON /#define PIN_AIRBAG PA0 / M_AIRBAG /#define PIN_CP_WAKE PG3 / M_CP_WAKE *//* digital output //system PIN/#define PIN_WATCHDOG_FEED PE11 / M_FEEDDOG /#define PIN_POWER_SELFACTIVE PE6 / M_POWER_EN /#define PIN_CHARGE_POWER_LOCK PA3 / M_POS_CHARGE /#define PIN_CP_SWITCH PH4 / M_CP_S2 //eeprom write protect PIN/#define PIN_MC25LC256_WP PF11 / M_EEP_\WP /#define PIN_FM25LC160_WP PF13 / M_FM_\WP //CAN ctrl PIN/#define PIN_IN_CAN_STB PG7 / M_IN_CAN_\STB /#define PIN_VE_CAN_STB PG6 / M_VE_CAN_\STB /#define PIN_VE_CAN_ERR_OUT PA4 / M_VE_CAN_OPWM /#define PIN_CH_CAN_STB PF12 / M_CHARGE_CAN_\STB //LED PIN/#define PIN_LED1 PA6 / M_LED1 /#define PIN_LED2 PA5 / M_LED2 /#define PIN_LED3 PC2 / M_LED3 /#define PIN_LED4 PC3 / M_LED4 /#define PIN_LED5 PG11 / M_LED5 //relay feedback ctrl PIN/#define PIN_BTS5180_DOPEN_LOAD PG13 / M_OPEN_LOAD /#define PIN_BTS5180_DEN1 PA1 / M_RELAY_0ANODE_1CHARGE_DEN /#define PIN_BTS5180_DSEL1 PE9 / M_RELAY_0ANODE_1CHARGE_DSEL /#define PIN_BTS5180_DEN2 PG12 / M_RELAY_0CATHODE+1PRECHARG_DEN /#define PIN_BTS5180_DSEL2 PE0 / M_RELAY_0CATHODE+1PRECHARG_DSEL //relay ctrl PIN/#define PIN_ANODE_RELAY_CTRL PE8 / M_RELAY_ANODE /#define PIN_CHARGE_RELAY_CTRL PE1 / M_RELAY_CHARGE /#define PIN_CATHODE_RELAY_CTRL PA2 / M_RELAY_CATHODE /#define PIN_PRECHARGE_RELAY_CTRL PG2 / M_RELAY_PRECHARGE /#define PIN_SPARE1_RELAY_CTRL PG4 / M_SPARE_OUTPUT1 /#define PIN_SPARE2_RELAY_CTRL PG5 / M_SPARE_OUTPUT2 /#define PIN_SPARE3_RELAY_CTRL PB3 / M_SPARE_OUTPUT3 /#define PIN_SPARE4_RELAY_CTRL PB2 / M_SPARE_OUTPUT4 //relay adhere detect PIN/#define PIN_HV_RELAY1 PB10 / M_HV_RELAY1 /#define PIN_HV_RELAY2 PF2 / M_HV_RELAY2 /#define PIN_HV_RELAY3 PG15 / M_CHARGE_RELAY /#define PIN_LV_RELAY1 PF3 / M_LV_RELAY1 /#define PIN_LV_RELAY2 PF4 / M_LV_RELAY2 //insulate detected ctrl PIN/#define PIN_INSULATE_RELAY1 PF7 / M_INSULATION_RELAY1 /#define PIN_INSULATE_RELAY2 PF6 / M_INSULATION_RELAY2 /#define PIN_INSULATE_RELAY3 PF5 / M_INSULATION_RELAY3 /#define PIN_INSULATE_POWER_CTRL PE12 / M_INS_POWER //SPI CS ctrl pin// SPI0 /#define PIN_SPI0_CS_FM PA15 / M_FM_\CS /#define PIN_SPI0_CS_EEP PB12 / M_EEP_\CS /#define PIN_SPI0_CS_INSULATE PB13 / M_INS_\CS // SPI1 /#define PIN_6803_SPI_CS0 PD15 / M_6803_SS1 /#define PIN_6803_SPI_CS1 PD14 / M_6803_SS2 /#define PIN_6803_SPI_CS2 PD13 / M_6803_SS3 // SPI2 /#define PIN_V_SPI_CS0 PC15 / M_VOL_AD_\CS /#define PIN_I_SPI_CS0 PH7 / M_CUR_\CNV //temperature sample ctrl pin/#define PIN_TEMPERATURE_EN PG9 / M_TEMPERATURE_\EN /#define PIN_TEMPERATURE_S0 PC6 / M_TEMPERATURE_S0 /#define PIN_TEMPERATURE_S1 PC7 / M_TEMPERATURE_S1 /#define PIN_TEMPERATURE_S2 PG8 / M_TEMPERATURE_S2 /#define PIN_TEMPERATURE_S3 PC9 / M_TEMPERATURE_S3 *//<----------------------------------digital I/O PIN setting end----------------------------------------------------//-------------------------------------PWM PIN setting begin---------------------------------------------------------/#define PIN_INTERLOCK_OUTPUT_CHANNEL PA9 /* M_INTERLOCK_OPWM, E0UC9 /#define PIN_INTERLOCK_INPUT_CHANNEL PA7 / M_INTERLOCK_IPWM, E0UC7 /#define PIN_CP_CHANNEL PH8 / M_CP, E1UC10 *//#define PWM_CAN_ERROR_CHANNEL OUTPUT PG8//#define PWM_AIRBAG_CHANNEL PC13/ /Airbag signal is used for digital signal/#define PWM_INTERLOCK_OUTPUT_CHANNEL (0u) /OUTPUT PA9//#define PWM_INTERLOCK_INPUT_CHANNEL (1u) INPUT PA7/#define PWM_CP_CHANNEL (0u) /INPUT PH8//-------------------------------------PWM PIN setting end-----------------------------------------------------------//-------------------------------------ADC PIN setting begin---------------------------------------------------------//ADC/#define PIN_CC_CHANNEL PD2 /* M_CC, ANP6 /#define PIN_CC2_CHANNEL PD1 / M_CC2, ANP5 /#define PIN_BOARD_POWER_FB_CHANNEL PB6 / M_POWER_FB, ANP2 /#define PIN_SPARE_AD1_CHANNEL PF0 / M_SPARE_AD_1, ANS8 /#define PIN_SPARE_AD2_CHANNEL PB14 / M_SPARE_AD_2, ANX2,MA[2:0]+2*8+64 /#define PIN_AD74HC4067_CHANNEL PD0 / M_TEMPERATURE_AD, ANP4 /#define PIN_TEMP16H_CHANNEL PD9 / M_TEMP16H_AI_ADC, ANP13 /#define PIN_BTS5180_IS1_CHANNEL PD4 / M_RELAY_0ANODE+1CHARGE_IS, ANP8 /#define PIN_BTS5180_IS2_CHANNEL PD3 / M_RELAY_0CATHODE+1PRECHARG_IS, ANP7 */#define ADC_CC_CHANNEL (6u) /PD2/#define ADC_CC2_CHANNEL (5u) /PD1/#define ADC_BOARD_POWER_FB_CHANNEL (2u) /PB6/#define ADC_SPARE_AD1_CHANNEL (8u+32u) /PF0/#define ADC_SPARE_AD2_CHANNEL (0u+80u) /PB14/#define ADC_AD74HC4067_CHANNEL (4u) /PD0/#define ADC_TEMP16H_CHANNEL (13u) /PD9/#define ADC_BTS5180_IS1_CHANNEL (8u) /PD4/#define ADC_BTS5180_IS2_CHANNEL (7u) /PD3//---------------------------------------ADC PIN setting end-----------------------------------------------------------//-----------------------------------digital communication PIN setting begin ---------------------------------------------->//* CAN0 /#define PIN_CAN0_TX PB0 / M_VE_CAN_TXD /#define PIN_CAN0_RX PB1 / M_VE_CAN_RXD // CAN1 /#define PIN_CAN1_TX PC10 / M_IN_CAN_TXD /#define PIN_CAN1_RX PC11 / M_IN_CAN_RXD // CAN2 /#define PIN_CAN2_TX PF8 / M_CHARGE_CAN_TXD /#define PIN_CAN2_RX PF9 / M_CHARGE_CAN_RXD // SPI0 /#define PIN_SPI0_SCK PA14 / M_SCK /#define PIN_SPI0_MISO PA12 / M_MISO_1 /#define PIN_SPI0_MOSI PA13 / M_MOSI // SPI1 /#define PIN_6803_SPI_SCK PE4 / M_6803_SCK /#define PIN_6803_SPI_MISO PC4 / M_6803_MISO /#define PIN_6803_SPI_MOSI PE3 / M_6803_MOSI // SPI2 /#define PIN_V_I_SPI_SCK PC14 / M_CUR_AD_SCK /#define PIN_V_I_SPI_MISO PC12 / M_VOL_CUR_AD_DATA /#define PIN_V_I_SPI_MOSI PC13 / M_CUR_AD_SDI // IIC0 /#define PIN_IIC0_SCL PA11 / M_RTC_SCL /#define PIN_IIC0_SDA PA10 / M_RTC_SDA *//<----------------------------------digital communication PIN setting end--------------------------------------------------//* -----------------------------------GPIO OUTPUT macro define begin-----------------------------------------------------------*//power lock/#define bsp_powerEnable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 1)#define bsp_powerDisable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 0)#define bsp_slavePowerActive_En()#define bsp_slavePowerActive_Dis()/spare output/#define bsp_spare_out_on()#define bsp_spare_out_off()/CP switch/#define bsp_CHARGE_CP_S2_ON() GPIO_SetVal(PIN_CP_SWITCH, 1)#define bsp_CHARGE_CP_S2_OFF() GPIO_SetVal(PIN_CP_SWITCH, 0)/charge lock/#define bsp_POWER_KEEP_QUICK_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,1)#define bsp_POWER_KEEP_DRIVER_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,0)/EEPROM/#define bsp_EEP_MC25LC256_WP_ON() GPIO_SetVal(PIN_MC25LC256_WP,0)#define bsp_EEP_MC25LC256_WP_OFF() GPIO_SetVal(PIN_MC25LC256_WP,1)#define bsp_EEP_FM25LC160_WP_ON() GPIO_SetVal(PIN_FM25LC160_WP,0)#define bsp_EEP_FM25LC160_WP_OFF() GPIO_SetVal(PIN_FM25LC160_WP,1)/can error detect/#define bsp_vehicleCanErr_OK() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 1) /pwm信号,需要重新设计否/#define bsp_vehicleCanErr_FAULT() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 0)/LED/#define bsp_set_led1_on() GPIO_SetVal(PIN_LED1, 0)#define bsp_set_led1_off() GPIO_SetVal(PIN_LED1, 1)#define bsp_set_led2_on() GPIO_SetVal(PIN_LED2, 0)#define bsp_set_led2_off() GPIO_SetVal(PIN_LED2, 1)#define bsp_set_led3_on() GPIO_SetVal(PIN_LED3, 0)#define bsp_set_led3_off() GPIO_SetVal(PIN_LED3, 1)#define bsp_set_led4_on() GPIO_SetVal(PIN_LED4, 0)#define bsp_set_led4_off() GPIO_SetVal(PIN_LED4, 1)#define bsp_set_led5_on() GPIO_SetVal(PIN_LED5, 0)#define bsp_set_led5_off() GPIO_SetVal(PIN_LED5, 1)/CAN/#define bsp_SetVehicleCan_STB() GPIO_SetVal(PIN_VE_CAN_STB, 1)#define bsp_SetVehicleCan_ON() GPIO_SetVal(PIN_VE_CAN_STB, 0)#define bsp_SetInnerCan_STB() GPIO_SetVal(PIN_IN_CAN_STB, 1)#define bsp_SetInnerCan_ON() GPIO_SetVal(PIN_IN_CAN_STB, 0)#define bsp_SetChargeCan_STB() GPIO_SetVal(PIN_CH_CAN_STB, 1)#define bsp_SetChargeCan_ON() GPIO_SetVal(PIN_CH_CAN_STB, 0)/HD WATCHDOG/#define bsp_HD_WDT_CLR_P() GPIO_SetVal(PIN_WATCHDOG_FEED,0)#define bsp_HD_WDT_SET_P() GPIO_SetVal(PIN_WATCHDOG_FEED,1)/INSULATE/#define bsp_INSULATE_POWER_ON() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 0)#define bsp_INSULATE_POWER_OFF() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 1)#define bsp_INSULATE_TO_GND_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 1)#define bsp_INSULATE_TO_GND_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 0)#define bsp_INSULATE_ANODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 1)#define bsp_INSULATE_ANODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 0)#define bsp_INSULATE_CATHODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 1)#define bsp_INSULATE_CATHODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 0)/HV ADHERE/#define bsp_HV_SET_ANODE_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY1,0)#define bsp_HV_SET_ANODE_RELAY_F_POINT_ON() GPIO_SetVal(PIN_HV_RELAY1,1)#define bsp_HV_SET_ANODE_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY2,0)#define bsp_HV_SET_ANODE_RELAY_B_POINT_ON() GPIO_SetVal(PIN_HV_RELAY2,1)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY1,0)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_ON() GPIO_SetVal(PIN_LV_RELAY1,1)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY2,0)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_ON() GPIO_SetVal(PIN_LV_RELAY2,1)#define bsp_HV_SET_HV_RELAY3_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY3,0)#define bsp_HV_SET_HV_RELAY3_POINT_ON() GPIO_SetVal(PIN_HV_RELAY3,1)#define bsp_HV_SET_HV_RELAY4_POINT_OFF()#define bsp_HV_SET_HV_RELAY4_POINT_ON()#define bsp_HV_SET_HV_RELAY5_POINT_OFF()#define bsp_HV_SET_HV_RELAY5_POINT_ON()#define bsp_HV_SET_LV_RELAY3_POINT_OFF()#define bsp_HV_SET_LV_RELAY3_POINT_ON()/HV RELAY/#define bsp_HV_SET_ANODE_RELAY_ON() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,1)#define bsp_HV_SET_ANODE_RELAY_OFF() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,0)#define bsp_HV_SET_CHARGE_RELAY_ON() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,1)#define bsp_HV_SET_CHARGE_RELAY_OFF() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,0)#define bsp_HV_SET_CATHODE_RELAY_ON() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,1)#define bsp_HV_SET_CATHODE_RELAY_OFF() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,0)#define bsp_HV_SET_PRE_DISCh_RELAY_ON() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 1)#define bsp_HV_SET_PRE_DISCh_RELAY_OFF() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 0)#define bsp_HV_SET_HEAT_RELAY_ON() GPIO_SetVal(PIN_SPARE1_RELAY_CTRL,1)#define bsp_HV_SET_HEAT_RELAY_OFF() GPIO_SetVal(PIN_SPARE1_RELAY_CTRL,0)#define bsp_HV_SET_ASSIST_A_RELAY_ON()#define bsp_HV_SET_ASSIST_A_RELAY_OFF()#define bsp_HV_SET_SPARE2_RELAY_ON() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,1)#define bsp_HV_SET_SPARE2_RELAY_OFF() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,0)#define bsp_HV_SET_SPARE3_RELAY_ON() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,1)#define bsp_HV_SET_SPARE3_RELAY_OFF() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,0)#define bsp_HV_SET_SPARE4_RELAY_ON() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,1)#define bsp_HV_SET_SPARE4_RELAY_OFF() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,0)#define bsp_HV_SET_SPARE5_RELAY_ON()#define bsp_HV_SET_SPARE5_RELAY_OFF()#define bsp_HV_SET_SPARE6_RELAY_ON()#define bsp_HV_SET_SPARE6_RELAY_OFF()/temperature sample/#define bsp_AD74HC4067_ENABLE GPIO_SetVal(PIN_TEMPERATURE_EN, 0)#define bsp_AD74HC4067_DISABLE GPIO_SetVal(PIN_TEMPERATURE_EN, 1)#define bsp_AD74HC4067_S0_ON GPIO_SetVal(PIN_TEMPERATURE_S0, 1)#define bsp_AD74HC4067_S0_OFF GPIO_SetVal(PIN_TEMPERATURE_S0, 0)#define bsp_AD74HC4067_S1_ON GPIO_SetVal(PIN_TEMPERATURE_S1, 1)#define bsp_AD74HC4067_S1_OFF GPIO_SetVal(PIN_TEMPERATURE_S1, 0)#define bsp_AD74HC4067_S2_ON GPIO_SetVal(PIN_TEMPERATURE_S2, 1)#define bsp_AD74HC4067_S2_OFF GPIO_SetVal(PIN_TEMPERATURE_S2, 0)#define bsp_AD74HC4067_S3_ON GPIO_SetVal(PIN_TEMPERATURE_S3, 1)#define bsp_AD74HC4067_S3_OFF GPIO_SetVal(PIN_TEMPERATURE_S3, 0)/* -----------------------------------GPIO OUTPUT macro define end-----------------------------------------------------------*//* -----------------------------------GPIO FEEDBACK macro define begin-----------------------------------------------------------*//feedback, it’s used for test normally/#define bsp_selfActive GPIO_GetOutputVal(PIN_POWER_SELFACTIVE)#define bsp_slavePowerActive 0#define bsp_vehicleCanErr GPIO_GetOutputVal(PIN_VE_CAN_ERR_OUT) /pwm信号,需要重新设计否/#define bsp_CP_S2Switch GPIO_GetOutputVal(PIN_CP_SWITCH)/HV ADHERE/#define bsp_GET_ANODE_RELAY_F_POINT GPIO_GetOutputVal(PIN_HV_RELAY1)#define bsp_GET_ANODE_RELAY_B_POINT GPIO_GetOutputVal(PIN_HV_RELAY2)#define bsp_GET_CATHOD_RELAY_F_POINT GPIO_GetOutputVal(PIN_LV_RELAY1)#define bsp_GET_CATHOD_RELAY_B_POINT GPIO_GetOutputVal(PIN_LV_RELAY2)#define bsp_GET_HV_RELAY3_POINT GPIO_GetOutputVal(PIN_HV_RELAY3)#define bsp_GET_HV_RELAY4_POINT 0#define bsp_GET_HV_RELAY5_POINT 0#define bsp_GET_LV_RELAY3_POINT 0/HV RELAY/#define bsp_GET_ANODE_RELAY_SETTING GPIO_GetOutputVal(PIN_ANODE_RELAY_CTRL)#define bsp_GET_CHARGE_RELAY_SETTING GPIO_GetOutputVal(PIN_CHARGE_RELAY_CTRL)#define bsp_GET_CATHODE_RELAY_SETTING GPIO_GetOutputVal(PIN_CATHODE_RELAY_CTRL)#define bsp_GET_PRE_DISCh_RELAY_SETTING GPIO_GetOutputVal(PIN_PRECHARGE_RELAY_CTRL)#define bsp_GET_HEAT_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE1_RELAY_CTRL)#define bsp_GET_SPARE2_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE2_RELAY_CTRL)#define bsp_GET_SPARE3_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE3_RELAY_CTRL)#define bsp_GET_SPARE4_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE4_RELAY_CTRL)#define bsp_GET_SPARE5_RELAY_SETTING 0#define bsp_GET_SPARE6_RELAY_SETTING 0#define bsp_ChargeFirst GPIO_GetOutputVal(PIN_CHARGE_POWER_LOCK)#define bsp_HD_WATCHDOG_FEED_LEVEL GPIO_GetOutputVal(PIN_WATCHDOG_FEED)/* -----------------------------------GPIO FEEDBACK macro define end--------------------------------------------------*//* -----------------------------------PWM macro define begin-----------------------------------------------------------*///#define PWM_OUTPUT_CAN_ERROR po_write_channel(PWM_CAN_ERROR_CHANNEL,50)#define PWM_OUTPUT_INTERLOCK po_write_channel(PWM_INTERLOCK_OUTPUT_CHANNEL,50)#define PWM_INPUT_CP(pulse_width) pi_read_channel(PWM_CP_CHANNEL, pulse_width)//#define PWM_INPUT_INTERLOCK(pulse_width) pi_read_channel(PWM_INTERLOCK_INPUT_CHANNEL,pulse_width)/* -----------------------------------PWM macro define end--------------------------------------------------------------*/#if APP_RUN_MODE == RUN_MODE_NORMAL/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN GPIO_GetVal(PIN_IGN)#define bsp_SPARE_ONOFF GPIO_GetVal(PIN_SPARE_ON_SLOW_CHARGE_ON)#define bsp_SAFELINE 1#define bsp_AirBag_Level GPIO_GetVal(PIN_AIRBAG) /airbag is pwm signal, but it’s a digital signal here?/#define bsp_INPUT_INTERLOCK_Level GPIO_GetVal(PIN_INTERLOCK_INPUT_CHANNEL)#define bsp_slowChargeLockLocation //GPIO_GetVal(PIN_SLOWCHARGELOCK_LOCATION) / the signal of slowcharge lock location */#define bsp_SLOWCHARGELOCK1_ON()#define bsp_SLOWCHARGELOCK2_ON()#define bsp_SLOWCHARGELOCK1_OFF()#define bsp_SLOWCHARGELOCK2_OFF()/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS 0#define bsp_GET_CHARGE_RELAY_STATUS 0#define bsp_GET_CATHODE_RELAY_STATUS 0#define bsp_GET_PRE_DISCh_RELAY_STATUS 0#define bsp_GET_HEAT_RELAY_STATUS 0#define bsp_GET_ASSIST_A_RELAY_STATUS 0/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL ADC_GetChannelValue(ADC_CC_CHANNEL)#define bsp_CHARGE_CC2_VAL ADC_GetChannelValue(ADC_CC2_CHANNEL)#define bsp_POWER_FB_VAL ADC_GetChannelValue(ADC_BOARD_POWER_FB_CHANNEL)#define bsp_CURRENT_TEMP_AD_VAL ADC_GetChannelValue(ADC_AD74HC4067_CHANNEL)#define bsp_ANODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_SPARE_AD1_CHANNEL)#define bsp_CATHODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_SPARE_AD2_CHANNEL)#define bsp_CURR_POWER_FB_VAL ADC_GetChannelValue(ADC_TEMP16H_CHANNEL)#define bsp_CURR_CHANNAL2_VAL ADC_GetChannelValue(ADC_BTS5180_IS1_CHANNEL)#define bsp_CURR_CHANNAL1_VAL ADC_GetChannelValue(ADC_BTS5180_IS2_CHANNEL)#define bsp_SLCHARGE_TEMP_ADC_VAL 0#define bsp_QUCHARGE_TEMP_ADC_VAL 0#define bsp_AD74HC4067_AD_VAL bsp_CURRENT_TEMP_AD_VAL/* -----------------------------------ADC macro define end------------------------------------------------------------*/#elif APP_RUN_MODE == RUN_MODE_TESTextern uint8_t test_bsp_IGN;extern uint8_t test_bsp_SPARE_ONOFF;extern uint8_t test_bsp_SAFELINE;extern uint8_t test_bsp_AirBag_Level;extern uint8_t test_ANODE_RELAY_FB_STATUS;extern uint8_t test_CHARGE_RELAY_FB_STATUS;extern uint8_t test_CATHODE_RELAY_FB_STATUS;extern uint8_t test_PRE_RELAY_FB_STATUS;extern uint8_t test_HEAT_RELAY_FB_STATUS;extern uint8_t test_ASSIST_RELAY_FB_STATUS;extern uint8_t test_bsp_INPUT_INTERLOCK_Level;extern uint16_t test_bsp_POWER_FB_VAL;extern uint16_t test_bsp_CURR_POWER_FB_VAL;extern uint16_t test_bsp_CHARGE_CC2_VAL;extern uint16_t test_bsp_CURR_CHANNAL2_VAL;extern uint16_t test_bsp_CURR_CHANNAL1_VAL;extern uint16_t test_bsp_CHARGE_CC_VAL;extern uint16_t test_bsp_CURRENT_TEMP_AD_VAL;extern uint16_t test_bsp_SLCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_QUCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_ANODE_FEEDBACK_VAL;extern uint16_t test_bsp_CATHODE_FEEDBACK_VAL;extern uint16_t test_cpHwStatus;extern uint16_t test_main_volt;extern uint16_t test_main_current;extern uint16_t test_insAnodeThr;extern uint16_t test_insCathodeThr;/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN test_bsp_IGN#define bsp_SPARE_ONOFF test_bsp_SPARE_ONOFF#define bsp_SAFELINE test_bsp_SAFELINE#define bsp_AirBag_Level test_bsp_AirBag_Level/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS test_ANODE_RELAY_FB_STATUS#define bsp_GET_CHARGE_RELAY_STATUS test_CHARGE_RELAY_FB_STATUS#define bsp_GET_CATHODE_RELAY_STATUS test_CATHODE_RELAY_FB_STATUS#define bsp_GET_PRE_DISCh_RELAY_STATUS test_PRE_RELAY_FB_STATUS#define bsp_GET_HEAT_RELAY_STATUS test_HEAT_RELAY_FB_STATUS#define bsp_GET_ASSIST_A_RELAY_STATUS test_ASSIST_RELAY_FB_STATUS/ hv lock check level /#define bsp_INPUT_INTERLOCK_Level test_bsp_INPUT_INTERLOCK_Level#define bsp_slowChargeLockLocation //GPIO_GetVal(PIN_SLOWCHARGELOCK_LOCATION) / the signal of slowcharge lock location */#define bsp_SLOWCHARGELOCK1_ON()#define bsp_SLOWCHARGELOCK2_ON()#define bsp_SLOWCHARGELOCK1_OFF()#define bsp_SLOWCHARGELOCK2_OFF()/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL test_bsp_CHARGE_CC_VAL#define bsp_CHARGE_CC2_VAL test_bsp_CHARGE_CC2_VAL#define bsp_POWER_FB_VAL test_bsp_POWER_FB_VAL#define bsp_CURRENT_TEMP_AD_VAL test_bsp_CURRENT_TEMP_AD_VAL#define bsp_ANODE_FEEDBACK_VAL test_bsp_ANODE_FEEDBACK_VAL#define bsp_CATHODE_FEEDBACK_VAL test_bsp_CATHODE_FEEDBACK_VAL#define bsp_CURR_POWER_FB_VAL test_bsp_CURR_POWER_FB_VAL#define bsp_CURR_CHANNAL2_VAL test_bsp_CURR_CHANNAL2_VAL#define bsp_CURR_CHANNAL1_VAL test_bsp_CURR_CHANNAL1_VAL#define bsp_SLCHARGE_TEMP_ADC_VAL test_bsp_SLCHARGE_TEMP_ADC_VAL#define bsp_QUCHARGE_TEMP_ADC_VAL test_bsp_QUCHARGE_TEMP_ADC_VAL/* -----------------------------------ADC macro define end------------------------------------------------------------/#endif / APP_RUN_MODE == RUN_MODE_TEST */#endif /* APP_HW_VERSION_E6211_0_4 == APP_HW_VERSION */#if (APP_HW_VERSION_E6211_0_5 == APP_HW_VERSION)/------------------------------------------digital I/O PIN setting begin ---------------------------------------------->//* digital input //system PIN/#define PIN_IGN PH6 / M_IGN_ON /#define PIN_SPARE_ON_SLOW_CHARGE_ON PE7 / M_SPARE_ON /#define PIN_AIRBAG PA0 / M_AIRBAG /#define PIN_CP_WAKE PG3 / M_CP_WAKE //elect lock/#define PIN_NFAULT PG15 / M_NFAULT_IN_DI /#define PIN_MOTOR PB8 / M_MOTOR_IN_DI /#define PIN_MOTOR_KEY_SWITCH PF1 / M_MOTOR_KEY_SWITCH_IN_DI *//* digital output //system PIN/#define PIN_WATCHDOG_FEED PE11 / M_FEEDDOG /#define PIN_POWER_SELFACTIVE PE6 / M_POWER_EN /#define PIN_CHARGE_POWER_LOCK PA3 / M_POS_CHARGE /#define PIN_CP_SWITCH PH4 / M_CP_S2 //eeprom write protect PIN/#define PIN_MC25LC256_WP PF11 / M_EEP_\WP /#define PIN_FM25LC160_WP PF13 / M_FM_\WP //CAN ctrl PIN/#define PIN_IN_CAN_STB PG7 / M_IN_CAN_\STB /#define PIN_VE_CAN_STB PG6 / M_VE_CAN_\STB /#define PIN_VE_CAN_ERR_OUT PA4 / M_VE_CAN_OPWM //LED PIN/#define PIN_LED1 PA6 / M_LED1 /#define PIN_LED2 PA5 / M_LED2 /#define PIN_LED3 PC2 / M_LED3 /#define PIN_LED4 PC3 / M_LED4 /#define PIN_LED5 PG11 / M_LED5 //relay feedback ctrl PIN/#define PIN_BTS5180_DOPEN_LOAD PG13 / M_OPEN_LOAD /#define PIN_BTS5180_DEN1 PA1 / M_RELAY_0ANODE_1CHARGE_DEN /#define PIN_BTS5180_DSEL1 PE9 / M_RELAY_0ANODE_1CHARGE_DSEL /#define PIN_BTS5180_DEN2 PG12 / M_RELAY_0CATHODE+1PRECHARG_DEN /#define PIN_BTS5180_DSEL2 PE0 / M_RELAY_0CATHODE+1PRECHARG_DSEL //relay ctrl PIN/#define PIN_ANODE_RELAY_CTRL PE8 / M_RELAY_ANODE /#define PIN_CHARGE_RELAY_CTRL PE1 / M_RELAY_CHARGE /#define PIN_CATHODE_RELAY_CTRL PA2 / M_RELAY_CATHODE /#define PIN_PRECHARGE_RELAY_CTRL PG2 / M_RELAY_PRECHARGE /#define PIN_SPARE1_RELAY_CTRL PG4 / M_SPARE_OUTPUT1 /#define PIN_SPARE2_RELAY_CTRL PG5 / M_SPARE_OUTPUT2 /#define PIN_SPARE3_RELAY_CTRL PB3 / M_SPARE_OUTPUT3 /#define PIN_SPARE4_RELAY_CTRL PB2 / M_SPARE_OUTPUT4 //relay adhere detect PIN/#define PIN_HV_RELAY1 PB10 / M_HV_RELAY1 /#define PIN_HV_RELAY2 PF2 / M_HV_RELAY2 /#define PIN_HV_RELAY3 PG15 / M_CHARGE_RELAY /#define PIN_LV_RELAY1 PF3 / M_LV_RELAY1 /#define PIN_LV_RELAY2 PF4 / M_LV_RELAY2 //insulate detected ctrl PIN/#define PIN_INSULATE_RELAY1 PF7 / M_INSULATION_RELAY1 /#define PIN_INSULATE_RELAY2 PF6 / M_INSULATION_RELAY2 /#define PIN_INSULATE_RELAY3 PF5 / M_INSULATION_RELAY3 /#define PIN_INSULATE_POWER_CTRL PE12 / M_INS_POWER //SPI CS ctrl pin// SPI0 /#define PIN_SPI0_CS_FM PA15 / M_FM_\CS /#define PIN_SPI0_CS_EEP PB12 / M_EEP_\CS /#define PIN_SPI0_CS_INSULATE PB13 / M_INS_\CS /#define PIN_SPI0_CS_FLASH0 PB15 / M_FLASH_\CS /#define PIN_SPI0_CS_FLASH1 PB14 / M_FLASH1_\CS // SPI1 /#define PIN_6803_SPI_CS0 PD15 / M_6803_SS1 /#define PIN_6803_SPI_CS1 PD14 / M_6803_SS2 /#define PIN_6803_SPI_CS2 PD13 / M_6803_SS3 // SPI2 /#define PIN_V_SPI_CS0 PC15 / M_VOL_AD_\CS /#define PIN_I_SPI_CS0 PH7 / M_CUR_\CNV //temperature sample ctrl pin/#define PIN_TEMPERATURE_EN PG9 / M_TEMPERATURE_\EN /#define PIN_TEMPERATURE_S0 PC6 / M_TEMPERATURE_S0 /#define PIN_TEMPERATURE_S1 PC7 / M_TEMPERATURE_S1 /#define PIN_TEMPERATURE_S2 PG8 / M_TEMPERATURE_S2 /#define PIN_TEMPERATURE_S3 PC9 / M_TEMPERATURE_S3 //485 ctrl pin/#define PIN_RS485_EN PE13 / M_485-EN //elect lock/#define PIN_MOTOR_P PE15 / M_MOTOR+_IN_DO /#define PIN_MOTOR_N PE14 / M_MOTOR-_IN_DO //<----------------------------------digital I/O PIN setting end----------------------------------------------------*//-------------------------------------PWM PIN setting begin---------------------------------------------------------/#define PIN_INTERLOCK_OUTPUT_CHANNEL PD12 /* M_INTERLOCK_OPWM, E0UC9 /#define PIN_INTERLOCK_INPUT_CHANNEL PB11 / M_INTERLOCK_IPWM, E0UC7 /#define PIN_CP_CHANNEL PH8 / M_CP, E1UC10 *//#define PWM_CAN_ERROR_CHANNEL OUTPUT PG8//#define PWM_AIRBAG_CHANNEL PC13/ /Airbag signal is used for digital signal/#define PWM_INTERLOCK_OUTPUT_CHANNEL (0u) /OUTPUT PA9//#define PWM_INTERLOCK_INPUT_CHANNEL (1u) INPUT PA7/#define PWM_CP_CHANNEL (0u) /INPUT PH8//-------------------------------------PWM PIN setting end-----------------------------------------------------------//-------------------------------------ADC PIN setting begin---------------------------------------------------------//ADC/#define PIN_CC_CHANNEL PD2 /* M_CC, ANP6 /#define PIN_CC2_CHANNEL PD1 / M_CC2, ANP5 /#define PIN_BOARD_POWER_FB_CHANNEL PB6 / M_POWER_FB, ANP2 /#define PIN_SPARE_AD1_CHANNEL PF0 / M_SPARE_AD_1, ANS8 /#define PIN_SPARE_AD2_CHANNEL PB5 / M_SPARE_AD_2, ANP1 /#define PIN_AD74HC4067_CHANNEL PD0 / M_TEMPERATURE_AD, ANP4 /#define PIN_TEMP16H_CHANNEL PD9 / M_TEMP16H_AI_ADC, ANP13 /#define PIN_BTS5180_IS1_CHANNEL PD4 / M_RELAY_0ANODE+1CHARGE_IS, ANP8 /#define PIN_BTS5180_IS2_CHANNEL PD3 / M_RELAY_0CATHODE+1PRECHARG_IS, ANP7 /#define PIN_HALLCURR_HIGH_CHANNAL1 PD8 / M_CURR_CHANNAL1 /#define PIN_HALLCURR_LOWE_CHANNAL2 PD7 / M_CURR_CHANNAL2 */#define ADC_CC_CHANNEL (6u) /PD2/#define ADC_CC2_CHANNEL (5u) /PD1/#define ADC_BOARD_POWER_FB_CHANNEL (2u) /PB6/#define ADC_SPARE_AD1_CHANNEL (8u+32u) /PF0/#define ADC_SPARE_AD2_CHANNEL (1u) /PB5/#define ADC_AD74HC4067_CHANNEL (4u) /PD0/#define ADC_TEMP16H_CHANNEL (13u) /PD9/#define ADC_BTS5180_IS1_CHANNEL (8u) /PD4/#define ADC_BTS5180_IS2_CHANNEL (7u) /PD3/#define ADC_HALLCURR_HIGH_CHANNAL1 (12u) /PD8/#define ADC_HALLCURR_LOWE_CHANNAL2 (11u) /PD7//---------------------------------------ADC PIN setting end-----------------------------------------------------------//-----------------------------------digital communication PIN setting begin ---------------------------------------------->//* CAN0 /#define PIN_CAN0_TX PB0 / M_VE_CAN_TXD /#define PIN_CAN0_RX PB1 / M_VE_CAN_RXD // CAN1 /#define PIN_CAN1_TX PC10 / M_IN_CAN_TXD /#define PIN_CAN1_RX PC11 / M_IN_CAN_RXD // CAN2 /#define PIN_CAN2_TX PF8 / M_CHARGE_CAN_TXD /#define PIN_CAN2_RX PF9 / M_CHARGE_CAN_RXD // SPI0 /#define PIN_SPI0_SCK PA14 / M_SCK /#define PIN_SPI0_MISO PA12 / M_MISO_1 /#define PIN_SPI0_MOSI PA13 / M_MOSI // SPI1 /#define PIN_6803_SPI_SCK PE4 / M_6803_SCK /#define PIN_6803_SPI_MISO PC4 / M_6803_MISO /#define PIN_6803_SPI_MOSI PE3 / M_6803_MOSI // SPI2 /#define PIN_V_I_SPI_SCK PC14 / M_CUR_AD_SCK /#define PIN_V_I_SPI_MISO PC12 / M_VOL_CUR_AD_DATA /#define PIN_V_I_SPI_MOSI PC13 / M_CUR_AD_SDI // IIC0 /#define PIN_IIC0_SCL PA11 / M_RTC_SCL /#define PIN_IIC0_SDA PA10 / M_RTC_SDA *//<----------------------------------digital communication PIN setting end--------------------------------------------------//* -----------------------------------GPIO OUTPUT macro define begin-----------------------------------------------------------*//power lock/#define bsp_powerEnable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 1)#define bsp_powerDisable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 0)#define bsp_slavePowerActive_En()#define bsp_slavePowerActive_Dis()/spare output/#define bsp_spare_out_on()#define bsp_spare_out_off()/CP switch/#define bsp_CHARGE_CP_S2_ON() GPIO_SetVal(PIN_CP_SWITCH, 1)#define bsp_CHARGE_CP_S2_OFF() GPIO_SetVal(PIN_CP_SWITCH, 0)/charge lock/#define bsp_POWER_KEEP_QUICK_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,1)#define bsp_POWER_KEEP_DRIVER_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,0)/EEPROM/#define bsp_EEP_MC25LC256_WP_ON() GPIO_SetVal(PIN_MC25LC256_WP,0)#define bsp_EEP_MC25LC256_WP_OFF() GPIO_SetVal(PIN_MC25LC256_WP,1)#define bsp_EEP_FM25LC160_WP_ON() GPIO_SetVal(PIN_FM25LC160_WP,0)#define bsp_EEP_FM25LC160_WP_OFF() GPIO_SetVal(PIN_FM25LC160_WP,1)/can error detect/#define bsp_vehicleCanErr_OK() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 1) /pwmD?o?£?Dèòa??D?éè??·?/#define bsp_vehicleCanErr_FAULT() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 0)/LED/#define bsp_set_led1_on() GPIO_SetVal(PIN_LED1, 0)#define bsp_set_led1_off() GPIO_SetVal(PIN_LED1, 1)#define bsp_set_led2_on() GPIO_SetVal(PIN_LED2, 0)#define bsp_set_led2_off() GPIO_SetVal(PIN_LED2, 1)#define bsp_set_led3_on() GPIO_SetVal(PIN_LED3, 0)#define bsp_set_led3_off() GPIO_SetVal(PIN_LED3, 1)#define bsp_set_led4_on() GPIO_SetVal(PIN_LED4, 0)#define bsp_set_led4_off() GPIO_SetVal(PIN_LED4, 1)#define bsp_set_led5_on() GPIO_SetVal(PIN_LED5, 0)#define bsp_set_led5_off() GPIO_SetVal(PIN_LED5, 1)/CAN/#define bsp_SetVehicleCan_STB() GPIO_SetVal(PIN_VE_CAN_STB, 1)#define bsp_SetVehicleCan_ON() GPIO_SetVal(PIN_VE_CAN_STB, 0)#define bsp_SetInnerCan_STB() GPIO_SetVal(PIN_IN_CAN_STB, 1)#define bsp_SetInnerCan_ON() GPIO_SetVal(PIN_IN_CAN_STB, 0)#define bsp_SetChargeCan_STB()#define bsp_SetChargeCan_ON()/HD WATCHDOG/#define bsp_HD_WDT_CLR_P() GPIO_SetVal(PIN_WATCHDOG_FEED,0)#define bsp_HD_WDT_SET_P() GPIO_SetVal(PIN_WATCHDOG_FEED,1)/INSULATE/#define bsp_INSULATE_POWER_ON() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 0)#define bsp_INSULATE_POWER_OFF() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 1)#define bsp_INSULATE_TO_GND_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 1)#define bsp_INSULATE_TO_GND_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 0)#define bsp_INSULATE_ANODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 1)#define bsp_INSULATE_ANODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 0)#define bsp_INSULATE_CATHODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 1)#define bsp_INSULATE_CATHODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 0)/HV ADHERE/#define bsp_HV_SET_ANODE_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY1,0)#define bsp_HV_SET_ANODE_RELAY_F_POINT_ON() GPIO_SetVal(PIN_HV_RELAY1,1)#define bsp_HV_SET_ANODE_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY2,0)#define bsp_HV_SET_ANODE_RELAY_B_POINT_ON() GPIO_SetVal(PIN_HV_RELAY2,1)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY1,0)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_ON() GPIO_SetVal(PIN_LV_RELAY1,1)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY2,0)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_ON() GPIO_SetVal(PIN_LV_RELAY2,1)#define bsp_HV_SET_HV_RELAY3_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY3,0)#define bsp_HV_SET_HV_RELAY3_POINT_ON() GPIO_SetVal(PIN_HV_RELAY3,1)#define bsp_HV_SET_HV_RELAY4_POINT_OFF()#define bsp_HV_SET_HV_RELAY4_POINT_ON()#define bsp_HV_SET_HV_RELAY5_POINT_OFF()#define bsp_HV_SET_HV_RELAY5_POINT_ON()#define bsp_HV_SET_LV_RELAY3_POINT_OFF()#define bsp_HV_SET_LV_RELAY3_POINT_ON()/HV RELAY/#define bsp_HV_SET_ANODE_RELAY_ON() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,1)#define bsp_HV_SET_ANODE_RELAY_OFF() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,0)#define bsp_HV_SET_CHARGE_RELAY_ON() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,1)#define bsp_HV_SET_CHARGE_RELAY_OFF() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,0)#define bsp_HV_SET_CATHODE_RELAY_ON() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,1)#define bsp_HV_SET_CATHODE_RELAY_OFF() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,0)#define bsp_HV_SET_PRE_DISCh_RELAY_ON() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 1)#define bsp_HV_SET_PRE_DISCh_RELAY_OFF() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 0)#define bsp_HV_SET_HEAT_RELAY_ON() GPIO_SetVal(PIN_SPARE1_RELAY_CTRL,1)#define bsp_HV_SET_HEAT_RELAY_OFF() GPIO_SetVal(PIN_SPARE1_RELAY_CTRL,0)#define bsp_HV_SET_ASSIST_A_RELAY_ON()#define bsp_HV_SET_ASSIST_A_RELAY_OFF()#define bsp_HV_SET_SPARE2_RELAY_ON() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,1)#define bsp_HV_SET_SPARE2_RELAY_OFF() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,0)#define bsp_HV_SET_SPARE3_RELAY_ON() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,1)#define bsp_HV_SET_SPARE3_RELAY_OFF() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,0)#define bsp_HV_SET_SPARE4_RELAY_ON() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,1)#define bsp_HV_SET_SPARE4_RELAY_OFF() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,0)#define bsp_HV_SET_SPARE5_RELAY_ON()#define bsp_HV_SET_SPARE5_RELAY_OFF()#define bsp_HV_SET_SPARE6_RELAY_ON()#define bsp_HV_SET_SPARE6_RELAY_OFF()/temperature sample/#define bsp_AD74HC4067_ENABLE GPIO_SetVal(PIN_TEMPERATURE_EN, 0)#define bsp_AD74HC4067_DISABLE GPIO_SetVal(PIN_TEMPERATURE_EN, 1)#define bsp_AD74HC4067_S0_ON GPIO_SetVal(PIN_TEMPERATURE_S0, 1)#define bsp_AD74HC4067_S0_OFF GPIO_SetVal(PIN_TEMPERATURE_S0, 0)#define bsp_AD74HC4067_S1_ON GPIO_SetVal(PIN_TEMPERATURE_S1, 1)#define bsp_AD74HC4067_S1_OFF GPIO_SetVal(PIN_TEMPERATURE_S1, 0)#define bsp_AD74HC4067_S2_ON GPIO_SetVal(PIN_TEMPERATURE_S2, 1)#define bsp_AD74HC4067_S2_OFF GPIO_SetVal(PIN_TEMPERATURE_S2, 0)#define bsp_AD74HC4067_S3_ON GPIO_SetVal(PIN_TEMPERATURE_S3, 1)#define bsp_AD74HC4067_S3_OFF GPIO_SetVal(PIN_TEMPERATURE_S3, 0)/configure 485/#define bsp_RS485ENABLE GPIO_SetVal(PIN_RS485_EN,1)#define bsp_RS485DISABLE GPIO_SetVal(PIN_RS485_EN,0)/elect lock/#define bsp_SLOWCHARGELOCK1_ON() GPIO_SetVal(PIN_MOTOR_P,1)#define bsp_SLOWCHARGELOCK2_ON() GPIO_SetVal(PIN_MOTOR_N,1)#define bsp_SLOWCHARGELOCK1_OFF() GPIO_SetVal(PIN_MOTOR_P,0)#define bsp_SLOWCHARGELOCK2_OFF() GPIO_SetVal(PIN_MOTOR_N,0)/* -----------------------------------GPIO OUTPUT macro define end-----------------------------------------------------------*//* -----------------------------------GPIO FEEDBACK macro define begin-----------------------------------------------------------*//feedback, it’s used for test normally/#define bsp_selfActive GPIO_GetOutputVal(PIN_POWER_SELFACTIVE)#define bsp_slavePowerActive 0#define bsp_vehicleCanErr GPIO_GetOutputVal(PIN_VE_CAN_ERR_OUT) /pwmD?o?£?Dèòa??D?éè??·?/#define bsp_CP_S2Switch GPIO_GetOutputVal(PIN_CP_SWITCH)/HV ADHERE/#define bsp_GET_ANODE_RELAY_F_POINT GPIO_GetOutputVal(PIN_HV_RELAY1)#define bsp_GET_ANODE_RELAY_B_POINT GPIO_GetOutputVal(PIN_HV_RELAY2)#define bsp_GET_CATHOD_RELAY_F_POINT GPIO_GetOutputVal(PIN_LV_RELAY1)#define bsp_GET_CATHOD_RELAY_B_POINT GPIO_GetOutputVal(PIN_LV_RELAY2)#define bsp_GET_HV_RELAY3_POINT GPIO_GetOutputVal(PIN_HV_RELAY3)#define bsp_GET_HV_RELAY4_POINT 0#define bsp_GET_HV_RELAY5_POINT 0#define bsp_GET_LV_RELAY3_POINT 0/HV RELAY/#define bsp_GET_ANODE_RELAY_SETTING GPIO_GetOutputVal(PIN_ANODE_RELAY_CTRL)#define bsp_GET_CHARGE_RELAY_SETTING GPIO_GetOutputVal(PIN_CHARGE_RELAY_CTRL)#define bsp_GET_CATHODE_RELAY_SETTING GPIO_GetOutputVal(PIN_CATHODE_RELAY_CTRL)#define bsp_GET_PRE_DISCh_RELAY_SETTING GPIO_GetOutputVal(PIN_PRECHARGE_RELAY_CTRL)#define bsp_GET_HEAT_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE1_RELAY_CTRL)#define bsp_GET_SPARE2_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE2_RELAY_CTRL)#define bsp_GET_SPARE3_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE3_RELAY_CTRL)#define bsp_GET_SPARE4_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE4_RELAY_CTRL)#define bsp_GET_SPARE5_RELAY_SETTING 0#define bsp_GET_SPARE6_RELAY_SETTING 0#define bsp_ChargeFirst GPIO_GetOutputVal(PIN_CHARGE_POWER_LOCK)#define bsp_HD_WATCHDOG_FEED_LEVEL GPIO_GetOutputVal(PIN_WATCHDOG_FEED)/* -----------------------------------GPIO FEEDBACK macro define end--------------------------------------------------*//* -----------------------------------PWM macro define begin-----------------------------------------------------------*///#define PWM_OUTPUT_CAN_ERROR po_write_channel(PWM_CAN_ERROR_CHANNEL,50)#define PWM_OUTPUT_INTERLOCK po_write_channel(PWM_INTERLOCK_OUTPUT_CHANNEL,50)#define PWM_INPUT_CP(pulse_width) pi_read_channel(PWM_CP_CHANNEL, pulse_width)//#define PWM_INPUT_INTERLOCK(pulse_width) pi_read_channel(PWM_INTERLOCK_INPUT_CHANNEL,pulse_width)/* -----------------------------------PWM macro define end--------------------------------------------------------------*/#if APP_RUN_MODE == RUN_MODE_NORMAL/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN GPIO_GetVal(PIN_IGN)#define bsp_SPARE_ONOFF GPIO_GetVal(PIN_SPARE_ON_SLOW_CHARGE_ON)#define bsp_SAFELINE 1#define bsp_AirBag_Level GPIO_GetVal(PIN_AIRBAG) /airbag is pwm signal, but it’s a digital signal here?/#define bsp_INPUT_INTERLOCK_Level GPIO_GetVal(PIN_INTERLOCK_INPUT_CHANNEL)#define bsp_slowChargeLockLocation GPIO_GetVal(PIN_MOTOR) / the signal of slowcharge lock location *//HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS 0#define bsp_GET_CHARGE_RELAY_STATUS 0#define bsp_GET_CATHODE_RELAY_STATUS 0#define bsp_GET_PRE_DISCh_RELAY_STATUS 0#define bsp_GET_HEAT_RELAY_STATUS 0#define bsp_GET_ASSIST_A_RELAY_STATUS 0/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL ADC_GetChannelValue(ADC_CC_CHANNEL)#define bsp_CHARGE_CC2_VAL ADC_GetChannelValue(ADC_CC2_CHANNEL)#define bsp_POWER_FB_VAL ADC_GetChannelValue(ADC_BOARD_POWER_FB_CHANNEL)#define bsp_CURRENT_TEMP_AD_VAL ADC_GetChannelValue(ADC_AD74HC4067_CHANNEL)#define bsp_ANODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_SPARE_AD1_CHANNEL)#define bsp_CATHODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_SPARE_AD2_CHANNEL)#define bsp_CURR_POWER_FB_VAL ADC_GetChannelValue(ADC_TEMP16H_CHANNEL)#define bsp_CURR_CHANNAL2_VAL ADC_GetChannelValue(ADC_HALLCURR_LOWE_CHANNAL2)#define bsp_CURR_CHANNAL1_VAL ADC_GetChannelValue(ADC_HALLCURR_HIGH_CHANNAL1)#define bsp_SLCHARGE_TEMP_ADC_VAL 0#define bsp_QUCHARGE_TEMP_ADC_VAL 0#define bsp_AD74HC4067_AD_VAL bsp_CURRENT_TEMP_AD_VAL/* -----------------------------------ADC macro define end------------------------------------------------------------*/#elif APP_RUN_MODE == RUN_MODE_TESTextern uint8_t test_bsp_IGN;extern uint8_t test_bsp_SPARE_ONOFF;extern uint8_t test_bsp_SAFELINE;extern uint8_t test_bsp_AirBag_Level;extern uint8_t test_ANODE_RELAY_FB_STATUS;extern uint8_t test_CHARGE_RELAY_FB_STATUS;extern uint8_t test_CATHODE_RELAY_FB_STATUS;extern uint8_t test_PRE_RELAY_FB_STATUS;extern uint8_t test_HEAT_RELAY_FB_STATUS;extern uint8_t test_ASSIST_RELAY_FB_STATUS;extern uint8_t test_bsp_INPUT_INTERLOCK_Level;extern uint16_t test_bsp_POWER_FB_VAL;extern uint16_t test_bsp_CURR_POWER_FB_VAL;extern uint16_t test_bsp_CHARGE_CC2_VAL;extern uint16_t test_bsp_CURR_CHANNAL2_VAL;extern uint16_t test_bsp_CURR_CHANNAL1_VAL;extern uint16_t test_bsp_CHARGE_CC_VAL;extern uint16_t test_bsp_CURRENT_TEMP_AD_VAL;extern uint16_t test_bsp_SLCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_QUCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_ANODE_FEEDBACK_VAL;extern uint16_t test_bsp_CATHODE_FEEDBACK_VAL;extern uint16_t test_cpHwStatus;extern uint16_t test_main_volt;extern uint16_t test_main_current;extern uint16_t test_insAnodeThr;extern uint16_t test_insCathodeThr;/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN test_bsp_IGN#define bsp_SPARE_ONOFF test_bsp_SPARE_ONOFF#define bsp_SAFELINE test_bsp_SAFELINE#define bsp_AirBag_Level test_bsp_AirBag_Level/HV RELAY FEEDBACK/#define bsp_HV_GET_ANODE_RELAY_STATUS test_ANODE_RELAY_FB_STATUS#define bsp_HV_GET_CHARGE_RELAY_STATUS test_CHARGE_RELAY_FB_STATUS#define bsp_HV_GET_CATHODE_RELAY_STATUS test_CATHODE_RELAY_FB_STATUS#define bsp_HV_GET_PRE_DISCh_RELAY_STATUS test_PRE_RELAY_FB_STATUS#define bsp_HV_GET_HEAT_RELAY_STATUS test_HEAT_RELAY_FB_STATUS#define bsp_HV_GET_ASSIST_A_RELAY_STATUS test_ASSIST_RELAY_FB_STATUS/ hv lock check level */#define bsp_INPUT_INTERLOCK_Level test_bsp_INPUT_INTERLOCK_Level#define bsp_slowChargeLockLocation 0/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL test_bsp_CHARGE_CC_VAL#define bsp_CHARGE_CC2_VAL test_bsp_CHARGE_CC2_VAL#define bsp_POWER_FB_VAL test_bsp_POWER_FB_VAL#define bsp_CURRENT_TEMP_AD_VAL test_bsp_CURRENT_TEMP_AD_VAL#define bsp_ANODE_FEEDBACK_VAL test_bsp_ANODE_FEEDBACK_VAL#define bsp_CATHODE_FEEDBACK_VAL test_bsp_CATHODE_FEEDBACK_VAL#define bsp_CURR_POWER_FB_VAL test_bsp_CURR_POWER_FB_VAL#define bsp_CURR_CHANNAL2_VAL test_bsp_CURR_CHANNAL2_VAL#define bsp_CURR_CHANNAL1_VAL test_bsp_CURR_CHANNAL1_VAL#define bsp_SLCHARGE_TEMP_ADC_VAL test_bsp_SLCHARGE_TEMP_ADC_VAL#define bsp_QUCHARGE_TEMP_ADC_VAL test_bsp_QUCHARGE_TEMP_ADC_VAL#define bsp_AD74HC4067_AD_VAL bsp_CURRENT_TEMP_AD_VAL/* -----------------------------------ADC macro define end------------------------------------------------------------*/#endif /RUN_MODE_TEST/#endif /(APP_HW_VERSION_E6211_0_5 == APP_HW_VERSION)/#if (APP_HW_VERSION_AB802_0_0 == APP_HW_VERSION)/------------------------------------------digital I/O PIN setting begin ---------------------------------------------->//* digital input //system PIN/#define PIN_IGN PB6 / M_IGN_ON /#define PIN_SPARE_ON_SLOW_CHARGE_ON PB7 / M_SLCHARGE_ON /#define PIN_AIRBAG PA15 / M_AIRBAG /#define PIN_VE_CAN_ERR_IN PG9 / M_VE_CAN_ERR /#define PIN_CP_WAKE PE11 / M_CP_WAKE /#define PIN_SPARE_ON PB5 / M_SPARE_ON /#define PIN_E_LOCK PB4 / M_ELOCK /#define PIN_E_NFAULT PE10 / M_NFAULT /#define PIN_AIRBAG2 PB15 / M_AIRBAG_2 *//* digital output //system PIN/#define PIN_WATCHDOG_FEED PI4 / M_FEEDDOG /#define PIN_POWER_SELFACTIVE PI12 / M_POWER_EN /#define PIN_SLAVE_POWER_SWITCH PG13 / M_BMU_POWER /#define PIN_CHARGE_POWER_LOCK PI13 / M_CHARGE /#define PIN_CP_SWITCH PB14 / M_CP_S2 /#define PIN_DCDC_WAKEUP PI11 / M_DCDC_WAKEUP /#define PIN_GBOX_POWER PA3 / M_GBOX_POWER //eeprom write protect PIN/#define PIN_MC25LC256_WP PC9 / M_EEP_\WP /#define PIN_FM25LC160_WP PC8 / M_FM_\WP //CAN ctrl PIN/#define PIN_IN_CAN_STB PG2 / M_IN_CAN_\STB /#define PIN_VE_CAN_EN PA0 / M_VE_CAN_EN /#define PIN_VE_CAN_STB PG7 / M_VE_CAN_STB_H /#define PIN_VE_CAN_WAKE_SWITCH PG6 / M_DO_CAN_WAKE_HS /#define PIN_VE_CAN_ERR_OUT PA14 / M_VE_CAN_OPWM /#define PIN_IN_DIG_CAN_STB PF12 / M_IN_DIG_CAN_\STB /#define PIN_VE_DIG_CAN_STB PC6 / M_VE_DIG_CAN_\STB //LED PIN/#define PIN_LED1 PG12 / M_LED1 /#define PIN_LED2 PH0 / M_LED2 /#define PIN_LED3 PH1 / M_LED3 /#define PIN_LED4 PH2 / M_LED4 /#define PIN_LED5 PH3 / M_LED5 /#define PIN_LED6 PG1 / M_LED6 /#define PIN_LED7 PG0 / M_LED7 //relay feedback ctrl PIN/#define PIN_BTS5180_DOPEN_LOAD PJ4 / M_DO_OPEN_LOAD_HS /#define PIN_BTS5180_DEN1 PG4 / M_RELAY1_DEN /#define PIN_BTS5180_DSEL1 PG5 / M_RELAY1_DSEL /#define PIN_BTS5180_DEN2 PH14 / M_RELAY2_DEN /#define PIN_BTS5180_DSEL2 PH13 / M_RELAY2_DSEL /#define PIN_BTS5180_DEN3 PF11 / M_RELAY3_DEN /#define PIN_BTS5180_DSEL3 PF10 / M_RELAY3_DSEL //relay ctrl PIN/#define PIN_ANODE_RELAY_CTRL PG3 / M_RELAY1_ANODE /#define PIN_CHARGE_RELAY_CTRL PI7 / M_RELAY1_CHARGE /#define PIN_CATHODE_RELAY_CTRL PI6 / M_RELAY2_CATHODE /#define PIN_HEAT_RELAY_CTRL PH15 / M_RELAY2_HEAT /#define PIN_PRECHARGE_RELAY_CTRL PE6 / M_RELAY_PRECHARGE /#define PIN_SPARE2_RELAY_CTRL PE7 / M_RELAY_SPARE2 /#define PIN_SPARE3_RELAY_CTRL PI3 / M_RELAY_SPARE3 /#define PIN_SPARE4_RELAY_CTRL PI2 / M_RELAY_SPARE4 /#define PIN_SPARE5_RELAY_CTRL PI1 / M_RELAY_SPARE5 /#define PIN_SPARE6_RELAY_CTRL PI0 / M_RELAY_SPARE6 /#define PIN_RELAY3_SPARE1_CTRL PF13 / M_RELAY3_SPARE1 /#define PIN_RELAY3_SPARE2_CTRL PC7 / M_RELAY3_SPARE2 //relay adhere detect PIN/#define PIN_HV_RELAY1 PH12 / M_HV_RELAY1 /#define PIN_HV_RELAY2 PH11 / M_HV_RELAY2 /#define PIN_HV_RELAY3 PG15 / M_HV_RELAY3 /#define PIN_HV_RELAY4 PG14 / M_HV_RELAY4 /#define PIN_HV_RELAY5 PE12 / M_HV_RELAY5 /#define PIN_LV_RELAY1 PE15 / M_LV_RELAY1 /#define PIN_LV_RELAY2 PF15 / M_LV_RELAY2 /#define PIN_LV_RELAY3 PE14 / M_LV_RELAY3 //insulate detected ctrl PIN/#define PIN_INSULATE_RELAY1 PH8 / M_INSULATION_RELAY1 /#define PIN_INSULATE_RELAY2 PH7 / M_INSULATION_RELAY2 /#define PIN_INSULATE_RELAY3 PH6 / M_INSULATION_RELAY3 /#define PIN_INSULATE_POWER_CTRL PF14 / M_INS_POWER //SPI CS ctrl pin/#define PIN_SPI0_CS_FM PF2 / M_FM_\CS /#define PIN_SPI0_CS_EEP PF3 / M_EEP_\CS /#define PIN_SPI0_CS_INSULATE PC15 / M_INS_\CS /#define PIN_SPI0_CS_FLASH0 PF5 / M_FLASH_\CS /#define PIN_SPI0_CS_FLASH1 PF4 / M_FLASH1_\CS /#define PIN_V_SPI_CS0 PG11 / M_VOL_AD_\CS /#define PIN_I_SPI_CS0 PE5 / M_CUR_\CNV //elect lock/#define PIN_MOTOR_P PA13 / M_ELOCK_IN1 /#define PIN_MOTOR_N PA4 / M_ELOCK_IN2 *//<----------------------------------digital I/O PIN setting end----------------------------------------------------//-------------------------------------PWM PIN setting begin---------------------------------------------------------/#define PIN_INTERLOCK_OUTPUT_CHANNEL PB11 /* M_INTERLOCK_OPWM, E0UC3 /#define PIN_INTERLOCK_INPUT_CHANNEL PB13 / M_INTERLOCK_IPWM, E0UC5 /#define PIN_CP_CHANNEL PF1 / M_CP, E0UC11 *//#define PWM_CAN_ERROR_CHANNEL OUTPUT PG8//#define PWM_AIRBAG_CHANNEL PC13/ /Airbag signal is used for digital signal/#define PWM_INTERLOCK_OUTPUT_CHANNEL (0u) /OUTPUT PB11//#define PWM_INTERLOCK_INPUT_CHANNEL (1u) INPUT PB13/#define PWM_CP_CHANNEL (0u) /INPUT PF4//-------------------------------------PWM PIN setting end-----------------------------------------------------------//-------------------------------------ADC PIN setting begin---------------------------------------------------------//ADC/#define PIN_CC_CHANNEL PF0 /* M_CC, ANS8 /#define PIN_CC2_CHANNEL PB10 / M_CC2, ANS2 /#define PIN_BOARD_POWER_FB_CHANNEL PD0 / M_POWER_FB, ANP4 /#define PIN_SHUNT_CURRENT_TEMP_CHANNEL PD2 / M_CURR_TEMP, ANP6 /#define PIN_ANODE_FB_CHANNEL PD3 / M_ANO_FEEDBACK, ANP7 /#define PIN_CATHODE_FB_CHANNEL PD4 / M_CAT_FEDBACK, ANP8 /#define PIN_CURRENT_HALL_POWER_CHANNEL PD1 / M_CURR_POWER_FB, ANP5 /#define PIN_CURRENT_HALL_CHANNEL1 PF6 / M_CURR_CHANNAL1, ANS14 /#define PIN_CURRENT_HALL_CHANNEL2 PF7 / M_CURR_CHANNAL2, ANS15 /#define PIN_FAST_CHARGE_TEMP_CHANNEL PD6 / M_QUCHARGE_TEMPH_AI_LS, ANP10 /#define PIN_SLOW_CHARGE_TEMP_CHANNEL PD5 / M_SLCHARGE_TEMPH_AI_LS, ANP9 /#define PIN_BTS5180_IS1_CHANNEL PD11 / M_RELAY1_IS, ANP15 /#define PIN_BTS5180_IS2_CHANNEL PD10 / M_RELAY2_IS, ANP14 /#define PIN_CC2_2_CHANNEL PB8 / M_CC2_2, ANS0 /#define PIN_FAST_CHARGE_TEMP2_CHANNEL PD7 / M_QUCHARGE_TEMPH_AI_LS2, ANP11 /#define PIN_SLOW_CHARGE_TEMP2_CHANNEL PD8 / M_SLCHARGE_TEMPH_AI_LS2, ANP12 /#define PIN_BTS5180_IS3_CHANNEL PD9 / M_RELAY3_IS, ANP13 */#define ADC_CC_CHANNEL (32u+8u) /PF0/#define ADC_CC2_CHANNEL (32u+2u) /PB10/#define ADC_BOARD_POWER_FB_CHANNEL (4u) /PD0/#define ADC_SHUNT_CURRENT_TEMP_CHANNEL (6u) /PD2/#define ADC_ANODE_FB_CHANNEL (7u) /PD3/#define ADC_CATHODE_FB_CHANNEL (8u) /PD4/#define ADC_CURRENT_HALL_POWER_CHANNEL (5u) /PD1/#define ADC_CURRENT_HALL_CHANNEL1 (32u+14u) /PF6/#define ADC_CURRENT_HALL_CHANNEL2 (32u+15u) /PF7/#define ADC_FAST_CHARGE_TEMP_CHANNEL (10u) /PD6/#define ADC_SLOW_CHARGE_TEMP_CHANNEL (9u) /PD5/#define ADC_BTS5180_IS1_CHANNEL (15u) /PD11/#define ADC_BTS5180_IS2_CHANNEL (14u) /PD10/#define ADC_CC2_2_CHANNEL (32u+0u) /PB8/#define ADC_FAST_CHARGE_TEMP2_CHANNEL (11u) /PD7/#define ADC_SLOW_CHARGE_TEMP2_CHANNEL (12u) /PD8/#define ADC_BTS5180_IS3_CHANNEL (13u) /PD9//---------------------------------------ADC PIN setting end-----------------------------------------------------------//-----------------------------------digital communication PIN setting begin ---------------------------------------------->//* CAN5 /#define PIN_CAN5_TX PE1 / M_VE_CAN_TXD /#define PIN_CAN5_RX PE0 / M_VE_CAN_RXD // CAN1 /#define PIN_CAN1_TX PC10 / M_IN_CAN_TXD /#define PIN_CAN1_RX PC11 / M_IN_CAN_RXD // CAN4 /#define PIN_CAN4_TX PC2 / M_CHARGE_CAN_TXD /#define PIN_CAN4_RX PC3 / M_CHARGE_CAN_RXD // CAN0 /#define PIN_CAN0_TX PB0 / M_IN_DIG_CAN_TXD /#define PIN_CAN0_RX PB1 / M_IN_DIG_CAN_RXD // CAN2 /#define PIN_CAN2_TX PF8 / M_VE_DIG_CAN_TXD /#define PIN_CAN2_RX PF9 / M_VE_DIG_CAN_RXD *//* SPI2 /#define PIN_SPI2_SCK PC14 / M_SCK /#define PIN_SPI2_MISO PC12 / M_MISO /#define PIN_SPI2_MOSI PC13 / M_MOSI // SPI4 /#define PIN_V_SPI4_SCK PI5 / M_VOL_AD_SCK /#define PIN_V_SPI4_MISO PG10 / M_VOL_AD_DATA // SPI1 /#define PIN_I_SPI1_SCK PE4 / M_CUR_AD_SCK /#define PIN_I_SPI1_MISO PE2 / M_CUR_AD_DATA /#define PIN_I_SPI1_MOSI PE3 / M_CUR_AD_DATA *//* IIC0 /#define PIN_IIC0_SCL PA11 / M_RTC_SCL /#define PIN_IIC0_SDA PA10 / M_RTC_SDA *//<----------------------------------digital communication PIN setting end--------------------------------------------------//* -----------------------------------GPIO OUTPUT macro define begin-----------------------------------------------------------*//power lock/#define bsp_powerEnable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 1)#define bsp_powerDisable() GPIO_SetVal(PIN_POWER_SELFACTIVE, 0)#define bsp_slavePowerActive_En() GPIO_SetVal(PIN_SLAVE_POWER_SWITCH, 1)#define bsp_slavePowerActive_Dis() GPIO_SetVal(PIN_SLAVE_POWER_SWITCH, 0)/spare output, E6305 is canceled/#define bsp_spare_out_on() 1/GPIO_SetVal(PB3, 1)/#define bsp_spare_out_off() 1/GPIO_SetVal(PB3, 0)//CP switch/#define bsp_CHARGE_CP_S2_ON() GPIO_SetVal(PIN_CP_SWITCH, 1)#define bsp_CHARGE_CP_S2_OFF() GPIO_SetVal(PIN_CP_SWITCH, 0)/charge lock/#define bsp_POWER_KEEP_QUICK_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,1)#define bsp_POWER_KEEP_DRIVER_CHARGE() GPIO_SetVal(PIN_CHARGE_POWER_LOCK,0)/EEPROM/#define bsp_EEP_MC25LC256_WP_ON() GPIO_SetVal(PIN_MC25LC256_WP,0)#define bsp_EEP_MC25LC256_WP_OFF() GPIO_SetVal(PIN_MC25LC256_WP,1)#define bsp_EEP_FM25LC160_WP_ON() GPIO_SetVal(PIN_FM25LC160_WP,0)#define bsp_EEP_FM25LC160_WP_OFF() GPIO_SetVal(PIN_FM25LC160_WP,1)/can error detect/#define bsp_vehicleCanErr_OK() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 1) /pwm信号,需要重新设计否/#define bsp_vehicleCanErr_FAULT() GPIO_SetVal(PIN_VE_CAN_ERR_OUT, 0)/LED/#define bsp_set_led1_on() GPIO_SetVal(PIN_LED1, 0)#define bsp_set_led1_off() GPIO_SetVal(PIN_LED1, 1)#define bsp_set_led2_on() GPIO_SetVal(PIN_LED2, 0)#define bsp_set_led2_off() GPIO_SetVal(PIN_LED2, 1)#define bsp_set_led3_on() GPIO_SetVal(PIN_LED3, 0)#define bsp_set_led3_off() GPIO_SetVal(PIN_LED3, 1)#define bsp_set_led4_on() GPIO_SetVal(PIN_LED4, 0)#define bsp_set_led4_off() GPIO_SetVal(PIN_LED4, 1)#define bsp_set_led5_on() GPIO_SetVal(PIN_LED5, 0)#define bsp_set_led5_off() GPIO_SetVal(PIN_LED5, 1)#define bsp_set_led6_on() GPIO_SetVal(PIN_LED6, 0)#define bsp_set_led6_off() GPIO_SetVal(PIN_LED6, 1)#define bsp_set_led7_on() GPIO_SetVal(PIN_LED7, 0)#define bsp_set_led7_off() GPIO_SetVal(PIN_LED7, 1)/CAN/#define bsp_SetVehicleCan_STB() {GPIO_SetVal(PIN_VE_CAN_STB, 0);GPIO_SetVal(PIN_VE_CAN_EN, 0);}#define bsp_SetVehicleCan_ON() {GPIO_SetVal(PIN_VE_CAN_STB, 1);GPIO_SetVal(PIN_VE_CAN_EN, 1);GPIO_SetVal(PIN_VE_CAN_WAKE_SWITCH, 0);}#define bsp_SetVehicleCan_SLP() {GPIO_SetVal(PIN_VE_CAN_STB, 0);GPIO_SetVal(PIN_VE_CAN_EN, 1);}#define bsp_SetInnerCan_STB() GPIO_SetVal(PIN_IN_CAN_STB, 1) /stb mode/#define bsp_SetInnerCan_ON() GPIO_SetVal(PIN_IN_CAN_STB, 0) /normal mode/#define bsp_SetChargeCan_STB() 1/GPIO_SetVal(PF12, 1) stb mode/#define bsp_SetChargeCan_ON() 1/GPIO_SetVal(PF12, 0) normal mode/#define bsp_SetInnerDigCan_STB() GPIO_SetVal(PIN_IN_DIG_CAN_STB, 1) /stb mode/#define bsp_SetInnerDigCan_ON() GPIO_SetVal(PIN_IN_DIG_CAN_STB, 0) /normal mode/#define bsp_SetVehicleDigCan_STB() GPIO_SetVal(PIN_VE_DIG_CAN_STB, 1) /stb mode/#define bsp_SetVehicleDigCan_ON() GPIO_SetVal(PIN_VE_DIG_CAN_STB, 0) /normal mode/#define bsp_Set_IN_CAN_STB_ON() GPIO_SetVal(PIN_IN_CAN_STB, 1)#define bsp_Set_IN_CAN_STB_OFF() GPIO_SetVal(PIN_IN_CAN_STB, 0)#define bsp_Set_VE_CAN_EN_ON() GPIO_SetVal(PIN_VE_CAN_EN, 1)#define bsp_Set_VE_CAN_EN_OFF() GPIO_SetVal(PIN_VE_CAN_EN, 0)#define bsp_Set_VE_CAN_STB_ON() GPIO_SetVal(PIN_VE_CAN_STB, 1)#define bsp_Set_VE_CAN_STB_OFF() GPIO_SetVal(PIN_VE_CAN_STB, 0)#define bsp_Set_VE_CAN_WAKE_SWITCH_ON() GPIO_SetVal(PIN_VE_CAN_WAKE_SWITCH, 1)#define bsp_Set_VE_CAN_WAKE_SWITCH_OFF() GPIO_SetVal(PIN_VE_CAN_WAKE_SWITCH, 0)#define bsp_Set_IN_DIG_CAN_STB_ON() GPIO_SetVal(PIN_IN_DIG_CAN_STB, 1)#define bsp_Set_IN_DIG_CAN_STB_OFF() GPIO_SetVal(PIN_IN_DIG_CAN_STB, 0)#define bsp_Set_VE_DIG_CAN_STB_ON() GPIO_SetVal(PIN_VE_DIG_CAN_STB, 1)#define bsp_Set_VE_DIG_CAN_STB_OFF() GPIO_SetVal(PIN_VE_DIG_CAN_STB, 0)/HD WATCHDOG/#define bsp_HD_WDT_CLR_P() GPIO_SetVal(PIN_WATCHDOG_FEED,0)#define bsp_HD_WDT_SET_P() GPIO_SetVal(PIN_WATCHDOG_FEED,1)/INSULATE/#define bsp_INSULATE_POWER_ON() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 0)//#define bsp_INSULATE_POWER_OFF() GPIO_SetVal(PIN_INSULATE_POWER_CTRL, 1)//#define bsp_INSULATE_TO_GND_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 1)#define bsp_INSULATE_TO_GND_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY1, 0)#define bsp_INSULATE_ANODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 1)#define bsp_INSULATE_ANODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY3, 0)#define bsp_INSULATE_CATHODE_RESIST_CONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 1)#define bsp_INSULATE_CATHODE_RESIST_DISCONEC() GPIO_SetVal(PIN_INSULATE_RELAY2, 0)/HV ADHERE/#define bsp_HV_SET_ANODE_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY1,0)#define bsp_HV_SET_ANODE_RELAY_F_POINT_ON() GPIO_SetVal(PIN_HV_RELAY1,1)#define bsp_HV_SET_ANODE_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY2,0)#define bsp_HV_SET_ANODE_RELAY_B_POINT_ON() GPIO_SetVal(PIN_HV_RELAY2,1)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY1,0)#define bsp_HV_SET_CATHOD_RELAY_F_POINT_ON() GPIO_SetVal(PIN_LV_RELAY1,1)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY2,0)#define bsp_HV_SET_CATHOD_RELAY_B_POINT_ON() GPIO_SetVal(PIN_LV_RELAY2,1)#define bsp_HV_SET_HV_RELAY3_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY3,0)#define bsp_HV_SET_HV_RELAY3_POINT_ON() GPIO_SetVal(PIN_HV_RELAY3,1)#define bsp_HV_SET_HV_RELAY4_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY4,0)#define bsp_HV_SET_HV_RELAY4_POINT_ON() GPIO_SetVal(PIN_HV_RELAY4,1)#define bsp_HV_SET_HV_RELAY5_POINT_OFF() GPIO_SetVal(PIN_HV_RELAY5,0)#define bsp_HV_SET_HV_RELAY5_POINT_ON() GPIO_SetVal(PIN_HV_RELAY5,1)#define bsp_HV_SET_LV_RELAY3_POINT_OFF() GPIO_SetVal(PIN_LV_RELAY3,0)#define bsp_HV_SET_LV_RELAY3_POINT_ON() GPIO_SetVal(PIN_LV_RELAY3,1)/HV RELAY/#define bsp_HV_SET_ANODE_RELAY_ON() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,1)#define bsp_HV_SET_ANODE_RELAY_OFF() GPIO_SetVal(PIN_ANODE_RELAY_CTRL,0)#define bsp_HV_SET_CHARGE_RELAY_ON() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,1)#define bsp_HV_SET_CHARGE_RELAY_OFF() GPIO_SetVal(PIN_CHARGE_RELAY_CTRL,0)#define bsp_HV_SET_CATHODE_RELAY_ON() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,1)#define bsp_HV_SET_CATHODE_RELAY_OFF() GPIO_SetVal(PIN_CATHODE_RELAY_CTRL,0)#define bsp_HV_SET_PRE_DISCh_RELAY_ON() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 1)#define bsp_HV_SET_PRE_DISCh_RELAY_OFF() GPIO_SetVal(PIN_PRECHARGE_RELAY_CTRL, 0)#define bsp_HV_SET_HEAT_RELAY_ON() GPIO_SetVal(PIN_HEAT_RELAY_CTRL,1)#define bsp_HV_SET_HEAT_RELAY_OFF() GPIO_SetVal(PIN_HEAT_RELAY_CTRL,0)#define bsp_HV_SET_ASSIST_A_RELAY_ON() 1/GPIO_SetVal(PE0,1)/#define bsp_HV_SET_ASSIST_A_RELAY_OFF() 0/GPIO_SetVal(PE0,0)/#define bsp_HV_SET_SPARE2_RELAY_ON() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,1)#define bsp_HV_SET_SPARE2_RELAY_OFF() GPIO_SetVal(PIN_SPARE2_RELAY_CTRL,0)#define bsp_HV_SET_SPARE3_RELAY_ON() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,1)#define bsp_HV_SET_SPARE3_RELAY_OFF() GPIO_SetVal(PIN_SPARE3_RELAY_CTRL,0)#define bsp_HV_SET_SPARE4_RELAY_ON() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,1)#define bsp_HV_SET_SPARE4_RELAY_OFF() GPIO_SetVal(PIN_SPARE4_RELAY_CTRL,0)#define bsp_HV_SET_SPARE5_RELAY_ON() GPIO_SetVal(PIN_SPARE5_RELAY_CTRL,1)#define bsp_HV_SET_SPARE5_RELAY_OFF() GPIO_SetVal(PIN_SPARE5_RELAY_CTRL,0)#define bsp_HV_SET_SPARE6_RELAY_ON() GPIO_SetVal(PIN_SPARE6_RELAY_CTRL,1)#define bsp_HV_SET_SPARE6_RELAY_OFF() GPIO_SetVal(PIN_SPARE6_RELAY_CTRL,0)#define bsp_HV_SET_RELAY3_SPARE1_ON() GPIO_SetVal(PIN_RELAY3_SPARE1_CTRL,1)#define bsp_HV_SET_RELAY3_SPARE1_OFF() GPIO_SetVal(PIN_RELAY3_SPARE1_CTRL,0)#define bsp_HV_SET_RELAY3_SPARE2_ON() GPIO_SetVal(PIN_RELAY3_SPARE2_CTRL,1)#define bsp_HV_SET_RELAY3_SPARE2_OFF() GPIO_SetVal(PIN_RELAY3_SPARE2_CTRL,0)/elect lock/#define bsp_SLOWCHARGELOCK1_ON() GPIO_SetVal(PIN_MOTOR_P,1)#define bsp_SLOWCHARGELOCK2_ON() GPIO_SetVal(PIN_MOTOR_N,1)#define bsp_SLOWCHARGELOCK1_OFF() GPIO_SetVal(PIN_MOTOR_P,0)#define bsp_SLOWCHARGELOCK2_OFF() GPIO_SetVal(PIN_MOTOR_N,0)/DCDC ctrl/#define bsp_DCDC_WAKEUP_ON() GPIO_SetVal(PIN_DCDC_WAKEUP,1)#define bsp_DCDC_WAKEUP_OFF() GPIO_SetVal(PIN_DCDC_WAKEUP,0)/GBOX ctrl/#define bsp_GBOX_POWER_ON() GPIO_SetVal(PIN_GBOX_POWER,1)#define bsp_GBOX_POWER_OFF() GPIO_SetVal(PIN_GBOX_POWER,0)/relay feedback ctrl/#define bsp_Set_BTS5180_DOPEN_LOAD_ON() GPIO_SetVal(PIN_BTS5180_DOPEN_LOAD, 1)#define bsp_Set_BTS5180_DOPEN_LOAD_OFF() GPIO_SetVal(PIN_BTS5180_DOPEN_LOAD, 0)#define bsp_Set_BTS5180_DEN1_ON() GPIO_SetVal(PIN_BTS5180_DEN1, 1)#define bsp_Set_BTS5180_DEN1_OFF() GPIO_SetVal(PIN_BTS5180_DEN1, 0)#define bsp_Set_BTS5180_DSEL1_ON() GPIO_SetVal(PIN_BTS5180_DSEL1, 1)#define bsp_Set_BTS5180_DSEL1_OFF() GPIO_SetVal(PIN_BTS5180_DSEL1, 0)#define bsp_Set_BTS5180_DEN2_ON() GPIO_SetVal(PIN_BTS5180_DEN2, 1)#define bsp_Set_BTS5180_DEN2_OFF() GPIO_SetVal(PIN_BTS5180_DEN2, 0)#define bsp_Set_BTS5180_DSEL2_ON() GPIO_SetVal(PIN_BTS5180_DSEL2, 1)#define bsp_Set_BTS5180_DSEL2_OFF() GPIO_SetVal(PIN_BTS5180_DSEL2, 0)#define bsp_Set_BTS5180_DEN3_ON() GPIO_SetVal(PIN_BTS5180_DEN3, 1)#define bsp_Set_BTS5180_DEN3_OFF() GPIO_SetVal(PIN_BTS5180_DEN3, 0)#define bsp_Set_BTS5180_DSEL3_ON() GPIO_SetVal(PIN_BTS5180_DSEL3, 1)#define bsp_Set_BTS5180_DSEL3_OFF() GPIO_SetVal(PIN_BTS5180_DSEL3, 0)/SPI CS ctrl/#define bsp_Set_SPI0_CS_FM_ON() GPIO_SetVal(PIN_SPI0_CS_FM, 1)#define bsp_Set_SPI0_CS_FM_OFF() GPIO_SetVal(PIN_SPI0_CS_FM, 0)#define bsp_Set_SPI0_CS_EEP_ON() GPIO_SetVal(PIN_SPI0_CS_EEP, 1)#define bsp_Set_SPI0_CS_EEP_OFF() GPIO_SetVal(PIN_SPI0_CS_EEP, 0)#define bsp_Set_SPI0_CS_INSULATE_ON() GPIO_SetVal(PIN_SPI0_CS_INSULATE, 1)#define bsp_Set_SPI0_CS_INSULATE_OFF() GPIO_SetVal(PIN_SPI0_CS_INSULATE, 0)#define bsp_Set_SPI0_CS_FLASH0_ON() GPIO_SetVal(PIN_SPI0_CS_FLASH0, 1)#define bsp_Set_SPI0_CS_FLASH0_OFF() GPIO_SetVal(PIN_SPI0_CS_FLASH0, 0)#define bsp_Set_SPI0_CS_FLASH1_ON() GPIO_SetVal(PIN_SPI0_CS_FLASH1, 1)#define bsp_Set_SPI0_CS_FLASH1_OFF() GPIO_SetVal(PIN_SPI0_CS_FLASH1, 0)#define bsp_Set_V_SPI_CS0_ON() GPIO_SetVal(PIN_V_SPI_CS0, 1)#define bsp_Set_V_SPI_CS0_OFF() GPIO_SetVal(PIN_V_SPI_CS0, 0)#define bsp_Set_I_SPI_CS0_ON() GPIO_SetVal(PIN_I_SPI_CS0, 1)#define bsp_Set_I_SPI_CS0_OFF() GPIO_SetVal(PIN_I_SPI_CS0, 0)/* -----------------------------------GPIO OUTPUT macro define end-----------------------------------------------------------*//* -----------------------------------GPIO FEEDBACK macro define begin-----------------------------------------------------------*//feedback, it’s used for test normally/#define bsp_HD_WATCHDOG_FEED_LEVEL GPIO_GetOutputVal(PIN_WATCHDOG_FEED)#define bsp_selfActive GPIO_GetOutputVal(PIN_POWER_SELFACTIVE)#define bsp_slavePowerActive GPIO_GetOutputVal(PIN_SLAVE_POWER_SWITCH)#define bsp_ChargeFirst GPIO_GetOutputVal(PIN_CHARGE_POWER_LOCK)#define bsp_CP_S2Switch GPIO_GetOutputVal(PIN_CP_SWITCH)#define bsp_DCDC_WAKEUP_SETTING GPIO_GetOutputVal(PIN_DCDC_WAKEUP)#define bsp_GBOX_POWER_SETTING GPIO_GetOutputVal(PIN_GBOX_POWER)/eeprom write protect/#define bsp_MC25LC256_WP_SETTING GPIO_GetOutputVal(PIN_MC25LC256_WP)#define bsp_FM25LC160_SETTING GPIO_GetOutputVal(PIN_FM25LC160_WP)/CAN ctrl/#define bsp_vehicleCanErr GPIO_GetOutputVal(PIN_VE_CAN_ERR_OUT)#define bsp_IN_CAN_STB_SETTING GPIO_GetOutputVal(PIN_IN_CAN_STB)#define bsp_VE_CAN_EN_SETTING GPIO_GetOutputVal(PIN_VE_CAN_EN)#define bsp_VE_CAN_STB_SETTING GPIO_GetOutputVal(PIN_VE_CAN_STB)#define bsp_VE_CAN_WAKE_SWITCH_SETTING GPIO_GetOutputVal(PIN_VE_CAN_WAKE_SWITCH)#define bsp_IN_DIG_CAN_STB_SETTING GPIO_GetOutputVal(PIN_IN_DIG_CAN_STB)#define bsp_VE_DIG_CAN_STB_SETTING GPIO_GetOutputVal(PIN_VE_DIG_CAN_STB)/LED/#define bsp_LED1_SETTING() GPIO_GetOutputVal(PIN_LED1)#define bsp_LED2_SETTING() GPIO_GetOutputVal(PIN_LED2)#define bsp_LED3_SETTING() GPIO_GetOutputVal(PIN_LED3)#define bsp_LED4_SETTING() GPIO_GetOutputVal(PIN_LED4)#define bsp_LED5_SETTING() GPIO_GetOutputVal(PIN_LED5)#define bsp_LED6_SETTING() GPIO_GetOutputVal(PIN_LED6)#define bsp_LED7_SETTING() GPIO_GetOutputVal(PIN_LED7)/relay feedback ctrl/#define bsp_BTS5180_DOPEN_LOAD_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DOPEN_LOAD)#define bsp_BTS5180_DEN1_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DEN1)#define bsp_BTS5180_DSEL1_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DSEL1)#define bsp_BTS5180_DEN2_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DEN2)#define bsp_BTS5180_DSEL2_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DSEL2)#define bsp_BTS5180_DEN3_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DEN3)#define bsp_BTS5180_DSEL3_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DSEL3)/HV RELAY/#define bsp_GET_ANODE_RELAY_SETTING GPIO_GetOutputVal(PIN_ANODE_RELAY_CTRL)#define bsp_GET_CHARGE_RELAY_SETTING GPIO_GetOutputVal(PIN_CHARGE_RELAY_CTRL)#define bsp_GET_CATHODE_RELAY_SETTING GPIO_GetOutputVal(PIN_CATHODE_RELAY_CTRL)#define bsp_GET_PRE_DISCh_RELAY_SETTING GPIO_GetOutputVal(PIN_PRECHARGE_RELAY_CTRL)#define bsp_GET_HEAT_RELAY_SETTING GPIO_GetOutputVal(PIN_HEAT_RELAY_CTRL)#define bsp_GET_SPARE2_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE2_RELAY_CTRL)#define bsp_GET_SPARE3_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE3_RELAY_CTRL)#define bsp_GET_SPARE4_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE4_RELAY_CTRL)#define bsp_GET_SPARE5_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE5_RELAY_CTRL)#define bsp_GET_SPARE6_RELAY_SETTING GPIO_GetOutputVal(PIN_SPARE6_RELAY_CTRL)#define bsp_HV_GET_RELAY3_SPARE1_SETTING GPIO_GetOutputVal(PIN_RELAY3_SPARE1_CTRL)#define bsp_HV_GET_RELAY3_SPARE2_SETTING GPIO_GetOutputVal(PIN_RELAY3_SPARE2_CTRL)/relay feedback ctrl/#define bsp_Get_BTS5180_DOPEN_LOAD_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DOPEN_LOAD)#define bsp_Get_BTS5180_DEN1_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DEN1)#define bsp_Get_BTS5180_DSEL1_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DSEL1)#define bsp_Get_BTS5180_DEN2_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DEN2)#define bsp_Get_BTS5180_DSEL2_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DSEL2)#define bsp_Get_BTS5180_DEN3_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DEN3)#define bsp_Get_BTS5180_DSEL3_SETTING() GPIO_GetOutputVal(PIN_BTS5180_DSEL3)/HV ADHERE/#define bsp_GET_ANODE_RELAY_F_POINT GPIO_GetOutputVal(PIN_HV_RELAY1)#define bsp_GET_ANODE_RELAY_B_POINT GPIO_GetOutputVal(PIN_HV_RELAY2)#define bsp_GET_CATHOD_RELAY_F_POINT GPIO_GetOutputVal(PIN_LV_RELAY1)#define bsp_GET_CATHOD_RELAY_B_POINT GPIO_GetOutputVal(PIN_LV_RELAY2)#define bsp_GET_HV_RELAY3_POINT GPIO_GetOutputVal(PIN_HV_RELAY3)#define bsp_GET_HV_RELAY4_POINT GPIO_GetOutputVal(PIN_HV_RELAY4)#define bsp_GET_HV_RELAY5_POINT GPIO_GetOutputVal(PIN_HV_RELAY5)#define bsp_GET_LV_RELAY3_POINT GPIO_GetOutputVal(PIN_LV_RELAY3)/insulate detected ctrl/#define bsp_INSULATE_RELAY1_SETTING() GPIO_GetOutputVal(PIN_INSULATE_RELAY1)#define bsp_INSULATE_RELAY2_SETTING() GPIO_GetOutputVal(PIN_INSULATE_RELAY2)#define bsp_INSULATE_RELAY3_SETTING() GPIO_GetOutputVal(PIN_INSULATE_RELAY3)#define bsp_INSULATE_POWER_CTRL_SETTING() GPIO_GetOutputVal(PIN_INSULATE_POWER_CTRL)/SPI CS ctrl/#define bsp_SPI0_CS_FM_SETTING() GPIO_GetOutputVal(PIN_SPI0_CS_FM)#define bsp_SPI0_CS_EEP_SETTING() GPIO_GetOutputVal(PIN_SPI0_CS_EEP)#define bsp_SPI0_CS_INSULATE_SETTING() GPIO_GetOutputVal(PIN_SPI0_CS_INSULATE)#define bsp_SPI0_CS_FLASH0_SETTING() GPIO_GetOutputVal(PIN_SPI0_CS_FLASH0)#define bsp_SPI0_CS_FLASH1_SETTING() GPIO_GetOutputVal(PIN_SPI0_CS_FLASH1)#define bsp_V_SPI_CS0_SETTING() GPIO_GetOutputVal(PIN_V_SPI_CS0)#define bsp_I_SPI_CS0_SETTING() GPIO_GetOutputVal(PIN_I_SPI_CS0)/elect lock/#define bsp_MOTOR_P_SETTING() GPIO_GetOutputVal(PIN_MOTOR_P)#define bsp_MOTOR_N_SETTING() GPIO_GetOutputVal(PIN_MOTOR_N)/* -----------------------------------GPIO FEEDBACK macro define end--------------------------------------------------*//* -----------------------------------PWM macro define begin-----------------------------------------------------------*///#define PWM_OUTPUT_CAN_ERROR po_write_channel(PWM_CAN_ERROR_CHANNEL,50)#define PWM_OUTPUT_INTERLOCK po_write_channel(PWM_INTERLOCK_OUTPUT_CHANNEL,50)#define PWM_INPUT_CP(pulse_width) pi_read_channel(PWM_CP_CHANNEL, pulse_width)//#define PWM_INPUT_INTERLOCK(pulse_width) pi_read_channel(PWM_INTERLOCK_INPUT_CHANNEL,pulse_width)/* -----------------------------------PWM macro define end--------------------------------------------------------------*/#if APP_RUN_MODE == RUN_MODE_NORMAL/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------/#define bsp_IGN GPIO_GetVal(PIN_IGN)#define bsp_SPARE_ONOFF GPIO_GetVal(PIN_SPARE_ON_SLOW_CHARGE_ON)#define bsp_SAFELINE 1#define bsp_AirBag_Level GPIO_GetVal(PIN_AIRBAG) /airbag is pwm signal, but it’s a digital signal here?/#define bsp_INPUT_INTERLOCK_Level GPIO_GetVal(PIN_INTERLOCK_INPUT_CHANNEL)#define bsp_slowChargeLockLocation GPIO_GetVal(PIN_E_LOCK) / the signal of slowcharge lock location */#define bsp_E_NFAULT_Level GPIO_GetVal(PIN_E_NFAULT)#define bsp_VE_CAN_ERR_IN_Level GPIO_GetVal(PIN_VE_CAN_ERR_IN)#define bsp_SPARE_ON_Level GPIO_GetVal(PIN_SPARE_ON)#define bsp_AIRBAG2_Level GPIO_GetVal(PIN_AIRBAG2)#define bsp_CP_WAKE_Level GPIO_GetVal(PIN_CP_WAKE)/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS 0#define bsp_GET_CHARGE_RELAY_STATUS 0#define bsp_GET_CATHODE_RELAY_STATUS 0#define bsp_GET_PRE_DISCh_RELAY_STATUS 0#define bsp_GET_HEAT_RELAY_STATUS 0#define bsp_GET_ASSIST_A_RELAY_STATUS 0#define bsp_ANODE_FEEDBACK_LV GPIO_GetVal(PIN_ANODE_FB_CHANNEL)#define bsp_CATHODE_FEEDBACK_LV GPIO_GetVal(PIN_CATHODE_FB_CHANNEL)/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL ADC_GetChannelValue(ADC_CC_CHANNEL)#define bsp_CHARGE_CC2_VAL ADC_GetChannelValue(ADC_CC2_CHANNEL)#define bsp_POWER_FB_VAL ADC_GetChannelValue(ADC_BOARD_POWER_FB_CHANNEL)#define bsp_CURRENT_TEMP_AD_VAL ADC_GetChannelValue(ADC_SHUNT_CURRENT_TEMP_CHANNEL)#define bsp_ANODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_ANODE_FB_CHANNEL)#define bsp_CATHODE_FEEDBACK_VAL ADC_GetChannelValue(ADC_CATHODE_FB_CHANNEL)#define bsp_CURR_POWER_FB_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_POWER_CHANNEL)#define bsp_CURR_CHANNAL2_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_CHANNEL2)#define bsp_CURR_CHANNAL1_VAL ADC_GetChannelValue(ADC_CURRENT_HALL_CHANNEL1)#define bsp_SLCHARGE_TEMP_ADC_VAL ADC_GetChannelValue(ADC_SLOW_CHARGE_TEMP_CHANNEL)#define bsp_QUCHARGE_TEMP_ADC_VAL ADC_GetChannelValue(ADC_FAST_CHARGE_TEMP_CHANNEL)#define bsp_BTS5180_IS1_ADC_VAL ADC_GetChannelValue(ADC_BTS5180_IS1_CHANNEL)#define bsp_BTS5180_IS2_ADC_VAL ADC_GetChannelValue(ADC_BTS5180_IS2_CHANNEL)#define bsp_CHARGE2_CC2_VAL ADC_GetChannelValue(ADC_CC2_2_CHANNEL)#define bsp_QUCHARGE_TEMP2_ADC_VAL ADC_GetChannelValue(ADC_FAST_CHARGE_TEMP2_CHANNEL)#define bsp_SLCHARGE_TEMP2_ADC_VAL ADC_GetChannelValue(ADC_SLOW_CHARGE_TEMP2_CHANNEL)#define bsp_BTS5180_IS3_ADC_VAL ADC_GetChannelValue(ADC_BTS5180_IS3_CHANNEL)/* -----------------------------------ADC macro define end------------------------------------------------------------*/#elif APP_RUN_MODE == RUN_MODE_TESTextern uint8_t test_bsp_IGN;extern uint8_t test_bsp_SPARE_ONOFF;extern uint8_t test_bsp_SAFELINE;extern uint8_t test_bsp_AirBag_Level;extern uint8_t test_ANODE_RELAY_FB_STATUS;extern uint8_t test_CHARGE_RELAY_FB_STATUS;extern uint8_t test_CATHODE_RELAY_FB_STATUS;extern uint8_t test_PRE_RELAY_FB_STATUS;extern uint8_t test_HEAT_RELAY_FB_STATUS;extern uint8_t test_ASSIST_RELAY_FB_STATUS;extern uint8_t test_bsp_INPUT_INTERLOCK_Level;extern uint16_t test_bsp_POWER_FB_VAL;extern uint16_t test_bsp_CURR_POWER_FB_VAL;extern uint16_t test_bsp_CHARGE_CC2_VAL;extern uint16_t test_bsp_CURR_CHANNAL2_VAL;extern uint16_t test_bsp_CURR_CHANNAL1_VAL;extern uint16_t test_bsp_CHARGE_CC_VAL;extern uint16_t test_bsp_CURRENT_TEMP_AD_VAL;extern uint16_t test_bsp_SLCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_QUCHARGE_TEMP_ADC_VAL;extern uint16_t test_bsp_ANODE_FEEDBACK_VAL;extern uint16_t test_bsp_CATHODE_FEEDBACK_VAL;extern uint16_t test_cpHwStatus;extern uint16_t test_main_volt;extern uint16_t test_main_current;extern uint16_t test_insAnodeThr;extern uint16_t test_insCathodeThr;/* -----------------------------------GPIO INPUT macro define begin-----------------------------------------------------------*/#define bsp_IGN test_bsp_IGN#define bsp_SPARE_ONOFF test_bsp_SPARE_ONOFF#define bsp_SAFELINE test_bsp_SAFELINE#define bsp_AirBag_Level test_bsp_AirBag_Level#define bsp_AIRBAG2_Level test_bsp_AirBag_Level#define bsp_SPARE_ON_Level test_bsp_IGN#define bsp_CP_WAKE_Level test_bsp_IGN/HV RELAY FEEDBACK/#define bsp_GET_ANODE_RELAY_STATUS test_ANODE_RELAY_FB_STATUS#define bsp_GET_CHARGE_RELAY_STATUS test_CHARGE_RELAY_FB_STATUS#define bsp_GET_CATHODE_RELAY_STATUS test_CATHODE_RELAY_FB_STATUS#define bsp_GET_PRE_DISCh_RELAY_STATUS test_PRE_RELAY_FB_STATUS#define bsp_GET_HEAT_RELAY_STATUS test_HEAT_RELAY_FB_STATUS#define bsp_GET_ASSIST_A_RELAY_STATUS test_ASSIST_RELAY_FB_STATUS/* hv lock check level */#define bsp_INPUT_INTERLOCK_Level test_bsp_INPUT_INTERLOCK_Level#define bsp_slowChargeLockLocation 0#define bsp_E_NFAULT_Level 0#define bsp_ANODE_FEEDBACK_LV test_ANODE_RELAY_FB_STATUS#define bsp_CATHODE_FEEDBACK_LV test_CATHODE_RELAY_FB_STATUS#define bsp_VE_CAN_ERR_IN_Level 0/* -----------------------------------GPIO INPUT macro define end-----------------------------------------------------------*//* -----------------------------------ADC macro define begin-----------------------------------------------------------*/#define bsp_CHARGE_CC_VAL test_bsp_CHARGE_CC_VAL#define bsp_CHARGE_CC2_VAL test_bsp_CHARGE_CC2_VAL#define bsp_POWER_FB_VAL test_bsp_POWER_FB_VAL#define bsp_CURRENT_TEMP_AD_VAL test_bsp_CURRENT_TEMP_AD_VAL#define bsp_ANODE_FEEDBACK_VAL test_bsp_ANODE_FEEDBACK_VAL#define bsp_CATHODE_FEEDBACK_VAL test_bsp_CATHODE_FEEDBACK_VAL#define bsp_CURR_POWER_FB_VAL test_bsp_CURR_POWER_FB_VAL#define bsp_CURR_CHANNAL2_VAL test_bsp_CURR_CHANNAL2_VAL#define bsp_CURR_CHANNAL1_VAL test_bsp_CURR_CHANNAL1_VAL#define bsp_SLCHARGE_TEMP_ADC_VAL test_bsp_SLCHARGE_TEMP_ADC_VAL#define bsp_QUCHARGE_TEMP_ADC_VAL test_bsp_QUCHARGE_TEMP_ADC_VAL#define bsp_CHARGE2_CC2_VAL test_bsp_CHARGE_CC2_VAL#define bsp_SLCHARGE_TEMP2_ADC_VAL test_bsp_SLCHARGE_TEMP_ADC_VAL#define bsp_QUCHARGE_TEMP2_ADC_VAL test_bsp_QUCHARGE_TEMP_ADC_VAL#define bsp_BTS5180_IS1_ADC_VAL 0#define bsp_BTS5180_IS2_ADC_VAL 0#define bsp_BTS5180_IS3_ADC_VAL 0/* -----------------------------------ADC macro define end------------------------------------------------------------/#endif / APP_RUN_MODE == RUN_MODE_TEST */#endif /* APP_HW_VERSION_AB802_0_0 == APP_HW_VERSION */extern void BSP_GPIO_Init(void);#endif/*Copyright © 2014,SHENZHEN HANGSHENG ELECTRONICS Co.,Ltd.All Rights Reserved.Dept.:ACECFile:AcecType.hDescription: descript informationREQ IDs: show the handle requirement IDsHistory:2014-3-1, 1306104, original*/#include “includes.h”U4 sys_clk;U4 peri_set1_clk;U4 peri_set2_clk;U4 peri_set3_clk;OS_EVENT * OBD_MutexEvent=0;/*Copyright © 2014,SHENZHEN HANGSHENG ELECTRONICS Co.,Ltd.All Rights Reserved.Dept.:ACECFile:AcecType.hDescription: descript informationREQ IDs: show the handle requirement IDsHistory:2014-3-1, 1306104, original*/#ifndef BSP_VAR_H#define BSP_VAR_H#include “includes.h”extern U4 sys_clk;extern U4 peri_set1_clk;extern U4 peri_set2_clk;extern U4 peri_set3_clk;/extern U4 UT_1US;/extern OS_EVENT * OBD_MutexEvent;#endif将上述代码中的ucosii部分替换为裸机代码,适配前文内容
sujianyisgi
代码健壮性提升秘籍:电赛嵌入式程序中的异常处理看门狗机制(不死机保障方案)
SW_孙维
温度影响下的系统稳定性测试:工业级单片机最小系统的环境适应性验证(-40℃~+85℃实测报告)
SW_孙维
【LED驱动电路设计全攻略】:掌握15大核心要点,从入门到精通实现高效稳定驱动
SW_孙维
无线传感网络数据优化:加速度信息压缩LoRa_Zigbee传输效率提升策略(稀缺方案公开)
SW_孙维
Bootloader开发全流程拆解:从上电到启动操作系统的9个关键阶段
SW_孙维