2021-08-26 11:57:23 索煒達(dá)電子 1536
項(xiàng)目編號(hào):E667
文件大?。?0M
源碼說(shuō)明:帶中文注釋
開(kāi)發(fā)環(huán)境:C編譯器
簡(jiǎn)要概述:
這是一個(gè)基于 STM32G0 采用 USB type-C 供電的鋰電池充電器開(kāi)源項(xiàng)目。
功能特性
-STM32G071CBT6 微控制器,具有2路 type C 接口,內(nèi)置 USB Power Delivery PHY。
-LiPow 使用 USB Type C 和 Power Delivery 為鋰聚合物電池充電。它支持 2s-4s 包的充電和平衡。
-支持從 USB PD 電源或具有 PD 源功能的任何其他 USB C 端口(例如 Thinkpad X1 筆記本電腦)充電,高達(dá) 60W。
-隨著設(shè)備溫度的升高,自動(dòng)降低充電功率。
開(kāi)發(fā)指南
-通過(guò) SWD 或 UART 編程
-運(yùn)行 FreeRTOS
-ST USB PD 中間件
-UART 命令行界面(921600 bps,8N1)
-基于 TrueStudio 使用 Makefile 進(jìn)行構(gòu)建
-如果通過(guò) SWD 燒錄程序,需要使用 JLINK 或 STLINK 編程器;如果通過(guò) UART 燒錄程序,需要使用 STM32CubeProg 或 STM32Flash 上位機(jī)軟件。
原理圖:
電路板:
目錄│文件列表:
└ 鋰電池充電器
├ LiPow-Firmware
│ │ .code_review_properties
│ │ .cproject
│ │ .mxproject
│ │ .project
│ │ LICENSE
│ │ Lipow.ioc
│ │ Makefile
│ │ startup_stm32g071xx.s
│ │ STM32G071CBTx_FLASH.ld
│ │ syscalls.c
│ ├ Drivers
│ │ ├ CMSIS
│ │ │ ├ Device
│ │ │ │ └ ST
│ │ │ │ └ STM32G0xx
│ │ │ │ ├ Include
│ │ │ │ │ │ stm32g071xx.h
│ │ │ │ │ │ stm32g0xx.h
│ │ │ │ │ └ system_stm32g0xx.h
│ │ │ │ └ Source
│ │ │ │ └ Templates
│ │ │ │ └ system_stm32g0xx.c
│ │ │ └ Include
│ │ │ │ arm_common_tables.h
│ │ │ │ arm_const_structs.h
│ │ │ │ arm_math.h
│ │ │ │ cmsis_armcc.h
│ │ │ │ cmsis_armcc_V6.h
│ │ │ │ cmsis_gcc.h
│ │ │ │ core_cm0.h
│ │ │ │ core_cm0plus.h
│ │ │ │ core_cm3.h
│ │ │ │ core_cm4.h
│ │ │ │ core_cm7.h
│ │ │ │ core_cmFunc.h
│ │ │ │ core_cmInstr.h
│ │ │ │ core_cmSimd.h
│ │ │ │ core_sc000.h
│ │ │ └ core_sc300.h
│ │ └ STM32G0xx_HAL_Driver
│ │ ├ Inc
│ │ │ │ stm32g0xx_hal.h
│ │ │ │ stm32g0xx_hal_adc.h
│ │ │ │ stm32g0xx_hal_adc_ex.h
│ │ │ │ stm32g0xx_hal_cortex.h
│ │ │ │ stm32g0xx_hal_def.h
│ │ │ │ stm32g0xx_hal_dma.h
│ │ │ │ stm32g0xx_hal_dma_ex.h
│ │ │ │ stm32g0xx_hal_exti.h
│ │ │ │ stm32g0xx_hal_flash.h
│ │ │ │ stm32g0xx_hal_flash_ex.h
│ │ │ │ stm32g0xx_hal_gpio.h
│ │ │ │ stm32g0xx_hal_gpio_ex.h
│ │ │ │ stm32g0xx_hal_i2c.h
│ │ │ │ stm32g0xx_hal_i2c_ex.h
│ │ │ │ stm32g0xx_hal_pwr.h
│ │ │ │ stm32g0xx_hal_pwr_ex.h
│ │ │ │ stm32g0xx_hal_rcc.h
│ │ │ │ stm32g0xx_hal_rcc_ex.h
│ │ │ │ stm32g0xx_hal_tim.h
│ │ │ │ stm32g0xx_hal_tim_ex.h
│ │ │ │ stm32g0xx_hal_uart.h
│ │ │ │ stm32g0xx_hal_uart_ex.h
│ │ │ │ stm32g0xx_ll_adc.h
│ │ │ │ stm32g0xx_ll_bus.h
│ │ │ │ stm32g0xx_ll_cortex.h
│ │ │ │ stm32g0xx_ll_dma.h
│ │ │ │ stm32g0xx_ll_dmamux.h
│ │ │ │ stm32g0xx_ll_exti.h
│ │ │ │ stm32g0xx_ll_gpio.h
│ │ │ │ stm32g0xx_ll_pwr.h
│ │ │ │ stm32g0xx_ll_rcc.h
│ │ │ │ stm32g0xx_ll_system.h
│ │ │ │ stm32g0xx_ll_tim.h
│ │ │ │ stm32g0xx_ll_ucpd.h
│ │ │ │ stm32g0xx_ll_usart.h
│ │ │ │ stm32g0xx_ll_utils.h
│ │ │ └ Legacy
│ │ │ └ stm32_hal_legacy.h
│ │ └ Src
│ │ │ stm32g0xx_hal.c
│ │ │ stm32g0xx_hal_adc.c
│ │ │ stm32g0xx_hal_adc_ex.c
│ │ │ stm32g0xx_hal_cortex.c
│ │ │ stm32g0xx_hal_dma.c
│ │ │ stm32g0xx_hal_dma_ex.c
│ │ │ stm32g0xx_hal_exti.c
│ │ │ stm32g0xx_hal_flash.c
│ │ │ stm32g0xx_hal_flash_ex.c
│ │ │ stm32g0xx_hal_gpio.c
│ │ │ stm32g0xx_hal_i2c.c
│ │ │ stm32g0xx_hal_i2c_ex.c
│ │ │ stm32g0xx_hal_pwr.c
│ │ │ stm32g0xx_hal_pwr_ex.c
│ │ │ stm32g0xx_hal_rcc.c
│ │ │ stm32g0xx_hal_rcc_ex.c
│ │ │ stm32g0xx_hal_tim.c
│ │ │ stm32g0xx_hal_tim_ex.c
│ │ │ stm32g0xx_hal_uart.c
│ │ │ stm32g0xx_hal_uart_ex.c
│ │ │ stm32g0xx_ll_adc.c
│ │ │ stm32g0xx_ll_dma.c
│ │ │ stm32g0xx_ll_exti.c
│ │ │ stm32g0xx_ll_gpio.c
│ │ │ stm32g0xx_ll_rcc.c
│ │ │ stm32g0xx_ll_tim.c
│ │ │ stm32g0xx_ll_ucpd.c
│ │ └ stm32g0xx_ll_utils.c
│ ├ Inc
│ │ │ adc_interface.h
│ │ │ battery.h
│ │ │ bq25703a_regulator.h
│ │ │ error.h
│ │ │ FreeRTOSConfig.h
│ │ │ main.h
│ │ │ printf.h
│ │ │ stm32g0xx_hal_conf.h
│ │ │ stm32g0xx_it.h
│ │ │ stm32_assert.h
│ │ │ tracer_emb_conf.h
│ │ │ usbpd.h
│ │ │ usbpd_devices_conf.h
│ │ │ usbpd_dpm_conf.h
│ │ │ usbpd_dpm_core.h
│ │ │ usbpd_dpm_user.h
│ │ │ usbpd_gui_memmap.h
│ │ │ usbpd_pdo_defs.h
│ │ │ usbpd_pwr_if.h
│ │ │ usbpd_pwr_user.h
│ │ └ usbpd_vdm_user.h
│ ├ Middlewares
│ │ ├ ST
│ │ │ └ STM32_USBPD_Library
│ │ │ ├ Core
│ │ │ │ ├ inc
│ │ │ │ │ │ usbpd_core.h
│ │ │ │ │ │ usbpd_def.h
│ │ │ │ │ └ usbpd_trace.h
│ │ │ │ ├ lib
│ │ │ │ │ │ USBPDCORE_PD3_CONFIG_1_CM0PLUS_wc32.a
│ │ │ │ │ │ USBPDCORE_PD3_CONFIG_2_CM0PLUS_wc32.a
│ │ │ │ │ └ USBPDCORE_PD3_FULL_CM0PLUS_wc32.a
│ │ │ │ └ src
│ │ │ │ └ usbpd_trace.c
│ │ │ └ Devices
│ │ │ └ STM32G0XX
│ │ │ ├ inc
│ │ │ │ │ usbpd_cad_hw_if.h
│ │ │ │ │ usbpd_hw.h
│ │ │ │ │ usbpd_hw_if.h
│ │ │ │ │ usbpd_phy.h
│ │ │ │ └ usbpd_timersserver.h
│ │ │ └ src
│ │ │ │ usbpd_cad_hw_if.c
│ │ │ │ usbpd_hw.c
│ │ │ │ usbpd_hw_if_it.c
│ │ │ │ usbpd_phy.c
│ │ │ │ usbpd_phy_hw_if.c
│ │ │ │ usbpd_pwr_hw_if.c
│ │ │ └ usbpd_timersserver.c
│ │ └ Third_Party
│ │ ├ FreeRTOS
│ │ │ └ Source
│ │ │ │ croutine.c
│ │ │ │ event_groups.c
│ │ │ │ list.c
│ │ │ │ queue.c
│ │ │ │ stream_buffer.c
│ │ │ │ tasks.c
│ │ │ │ timers.c
│ │ │ ├ CMSIS_RTOS
│ │ │ │ │ cmsis_os.c
│ │ │ │ └ cmsis_os.h
│ │ │ ├ include
│ │ │ │ │ croutine.h
│ │ │ │ │ deprecated_definitions.h
│ │ │ │ │ event_groups.h
│ │ │ │ │ FreeRTOS.h
│ │ │ │ │ list.h
│ │ │ │ │ message_buffer.h
│ │ │ │ │ mpu_prototypes.h
│ │ │ │ │ mpu_wrappers.h
│ │ │ │ │ portable.h
│ │ │ │ │ projdefs.h
│ │ │ │ │ queue.h
│ │ │ │ │ semphr.h
│ │ │ │ │ StackMacros.h
│ │ │ │ │ stack_macros.h
│ │ │ │ │ stream_buffer.h
│ │ │ │ │ task.h
│ │ │ │ └ timers.h
│ │ │ └ portable
│ │ │ ├ GCC
│ │ │ │ └ ARM_CM0
│ │ │ │ │ port.c
│ │ │ │ └ portmacro.h
│ │ │ └ MemMang
│ │ │ └ heap_4.c
│ │ └ FreeRTOS_CLI
│ │ └ Source
│ │ │ CLI-commands.c
│ │ │ FreeRTOS_CLI.c
│ │ │ UARTCommandConsole.c
│ │ └ include
│ │ │ FreeRTOS_CLI.h
│ │ └ UARTCommandConsole.h
│ ├ Releases
│ │ │ LiPow_V1.0.hex
│ │ │ LiPow_V1.2.hex
│ │ │ LiPow_V1.3.bin
│ │ └ LiPow_V1.3.hex
│ ├ Src
│ │ │ adc_interface.c
│ │ │ app_freertos.c
│ │ │ battery.c
│ │ │ bq25703a_regulator.c
│ │ │ error.c
│ │ │ main.c
│ │ │ printf.c
│ │ │ stm32g0xx_hal_msp.c
│ │ │ stm32g0xx_hal_timebase_tim.c
│ │ │ stm32g0xx_it.c
│ │ │ usbpd.c
│ │ │ usbpd_dpm_core.c
│ │ │ usbpd_dpm_user.c
│ │ │ usbpd_pwr_if.c
│ │ │ usbpd_pwr_user.c
│ │ └ usbpd_vdm_user.c
│ └ Utilities
│ ├ GUI_INTERFACE
│ │ │ bsp_gui.c
│ │ │ bsp_gui.h
│ │ │ data_struct_tlv.c
│ │ │ data_struct_tlv.h
│ │ │ gui_api.c
│ │ └ gui_api.h
│ └ TRACER_EMB
│ │ tracer_emb.c
│ │ tracer_emb.h
│ │ tracer_emb_conf_template.h
│ │ tracer_emb_hw.c
│ └ tracer_emb_hw.h
└ LiPow-Hardware
└ LiPow-Hardware
├ 3d_Models
│ ├ Revision 3
│ │ │ LiPow_3D_Model_Rev_3.0.PDF
│ │ └ LiPow_3D_Model_Rev_3.0.step
│ └ Revision 4
│ │ LiPow_3D_Model_Rev_4.0.PDF
│ └ LiPow_3D_Model_Rev_4.0.step
├ BOM
│ │ LiPow_BOM_Rev_3.0.xls
│ └ LiPow_BOM_Rev_4.0.xls
├ Case
│ ├ CNC Case
│ │ │ Bottom Case CNC V1.0.step
│ │ └ Top Case CNC V1.0.step
│ ├ Fan Case
│ │ │ Bottom Case Fan 1.0.stl
│ │ └ Top Case Fan 1.0.stl
│ └ Regular Case
│ │ LiPow Bottom Case Rev 0.6.stl
│ │ LiPow Top Case Rev 0.5 Debug.stl
│ └ LiPow Top Case Rev 0.6.stl
├ PCB_Docs
│ ├ Revision 3
│ │ │ LiPow Rev 3.0 Bottom Paste Mask.GBP
│ │ │ LiPow Rev 3.0 Top Paste Mask.GTP
│ │ └ LiPow_PCB_Documentation_Rev_3.0.PDF
│ └ Revision 4
│ └ LiPow_PCB_Documentation_Rev_4.0.PDF
└ Schematics
│ LiPow_Schematic_Rev_1.0.PDF
│ LiPow_Schematic_Rev_2.0.PDF
│ LiPow_Schematic_Rev_3.0.PDF
└ LiPow_Schematic_Rev_4.0.PDF