| New file |
| | |
| | | #include "low_pwr_test.h" |
| | | #include "adc.h" |
| | | #include "lcd.h" |
| | | #include "gpio.h" |
| | | #include "i2c.h" |
| | | #include "gprs.h" |
| | | #include "valve_control.h" |
| | | #include "power_manage.h" |
| | | #include "e2p.h" |
| | | #include "uart.h" |
| | | #include "spi.h" |
| | | #include "tim.h" |
| | | #include "master_slave_inter.h" |
| | | |
| | | /*********************¾²Ì¬¹¦ºÄÄ¿±êΪ100uAÒÔÄÚ**************************************/ |
| | | |
| | | |
| | | void Key_Awaken_Init(void) |
| | | { |
| | | KEY_IO_Init(); |
| | | } |
| | | void Pulse_Awaken_Init(void) |
| | | { |
| | | Pulse_IO_Init(); |
| | | PULSE_OUT_OFF; |
| | | } |
| | | |
| | | void Valve_Awaken_Init(void) |
| | | { |
| | | Valve_IO_Init(); |
| | | } |
| | | void Lcd_Awaken_Init(void) |
| | | { |
| | | Lcd_IO_Init(); |
| | | } |
| | | void I2c0_GPIO_Clk_Init(void) |
| | | { |
| | | CMU_PERCLK_SetableEx(I2C0CLK, ENABLE); |
| | | CMU_OPCCR1_I2C0CKE_Setable(ENABLE); |
| | | } |
| | | |
| | | void Main2Slave_GPIO_Usart3_Clk_Init(void) |
| | | { |
| | | CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý |
| | | CMU_PERCLK_SetableEx(UART3CLK,ENABLE); |
| | | CMU_PERCLK_SetableEx(DMACLK, ENABLE); |
| | | AltFunIO(MAIN_TX_PORT, MAIN_TX_PIN, ALTFUN_NORMAL); |
| | | AltFunIO(MAIN_RX_PORT, MAIN_RX_PIN, ALTFUN_NORMAL); |
| | | OutputIO(MAIN_TO_SLAVE_PORT,MAIN_TO_SLAVE_PIN,OUT_PUSHPULL); |
| | | OutputIO(SYNC_PORT,SYNC_PIN,OUT_PUSHPULL); |
| | | } |
| | | void InfraRed_Uart0_Clk_Init(void) |
| | | { |
| | | CMU_OPCCR1_UART0CKE_Setable(ENABLE); |
| | | CMU_PERCLK_SetableEx(UART0CLK,ENABLE); |
| | | CMU_PERCLK_SetableEx(DMACLK, ENABLE); |
| | | CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý |
| | | AltFunIO(IR_RX_PORT, IR_RX_PIN, ALTFUN_NORMAL); //PF3 UART0 RX |
| | | AltFunIO(IR_TX_PORT, IR_TX_PIN, ALTFUN_NORMAL); //PF4 UART0 TX |
| | | } |
| | | void Gprs_GPIO_Uart5_Clk_Init(void) |
| | | { |
| | | CMU_PERCLK_SetableEx(UART5CLK,ENABLE); |
| | | CMU_PERCLK_SetableEx(DMACLK, ENABLE); |
| | | AltFunIO(GPRS_TX_PORT, GPRS_TX_PIN, ALTFUN_NORMAL); |
| | | AltFunIO(GPRS_RX_PORT, GPRS_RX_PIN, ALTFUN_NORMAL); |
| | | Gprs_IO_Init(); |
| | | } |
| | | void E2p_GPIO_Clk_Init(void) |
| | | { |
| | | E2p_IO_Init(); |
| | | CMU_PERCLK_SetableEx(SPI0CLK,ENABLE); |
| | | AltFunIO(SPI0_PORT, SPI0_SCK_PIN, ALTFUN_NORMAL); // SCK |
| | | AltFunIO(SPI0_PORT, SPI0_MISO_PIN, ALTFUN_NORMAL); // MISO |
| | | AltFunIO(SPI0_PORT, SPI0_MOSI_PIN, ALTFUN_NORMAL); // MOSI |
| | | } |
| | | void Lith_Battery_GPIO_Clk_Init(void) |
| | | { |
| | | CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý |
| | | AnalogIO(LIT_ADC_PORT,LIT_ADC_PIN);//ADC_IN4 |
| | | OutputIO(LITHIUM_DETECTION_PORT,LITHIUM_DETECTION_PIN,OUT_PUSHPULL); |
| | | // AnalogIO(LIT_PWR_UNDER_PORT,LIT_PWR_UNDER_PIN);//ADC_5 |
| | | |
| | | } |
| | | void Alka_Battery_GPIO_Clk_Init(void) |
| | | { |
| | | CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý |
| | | AnalogIO(ALK_ADC_PORT,ALK_ADC_PIN);//ADC_IN8 |
| | | // OutputIO(ALKALI_DETECTION_PORT,ALKALI_DETECTION_PIN,OUT_PUSHPULL); |
| | | } |
| | | |
| | | void CalMode_BasicTimer_Clk_Init(void) |
| | | { |
| | | CMU_PERCLK_SetableEx(BT1CLK, ENABLE); |
| | | } |
| | | void ErrorShow_TxtendTimer_Clk_Init(void) |
| | | { |
| | | CMU_PERCLK_SetableEx(ET1CLK, ENABLE); |
| | | } |
| | | void ValveCtl_BsTimer_Clk_Init(void) |
| | | { |
| | | CMU_PERCLK_SetableEx(BSTIMCLK, ENABLE); |
| | | CMU_OPCCR2_BSTCKE_Setable(ENABLE); |
| | | } |
| | | void Botton_LPTimer_Clk_Init(void) |
| | | { |
| | | CMU_PERCLK_SetableEx(LPTCLK, ENABLE); |
| | | CMU_OPCCR2_LPTCKE_Setable(ENABLE); |
| | | } |
| | | |
| | | |
| | | |
| | | /* |
| | | Òý½ÅÉèÖÃΪ¸ß×è̬ |
| | | */ |
| | | void MX_GPIO_CLK_DeInit(void) |
| | | { |
| | | /*ÒÔÏÂÊÇһЩOUTPUT_PP»òINPUTºÍ·ÇÍâÉ踴Ó÷ÇÍⲿÖжϵÄÒý½Å*/ |
| | | CloseIO(GPIOG,GPIO_Pin_8 | GPIO_Pin_9 | PULSE_OUT_PIN | GPIO_Pin_2 | GPIO_Pin_3); |
| | | CloseIO(GPIOF,LIT_PWR_UNDER_PIN | SPI0_MOSI_PIN | SPI0_MISO_PIN | SPI0_SCK_PIN | E2P_PWR_PIN | IR_RX_PIN | IR_TX_PIN); |
| | | CloseIO(GPIOE,E2P_CS1_PIN | E2P_CS2_PIN | VALVE_CMD_A_PIN | VALVE_CMD_B_PIN | VALVE_CMD_C_PIN); |
| | | CloseIO(GPIOD,LIT_ADC_PIN | LITHIUM_DETECTION_PIN | KEYB_S2_PIN); |
| | | CloseIO(GPIOC,MAIN_TO_SLAVE_PIN | SLAVE_TO_MAIN_PIN | SYNC_PIN | MAIN_TX_PIN | MAIN_RX_PIN); |
| | | // CloseIO(GPIOB,ALK_ADC_PIN | ALKALI_DETECTION_PIN | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11); |
| | | CloseIO(GPIOA,KEYC_S3_PIN | VALVE_FORCED_OPEN_PIN | GPRS_RE_PIN | GPRS_SWITCH_PIN | GPRS_PWR_PIN | GPRS_TX_PIN | GPRS_RX_PIN); |
| | | |
| | | /************************ÒÔÏÂÊÇһЩϵͳÍâÉ踴Óò¿·Ö(°üº¬Ê±ÖÓ)******************************/ |
| | | /************************ÒÔÏÂÊÇʱÖÓ²¿·Ö£¨½µµÍÔËÐÐʱµÄ¹¦ºÄ£©************************/ |
| | | // // UART0(Infrared) |
| | | #ifdef RS232_PRINTF |
| | | #else |
| | | CMU_OPCCR1_UART0CKE_Setable(DISABLE); |
| | | CMU_PERCLK_SetableEx(UART0CLK,DISABLE); |
| | | #endif |
| | | // UART3(MAIN_TO_SLAVE) |
| | | CMU_PERCLK_SetableEx(UART3CLK,DISABLE); |
| | | // UART5(Gprs) |
| | | CMU_PERCLK_SetableEx(UART5CLK,DISABLE); |
| | | // DMA |
| | | CMU_PERCLK_SetableEx(DMACLK, DISABLE); |
| | | // SPI0(E2P) |
| | | CMU_PERCLK_SetableEx(SPI0CLK,DISABLE); |
| | | // I2C0(LCD) |
| | | CMU_PERCLK_SetableEx(I2C0CLK, DISABLE); |
| | | CMU_OPCCR1_I2C0CKE_Setable(DISABLE); |
| | | // ADC |
| | | VRTC_ADCCR_CKE_Setable(DISABLE); |
| | | // BasicTimer(ÓÃÓڼ춨ģʽϵÄÖÜÆÚ½ÚÅÄ)£¨ÉϵçÖÜÆÚµç³Ø¼ì²â£© |
| | | CMU_PERCLK_SetableEx(BT1CLK, DISABLE); |
| | | CMU_PERCLK_SetableEx(BT2CLK, DISABLE); |
| | | // TxtendTimer(ÓÃÓÚ°´¼üÆô¶¯Ä³¹¦ÄÜʧ°ÜµÄ³ÖÐøÏÔʾʱ¼ä£¬È磺Çл»Ä£Ê½£¬Ô¶´«Éϱ¨µÈ) |
| | | CMU_PERCLK_SetableEx(ET1CLK, DISABLE); |
| | | // BsTimer(ÓÃÓÚ¿ª/¹Ø·§Ê±¼ä) |
| | | CMU_PERCLK_SetableEx(BSTIMCLK, DISABLE); |
| | | CMU_OPCCR2_BSTCKE_Setable(DISABLE); |
| | | // LowPowerTimer(ÓÃÓÚ°´¼ü¿ò¼ÜµÄÖÜÆÚɨÃè) |
| | | CMU_PERCLK_SetableEx(LPTCLK, DISABLE); |
| | | CMU_OPCCR2_LPTCKE_Setable(DISABLE); |
| | | } |
| | | |
| | | void DeepSleepMode(void) |
| | | { |
| | | #ifdef STOP_MODE |
| | | MX_GPIO_CLK_DeInit(); |
| | | |
| | | LPTIM_CR_EN_Setable(DISABLE); |
| | | |
| | | PMU_SleepCfg_InitTypeDef SleepCfg_InitStruct; |
| | | CDIF_CR_INTF_EN_Setable(ENABLE); |
| | | /*ϵ縴λÅäÖÃ*/ |
| | | //pdrºÍborÁ½¸öϵ縴λÖÁÉÙÒª´ò¿ªÒ»¸ö |
| | | //µ±µçÔ´µçѹµÍÓÚϵ縴λʱ£¬Ð¾Æ¬»á±»¸´Î»×¡ |
| | | //pdrµçѹµµÎ»²»×¼µ«Êǹ¦ºÄ¼«µÍ(¼¸ºõÎÞ²âÁ¿£© |
| | | //borµçѹµµÎ»×¼È·µ«ÊÇÐèÒªÔö¼Ó2uA¹¦ºÄ |
| | | RMU_PDRCR_PDREN_Setable(ENABLE); //´ò¿ªPDR |
| | | RMU_PDRCR_PDRCFG_Set(RMU_PDRCR_PDRCFG_1P5V);//pdrµçѹµ÷Õûµ½1.4V |
| | | RMU_BORCR_OFF_BOR_Setable(ENABLE); //¹Ø±ÕBOR |
| | | VRTC_RCMFCR_EN_Setable(DISABLE);//RCMF¹Ø±Õ |
| | | //VRTC_RCLPCR_RCLP_OFF_Setable(ENABLE);//RCLP¹Ø±Õ |
| | | |
| | | CDIF_CR_INTF_EN_Setable(DISABLE); |
| | | |
| | | SleepCfg_InitStruct.PMOD = PMU_CR_PMOD_SLEEP; //¹¦ºÄģʽÅäÖà |
| | | SleepCfg_InitStruct.SLPDP = PMU_CR_SLPDP_DEEPSLEEP; //deepsleep |
| | | SleepCfg_InitStruct.CVS = DISABLE; //Äں˵çѹ½µµÍ¿ØÖÆ |
| | | SleepCfg_InitStruct.SCR = 0; //M0ϵͳ¿ØÖƼĴæÆ÷£¬Ò»°ãÅäÖÃΪ0¼´¿É |
| | | SleepCfg_InitStruct.TIA = PMU_WKTR_T1A_8US;//¿É±à³Ì¶îÍ⻽ÐÑÑÓ³Ù8us |
| | | |
| | | PMU_SleepCfg_Init(&SleepCfg_InitStruct);//ÐÝÃßÅäÖà |
| | | |
| | | IWDT_Clr(); |
| | | IWDT_Init(); |
| | | __WFI();//½øÈëÐÝÃß |
| | | IWDT_Clr(); |
| | | RMU_BORCR_OFF_BOR_Setable(DISABLE); //¹Ø±ÕBOR |
| | | #endif |
| | | } |
| | | |
| | | /*Ô¶´«/·§¿Ø»á²úÉú´óµçÁ÷ʱÐè×ö³öÏàÓ¦ÏÞÖÆ*/ |
| | | uint8_t LargeCurrent_LimitingProcess(void) |
| | | { |
| | | uint8_t restult = 0; |
| | | // GPRS¿ÕÏÐ/ÖØÆôʱ |
| | | if ((gprs_soft_para_g.gprs_state == GPRS_IDLE) || (gprs_soft_para_g.gprs_state == GPRS_RESTART)) |
| | | restult |= 1; |
| | | // ·§²»ÔÚ¿ª/¹ØÊ± |
| | | if((__SYS_STATUS_BYTES_GET(valve_state) != VALVE_CLOSING) && (__SYS_STATUS_BYTES_GET(valve_state) != VALVE_OPENING)) |
| | | restult |= 2; |
| | | return restult; |
| | | } |
| | | |
| | | |
| | | /* |
| | | ·½·¨1£º°´ÊÖ²á˵Ã÷£¬½µµÍϵͳʱÖÓ,ÓÃÓÚ½µµÍ¾²Ì¬¹¦ºÄ¡££¨Ö÷°å02_127£© |
| | | |
| | | ´ð£º²âÊԵã¬ÏµÍ³Ê±ÖÓÓÉ36Mhz->12Mhz£¬¶ÔÓÚ½µµÍ¾²Ì¬¹¦ºÄÎÞЧ£¬¶¯Ì¬Çé¿öδ²â¡£ |
| | | */ |
| | | /* |
| | | ·½·¨2£º½ûÖ¹ËùÓй¦ÄÜ£¬Ö»¿ªÆôSTOPģʽ1£¬²é¿´¾²Ì¬¹¦ºÄ¡££¨Ö÷°å02_127£© |
| | | |
| | | ´ð£º²âÊԵ㬽ûÖ¹ËùÓй¦ÄÜ£¬Ö»¿ªÆôSTOPģʽ£¬¹¦ºÄ²»½µ·´Éýµ½500uA£¬Õâ½á¹û¿ÉÄÜ |
| | | ÓëÒý½Å״̬Óйء£ |
| | | */ |
| | | /* |
| | | ·½·¨3£º°´ÊÖ²á˵Ã÷£¬ÔÚ½øÈëSTOPģʽ3ǰ½ûÓÃADC£¬²é¿´¾²Ì¬¹¦ºÄ¡££¨Ö÷°å02_127£© |
| | | |
| | | ´ð£ºÎޱ仯£¬Õâ¿ÉÄÜ˵Ã÷µ±Ç°ADC±¾À´¾ÍδʹÓ㬿ÉÒÔÔÚADCʹÓúóÔÙ²âÊÔ¡£ |
| | | */ |
| | | /* |
| | | ·½·¨4£ºÔÚ½øÈëSTOPģʽ3ǰ¹Ø±Õ²»ÐèÒªµÄÍâÉèʱÖÓ£¬²é¿´¾²Ì¬¹¦ºÄ¡££¨Ö÷°å02_127£© |
| | | |
| | | ´ð£ºÎޱ仯¡£ |
| | | */ |
| | | /* |
| | | ·½·¨5£ºÔÚ½øÈëSTOPģʽ3ǰÉèÖÃËùÓÐÒý½ÅΪģÄâÊäÈ룬²é¿´¾²Ì¬¹¦ºÄ¡££¨Ö÷°å02_127£© |
| | | |
| | | ´ð£ºµçÁ÷ԼΪ130uA¡£µ«ÆÁÄ»×Ô¶¯µãÁÁ£¬¾²âÊÔ²»ÉèÖÃKEY3£¨PC1£©ÎªÄ£ÄâÊäÈë¼´¿ÉϨÃðÆÁÄ»¡£ |
| | | */ |
| | | /* |
| | | ·½·¨6£ºÔÚ½øÈëSTOPģʽ3ǰÉèÖÃÒý½ÅΪģÄâÊäÈë+¹Ø±Õ²»ÐèÒªµÄÍâÉèʱÖÓ£¬²é¿´¾²Ì¬¹¦ºÄ¡££¨Ö÷°å02_127£© |
| | | |
| | | ´ð£ºÏÈÈ«²¿ÉèÖÃΪģÄâÊäÈëÔٹرÕʱÖÓ£¬¹¦ºÄÎޱ仯¡£ |
| | | ÏȹرÕʱÖÓÔÙÉèÖÃÄ£ÄâÊäÈ룬²»ÄܽøÈëÐÝÃߣ¬¹¦ºÄÔö¼Ó¡£ |
| | | */ |
| | | /* |
| | | ˵Ã÷1£ºÊÖ²á˵½µµÍÔËÐÐ״̬ÏµĹ¦ºÄ¿É¹Ø±ÕÎÞÐèʹÓõÄÍâÉèʱÖÓ£¬Ö±½Óµ÷ÓÃDeInitº¯ÊýºóÔÙInit£¬ |
| | | ÍâÉ蹦ÄÜʧЧ£¬Ö±½Óµ÷ÓÃCLK_DISABLE£¬ÔËÐй¦ºÄ½µµÍ¡££¨Ö÷°å02_132£© |
| | | */ |
| | | /* |
| | | ˵Ã÷2£ºÏȵ÷ÓÃDeInit¹Ø±ÕÍâÉèʱÖÓ+¸Ä±äÒý½Å״̬£¬¾²Ì¬¹¦ºÄÎޱ仯¡££¨Ö÷°å02_132£© |
| | | */ |
| | | /* |
| | | ˵Ã÷3£ºKEY1_S2_Pin£¨¶¨ÒåB°´¼ü£©²»ÄÜÉèΪģÄâÊäÈ룬²»È»ÐÝÃßʱ»á½øÈëÒ»´ÎB¼ü»Øµ÷º¯Êý |
| | | */ |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |