├── .gitignore
├── Firmware
├── For HW version 10
│ ├── .cproject
│ ├── .mxproject
│ ├── .project
│ ├── .settings
│ │ ├── language.settings.xml
│ │ ├── org.eclipse.cdt.codan.core.prefs
│ │ ├── org.eclipse.cdt.core.prefs
│ │ └── stm32cubeide.project.prefs
│ ├── Core
│ │ ├── Inc
│ │ │ ├── main.h
│ │ │ ├── stm32f0xx_hal_conf.h
│ │ │ └── stm32f0xx_it.h
│ │ ├── Src
│ │ │ ├── main.c
│ │ │ ├── stm32f0xx_hal_msp.c
│ │ │ ├── stm32f0xx_it.c
│ │ │ ├── syscalls.c
│ │ │ ├── sysmem.c
│ │ │ └── system_stm32f0xx.c
│ │ └── Startup
│ │ │ └── startup_stm32f072cbux.s
│ ├── Drivers
│ │ ├── CMSIS
│ │ │ ├── Device
│ │ │ │ └── ST
│ │ │ │ │ └── STM32F0xx
│ │ │ │ │ └── Include
│ │ │ │ │ ├── stm32f072xb.h
│ │ │ │ │ ├── stm32f0xx.h
│ │ │ │ │ └── system_stm32f0xx.h
│ │ │ └── Include
│ │ │ │ ├── cmsis_armcc.h
│ │ │ │ ├── cmsis_armclang.h
│ │ │ │ ├── cmsis_compiler.h
│ │ │ │ ├── cmsis_gcc.h
│ │ │ │ ├── cmsis_iccarm.h
│ │ │ │ ├── cmsis_version.h
│ │ │ │ ├── core_armv8mbl.h
│ │ │ │ ├── core_armv8mml.h
│ │ │ │ ├── core_cm0.h
│ │ │ │ ├── core_cm0plus.h
│ │ │ │ ├── core_cm1.h
│ │ │ │ ├── core_cm23.h
│ │ │ │ ├── core_cm3.h
│ │ │ │ ├── core_cm33.h
│ │ │ │ ├── core_cm4.h
│ │ │ │ ├── core_cm7.h
│ │ │ │ ├── core_sc000.h
│ │ │ │ ├── core_sc300.h
│ │ │ │ ├── mpu_armv7.h
│ │ │ │ ├── mpu_armv8.h
│ │ │ │ └── tz_context.h
│ │ └── STM32F0xx_HAL_Driver
│ │ │ ├── Inc
│ │ │ ├── Legacy
│ │ │ │ └── stm32_hal_legacy.h
│ │ │ ├── stm32f0xx_hal.h
│ │ │ ├── stm32f0xx_hal_cortex.h
│ │ │ ├── stm32f0xx_hal_dac.h
│ │ │ ├── stm32f0xx_hal_dac_ex.h
│ │ │ ├── stm32f0xx_hal_def.h
│ │ │ ├── stm32f0xx_hal_dma.h
│ │ │ ├── stm32f0xx_hal_dma_ex.h
│ │ │ ├── stm32f0xx_hal_exti.h
│ │ │ ├── stm32f0xx_hal_flash.h
│ │ │ ├── stm32f0xx_hal_flash_ex.h
│ │ │ ├── stm32f0xx_hal_gpio.h
│ │ │ ├── stm32f0xx_hal_gpio_ex.h
│ │ │ ├── stm32f0xx_hal_i2c.h
│ │ │ ├── stm32f0xx_hal_i2c_ex.h
│ │ │ ├── stm32f0xx_hal_pcd.h
│ │ │ ├── stm32f0xx_hal_pcd_ex.h
│ │ │ ├── stm32f0xx_hal_pwr.h
│ │ │ ├── stm32f0xx_hal_pwr_ex.h
│ │ │ ├── stm32f0xx_hal_rcc.h
│ │ │ ├── stm32f0xx_hal_rcc_ex.h
│ │ │ ├── stm32f0xx_hal_tim.h
│ │ │ ├── stm32f0xx_hal_tim_ex.h
│ │ │ └── stm32f0xx_ll_usb.h
│ │ │ └── Src
│ │ │ ├── stm32f0xx_hal.c
│ │ │ ├── stm32f0xx_hal_cortex.c
│ │ │ ├── stm32f0xx_hal_dac.c
│ │ │ ├── stm32f0xx_hal_dac_ex.c
│ │ │ ├── stm32f0xx_hal_dma.c
│ │ │ ├── stm32f0xx_hal_exti.c
│ │ │ ├── stm32f0xx_hal_flash.c
│ │ │ ├── stm32f0xx_hal_flash_ex.c
│ │ │ ├── stm32f0xx_hal_gpio.c
│ │ │ ├── stm32f0xx_hal_i2c.c
│ │ │ ├── stm32f0xx_hal_i2c_ex.c
│ │ │ ├── stm32f0xx_hal_pcd.c
│ │ │ ├── stm32f0xx_hal_pcd_ex.c
│ │ │ ├── stm32f0xx_hal_pwr.c
│ │ │ ├── stm32f0xx_hal_pwr_ex.c
│ │ │ ├── stm32f0xx_hal_rcc.c
│ │ │ ├── stm32f0xx_hal_rcc_ex.c
│ │ │ ├── stm32f0xx_hal_tim.c
│ │ │ ├── stm32f0xx_hal_tim_ex.c
│ │ │ └── stm32f0xx_ll_usb.c
│ ├── Middlewares
│ │ └── ST
│ │ │ └── STM32_USB_Device_Library
│ │ │ ├── Class
│ │ │ └── CDC
│ │ │ │ ├── Inc
│ │ │ │ └── usbd_cdc.h
│ │ │ │ └── Src
│ │ │ │ └── usbd_cdc.c
│ │ │ └── Core
│ │ │ ├── Inc
│ │ │ ├── usbd_core.h
│ │ │ ├── usbd_ctlreq.h
│ │ │ ├── usbd_def.h
│ │ │ └── usbd_ioreq.h
│ │ │ └── Src
│ │ │ ├── usbd_core.c
│ │ │ ├── usbd_ctlreq.c
│ │ │ └── usbd_ioreq.c
│ ├── README.md
│ ├── STM32F072CBUX_FLASH.ld
│ ├── USB_DEVICE
│ │ ├── App
│ │ │ ├── usb_device.c
│ │ │ ├── usb_device.h
│ │ │ ├── usbd_cdc_if.c
│ │ │ ├── usbd_cdc_if.h
│ │ │ ├── usbd_desc.c
│ │ │ └── usbd_desc.h
│ │ └── Target
│ │ │ ├── usbd_conf.c
│ │ │ └── usbd_conf.h
│ ├── calibration_graphs
│ │ ├── .gitignore
│ │ ├── currentlimit_graph.png
│ │ ├── voltageadc_graph.png
│ │ ├── voltagedac_graph.png
│ │ ├── zerocurrent.png
│ │ └── zerocurrent_graph.png
│ ├── ee
│ │ ├── ee.c
│ │ ├── ee.h
│ │ └── eeConfig.h
│ ├── mx.scratch
│ └── uSMU_v10.ioc
└── For HW version 5
│ ├── .cproject
│ ├── .mxproject
│ ├── .project
│ ├── .settings
│ ├── language.settings.xml
│ ├── org.eclipse.cdt.codan.core.prefs
│ └── stm32cubeide.project.prefs
│ ├── Core
│ ├── Inc
│ │ ├── main.h
│ │ ├── stm32f0xx_hal_conf.h
│ │ └── stm32f0xx_it.h
│ ├── Src
│ │ ├── main.c
│ │ ├── stm32f0xx_hal_msp.c
│ │ ├── stm32f0xx_it.c
│ │ ├── syscalls.c
│ │ ├── sysmem.c
│ │ └── system_stm32f0xx.c
│ └── Startup
│ │ └── startup_stm32f072c8ux.s
│ ├── Drivers
│ ├── CMSIS
│ │ ├── Device
│ │ │ └── ST
│ │ │ │ └── STM32F0xx
│ │ │ │ └── Include
│ │ │ │ ├── stm32f072xb.h
│ │ │ │ ├── stm32f0xx.h
│ │ │ │ └── system_stm32f0xx.h
│ │ └── Include
│ │ │ ├── cmsis_armcc.h
│ │ │ ├── cmsis_armclang.h
│ │ │ ├── cmsis_compiler.h
│ │ │ ├── cmsis_gcc.h
│ │ │ ├── cmsis_iccarm.h
│ │ │ ├── cmsis_version.h
│ │ │ ├── core_armv8mbl.h
│ │ │ ├── core_armv8mml.h
│ │ │ ├── core_cm0.h
│ │ │ ├── core_cm0plus.h
│ │ │ ├── core_cm1.h
│ │ │ ├── core_cm23.h
│ │ │ ├── core_cm3.h
│ │ │ ├── core_cm33.h
│ │ │ ├── core_cm4.h
│ │ │ ├── core_cm7.h
│ │ │ ├── core_sc000.h
│ │ │ ├── core_sc300.h
│ │ │ ├── mpu_armv7.h
│ │ │ ├── mpu_armv8.h
│ │ │ └── tz_context.h
│ └── STM32F0xx_HAL_Driver
│ │ ├── Inc
│ │ ├── Legacy
│ │ │ └── stm32_hal_legacy.h
│ │ ├── stm32f0xx_hal.h
│ │ ├── stm32f0xx_hal_cortex.h
│ │ ├── stm32f0xx_hal_dac.h
│ │ ├── stm32f0xx_hal_dac_ex.h
│ │ ├── stm32f0xx_hal_def.h
│ │ ├── stm32f0xx_hal_dma.h
│ │ ├── stm32f0xx_hal_dma_ex.h
│ │ ├── stm32f0xx_hal_exti.h
│ │ ├── stm32f0xx_hal_flash.h
│ │ ├── stm32f0xx_hal_flash_ex.h
│ │ ├── stm32f0xx_hal_gpio.h
│ │ ├── stm32f0xx_hal_gpio_ex.h
│ │ ├── stm32f0xx_hal_i2c.h
│ │ ├── stm32f0xx_hal_i2c_ex.h
│ │ ├── stm32f0xx_hal_pcd.h
│ │ ├── stm32f0xx_hal_pcd_ex.h
│ │ ├── stm32f0xx_hal_pwr.h
│ │ ├── stm32f0xx_hal_pwr_ex.h
│ │ ├── stm32f0xx_hal_rcc.h
│ │ ├── stm32f0xx_hal_rcc_ex.h
│ │ ├── stm32f0xx_hal_tim.h
│ │ ├── stm32f0xx_hal_tim_ex.h
│ │ └── stm32f0xx_ll_usb.h
│ │ └── Src
│ │ ├── stm32f0xx_hal.c
│ │ ├── stm32f0xx_hal_cortex.c
│ │ ├── stm32f0xx_hal_dac.c
│ │ ├── stm32f0xx_hal_dac_ex.c
│ │ ├── stm32f0xx_hal_dma.c
│ │ ├── stm32f0xx_hal_exti.c
│ │ ├── stm32f0xx_hal_flash.c
│ │ ├── stm32f0xx_hal_flash_ex.c
│ │ ├── stm32f0xx_hal_gpio.c
│ │ ├── stm32f0xx_hal_i2c.c
│ │ ├── stm32f0xx_hal_i2c_ex.c
│ │ ├── stm32f0xx_hal_pcd.c
│ │ ├── stm32f0xx_hal_pcd_ex.c
│ │ ├── stm32f0xx_hal_pwr.c
│ │ ├── stm32f0xx_hal_pwr_ex.c
│ │ ├── stm32f0xx_hal_rcc.c
│ │ ├── stm32f0xx_hal_rcc_ex.c
│ │ ├── stm32f0xx_hal_tim.c
│ │ ├── stm32f0xx_hal_tim_ex.c
│ │ └── stm32f0xx_ll_usb.c
│ ├── Middlewares
│ └── ST
│ │ └── STM32_USB_Device_Library
│ │ ├── Class
│ │ └── CDC
│ │ │ ├── Inc
│ │ │ └── usbd_cdc.h
│ │ │ └── Src
│ │ │ └── usbd_cdc.c
│ │ └── Core
│ │ ├── Inc
│ │ ├── usbd_core.h
│ │ ├── usbd_ctlreq.h
│ │ ├── usbd_def.h
│ │ └── usbd_ioreq.h
│ │ └── Src
│ │ ├── usbd_core.c
│ │ ├── usbd_ctlreq.c
│ │ └── usbd_ioreq.c
│ ├── README.md
│ ├── STM32F072C8UX_FLASH.ld
│ ├── USB_DEVICE
│ ├── App
│ │ ├── usb_device.c
│ │ ├── usb_device.h
│ │ ├── usbd_cdc_if.c
│ │ ├── usbd_cdc_if.h
│ │ ├── usbd_desc.c
│ │ └── usbd_desc.h
│ └── Target
│ │ ├── usbd_conf.c
│ │ └── usbd_conf.h
│ ├── uSMU Debug.cfg
│ ├── uSMU Debug.launch
│ └── uSMU.ioc
├── Hardware
├── Version 10
│ ├── Gerber files
│ │ ├── uSMU_v10-B_Cu.gbr
│ │ ├── uSMU_v10-B_Mask.gbr
│ │ ├── uSMU_v10-B_Paste.gbr
│ │ ├── uSMU_v10-B_Silkscreen.gbr
│ │ ├── uSMU_v10-Edge_Cuts.gbr
│ │ ├── uSMU_v10-F_Cu.gbr
│ │ ├── uSMU_v10-F_Mask.gbr
│ │ ├── uSMU_v10-F_Paste.gbr
│ │ ├── uSMU_v10-F_Silkscreen.gbr
│ │ ├── uSMU_v10-Ground.gbr
│ │ ├── uSMU_v10-NPTH-drl_map.ps
│ │ ├── uSMU_v10-NPTH.drl
│ │ ├── uSMU_v10-PTH-drl_map.ps
│ │ ├── uSMU_v10-PTH.drl
│ │ ├── uSMU_v10-Power.gbr
│ │ └── uSMU_v10-job.gbrjob
│ ├── Interactive BOM
│ │ └── uSMU_v10_BOM.html
│ ├── fp-info-cache
│ ├── fp-lib-table
│ ├── sym-lib-table
│ ├── uSMU_v10.kicad_pcb
│ ├── uSMU_v10.kicad_pro
│ ├── uSMU_v10.kicad_sch
│ ├── uSMU_v10.kicad_sym
│ ├── uSMU_v10.png
│ ├── uSMU_v10.pretty
│ │ ├── E6C0606RGBC3UDA.kicad_mod
│ │ └── TYPE-C-31-M-12.kicad_mod
│ ├── uSMU_v10_BOM.csv
│ └── uSMU_v10_schematic.pdf
├── Version 10r1
│ ├── Gerber files
│ │ ├── Gerber files.zip
│ │ ├── uSMU_v10-B_Cu.gbr
│ │ ├── uSMU_v10-B_Mask.gbr
│ │ ├── uSMU_v10-B_Paste.gbr
│ │ ├── uSMU_v10-B_Silkscreen.gbr
│ │ ├── uSMU_v10-Edge_Cuts.gbr
│ │ ├── uSMU_v10-F_Cu.gbr
│ │ ├── uSMU_v10-F_Mask.gbr
│ │ ├── uSMU_v10-F_Paste.gbr
│ │ ├── uSMU_v10-F_Silkscreen.gbr
│ │ ├── uSMU_v10-Ground.gbr
│ │ ├── uSMU_v10-NPTH-drl_map.ps
│ │ ├── uSMU_v10-NPTH.drl
│ │ ├── uSMU_v10-PTH-drl_map.ps
│ │ ├── uSMU_v10-PTH.drl
│ │ ├── uSMU_v10-Power.gbr
│ │ └── uSMU_v10-job.gbrjob
│ ├── Interactive BOM
│ │ └── uSMU_v10_BOM.html
│ ├── uSMU_v10-backups
│ │ ├── uSMU_v10-2022-03-21_154303.zip
│ │ └── uSMU_v10-2022-03-21_154837.zip
│ ├── uSMU_v10.kicad_pcb
│ ├── uSMU_v10.kicad_prl
│ ├── uSMU_v10.kicad_pro
│ ├── uSMU_v10.kicad_sch
│ ├── uSMU_v10.kicad_sym
│ ├── uSMU_v10.pretty
│ │ ├── E6C0606RGBC3UDA.kicad_mod
│ │ └── TYPE-C-31-M-12.kicad_mod
│ ├── uSMU_v10_BOM.csv
│ └── uSMU_v10_schematic.pdf
└── Version 5
│ ├── Gerber files
│ ├── uSMU_v05-B_Cu.gbr
│ ├── uSMU_v05-B_Mask.gbr
│ ├── uSMU_v05-B_Paste.gbr
│ ├── uSMU_v05-B_Silkscreen.gbr
│ ├── uSMU_v05-Edge_Cuts.gbr
│ ├── uSMU_v05-F_Cu.gbr
│ ├── uSMU_v05-F_Mask.gbr
│ ├── uSMU_v05-F_Paste.gbr
│ ├── uSMU_v05-F_Silkscreen.gbr
│ ├── uSMU_v05-Ground.gbr
│ ├── uSMU_v05-NPTH-drl_map.ps
│ ├── uSMU_v05-NPTH.drl
│ ├── uSMU_v05-PTH-drl_map.ps
│ ├── uSMU_v05-PTH.drl
│ ├── uSMU_v05-Power.gbr
│ └── uSMU_v05-job.gbrjob
│ ├── Interactive BOM
│ └── Interactive_BOM.html
│ ├── fp-lib-table
│ ├── sym-lib-table
│ ├── uSMU_v05.kicad_pcb
│ ├── uSMU_v05.kicad_prl
│ ├── uSMU_v05.kicad_pro
│ ├── uSMU_v05.kicad_sch
│ ├── uSMU_v05.kicad_sym
│ ├── uSMU_v05.png
│ ├── uSMU_v05.pretty
│ ├── CUI_PDM2-S5-D7-D.kicad_mod
│ ├── E6C0606RGBC3UDA.kicad_mod
│ ├── Linear_FE_TSSOP20.kicad_mod
│ ├── Molex_105450-0101.kicad_mod
│ ├── SOIC-20.kicad_mod
│ ├── Seeeduino XIAO-MOUDLE14P-2.54-21X17.8MM.kicad_mod
│ └── ksclogo.kicad_mod
│ └── uSMU_v05_schematic.pdf
├── README.md
├── licence.txt
└── usmu_tracer.png
/.gitignore:
--------------------------------------------------------------------------------
1 | /Firmware/For HW version 10/Debug
2 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | uSMU_v10
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder
10 | clean,full,incremental,
11 |
12 |
13 |
14 |
15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
16 | full,incremental,
17 |
18 |
19 |
20 |
21 |
22 | com.st.stm32cube.ide.mcu.MCUProjectNature
23 | org.eclipse.cdt.core.cnature
24 | com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAev2ProjectNature
25 | com.st.stm32cube.ide.mcu.MCUCubeProjectNature
26 | com.st.stm32cube.ide.mcu.MCUAdvancedStructureProjectNature
27 | com.st.stm32cube.ide.mcu.MCUEndUserDisabledTrustZoneProjectNature
28 | com.st.stm32cube.ide.mcu.MCUSingleCpuProjectNature
29 | com.st.stm32cube.ide.mcu.MCURootProjectNature
30 | org.eclipse.cdt.managedbuilder.core.managedBuildNature
31 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
32 |
33 |
34 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/.settings/language.settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/.settings/org.eclipse.cdt.core.prefs:
--------------------------------------------------------------------------------
1 | doxygen/doxygen_new_line_after_brief=true
2 | doxygen/doxygen_use_brief_tag=false
3 | doxygen/doxygen_use_javadoc_tags=true
4 | doxygen/doxygen_use_pre_tag=false
5 | doxygen/doxygen_use_structural_commands=false
6 | eclipse.preferences.version=1
7 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/.settings/stm32cubeide.project.prefs:
--------------------------------------------------------------------------------
1 | 2F62501ED4689FB349E356AB974DBE57=E807F1F7DE5EA78A4944F4A09A060BA0
2 | 8DF89ED150041C4CBC7CB9A9CAA90856=E807F1F7DE5EA78A4944F4A09A060BA0
3 | DC22A860405A8BF2F2C095E5B6529F12=74130BDEE96982E7A452358AFD50B322
4 | eclipse.preferences.version=1
5 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/Core/Inc/main.h:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file : main.h
5 | * @brief : Header for main.c file.
6 | * This file contains the common defines of the application.
7 | ******************************************************************************
8 | * @attention
9 | *
10 | *
© Copyright (c) 2021 STMicroelectronics.
11 | * All rights reserved.
12 | *
13 | * This software component is licensed by ST under Ultimate Liberty license
14 | * SLA0044, the "License"; You may not use this file except in compliance with
15 | * the License. You may obtain a copy of the License at:
16 | * www.st.com/SLA0044
17 | *
18 | ******************************************************************************
19 | */
20 | /* USER CODE END Header */
21 |
22 | /* Define to prevent recursive inclusion -------------------------------------*/
23 | #ifndef __MAIN_H
24 | #define __MAIN_H
25 |
26 | #ifdef __cplusplus
27 | extern "C" {
28 | #endif
29 |
30 | /* Includes ------------------------------------------------------------------*/
31 | #include "stm32f0xx_hal.h"
32 |
33 | /* Private includes ----------------------------------------------------------*/
34 | /* USER CODE BEGIN Includes */
35 |
36 | /* USER CODE END Includes */
37 |
38 | /* Exported types ------------------------------------------------------------*/
39 | /* USER CODE BEGIN ET */
40 |
41 | /* USER CODE END ET */
42 |
43 | /* Exported constants --------------------------------------------------------*/
44 | /* USER CODE BEGIN EC */
45 |
46 | /* USER CODE END EC */
47 |
48 | /* Exported macro ------------------------------------------------------------*/
49 | /* USER CODE BEGIN EM */
50 |
51 | /* USER CODE END EM */
52 |
53 | /* Exported functions prototypes ---------------------------------------------*/
54 | void Error_Handler(void);
55 |
56 | /* USER CODE BEGIN EFP */
57 |
58 | /* USER CODE END EFP */
59 |
60 | /* Private defines -----------------------------------------------------------*/
61 | #define LEDR_Pin GPIO_PIN_0
62 | #define LEDR_GPIO_Port GPIOA
63 | #define LEDG_Pin GPIO_PIN_1
64 | #define LEDG_GPIO_Port GPIOA
65 | #define LEDB_Pin GPIO_PIN_2
66 | #define LEDB_GPIO_Port GPIOA
67 | #define AMP_EN_Pin GPIO_PIN_5
68 | #define AMP_EN_GPIO_Port GPIOA
69 | #define I_G0_Pin GPIO_PIN_14
70 | #define I_G0_GPIO_Port GPIOB
71 | #define I_G1_Pin GPIO_PIN_15
72 | #define I_G1_GPIO_Port GPIOB
73 | #define I_G4_Pin GPIO_PIN_8
74 | #define I_G4_GPIO_Port GPIOA
75 | #define I_G3_Pin GPIO_PIN_9
76 | #define I_G3_GPIO_Port GPIOA
77 | #define I_G2_Pin GPIO_PIN_10
78 | #define I_G2_GPIO_Port GPIOA
79 | #define ADC_Alert_Pin GPIO_PIN_9
80 | #define ADC_Alert_GPIO_Port GPIOB
81 | /* USER CODE BEGIN Private defines */
82 |
83 | /* USER CODE END Private defines */
84 |
85 | #ifdef __cplusplus
86 | }
87 | #endif
88 |
89 | #endif /* __MAIN_H */
90 |
91 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
92 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/Core/Inc/stm32f0xx_it.h:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file stm32f0xx_it.h
5 | * @brief This file contains the headers of the interrupt handlers.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2021 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under Ultimate Liberty license
13 | * SLA0044, the "License"; You may not use this file except in compliance with
14 | * the License. You may obtain a copy of the License at:
15 | * www.st.com/SLA0044
16 | *
17 | ******************************************************************************
18 | */
19 | /* USER CODE END Header */
20 |
21 | /* Define to prevent recursive inclusion -------------------------------------*/
22 | #ifndef __STM32F0xx_IT_H
23 | #define __STM32F0xx_IT_H
24 |
25 | #ifdef __cplusplus
26 | extern "C" {
27 | #endif
28 |
29 | /* Private includes ----------------------------------------------------------*/
30 | /* USER CODE BEGIN Includes */
31 |
32 | /* USER CODE END Includes */
33 |
34 | /* Exported types ------------------------------------------------------------*/
35 | /* USER CODE BEGIN ET */
36 |
37 | /* USER CODE END ET */
38 |
39 | /* Exported constants --------------------------------------------------------*/
40 | /* USER CODE BEGIN EC */
41 |
42 | /* USER CODE END EC */
43 |
44 | /* Exported macro ------------------------------------------------------------*/
45 | /* USER CODE BEGIN EM */
46 |
47 | /* USER CODE END EM */
48 |
49 | /* Exported functions prototypes ---------------------------------------------*/
50 | void NMI_Handler(void);
51 | void HardFault_Handler(void);
52 | void SVC_Handler(void);
53 | void PendSV_Handler(void);
54 | void SysTick_Handler(void);
55 | void USB_IRQHandler(void);
56 | /* USER CODE BEGIN EFP */
57 |
58 | /* USER CODE END EFP */
59 |
60 | #ifdef __cplusplus
61 | }
62 | #endif
63 |
64 | #endif /* __STM32F0xx_IT_H */
65 |
66 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
67 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/Core/Src/stm32f0xx_it.c:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file stm32f0xx_it.c
5 | * @brief Interrupt Service Routines.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2021 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under Ultimate Liberty license
13 | * SLA0044, the "License"; You may not use this file except in compliance with
14 | * the License. You may obtain a copy of the License at:
15 | * www.st.com/SLA0044
16 | *
17 | ******************************************************************************
18 | */
19 | /* USER CODE END Header */
20 |
21 | /* Includes ------------------------------------------------------------------*/
22 | #include "main.h"
23 | #include "stm32f0xx_it.h"
24 | /* Private includes ----------------------------------------------------------*/
25 | /* USER CODE BEGIN Includes */
26 | /* USER CODE END Includes */
27 |
28 | /* Private typedef -----------------------------------------------------------*/
29 | /* USER CODE BEGIN TD */
30 |
31 | /* USER CODE END TD */
32 |
33 | /* Private define ------------------------------------------------------------*/
34 | /* USER CODE BEGIN PD */
35 |
36 | /* USER CODE END PD */
37 |
38 | /* Private macro -------------------------------------------------------------*/
39 | /* USER CODE BEGIN PM */
40 |
41 | /* USER CODE END PM */
42 |
43 | /* Private variables ---------------------------------------------------------*/
44 | /* USER CODE BEGIN PV */
45 |
46 | /* USER CODE END PV */
47 |
48 | /* Private function prototypes -----------------------------------------------*/
49 | /* USER CODE BEGIN PFP */
50 |
51 | /* USER CODE END PFP */
52 |
53 | /* Private user code ---------------------------------------------------------*/
54 | /* USER CODE BEGIN 0 */
55 |
56 | /* USER CODE END 0 */
57 |
58 | /* External variables --------------------------------------------------------*/
59 | extern PCD_HandleTypeDef hpcd_USB_FS;
60 | /* USER CODE BEGIN EV */
61 |
62 | /* USER CODE END EV */
63 |
64 | /******************************************************************************/
65 | /* Cortex-M0 Processor Interruption and Exception Handlers */
66 | /******************************************************************************/
67 | /**
68 | * @brief This function handles Non maskable interrupt.
69 | */
70 | void NMI_Handler(void)
71 | {
72 | /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
73 |
74 | /* USER CODE END NonMaskableInt_IRQn 0 */
75 | /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
76 | while (1)
77 | {
78 | }
79 | /* USER CODE END NonMaskableInt_IRQn 1 */
80 | }
81 |
82 | /**
83 | * @brief This function handles Hard fault interrupt.
84 | */
85 | void HardFault_Handler(void)
86 | {
87 | /* USER CODE BEGIN HardFault_IRQn 0 */
88 |
89 | /* USER CODE END HardFault_IRQn 0 */
90 | while (1)
91 | {
92 | /* USER CODE BEGIN W1_HardFault_IRQn 0 */
93 | /* USER CODE END W1_HardFault_IRQn 0 */
94 | }
95 | }
96 |
97 | /**
98 | * @brief This function handles System service call via SWI instruction.
99 | */
100 | void SVC_Handler(void)
101 | {
102 | /* USER CODE BEGIN SVC_IRQn 0 */
103 |
104 | /* USER CODE END SVC_IRQn 0 */
105 | /* USER CODE BEGIN SVC_IRQn 1 */
106 |
107 | /* USER CODE END SVC_IRQn 1 */
108 | }
109 |
110 | /**
111 | * @brief This function handles Pendable request for system service.
112 | */
113 | void PendSV_Handler(void)
114 | {
115 | /* USER CODE BEGIN PendSV_IRQn 0 */
116 |
117 | /* USER CODE END PendSV_IRQn 0 */
118 | /* USER CODE BEGIN PendSV_IRQn 1 */
119 |
120 | /* USER CODE END PendSV_IRQn 1 */
121 | }
122 |
123 | /**
124 | * @brief This function handles System tick timer.
125 | */
126 | void SysTick_Handler(void)
127 | {
128 | /* USER CODE BEGIN SysTick_IRQn 0 */
129 |
130 | /* USER CODE END SysTick_IRQn 0 */
131 | HAL_IncTick();
132 | /* USER CODE BEGIN SysTick_IRQn 1 */
133 |
134 | /* USER CODE END SysTick_IRQn 1 */
135 | }
136 |
137 | /******************************************************************************/
138 | /* STM32F0xx Peripheral Interrupt Handlers */
139 | /* Add here the Interrupt Handlers for the used peripherals. */
140 | /* For the available peripheral interrupt handler names, */
141 | /* please refer to the startup file (startup_stm32f0xx.s). */
142 | /******************************************************************************/
143 |
144 | /**
145 | * @brief This function handles USB global interrupt / USB wake-up interrupt through EXTI line 18.
146 | */
147 | void USB_IRQHandler(void)
148 | {
149 | /* USER CODE BEGIN USB_IRQn 0 */
150 |
151 | /* USER CODE END USB_IRQn 0 */
152 | HAL_PCD_IRQHandler(&hpcd_USB_FS);
153 | /* USER CODE BEGIN USB_IRQn 1 */
154 |
155 | /* USER CODE END USB_IRQn 1 */
156 | }
157 |
158 | /* USER CODE BEGIN 1 */
159 |
160 | /* USER CODE END 1 */
161 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
162 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/Core/Src/syscalls.c:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file syscalls.c
4 | * @author Auto-generated by STM32CubeIDE
5 | * @brief STM32CubeIDE Minimal System calls file
6 | *
7 | * For more information about which c-functions
8 | * need which of these lowlevel functions
9 | * please consult the Newlib libc-manual
10 | ******************************************************************************
11 | * @attention
12 | *
13 | * © Copyright (c) 2020 STMicroelectronics.
14 | * All rights reserved.
15 | *
16 | * This software component is licensed by ST under BSD 3-Clause license,
17 | * the "License"; You may not use this file except in compliance with the
18 | * License. You may obtain a copy of the License at:
19 | * opensource.org/licenses/BSD-3-Clause
20 | *
21 | ******************************************************************************
22 | */
23 |
24 | /* Includes */
25 | #include
26 | #include
27 | #include
28 | #include
29 | #include
30 | #include
31 | #include
32 | #include
33 |
34 |
35 | /* Variables */
36 | //#undef errno
37 | extern int errno;
38 | extern int __io_putchar(int ch) __attribute__((weak));
39 | extern int __io_getchar(void) __attribute__((weak));
40 |
41 | register char * stack_ptr asm("sp");
42 |
43 | char *__env[1] = { 0 };
44 | char **environ = __env;
45 |
46 |
47 | /* Functions */
48 | void initialise_monitor_handles()
49 | {
50 | }
51 |
52 | int _getpid(void)
53 | {
54 | return 1;
55 | }
56 |
57 | int _kill(int pid, int sig)
58 | {
59 | errno = EINVAL;
60 | return -1;
61 | }
62 |
63 | void _exit (int status)
64 | {
65 | _kill(status, -1);
66 | while (1) {} /* Make sure we hang here */
67 | }
68 |
69 | __attribute__((weak)) int _read(int file, char *ptr, int len)
70 | {
71 | int DataIdx;
72 |
73 | for (DataIdx = 0; DataIdx < len; DataIdx++)
74 | {
75 | *ptr++ = __io_getchar();
76 | }
77 |
78 | return len;
79 | }
80 |
81 | __attribute__((weak)) int _write(int file, char *ptr, int len)
82 | {
83 | int DataIdx;
84 |
85 | for (DataIdx = 0; DataIdx < len; DataIdx++)
86 | {
87 | __io_putchar(*ptr++);
88 | }
89 | return len;
90 | }
91 |
92 | int _close(int file)
93 | {
94 | return -1;
95 | }
96 |
97 |
98 | int _fstat(int file, struct stat *st)
99 | {
100 | st->st_mode = S_IFCHR;
101 | return 0;
102 | }
103 |
104 | int _isatty(int file)
105 | {
106 | return 1;
107 | }
108 |
109 | int _lseek(int file, int ptr, int dir)
110 | {
111 | return 0;
112 | }
113 |
114 | int _open(char *path, int flags, ...)
115 | {
116 | /* Pretend like we always fail */
117 | return -1;
118 | }
119 |
120 | int _wait(int *status)
121 | {
122 | errno = ECHILD;
123 | return -1;
124 | }
125 |
126 | int _unlink(char *name)
127 | {
128 | errno = ENOENT;
129 | return -1;
130 | }
131 |
132 | int _times(struct tms *buf)
133 | {
134 | return -1;
135 | }
136 |
137 | int _stat(char *file, struct stat *st)
138 | {
139 | st->st_mode = S_IFCHR;
140 | return 0;
141 | }
142 |
143 | int _link(char *old, char *new)
144 | {
145 | errno = EMLINK;
146 | return -1;
147 | }
148 |
149 | int _fork(void)
150 | {
151 | errno = EAGAIN;
152 | return -1;
153 | }
154 |
155 | int _execve(char *name, char **argv, char **env)
156 | {
157 | errno = ENOMEM;
158 | return -1;
159 | }
160 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/Core/Src/sysmem.c:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file sysmem.c
4 | * @author Generated by STM32CubeIDE
5 | * @brief STM32CubeIDE System Memory calls file
6 | *
7 | * For more information about which C functions
8 | * need which of these lowlevel functions
9 | * please consult the newlib libc manual
10 | ******************************************************************************
11 | * @attention
12 | *
13 | * © Copyright (c) 2020 STMicroelectronics.
14 | * All rights reserved.
15 | *
16 | * This software component is licensed by ST under BSD 3-Clause license,
17 | * the "License"; You may not use this file except in compliance with the
18 | * License. You may obtain a copy of the License at:
19 | * opensource.org/licenses/BSD-3-Clause
20 | *
21 | ******************************************************************************
22 | */
23 |
24 | /* Includes */
25 | #include
26 | #include
27 |
28 | /**
29 | * Pointer to the current high watermark of the heap usage
30 | */
31 | static uint8_t *__sbrk_heap_end = NULL;
32 |
33 | /**
34 | * @brief _sbrk() allocates memory to the newlib heap and is used by malloc
35 | * and others from the C library
36 | *
37 | * @verbatim
38 | * ############################################################################
39 | * # .data # .bss # newlib heap # MSP stack #
40 | * # # # # Reserved by _Min_Stack_Size #
41 | * ############################################################################
42 | * ^-- RAM start ^-- _end _estack, RAM end --^
43 | * @endverbatim
44 | *
45 | * This implementation starts allocating at the '_end' linker symbol
46 | * The '_Min_Stack_Size' linker symbol reserves a memory for the MSP stack
47 | * The implementation considers '_estack' linker symbol to be RAM end
48 | * NOTE: If the MSP stack, at any point during execution, grows larger than the
49 | * reserved size, please increase the '_Min_Stack_Size'.
50 | *
51 | * @param incr Memory size
52 | * @return Pointer to allocated memory
53 | */
54 | void *_sbrk(ptrdiff_t incr)
55 | {
56 | extern uint8_t _end; /* Symbol defined in the linker script */
57 | extern uint8_t _estack; /* Symbol defined in the linker script */
58 | extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */
59 | const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size;
60 | const uint8_t *max_heap = (uint8_t *)stack_limit;
61 | uint8_t *prev_heap_end;
62 |
63 | /* Initialize heap end at first call */
64 | if (NULL == __sbrk_heap_end)
65 | {
66 | __sbrk_heap_end = &_end;
67 | }
68 |
69 | /* Protect heap from growing into the reserved MSP stack */
70 | if (__sbrk_heap_end + incr > max_heap)
71 | {
72 | errno = ENOMEM;
73 | return (void *)-1;
74 | }
75 |
76 | prev_heap_end = __sbrk_heap_end;
77 | __sbrk_heap_end += incr;
78 |
79 | return (void *)prev_heap_end;
80 | }
81 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/Firmware/For HW version 10/Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h
--------------------------------------------------------------------------------
/Firmware/For HW version 10/Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/Firmware/For HW version 10/Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h
--------------------------------------------------------------------------------
/Firmware/For HW version 10/Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file system_stm32f0xx.h
4 | * @author MCD Application Team
5 | * @brief CMSIS Cortex-M0 Device System Source File for STM32F0xx devices.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2016 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under BSD 3-Clause license,
13 | * the "License"; You may not use this file except in compliance with the
14 | * License. You may obtain a copy of the License at:
15 | * opensource.org/licenses/BSD-3-Clause
16 | *
17 | ******************************************************************************
18 | */
19 |
20 | /** @addtogroup CMSIS
21 | * @{
22 | */
23 |
24 | /** @addtogroup stm32f0xx_system
25 | * @{
26 | */
27 |
28 | /**
29 | * @brief Define to prevent recursive inclusion
30 | */
31 | #ifndef __SYSTEM_STM32F0XX_H
32 | #define __SYSTEM_STM32F0XX_H
33 |
34 | #ifdef __cplusplus
35 | extern "C" {
36 | #endif
37 |
38 | /** @addtogroup STM32F0xx_System_Includes
39 | * @{
40 | */
41 |
42 | /**
43 | * @}
44 | */
45 |
46 |
47 | /** @addtogroup STM32F0xx_System_Exported_types
48 | * @{
49 | */
50 | /* This variable is updated in three ways:
51 | 1) by calling CMSIS function SystemCoreClockUpdate()
52 | 3) by calling HAL API function HAL_RCC_GetHCLKFreq()
53 | 3) by calling HAL API function HAL_RCC_ClockConfig()
54 | Note: If you use this function to configure the system clock; then there
55 | is no need to call the 2 first functions listed above, since SystemCoreClock
56 | variable is updated automatically.
57 | */
58 | extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */
59 | extern const uint8_t AHBPrescTable[16]; /*!< AHB prescalers table values */
60 | extern const uint8_t APBPrescTable[8]; /*!< APB prescalers table values */
61 |
62 | /**
63 | * @}
64 | */
65 |
66 | /** @addtogroup STM32F0xx_System_Exported_Constants
67 | * @{
68 | */
69 |
70 | /**
71 | * @}
72 | */
73 |
74 | /** @addtogroup STM32F0xx_System_Exported_Macros
75 | * @{
76 | */
77 |
78 | /**
79 | * @}
80 | */
81 |
82 | /** @addtogroup STM32F0xx_System_Exported_Functions
83 | * @{
84 | */
85 |
86 | extern void SystemInit(void);
87 | extern void SystemCoreClockUpdate(void);
88 | /**
89 | * @}
90 | */
91 |
92 | #ifdef __cplusplus
93 | }
94 | #endif
95 |
96 | #endif /*__SYSTEM_STM32F0XX_H */
97 |
98 | /**
99 | * @}
100 | */
101 |
102 | /**
103 | * @}
104 | */
105 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
106 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/Drivers/CMSIS/Include/cmsis_version.h:
--------------------------------------------------------------------------------
1 | /**************************************************************************//**
2 | * @file cmsis_version.h
3 | * @brief CMSIS Core(M) Version definitions
4 | * @version V5.0.2
5 | * @date 19. April 2017
6 | ******************************************************************************/
7 | /*
8 | * Copyright (c) 2009-2017 ARM Limited. All rights reserved.
9 | *
10 | * SPDX-License-Identifier: Apache-2.0
11 | *
12 | * Licensed under the Apache License, Version 2.0 (the License); you may
13 | * not use this file except in compliance with the License.
14 | * You may obtain a copy of the License at
15 | *
16 | * www.apache.org/licenses/LICENSE-2.0
17 | *
18 | * Unless required by applicable law or agreed to in writing, software
19 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
20 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | * See the License for the specific language governing permissions and
22 | * limitations under the License.
23 | */
24 |
25 | #if defined ( __ICCARM__ )
26 | #pragma system_include /* treat file as system include file for MISRA check */
27 | #elif defined (__clang__)
28 | #pragma clang system_header /* treat file as system include file */
29 | #endif
30 |
31 | #ifndef __CMSIS_VERSION_H
32 | #define __CMSIS_VERSION_H
33 |
34 | /* CMSIS Version definitions */
35 | #define __CM_CMSIS_VERSION_MAIN ( 5U) /*!< [31:16] CMSIS Core(M) main version */
36 | #define __CM_CMSIS_VERSION_SUB ( 1U) /*!< [15:0] CMSIS Core(M) sub version */
37 | #define __CM_CMSIS_VERSION ((__CM_CMSIS_VERSION_MAIN << 16U) | \
38 | __CM_CMSIS_VERSION_SUB ) /*!< CMSIS Core(M) version number */
39 | #endif
40 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/Drivers/CMSIS/Include/tz_context.h:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * @file tz_context.h
3 | * @brief Context Management for Armv8-M TrustZone
4 | * @version V1.0.1
5 | * @date 10. January 2018
6 | ******************************************************************************/
7 | /*
8 | * Copyright (c) 2017-2018 Arm Limited. All rights reserved.
9 | *
10 | * SPDX-License-Identifier: Apache-2.0
11 | *
12 | * Licensed under the Apache License, Version 2.0 (the License); you may
13 | * not use this file except in compliance with the License.
14 | * You may obtain a copy of the License at
15 | *
16 | * www.apache.org/licenses/LICENSE-2.0
17 | *
18 | * Unless required by applicable law or agreed to in writing, software
19 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
20 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | * See the License for the specific language governing permissions and
22 | * limitations under the License.
23 | */
24 |
25 | #if defined ( __ICCARM__ )
26 | #pragma system_include /* treat file as system include file for MISRA check */
27 | #elif defined (__clang__)
28 | #pragma clang system_header /* treat file as system include file */
29 | #endif
30 |
31 | #ifndef TZ_CONTEXT_H
32 | #define TZ_CONTEXT_H
33 |
34 | #include
35 |
36 | #ifndef TZ_MODULEID_T
37 | #define TZ_MODULEID_T
38 | /// \details Data type that identifies secure software modules called by a process.
39 | typedef uint32_t TZ_ModuleId_t;
40 | #endif
41 |
42 | /// \details TZ Memory ID identifies an allocated memory slot.
43 | typedef uint32_t TZ_MemoryId_t;
44 |
45 | /// Initialize secure context memory system
46 | /// \return execution status (1: success, 0: error)
47 | uint32_t TZ_InitContextSystem_S (void);
48 |
49 | /// Allocate context memory for calling secure software modules in TrustZone
50 | /// \param[in] module identifies software modules called from non-secure mode
51 | /// \return value != 0 id TrustZone memory slot identifier
52 | /// \return value 0 no memory available or internal error
53 | TZ_MemoryId_t TZ_AllocModuleContext_S (TZ_ModuleId_t module);
54 |
55 | /// Free context memory that was previously allocated with \ref TZ_AllocModuleContext_S
56 | /// \param[in] id TrustZone memory slot identifier
57 | /// \return execution status (1: success, 0: error)
58 | uint32_t TZ_FreeModuleContext_S (TZ_MemoryId_t id);
59 |
60 | /// Load secure context (called on RTOS thread context switch)
61 | /// \param[in] id TrustZone memory slot identifier
62 | /// \return execution status (1: success, 0: error)
63 | uint32_t TZ_LoadContext_S (TZ_MemoryId_t id);
64 |
65 | /// Store secure context (called on RTOS thread context switch)
66 | /// \param[in] id TrustZone memory slot identifier
67 | /// \return execution status (1: success, 0: error)
68 | uint32_t TZ_StoreContext_S (TZ_MemoryId_t id);
69 |
70 | #endif // TZ_CONTEXT_H
71 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_cortex.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f0xx_hal_cortex.h
4 | * @author MCD Application Team
5 | * @brief Header file of CORTEX HAL module.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2016 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under BSD 3-Clause license,
13 | * the "License"; You may not use this file except in compliance with the
14 | * License. You may obtain a copy of the License at:
15 | * opensource.org/licenses/BSD-3-Clause
16 | *
17 | ******************************************************************************
18 | */
19 |
20 | /* Define to prevent recursive inclusion -------------------------------------*/
21 | #ifndef __STM32F0xx_HAL_CORTEX_H
22 | #define __STM32F0xx_HAL_CORTEX_H
23 |
24 | #ifdef __cplusplus
25 | extern "C" {
26 | #endif
27 |
28 | /* Includes ------------------------------------------------------------------*/
29 | #include "stm32f0xx_hal_def.h"
30 |
31 | /** @addtogroup STM32F0xx_HAL_Driver
32 | * @{
33 | */
34 |
35 | /** @addtogroup CORTEX CORTEX
36 | * @{
37 | */
38 | /* Exported types ------------------------------------------------------------*/
39 | /* Exported constants --------------------------------------------------------*/
40 |
41 | /** @defgroup CORTEX_Exported_Constants CORTEX Exported Constants
42 | * @{
43 | */
44 |
45 | /** @defgroup CORTEX_SysTick_clock_source CORTEX SysTick clock source
46 | * @{
47 | */
48 | #define SYSTICK_CLKSOURCE_HCLK_DIV8 (0x00000000U)
49 | #define SYSTICK_CLKSOURCE_HCLK (0x00000004U)
50 |
51 | /**
52 | * @}
53 | */
54 |
55 | /**
56 | * @}
57 | */
58 |
59 | /* Exported Macros -----------------------------------------------------------*/
60 |
61 | /* Exported functions --------------------------------------------------------*/
62 | /** @addtogroup CORTEX_Exported_Functions CORTEX Exported Functions
63 | * @{
64 | */
65 | /** @addtogroup CORTEX_Exported_Functions_Group1 Initialization and de-initialization functions
66 | * @brief Initialization and Configuration functions
67 | * @{
68 | */
69 | /* Initialization and de-initialization functions *******************************/
70 | void HAL_NVIC_SetPriority(IRQn_Type IRQn,uint32_t PreemptPriority, uint32_t SubPriority);
71 | void HAL_NVIC_EnableIRQ(IRQn_Type IRQn);
72 | void HAL_NVIC_DisableIRQ(IRQn_Type IRQn);
73 | void HAL_NVIC_SystemReset(void);
74 | uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb);
75 | /**
76 | * @}
77 | */
78 |
79 | /** @addtogroup CORTEX_Exported_Functions_Group2 Peripheral Control functions
80 | * @brief Cortex control functions
81 | * @{
82 | */
83 |
84 | /* Peripheral Control functions *************************************************/
85 | uint32_t HAL_NVIC_GetPriority(IRQn_Type IRQn);
86 | uint32_t HAL_NVIC_GetPendingIRQ(IRQn_Type IRQn);
87 | void HAL_NVIC_SetPendingIRQ(IRQn_Type IRQn);
88 | void HAL_NVIC_ClearPendingIRQ(IRQn_Type IRQn);
89 | void HAL_SYSTICK_CLKSourceConfig(uint32_t CLKSource);
90 | void HAL_SYSTICK_IRQHandler(void);
91 | void HAL_SYSTICK_Callback(void);
92 | /**
93 | * @}
94 | */
95 |
96 | /**
97 | * @}
98 | */
99 |
100 | /* Private types -------------------------------------------------------------*/
101 | /* Private variables ---------------------------------------------------------*/
102 | /* Private constants ---------------------------------------------------------*/
103 | /* Private macros ------------------------------------------------------------*/
104 | /** @defgroup CORTEX_Private_Macros CORTEX Private Macros
105 | * @{
106 | */
107 | #define IS_NVIC_PREEMPTION_PRIORITY(PRIORITY) ((PRIORITY) < 0x4)
108 |
109 | #define IS_NVIC_DEVICE_IRQ(IRQ) ((IRQ) >= 0x00)
110 |
111 | #define IS_SYSTICK_CLK_SOURCE(SOURCE) (((SOURCE) == SYSTICK_CLKSOURCE_HCLK) || \
112 | ((SOURCE) == SYSTICK_CLKSOURCE_HCLK_DIV8))
113 | /**
114 | * @}
115 | */
116 |
117 | /**
118 | * @}
119 | */
120 |
121 | /**
122 | * @}
123 | */
124 |
125 | #ifdef __cplusplus
126 | }
127 | #endif
128 |
129 | #endif /* __STM32F0xx_HAL_CORTEX_H */
130 |
131 |
132 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
133 |
134 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_pcd_ex.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f0xx_hal_pcd_ex.h
4 | * @author MCD Application Team
5 | * @brief Header file of PCD HAL Extension module.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2016 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under BSD 3-Clause license,
13 | * the "License"; You may not use this file except in compliance with the
14 | * License. You may obtain a copy of the License at:
15 | * opensource.org/licenses/BSD-3-Clause
16 | *
17 | ******************************************************************************
18 | */
19 |
20 | /* Define to prevent recursive inclusion -------------------------------------*/
21 | #ifndef STM32F0xx_HAL_PCD_EX_H
22 | #define STM32F0xx_HAL_PCD_EX_H
23 |
24 | #ifdef __cplusplus
25 | extern "C" {
26 | #endif
27 |
28 | /* Includes ------------------------------------------------------------------*/
29 | #include "stm32f0xx_hal_def.h"
30 |
31 | #if defined (USB)
32 | /** @addtogroup STM32F0xx_HAL_Driver
33 | * @{
34 | */
35 |
36 | /** @addtogroup PCDEx
37 | * @{
38 | */
39 | /* Exported types ------------------------------------------------------------*/
40 | /* Exported constants --------------------------------------------------------*/
41 | /* Exported macros -----------------------------------------------------------*/
42 | /* Exported functions --------------------------------------------------------*/
43 | /** @addtogroup PCDEx_Exported_Functions PCDEx Exported Functions
44 | * @{
45 | */
46 | /** @addtogroup PCDEx_Exported_Functions_Group1 Peripheral Control functions
47 | * @{
48 | */
49 |
50 |
51 |
52 | HAL_StatusTypeDef HAL_PCDEx_PMAConfig(PCD_HandleTypeDef *hpcd, uint16_t ep_addr,
53 | uint16_t ep_kind, uint32_t pmaadress);
54 |
55 |
56 | HAL_StatusTypeDef HAL_PCDEx_ActivateLPM(PCD_HandleTypeDef *hpcd);
57 | HAL_StatusTypeDef HAL_PCDEx_DeActivateLPM(PCD_HandleTypeDef *hpcd);
58 |
59 |
60 | HAL_StatusTypeDef HAL_PCDEx_ActivateBCD(PCD_HandleTypeDef *hpcd);
61 | HAL_StatusTypeDef HAL_PCDEx_DeActivateBCD(PCD_HandleTypeDef *hpcd);
62 | void HAL_PCDEx_BCD_VBUSDetect(PCD_HandleTypeDef *hpcd);
63 |
64 | void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg);
65 | void HAL_PCDEx_BCD_Callback(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg);
66 |
67 | /**
68 | * @}
69 | */
70 |
71 | /**
72 | * @}
73 | */
74 |
75 | /**
76 | * @}
77 | */
78 |
79 | /**
80 | * @}
81 | */
82 | #endif /* defined (USB) */
83 |
84 | #ifdef __cplusplus
85 | }
86 | #endif
87 |
88 |
89 | #endif /* STM32F0xx_HAL_PCD_EX_H */
90 |
91 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
92 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file usbd_req.h
4 | * @author MCD Application Team
5 | * @brief Header file for the usbd_req.c file
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2015 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under Ultimate Liberty license
13 | * SLA0044, the "License"; You may not use this file except in compliance with
14 | * the License. You may obtain a copy of the License at:
15 | * www.st.com/SLA0044
16 | *
17 | ******************************************************************************
18 | */
19 |
20 | /* Define to prevent recursive inclusion -------------------------------------*/
21 | #ifndef __USB_REQUEST_H
22 | #define __USB_REQUEST_H
23 |
24 | #ifdef __cplusplus
25 | extern "C" {
26 | #endif
27 |
28 | /* Includes ------------------------------------------------------------------*/
29 | #include "usbd_def.h"
30 |
31 |
32 | /** @addtogroup STM32_USB_DEVICE_LIBRARY
33 | * @{
34 | */
35 |
36 | /** @defgroup USBD_REQ
37 | * @brief header file for the usbd_req.c file
38 | * @{
39 | */
40 |
41 | /** @defgroup USBD_REQ_Exported_Defines
42 | * @{
43 | */
44 | /**
45 | * @}
46 | */
47 |
48 |
49 | /** @defgroup USBD_REQ_Exported_Types
50 | * @{
51 | */
52 | /**
53 | * @}
54 | */
55 |
56 |
57 |
58 | /** @defgroup USBD_REQ_Exported_Macros
59 | * @{
60 | */
61 | /**
62 | * @}
63 | */
64 |
65 | /** @defgroup USBD_REQ_Exported_Variables
66 | * @{
67 | */
68 | /**
69 | * @}
70 | */
71 |
72 | /** @defgroup USBD_REQ_Exported_FunctionsPrototype
73 | * @{
74 | */
75 |
76 | USBD_StatusTypeDef USBD_StdDevReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req);
77 | USBD_StatusTypeDef USBD_StdItfReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req);
78 | USBD_StatusTypeDef USBD_StdEPReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req);
79 |
80 |
81 | void USBD_CtlError(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req);
82 |
83 | void USBD_ParseSetupRequest(USBD_SetupReqTypedef *req, uint8_t *pdata);
84 |
85 | void USBD_GetString(uint8_t *desc, uint8_t *unicode, uint16_t *len);
86 | /**
87 | * @}
88 | */
89 |
90 | #ifdef __cplusplus
91 | }
92 | #endif
93 |
94 | #endif /* __USB_REQUEST_H */
95 |
96 | /**
97 | * @}
98 | */
99 |
100 | /**
101 | * @}
102 | */
103 |
104 |
105 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
106 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file usbd_ioreq.h
4 | * @author MCD Application Team
5 | * @brief Header file for the usbd_ioreq.c file
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2015 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under Ultimate Liberty license
13 | * SLA0044, the "License"; You may not use this file except in compliance with
14 | * the License. You may obtain a copy of the License at:
15 | * www.st.com/SLA0044
16 | *
17 | ******************************************************************************
18 | */
19 |
20 | /* Define to prevent recursive inclusion -------------------------------------*/
21 | #ifndef __USBD_IOREQ_H
22 | #define __USBD_IOREQ_H
23 |
24 | #ifdef __cplusplus
25 | extern "C" {
26 | #endif
27 |
28 | /* Includes ------------------------------------------------------------------*/
29 | #include "usbd_def.h"
30 | #include "usbd_core.h"
31 |
32 | /** @addtogroup STM32_USB_DEVICE_LIBRARY
33 | * @{
34 | */
35 |
36 | /** @defgroup USBD_IOREQ
37 | * @brief header file for the usbd_ioreq.c file
38 | * @{
39 | */
40 |
41 | /** @defgroup USBD_IOREQ_Exported_Defines
42 | * @{
43 | */
44 | /**
45 | * @}
46 | */
47 |
48 |
49 | /** @defgroup USBD_IOREQ_Exported_Types
50 | * @{
51 | */
52 |
53 |
54 | /**
55 | * @}
56 | */
57 |
58 |
59 |
60 | /** @defgroup USBD_IOREQ_Exported_Macros
61 | * @{
62 | */
63 |
64 | /**
65 | * @}
66 | */
67 |
68 | /** @defgroup USBD_IOREQ_Exported_Variables
69 | * @{
70 | */
71 |
72 | /**
73 | * @}
74 | */
75 |
76 | /** @defgroup USBD_IOREQ_Exported_FunctionsPrototype
77 | * @{
78 | */
79 |
80 | USBD_StatusTypeDef USBD_CtlSendData(USBD_HandleTypeDef *pdev,
81 | uint8_t *pbuf,
82 | uint16_t len);
83 |
84 | USBD_StatusTypeDef USBD_CtlContinueSendData(USBD_HandleTypeDef *pdev,
85 | uint8_t *pbuf,
86 | uint16_t len);
87 |
88 | USBD_StatusTypeDef USBD_CtlPrepareRx(USBD_HandleTypeDef *pdev,
89 | uint8_t *pbuf,
90 | uint16_t len);
91 |
92 | USBD_StatusTypeDef USBD_CtlContinueRx(USBD_HandleTypeDef *pdev,
93 | uint8_t *pbuf,
94 | uint16_t len);
95 |
96 | USBD_StatusTypeDef USBD_CtlSendStatus(USBD_HandleTypeDef *pdev);
97 |
98 | USBD_StatusTypeDef USBD_CtlReceiveStatus(USBD_HandleTypeDef *pdev);
99 |
100 | uint32_t USBD_GetRxCount(USBD_HandleTypeDef *pdev, uint8_t ep_addr);
101 |
102 | /**
103 | * @}
104 | */
105 |
106 | #ifdef __cplusplus
107 | }
108 | #endif
109 |
110 | #endif /* __USBD_IOREQ_H */
111 |
112 | /**
113 | * @}
114 | */
115 |
116 | /**
117 | * @}
118 | */
119 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
120 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/STM32F072CBUX_FLASH.ld:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file LinkerScript.ld
4 | * @author Auto-generated by STM32CubeIDE
5 | * @brief Linker script for STM32F072CBUx Device from STM32F0 series
6 | * 128Kbytes FLASH
7 | * 16Kbytes RAM
8 | *
9 | * Set heap size, stack size and stack location according
10 | * to application requirements.
11 | *
12 | * Set memory bank area and size if external memory is used
13 | ******************************************************************************
14 | * @attention
15 | *
16 | * © Copyright (c) 2020 STMicroelectronics.
17 | * All rights reserved.
18 | *
19 | * This software component is licensed by ST under BSD 3-Clause license,
20 | * the "License"; You may not use this file except in compliance with the
21 | * License. You may obtain a copy of the License at:
22 | * opensource.org/licenses/BSD-3-Clause
23 | *
24 | ******************************************************************************
25 | */
26 |
27 | /* Entry Point */
28 | ENTRY(Reset_Handler)
29 |
30 | /* Highest address of the user mode stack */
31 | _estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */
32 |
33 | _Min_Heap_Size = 0x200; /* required amount of heap */
34 | _Min_Stack_Size = 0x400; /* required amount of stack */
35 |
36 | /* Memories definition */
37 | MEMORY
38 | {
39 | RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 16K
40 | FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 128K
41 | }
42 |
43 | /* Sections */
44 | SECTIONS
45 | {
46 | /* The startup code into "FLASH" Rom type memory */
47 | .isr_vector :
48 | {
49 | . = ALIGN(4);
50 | KEEP(*(.isr_vector)) /* Startup code */
51 | . = ALIGN(4);
52 | } >FLASH
53 |
54 | /* The program code and other data into "FLASH" Rom type memory */
55 | .text :
56 | {
57 | . = ALIGN(4);
58 | *(.text) /* .text sections (code) */
59 | *(.text*) /* .text* sections (code) */
60 | *(.glue_7) /* glue arm to thumb code */
61 | *(.glue_7t) /* glue thumb to arm code */
62 | *(.eh_frame)
63 |
64 | KEEP (*(.init))
65 | KEEP (*(.fini))
66 |
67 | . = ALIGN(4);
68 | _etext = .; /* define a global symbols at end of code */
69 | } >FLASH
70 |
71 | /* Constant data into "FLASH" Rom type memory */
72 | .rodata :
73 | {
74 | . = ALIGN(4);
75 | *(.rodata) /* .rodata sections (constants, strings, etc.) */
76 | *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
77 | . = ALIGN(4);
78 | } >FLASH
79 |
80 | .ARM.extab : {
81 | . = ALIGN(4);
82 | *(.ARM.extab* .gnu.linkonce.armextab.*)
83 | . = ALIGN(4);
84 | } >FLASH
85 |
86 | .ARM : {
87 | . = ALIGN(4);
88 | __exidx_start = .;
89 | *(.ARM.exidx*)
90 | __exidx_end = .;
91 | . = ALIGN(4);
92 | } >FLASH
93 |
94 | .preinit_array :
95 | {
96 | . = ALIGN(4);
97 | PROVIDE_HIDDEN (__preinit_array_start = .);
98 | KEEP (*(.preinit_array*))
99 | PROVIDE_HIDDEN (__preinit_array_end = .);
100 | . = ALIGN(4);
101 | } >FLASH
102 |
103 | .init_array :
104 | {
105 | . = ALIGN(4);
106 | PROVIDE_HIDDEN (__init_array_start = .);
107 | KEEP (*(SORT(.init_array.*)))
108 | KEEP (*(.init_array*))
109 | PROVIDE_HIDDEN (__init_array_end = .);
110 | . = ALIGN(4);
111 | } >FLASH
112 |
113 | .fini_array :
114 | {
115 | . = ALIGN(4);
116 | PROVIDE_HIDDEN (__fini_array_start = .);
117 | KEEP (*(SORT(.fini_array.*)))
118 | KEEP (*(.fini_array*))
119 | PROVIDE_HIDDEN (__fini_array_end = .);
120 | . = ALIGN(4);
121 | } >FLASH
122 |
123 | /* Used by the startup to initialize data */
124 | _sidata = LOADADDR(.data);
125 |
126 | /* Initialized data sections into "RAM" Ram type memory */
127 | .data :
128 | {
129 | . = ALIGN(4);
130 | _sdata = .; /* create a global symbol at data start */
131 | *(.data) /* .data sections */
132 | *(.data*) /* .data* sections */
133 |
134 | . = ALIGN(4);
135 | _edata = .; /* define a global symbol at data end */
136 |
137 | } >RAM AT> FLASH
138 |
139 | /* Uninitialized data section into "RAM" Ram type memory */
140 | . = ALIGN(4);
141 | .bss :
142 | {
143 | /* This is used by the startup in order to initialize the .bss section */
144 | _sbss = .; /* define a global symbol at bss start */
145 | __bss_start__ = _sbss;
146 | *(.bss)
147 | *(.bss*)
148 | *(COMMON)
149 |
150 | . = ALIGN(4);
151 | _ebss = .; /* define a global symbol at bss end */
152 | __bss_end__ = _ebss;
153 | } >RAM
154 |
155 | /* User_heap_stack section, used to check that there is enough "RAM" Ram type memory left */
156 | ._user_heap_stack :
157 | {
158 | . = ALIGN(8);
159 | PROVIDE ( end = . );
160 | PROVIDE ( _end = . );
161 | . = . + _Min_Heap_Size;
162 | . = . + _Min_Stack_Size;
163 | . = ALIGN(8);
164 | } >RAM
165 |
166 | /* Remove information from the compiler libraries */
167 | /DISCARD/ :
168 | {
169 | libc.a ( * )
170 | libm.a ( * )
171 | libgcc.a ( * )
172 | }
173 |
174 | .ARM.attributes 0 : { *(.ARM.attributes) }
175 | }
176 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/USB_DEVICE/App/usb_device.c:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file : usb_device.c
5 | * @version : v2.0_Cube
6 | * @brief : This file implements the USB Device
7 | ******************************************************************************
8 | * @attention
9 | *
10 | * © Copyright (c) 2021 STMicroelectronics.
11 | * All rights reserved.
12 | *
13 | * This software component is licensed by ST under Ultimate Liberty license
14 | * SLA0044, the "License"; You may not use this file except in compliance with
15 | * the License. You may obtain a copy of the License at:
16 | * www.st.com/SLA0044
17 | *
18 | ******************************************************************************
19 | */
20 | /* USER CODE END Header */
21 |
22 | /* Includes ------------------------------------------------------------------*/
23 |
24 | #include "usb_device.h"
25 | #include "usbd_core.h"
26 | #include "usbd_desc.h"
27 | #include "usbd_cdc.h"
28 | #include "usbd_cdc_if.h"
29 |
30 | /* USER CODE BEGIN Includes */
31 |
32 | /* USER CODE END Includes */
33 |
34 | /* USER CODE BEGIN PV */
35 | /* Private variables ---------------------------------------------------------*/
36 |
37 | /* USER CODE END PV */
38 |
39 | /* USER CODE BEGIN PFP */
40 | /* Private function prototypes -----------------------------------------------*/
41 |
42 | /* USER CODE END PFP */
43 |
44 | /* USB Device Core handle declaration. */
45 | USBD_HandleTypeDef hUsbDeviceFS;
46 |
47 | /*
48 | * -- Insert your variables declaration here --
49 | */
50 | /* USER CODE BEGIN 0 */
51 |
52 | /* USER CODE END 0 */
53 |
54 | /*
55 | * -- Insert your external function declaration here --
56 | */
57 | /* USER CODE BEGIN 1 */
58 |
59 | /* USER CODE END 1 */
60 |
61 | /**
62 | * Init USB device Library, add supported class and start the library
63 | * @retval None
64 | */
65 | void MX_USB_DEVICE_Init(void)
66 | {
67 | /* USER CODE BEGIN USB_DEVICE_Init_PreTreatment */
68 |
69 | /* USER CODE END USB_DEVICE_Init_PreTreatment */
70 |
71 | /* Init Device Library, add supported class and start the library. */
72 | if (USBD_Init(&hUsbDeviceFS, &FS_Desc, DEVICE_FS) != USBD_OK)
73 | {
74 | Error_Handler();
75 | }
76 | if (USBD_RegisterClass(&hUsbDeviceFS, &USBD_CDC) != USBD_OK)
77 | {
78 | Error_Handler();
79 | }
80 | if (USBD_CDC_RegisterInterface(&hUsbDeviceFS, &USBD_Interface_fops_FS) != USBD_OK)
81 | {
82 | Error_Handler();
83 | }
84 | if (USBD_Start(&hUsbDeviceFS) != USBD_OK)
85 | {
86 | Error_Handler();
87 | }
88 |
89 | /* USER CODE BEGIN USB_DEVICE_Init_PostTreatment */
90 |
91 | /* USER CODE END USB_DEVICE_Init_PostTreatment */
92 | }
93 |
94 | /**
95 | * @}
96 | */
97 |
98 | /**
99 | * @}
100 | */
101 |
102 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
103 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/USB_DEVICE/App/usb_device.h:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file : usb_device.h
5 | * @version : v2.0_Cube
6 | * @brief : Header for usb_device.c file.
7 | ******************************************************************************
8 | * @attention
9 | *
10 | * © Copyright (c) 2021 STMicroelectronics.
11 | * All rights reserved.
12 | *
13 | * This software component is licensed by ST under Ultimate Liberty license
14 | * SLA0044, the "License"; You may not use this file except in compliance with
15 | * the License. You may obtain a copy of the License at:
16 | * www.st.com/SLA0044
17 | *
18 | ******************************************************************************
19 | */
20 | /* USER CODE END Header */
21 |
22 | /* Define to prevent recursive inclusion -------------------------------------*/
23 | #ifndef __USB_DEVICE__H__
24 | #define __USB_DEVICE__H__
25 |
26 | #ifdef __cplusplus
27 | extern "C" {
28 | #endif
29 |
30 | /* Includes ------------------------------------------------------------------*/
31 | #include "stm32f0xx.h"
32 | #include "stm32f0xx_hal.h"
33 | #include "usbd_def.h"
34 |
35 | /* USER CODE BEGIN INCLUDE */
36 |
37 | /* USER CODE END INCLUDE */
38 |
39 | /** @addtogroup USBD_OTG_DRIVER
40 | * @{
41 | */
42 |
43 | /** @defgroup USBD_DEVICE USBD_DEVICE
44 | * @brief Device file for Usb otg low level driver.
45 | * @{
46 | */
47 |
48 | /** @defgroup USBD_DEVICE_Exported_Variables USBD_DEVICE_Exported_Variables
49 | * @brief Public variables.
50 | * @{
51 | */
52 |
53 | /* Private variables ---------------------------------------------------------*/
54 | /* USER CODE BEGIN PV */
55 |
56 | /* USER CODE END PV */
57 |
58 | /* Private function prototypes -----------------------------------------------*/
59 | /* USER CODE BEGIN PFP */
60 |
61 | /* USER CODE END PFP */
62 |
63 | /*
64 | * -- Insert your variables declaration here --
65 | */
66 | /* USER CODE BEGIN VARIABLES */
67 |
68 | /* USER CODE END VARIABLES */
69 | /**
70 | * @}
71 | */
72 |
73 | /** @defgroup USBD_DEVICE_Exported_FunctionsPrototype USBD_DEVICE_Exported_FunctionsPrototype
74 | * @brief Declaration of public functions for Usb device.
75 | * @{
76 | */
77 |
78 | /** USB Device initialization function. */
79 | void MX_USB_DEVICE_Init(void);
80 |
81 | /*
82 | * -- Insert functions declaration here --
83 | */
84 | /* USER CODE BEGIN FD */
85 |
86 | /* USER CODE END FD */
87 | /**
88 | * @}
89 | */
90 |
91 | /**
92 | * @}
93 | */
94 |
95 | /**
96 | * @}
97 | */
98 |
99 | #ifdef __cplusplus
100 | }
101 | #endif
102 |
103 | #endif /* __USB_DEVICE__H__ */
104 |
105 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
106 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/USB_DEVICE/App/usbd_cdc_if.h:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file : usbd_cdc_if.h
5 | * @version : v2.0_Cube
6 | * @brief : Header for usbd_cdc_if.c file.
7 | ******************************************************************************
8 | * @attention
9 | *
10 | * © Copyright (c) 2021 STMicroelectronics.
11 | * All rights reserved.
12 | *
13 | * This software component is licensed by ST under Ultimate Liberty license
14 | * SLA0044, the "License"; You may not use this file except in compliance with
15 | * the License. You may obtain a copy of the License at:
16 | * www.st.com/SLA0044
17 | *
18 | ******************************************************************************
19 | */
20 | /* USER CODE END Header */
21 |
22 | /* Define to prevent recursive inclusion -------------------------------------*/
23 | #ifndef __USBD_CDC_IF_H__
24 | #define __USBD_CDC_IF_H__
25 |
26 | #ifdef __cplusplus
27 | extern "C" {
28 | #endif
29 |
30 | /* Includes ------------------------------------------------------------------*/
31 | #include "usbd_cdc.h"
32 |
33 | /* USER CODE BEGIN INCLUDE */
34 | #define FIFO_SIZE 32 // must be 2^N
35 |
36 | #define FIFO_INCR(x) (((x)+1)&((FIFO_SIZE)-1))
37 |
38 | /* Structure of FIFO*/
39 |
40 | typedef struct FIFO
41 | {
42 | uint32_t head;
43 | uint32_t tail;
44 | uint8_t data[FIFO_SIZE];
45 | } FIFO;
46 |
47 | extern FIFO RX_FIFO;
48 | /* USER CODE END INCLUDE */
49 |
50 | /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
51 | * @brief For Usb device.
52 | * @{
53 | */
54 |
55 | /** @defgroup USBD_CDC_IF USBD_CDC_IF
56 | * @brief Usb VCP device module
57 | * @{
58 | */
59 |
60 | /** @defgroup USBD_CDC_IF_Exported_Defines USBD_CDC_IF_Exported_Defines
61 | * @brief Defines.
62 | * @{
63 | */
64 | /* USER CODE BEGIN EXPORTED_DEFINES */
65 | /* Define size for the receive and transmit buffer over CDC */
66 | /* It's up to user to redefine and/or remove those define */
67 | #define APP_RX_DATA_SIZE 1000
68 | #define APP_TX_DATA_SIZE 1000
69 |
70 | /* USER CODE END EXPORTED_DEFINES */
71 |
72 | /**
73 | * @}
74 | */
75 |
76 | /** @defgroup USBD_CDC_IF_Exported_Types USBD_CDC_IF_Exported_Types
77 | * @brief Types.
78 | * @{
79 | */
80 |
81 | /* USER CODE BEGIN EXPORTED_TYPES */
82 |
83 | /* USER CODE END EXPORTED_TYPES */
84 |
85 | /**
86 | * @}
87 | */
88 |
89 | /** @defgroup USBD_CDC_IF_Exported_Macros USBD_CDC_IF_Exported_Macros
90 | * @brief Aliases.
91 | * @{
92 | */
93 |
94 | /* USER CODE BEGIN EXPORTED_MACRO */
95 |
96 | /* USER CODE END EXPORTED_MACRO */
97 |
98 | /**
99 | * @}
100 | */
101 |
102 | /** @defgroup USBD_CDC_IF_Exported_Variables USBD_CDC_IF_Exported_Variables
103 | * @brief Public variables.
104 | * @{
105 | */
106 |
107 | /** CDC Interface callback. */
108 | extern USBD_CDC_ItfTypeDef USBD_Interface_fops_FS;
109 |
110 | /* USER CODE BEGIN EXPORTED_VARIABLES */
111 |
112 | /* USER CODE END EXPORTED_VARIABLES */
113 |
114 | /**
115 | * @}
116 | */
117 |
118 | /** @defgroup USBD_CDC_IF_Exported_FunctionsPrototype USBD_CDC_IF_Exported_FunctionsPrototype
119 | * @brief Public functions declaration.
120 | * @{
121 | */
122 |
123 | uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len);
124 |
125 | /* USER CODE BEGIN EXPORTED_FUNCTIONS */
126 |
127 | /* USER CODE END EXPORTED_FUNCTIONS */
128 |
129 | /**
130 | * @}
131 | */
132 |
133 | /**
134 | * @}
135 | */
136 |
137 | /**
138 | * @}
139 | */
140 |
141 | #ifdef __cplusplus
142 | }
143 | #endif
144 |
145 | #endif /* __USBD_CDC_IF_H__ */
146 |
147 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
148 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/USB_DEVICE/App/usbd_desc.h:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file : usbd_desc.c
5 | * @version : v2.0_Cube
6 | * @brief : Header for usbd_conf.c file.
7 | ******************************************************************************
8 | * @attention
9 | *
10 | * © Copyright (c) 2021 STMicroelectronics.
11 | * All rights reserved.
12 | *
13 | * This software component is licensed by ST under Ultimate Liberty license
14 | * SLA0044, the "License"; You may not use this file except in compliance with
15 | * the License. You may obtain a copy of the License at:
16 | * www.st.com/SLA0044
17 | *
18 | ******************************************************************************
19 | */
20 | /* USER CODE END Header */
21 | /* Define to prevent recursive inclusion -------------------------------------*/
22 | #ifndef __USBD_DESC__C__
23 | #define __USBD_DESC__C__
24 |
25 | #ifdef __cplusplus
26 | extern "C" {
27 | #endif
28 |
29 | /* Includes ------------------------------------------------------------------*/
30 | #include "usbd_def.h"
31 |
32 | /* USER CODE BEGIN INCLUDE */
33 |
34 | /* USER CODE END INCLUDE */
35 |
36 | /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
37 | * @{
38 | */
39 |
40 | /** @defgroup USBD_DESC USBD_DESC
41 | * @brief Usb device descriptors module.
42 | * @{
43 | */
44 |
45 | /** @defgroup USBD_DESC_Exported_Constants USBD_DESC_Exported_Constants
46 | * @brief Constants.
47 | * @{
48 | */
49 | #define DEVICE_ID1 (UID_BASE)
50 | #define DEVICE_ID2 (UID_BASE + 0x4)
51 | #define DEVICE_ID3 (UID_BASE + 0x8)
52 |
53 | #define USB_SIZ_STRING_SERIAL 0x1A
54 |
55 | /* USER CODE BEGIN EXPORTED_CONSTANTS */
56 |
57 | /* USER CODE END EXPORTED_CONSTANTS */
58 |
59 | /**
60 | * @}
61 | */
62 |
63 | /** @defgroup USBD_DESC_Exported_Defines USBD_DESC_Exported_Defines
64 | * @brief Defines.
65 | * @{
66 | */
67 |
68 | /* USER CODE BEGIN EXPORTED_DEFINES */
69 |
70 | /* USER CODE END EXPORTED_DEFINES */
71 |
72 | /**
73 | * @}
74 | */
75 |
76 | /** @defgroup USBD_DESC_Exported_TypesDefinitions USBD_DESC_Exported_TypesDefinitions
77 | * @brief Types.
78 | * @{
79 | */
80 |
81 | /* USER CODE BEGIN EXPORTED_TYPES */
82 |
83 | /* USER CODE END EXPORTED_TYPES */
84 |
85 | /**
86 | * @}
87 | */
88 |
89 | /** @defgroup USBD_DESC_Exported_Macros USBD_DESC_Exported_Macros
90 | * @brief Aliases.
91 | * @{
92 | */
93 |
94 | /* USER CODE BEGIN EXPORTED_MACRO */
95 |
96 | /* USER CODE END EXPORTED_MACRO */
97 |
98 | /**
99 | * @}
100 | */
101 |
102 | /** @defgroup USBD_DESC_Exported_Variables USBD_DESC_Exported_Variables
103 | * @brief Public variables.
104 | * @{
105 | */
106 |
107 | /** Descriptor for the Usb device. */
108 | extern USBD_DescriptorsTypeDef FS_Desc;
109 |
110 | /* USER CODE BEGIN EXPORTED_VARIABLES */
111 |
112 | /* USER CODE END EXPORTED_VARIABLES */
113 |
114 | /**
115 | * @}
116 | */
117 |
118 | /** @defgroup USBD_DESC_Exported_FunctionsPrototype USBD_DESC_Exported_FunctionsPrototype
119 | * @brief Public functions declaration.
120 | * @{
121 | */
122 |
123 | /* USER CODE BEGIN EXPORTED_FUNCTIONS */
124 |
125 | /* USER CODE END EXPORTED_FUNCTIONS */
126 |
127 | /**
128 | * @}
129 | */
130 |
131 | /**
132 | * @}
133 | */
134 |
135 | /**
136 | * @}
137 | */
138 |
139 | #ifdef __cplusplus
140 | }
141 | #endif
142 |
143 | #endif /* __USBD_DESC__C__ */
144 |
145 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
146 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/USB_DEVICE/Target/usbd_conf.h:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file : usbd_conf.h
5 | * @version : v2.0_Cube
6 | * @brief : Header for usbd_conf.c file.
7 | ******************************************************************************
8 | * @attention
9 | *
10 | * © Copyright (c) 2021 STMicroelectronics.
11 | * All rights reserved.
12 | *
13 | * This software component is licensed by ST under Ultimate Liberty license
14 | * SLA0044, the "License"; You may not use this file except in compliance with
15 | * the License. You may obtain a copy of the License at:
16 | * www.st.com/SLA0044
17 | *
18 | ******************************************************************************
19 | */
20 | /* USER CODE END Header */
21 |
22 | /* Define to prevent recursive inclusion -------------------------------------*/
23 | #ifndef __USBD_CONF__H__
24 | #define __USBD_CONF__H__
25 |
26 | #ifdef __cplusplus
27 | extern "C" {
28 | #endif
29 |
30 | /* Includes ------------------------------------------------------------------*/
31 | #include
32 | #include
33 | #include
34 | #include "main.h"
35 | #include "stm32f0xx.h"
36 | #include "stm32f0xx_hal.h"
37 |
38 | /* USER CODE BEGIN INCLUDE */
39 |
40 | /* USER CODE END INCLUDE */
41 |
42 | /** @addtogroup USBD_OTG_DRIVER
43 | * @{
44 | */
45 |
46 | /** @defgroup USBD_CONF USBD_CONF
47 | * @brief Configuration file for Usb otg low level driver.
48 | * @{
49 | */
50 |
51 | /** @defgroup USBD_CONF_Exported_Variables USBD_CONF_Exported_Variables
52 | * @brief Public variables.
53 | * @{
54 | */
55 |
56 | /**
57 | * @}
58 | */
59 |
60 | /** @defgroup USBD_CONF_Exported_Defines USBD_CONF_Exported_Defines
61 | * @brief Defines for configuration of the Usb device.
62 | * @{
63 | */
64 |
65 | /*---------- -----------*/
66 | #define USBD_MAX_NUM_INTERFACES 1
67 | /*---------- -----------*/
68 | #define USBD_MAX_NUM_CONFIGURATION 1
69 | /*---------- -----------*/
70 | #define USBD_MAX_STR_DESC_SIZ 512
71 | /*---------- -----------*/
72 | #define USBD_DEBUG_LEVEL 0
73 | /*---------- -----------*/
74 | #define USBD_SELF_POWERED 0
75 | /*---------- -----------*/
76 | #define MAX_STATIC_ALLOC_SIZE 512
77 |
78 | /****************************************/
79 | /* #define for FS and HS identification */
80 | #define DEVICE_FS 0
81 |
82 | /**
83 | * @}
84 | */
85 |
86 | /** @defgroup USBD_CONF_Exported_Macros USBD_CONF_Exported_Macros
87 | * @brief Aliases.
88 | * @{
89 | */
90 |
91 | /* Memory management macros */
92 |
93 | /** Alias for memory allocation. */
94 | #define USBD_malloc (uint32_t *)USBD_static_malloc
95 |
96 | /** Alias for memory release. */
97 | #define USBD_free USBD_static_free
98 |
99 | /** Alias for memory set. */
100 | #define USBD_memset /* Not used */
101 |
102 | /** Alias for memory copy. */
103 | #define USBD_memcpy /* Not used */
104 |
105 | /** Alias for delay. */
106 | #define USBD_Delay HAL_Delay
107 |
108 | /* DEBUG macros */
109 |
110 | #if (USBD_DEBUG_LEVEL > 0)
111 | #define USBD_UsrLog(...) printf(__VA_ARGS__);\
112 | printf("\n");
113 | #else
114 | #define USBD_UsrLog(...)
115 | #endif
116 |
117 | #if (USBD_DEBUG_LEVEL > 1)
118 |
119 | #define USBD_ErrLog(...) printf("ERROR: ") ;\
120 | printf(__VA_ARGS__);\
121 | printf("\n");
122 | #else
123 | #define USBD_ErrLog(...)
124 | #endif
125 |
126 | #if (USBD_DEBUG_LEVEL > 2)
127 | #define USBD_DbgLog(...) printf("DEBUG : ") ;\
128 | printf(__VA_ARGS__);\
129 | printf("\n");
130 | #else
131 | #define USBD_DbgLog(...)
132 | #endif
133 |
134 | /**
135 | * @}
136 | */
137 |
138 | /** @defgroup USBD_CONF_Exported_Types USBD_CONF_Exported_Types
139 | * @brief Types.
140 | * @{
141 | */
142 |
143 | /**
144 | * @}
145 | */
146 |
147 | /** @defgroup USBD_CONF_Exported_FunctionsPrototype USBD_CONF_Exported_FunctionsPrototype
148 | * @brief Declaration of public functions for Usb device.
149 | * @{
150 | */
151 |
152 | /* Exported functions -------------------------------------------------------*/
153 | void *USBD_static_malloc(uint32_t size);
154 | void USBD_static_free(void *p);
155 | /**
156 | * @}
157 | */
158 |
159 | /**
160 | * @}
161 | */
162 |
163 | /**
164 | * @}
165 | */
166 |
167 | #ifdef __cplusplus
168 | }
169 | #endif
170 |
171 | #endif /* __USBD_CONF__H__ */
172 |
173 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
174 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/calibration_graphs/.gitignore:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/calibration_graphs/currentlimit_graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/Firmware/For HW version 10/calibration_graphs/currentlimit_graph.png
--------------------------------------------------------------------------------
/Firmware/For HW version 10/calibration_graphs/voltageadc_graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/Firmware/For HW version 10/calibration_graphs/voltageadc_graph.png
--------------------------------------------------------------------------------
/Firmware/For HW version 10/calibration_graphs/voltagedac_graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/Firmware/For HW version 10/calibration_graphs/voltagedac_graph.png
--------------------------------------------------------------------------------
/Firmware/For HW version 10/calibration_graphs/zerocurrent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/Firmware/For HW version 10/calibration_graphs/zerocurrent.png
--------------------------------------------------------------------------------
/Firmware/For HW version 10/calibration_graphs/zerocurrent_graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/Firmware/For HW version 10/calibration_graphs/zerocurrent_graph.png
--------------------------------------------------------------------------------
/Firmware/For HW version 10/ee/ee.h:
--------------------------------------------------------------------------------
1 | #ifndef __EEPROM_H
2 | #define __EEPROM_H
3 |
4 | /*
5 | Author: Nima Askari
6 | WebSite: http://www.github.com/NimaLTD
7 | Instagram: http://instagram.com/github.NimaLTD
8 | Youtube: https://www.youtube.com/channel/UCUhY7qY1klJm1d2kulr9ckw
9 |
10 | Version: 2.0.3
11 |
12 | (2.0.3)
13 | Add F411.
14 |
15 | (2.0.2)
16 | Add L4.
17 |
18 | (2.0.1)
19 | Change function name to ee_commit().
20 |
21 | Reversion History:
22 | (2.0.0)
23 | Rewrite again.
24 |
25 | */
26 |
27 | #ifdef __cplusplus
28 | extern "C" {
29 | #endif
30 |
31 | #include "stdbool.h"
32 | #include "main.h"
33 |
34 | //################################################################################################################
35 | bool ee_init(void);
36 | bool ee_format(bool keepRamData);
37 | bool ee_read(uint32_t startVirtualAddress, uint32_t len, uint8_t* data);
38 | bool ee_write(uint32_t startVirtualAddress, uint32_t len, uint8_t* data);
39 | bool ee_writeToRam(uint32_t startVirtualAddress, uint32_t len, uint8_t* data); // only use when _EE_USE_RAM_BYTE is enabled
40 | bool ee_commit(void); // only use when _EE_USE_RAM_BYTE is enabled
41 | uint32_t ee_maxVirtualAddress(void);
42 |
43 | //################################################################################################################
44 |
45 | #ifdef __cplusplus
46 | }
47 | #endif
48 |
49 | #endif
50 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/ee/eeConfig.h:
--------------------------------------------------------------------------------
1 | #ifndef __EECONFIG_H
2 | #define __EECONFIG_H
3 |
4 | #define _EE_USE_FLASH_PAGE_OR_SECTOR (63)
5 | #define _EE_USE_RAM_BYTE (2048)
6 | #define _EE_VOLTAGE FLASH_VOLTAGE_RANGE_3 // use in some devices
7 | #endif
8 |
--------------------------------------------------------------------------------
/Firmware/For HW version 10/mx.scratch:
--------------------------------------------------------------------------------
1 |
2 |
3 | 3.0
4 |
5 | Single-project
6 | C:\Users\Joel\Documents\uSMU_v7_pga281\
7 | true
8 | 0
9 | C:\Users\Joel\STM32Cube\Repository\STM32Cube_FW_F0_V1.11.1\
10 | Drivers/CMSIS
11 | STM32CubeIDE
12 | uSMU_v7_pga281.ioc
13 |
14 | uSMU_v7_pga281
15 | C
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | uSMU_v7_pga281
24 | Core
25 | Advanced
26 | STM32F072CBUx
27 | Arm Cortex-M0
28 | None
29 |
30 |
31 |
32 |
33 | C:\Users\Joel\STM32Cube\Repository\STM32Cube_FW_F0_V1.11.1\Drivers\CMSIS\Device\ST\STM32F0xx\Source\Templates\gcc\startup_stm32f072xb.s
34 |
35 | 1
36 |
37 |
38 | 0x200
39 | 0x400
40 | custom
41 | swd
42 |
43 |
44 |
45 |
46 |
47 |
48 | USE_HAL_DRIVER
49 | STM32F072xB
50 |
51 |
52 |
53 | USB_DEVICE\App
54 | USB_DEVICE\Target
55 | Core\Inc
56 | Drivers\STM32F0xx_HAL_Driver\Inc
57 | Drivers\STM32F0xx_HAL_Driver\Inc\Legacy
58 | Middlewares\ST\STM32_USB_Device_Library\Core\Inc
59 | Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Inc
60 | Drivers\CMSIS\Device\ST\STM32F0xx\Include
61 | Drivers\CMSIS\Include
62 |
63 |
64 |
65 |
66 | USE_FULL_LL_DRIVER
67 | MBEDTLS_CONFIG_FILE="mbedtls_config.h"
68 | USE_FULL_ASSERT=1U
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 | false
81 |
82 |
83 | Core
84 |
85 |
86 | Drivers
87 |
88 |
89 | Middlewares
90 |
91 |
92 | USB_DEVICE
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | uSMU
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder
10 | clean,full,incremental,
11 |
12 |
13 |
14 |
15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
16 | full,incremental,
17 |
18 |
19 |
20 |
21 |
22 | com.st.stm32cube.ide.mcu.MCUProjectNature
23 | com.st.stm32cube.ide.mcu.MCUCubeProjectNature
24 | org.eclipse.cdt.core.cnature
25 | com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAev2ProjectNature
26 | com.st.stm32cube.ide.mcu.MCUAdvancedStructureProjectNature
27 | com.st.stm32cube.ide.mcu.MCUEndUserDisabledTrustZoneProjectNature
28 | com.st.stm32cube.ide.mcu.MCUSingleCpuProjectNature
29 | com.st.stm32cube.ide.mcu.MCURootProjectNature
30 | org.eclipse.cdt.managedbuilder.core.managedBuildNature
31 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
32 |
33 |
34 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/.settings/language.settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/.settings/stm32cubeide.project.prefs:
--------------------------------------------------------------------------------
1 | 2F62501ED4689FB349E356AB974DBE57=E89B72CA1C3E82AE56771BEE1379307F
2 | 8DF89ED150041C4CBC7CB9A9CAA90856=E89B72CA1C3E82AE56771BEE1379307F
3 | DC22A860405A8BF2F2C095E5B6529F12=57B445F7ADCFDB7BF7050E759D96C152
4 | eclipse.preferences.version=1
5 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/Core/Inc/main.h:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file : main.h
5 | * @brief : Header for main.c file.
6 | * This file contains the common defines of the application.
7 | ******************************************************************************
8 | * @attention
9 | *
10 | * © Copyright (c) 2020 STMicroelectronics.
11 | * All rights reserved.
12 | *
13 | * This software component is licensed by ST under Ultimate Liberty license
14 | * SLA0044, the "License"; You may not use this file except in compliance with
15 | * the License. You may obtain a copy of the License at:
16 | * www.st.com/SLA0044
17 | *
18 | ******************************************************************************
19 | */
20 | /* USER CODE END Header */
21 |
22 | /* Define to prevent recursive inclusion -------------------------------------*/
23 | #ifndef __MAIN_H
24 | #define __MAIN_H
25 |
26 | #ifdef __cplusplus
27 | extern "C" {
28 | #endif
29 |
30 | /* Includes ------------------------------------------------------------------*/
31 | #include "stm32f0xx_hal.h"
32 |
33 | /* Private includes ----------------------------------------------------------*/
34 | /* USER CODE BEGIN Includes */
35 |
36 | /* USER CODE END Includes */
37 |
38 | /* Exported types ------------------------------------------------------------*/
39 | /* USER CODE BEGIN ET */
40 |
41 | /* USER CODE END ET */
42 |
43 | /* Exported constants --------------------------------------------------------*/
44 | /* USER CODE BEGIN EC */
45 |
46 | /* USER CODE END EC */
47 |
48 | /* Exported macro ------------------------------------------------------------*/
49 | /* USER CODE BEGIN EM */
50 |
51 | /* USER CODE END EM */
52 |
53 | void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
54 |
55 | /* Exported functions prototypes ---------------------------------------------*/
56 | void Error_Handler(void);
57 |
58 | /* USER CODE BEGIN EFP */
59 |
60 | /* USER CODE END EFP */
61 |
62 | /* Private defines -----------------------------------------------------------*/
63 | #define AMP_EN_Pin GPIO_PIN_5
64 | #define AMP_EN_GPIO_Port GPIOA
65 | #define LED_Pin GPIO_PIN_0
66 | #define LED_GPIO_Port GPIOB
67 | #define SHUNT_RANGE_Pin GPIO_PIN_5
68 | #define SHUNT_RANGE_GPIO_Port GPIOB
69 | #define ADC_Alert_Pin GPIO_PIN_9
70 | #define ADC_Alert_GPIO_Port GPIOB
71 | /* USER CODE BEGIN Private defines */
72 |
73 | /* USER CODE END Private defines */
74 |
75 | #ifdef __cplusplus
76 | }
77 | #endif
78 |
79 | #endif /* __MAIN_H */
80 |
81 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
82 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/Core/Inc/stm32f0xx_it.h:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file stm32f0xx_it.h
5 | * @brief This file contains the headers of the interrupt handlers.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2020 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under Ultimate Liberty license
13 | * SLA0044, the "License"; You may not use this file except in compliance with
14 | * the License. You may obtain a copy of the License at:
15 | * www.st.com/SLA0044
16 | *
17 | ******************************************************************************
18 | */
19 | /* USER CODE END Header */
20 |
21 | /* Define to prevent recursive inclusion -------------------------------------*/
22 | #ifndef __STM32F0xx_IT_H
23 | #define __STM32F0xx_IT_H
24 |
25 | #ifdef __cplusplus
26 | extern "C" {
27 | #endif
28 |
29 | /* Private includes ----------------------------------------------------------*/
30 | /* USER CODE BEGIN Includes */
31 |
32 | /* USER CODE END Includes */
33 |
34 | /* Exported types ------------------------------------------------------------*/
35 | /* USER CODE BEGIN ET */
36 |
37 | /* USER CODE END ET */
38 |
39 | /* Exported constants --------------------------------------------------------*/
40 | /* USER CODE BEGIN EC */
41 |
42 | /* USER CODE END EC */
43 |
44 | /* Exported macro ------------------------------------------------------------*/
45 | /* USER CODE BEGIN EM */
46 |
47 | /* USER CODE END EM */
48 |
49 | /* Exported functions prototypes ---------------------------------------------*/
50 | void NMI_Handler(void);
51 | void HardFault_Handler(void);
52 | void SVC_Handler(void);
53 | void PendSV_Handler(void);
54 | void SysTick_Handler(void);
55 | void USB_IRQHandler(void);
56 | /* USER CODE BEGIN EFP */
57 |
58 | /* USER CODE END EFP */
59 |
60 | #ifdef __cplusplus
61 | }
62 | #endif
63 |
64 | #endif /* __STM32F0xx_IT_H */
65 |
66 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
67 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/Core/Src/stm32f0xx_it.c:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file stm32f0xx_it.c
5 | * @brief Interrupt Service Routines.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2020 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under Ultimate Liberty license
13 | * SLA0044, the "License"; You may not use this file except in compliance with
14 | * the License. You may obtain a copy of the License at:
15 | * www.st.com/SLA0044
16 | *
17 | ******************************************************************************
18 | */
19 | /* USER CODE END Header */
20 |
21 | /* Includes ------------------------------------------------------------------*/
22 | #include "main.h"
23 | #include "stm32f0xx_it.h"
24 | /* Private includes ----------------------------------------------------------*/
25 | /* USER CODE BEGIN Includes */
26 | /* USER CODE END Includes */
27 |
28 | /* Private typedef -----------------------------------------------------------*/
29 | /* USER CODE BEGIN TD */
30 |
31 | /* USER CODE END TD */
32 |
33 | /* Private define ------------------------------------------------------------*/
34 | /* USER CODE BEGIN PD */
35 |
36 | /* USER CODE END PD */
37 |
38 | /* Private macro -------------------------------------------------------------*/
39 | /* USER CODE BEGIN PM */
40 |
41 | /* USER CODE END PM */
42 |
43 | /* Private variables ---------------------------------------------------------*/
44 | /* USER CODE BEGIN PV */
45 |
46 | /* USER CODE END PV */
47 |
48 | /* Private function prototypes -----------------------------------------------*/
49 | /* USER CODE BEGIN PFP */
50 |
51 | /* USER CODE END PFP */
52 |
53 | /* Private user code ---------------------------------------------------------*/
54 | /* USER CODE BEGIN 0 */
55 |
56 | /* USER CODE END 0 */
57 |
58 | /* External variables --------------------------------------------------------*/
59 | extern PCD_HandleTypeDef hpcd_USB_FS;
60 | /* USER CODE BEGIN EV */
61 |
62 | /* USER CODE END EV */
63 |
64 | /******************************************************************************/
65 | /* Cortex-M0 Processor Interruption and Exception Handlers */
66 | /******************************************************************************/
67 | /**
68 | * @brief This function handles Non maskable interrupt.
69 | */
70 | void NMI_Handler(void)
71 | {
72 | /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
73 |
74 | /* USER CODE END NonMaskableInt_IRQn 0 */
75 | /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
76 |
77 | /* USER CODE END NonMaskableInt_IRQn 1 */
78 | }
79 |
80 | /**
81 | * @brief This function handles Hard fault interrupt.
82 | */
83 | void HardFault_Handler(void)
84 | {
85 | /* USER CODE BEGIN HardFault_IRQn 0 */
86 |
87 | /* USER CODE END HardFault_IRQn 0 */
88 | while (1)
89 | {
90 | /* USER CODE BEGIN W1_HardFault_IRQn 0 */
91 | /* USER CODE END W1_HardFault_IRQn 0 */
92 | }
93 | }
94 |
95 | /**
96 | * @brief This function handles System service call via SWI instruction.
97 | */
98 | void SVC_Handler(void)
99 | {
100 | /* USER CODE BEGIN SVC_IRQn 0 */
101 |
102 | /* USER CODE END SVC_IRQn 0 */
103 | /* USER CODE BEGIN SVC_IRQn 1 */
104 |
105 | /* USER CODE END SVC_IRQn 1 */
106 | }
107 |
108 | /**
109 | * @brief This function handles Pendable request for system service.
110 | */
111 | void PendSV_Handler(void)
112 | {
113 | /* USER CODE BEGIN PendSV_IRQn 0 */
114 |
115 | /* USER CODE END PendSV_IRQn 0 */
116 | /* USER CODE BEGIN PendSV_IRQn 1 */
117 |
118 | /* USER CODE END PendSV_IRQn 1 */
119 | }
120 |
121 | /**
122 | * @brief This function handles System tick timer.
123 | */
124 | void SysTick_Handler(void)
125 | {
126 | /* USER CODE BEGIN SysTick_IRQn 0 */
127 |
128 | /* USER CODE END SysTick_IRQn 0 */
129 | HAL_IncTick();
130 | /* USER CODE BEGIN SysTick_IRQn 1 */
131 |
132 | /* USER CODE END SysTick_IRQn 1 */
133 | }
134 |
135 | /******************************************************************************/
136 | /* STM32F0xx Peripheral Interrupt Handlers */
137 | /* Add here the Interrupt Handlers for the used peripherals. */
138 | /* For the available peripheral interrupt handler names, */
139 | /* please refer to the startup file (startup_stm32f0xx.s). */
140 | /******************************************************************************/
141 |
142 | /**
143 | * @brief This function handles USB global interrupt / USB wake-up interrupt through EXTI line 18.
144 | */
145 | void USB_IRQHandler(void)
146 | {
147 | /* USER CODE BEGIN USB_IRQn 0 */
148 |
149 | /* USER CODE END USB_IRQn 0 */
150 | HAL_PCD_IRQHandler(&hpcd_USB_FS);
151 | /* USER CODE BEGIN USB_IRQn 1 */
152 |
153 | /* USER CODE END USB_IRQn 1 */
154 | }
155 |
156 | /* USER CODE BEGIN 1 */
157 |
158 | /* USER CODE END 1 */
159 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
160 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/Core/Src/syscalls.c:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file syscalls.c
4 | * @author Auto-generated by STM32CubeIDE
5 | * @brief STM32CubeIDE Minimal System calls file
6 | *
7 | * For more information about which c-functions
8 | * need which of these lowlevel functions
9 | * please consult the Newlib libc-manual
10 | ******************************************************************************
11 | * @attention
12 | *
13 | * © Copyright (c) 2020 STMicroelectronics.
14 | * All rights reserved.
15 | *
16 | * This software component is licensed by ST under BSD 3-Clause license,
17 | * the "License"; You may not use this file except in compliance with the
18 | * License. You may obtain a copy of the License at:
19 | * opensource.org/licenses/BSD-3-Clause
20 | *
21 | ******************************************************************************
22 | */
23 |
24 | /* Includes */
25 | #include
26 | #include
27 | #include
28 | #include
29 | #include
30 | #include
31 | #include
32 | #include
33 |
34 |
35 | /* Variables */
36 | //#undef errno
37 | extern int errno;
38 | extern int __io_putchar(int ch) __attribute__((weak));
39 | extern int __io_getchar(void) __attribute__((weak));
40 |
41 | register char * stack_ptr asm("sp");
42 |
43 | char *__env[1] = { 0 };
44 | char **environ = __env;
45 |
46 |
47 | /* Functions */
48 | void initialise_monitor_handles()
49 | {
50 | }
51 |
52 | int _getpid(void)
53 | {
54 | return 1;
55 | }
56 |
57 | int _kill(int pid, int sig)
58 | {
59 | errno = EINVAL;
60 | return -1;
61 | }
62 |
63 | void _exit (int status)
64 | {
65 | _kill(status, -1);
66 | while (1) {} /* Make sure we hang here */
67 | }
68 |
69 | __attribute__((weak)) int _read(int file, char *ptr, int len)
70 | {
71 | int DataIdx;
72 |
73 | for (DataIdx = 0; DataIdx < len; DataIdx++)
74 | {
75 | *ptr++ = __io_getchar();
76 | }
77 |
78 | return len;
79 | }
80 |
81 | __attribute__((weak)) int _write(int file, char *ptr, int len)
82 | {
83 | int DataIdx;
84 |
85 | for (DataIdx = 0; DataIdx < len; DataIdx++)
86 | {
87 | __io_putchar(*ptr++);
88 | }
89 | return len;
90 | }
91 |
92 | int _close(int file)
93 | {
94 | return -1;
95 | }
96 |
97 |
98 | int _fstat(int file, struct stat *st)
99 | {
100 | st->st_mode = S_IFCHR;
101 | return 0;
102 | }
103 |
104 | int _isatty(int file)
105 | {
106 | return 1;
107 | }
108 |
109 | int _lseek(int file, int ptr, int dir)
110 | {
111 | return 0;
112 | }
113 |
114 | int _open(char *path, int flags, ...)
115 | {
116 | /* Pretend like we always fail */
117 | return -1;
118 | }
119 |
120 | int _wait(int *status)
121 | {
122 | errno = ECHILD;
123 | return -1;
124 | }
125 |
126 | int _unlink(char *name)
127 | {
128 | errno = ENOENT;
129 | return -1;
130 | }
131 |
132 | int _times(struct tms *buf)
133 | {
134 | return -1;
135 | }
136 |
137 | int _stat(char *file, struct stat *st)
138 | {
139 | st->st_mode = S_IFCHR;
140 | return 0;
141 | }
142 |
143 | int _link(char *old, char *new)
144 | {
145 | errno = EMLINK;
146 | return -1;
147 | }
148 |
149 | int _fork(void)
150 | {
151 | errno = EAGAIN;
152 | return -1;
153 | }
154 |
155 | int _execve(char *name, char **argv, char **env)
156 | {
157 | errno = ENOMEM;
158 | return -1;
159 | }
160 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/Core/Src/sysmem.c:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file sysmem.c
4 | * @author Generated by STM32CubeIDE
5 | * @brief STM32CubeIDE System Memory calls file
6 | *
7 | * For more information about which C functions
8 | * need which of these lowlevel functions
9 | * please consult the newlib libc manual
10 | ******************************************************************************
11 | * @attention
12 | *
13 | * © Copyright (c) 2020 STMicroelectronics.
14 | * All rights reserved.
15 | *
16 | * This software component is licensed by ST under BSD 3-Clause license,
17 | * the "License"; You may not use this file except in compliance with the
18 | * License. You may obtain a copy of the License at:
19 | * opensource.org/licenses/BSD-3-Clause
20 | *
21 | ******************************************************************************
22 | */
23 |
24 | /* Includes */
25 | #include
26 | #include
27 |
28 | /**
29 | * Pointer to the current high watermark of the heap usage
30 | */
31 | static uint8_t *__sbrk_heap_end = NULL;
32 |
33 | /**
34 | * @brief _sbrk() allocates memory to the newlib heap and is used by malloc
35 | * and others from the C library
36 | *
37 | * @verbatim
38 | * ############################################################################
39 | * # .data # .bss # newlib heap # MSP stack #
40 | * # # # # Reserved by _Min_Stack_Size #
41 | * ############################################################################
42 | * ^-- RAM start ^-- _end _estack, RAM end --^
43 | * @endverbatim
44 | *
45 | * This implementation starts allocating at the '_end' linker symbol
46 | * The '_Min_Stack_Size' linker symbol reserves a memory for the MSP stack
47 | * The implementation considers '_estack' linker symbol to be RAM end
48 | * NOTE: If the MSP stack, at any point during execution, grows larger than the
49 | * reserved size, please increase the '_Min_Stack_Size'.
50 | *
51 | * @param incr Memory size
52 | * @return Pointer to allocated memory
53 | */
54 | void *_sbrk(ptrdiff_t incr)
55 | {
56 | extern uint8_t _end; /* Symbol defined in the linker script */
57 | extern uint8_t _estack; /* Symbol defined in the linker script */
58 | extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */
59 | const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size;
60 | const uint8_t *max_heap = (uint8_t *)stack_limit;
61 | uint8_t *prev_heap_end;
62 |
63 | /* Initalize heap end at first call */
64 | if (NULL == __sbrk_heap_end)
65 | {
66 | __sbrk_heap_end = &_end;
67 | }
68 |
69 | /* Protect heap from growing into the reserved MSP stack */
70 | if (__sbrk_heap_end + incr > max_heap)
71 | {
72 | errno = ENOMEM;
73 | return (void *)-1;
74 | }
75 |
76 | prev_heap_end = __sbrk_heap_end;
77 | __sbrk_heap_end += incr;
78 |
79 | return (void *)prev_heap_end;
80 | }
81 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/Firmware/For HW version 5/Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h
--------------------------------------------------------------------------------
/Firmware/For HW version 5/Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/Firmware/For HW version 5/Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h
--------------------------------------------------------------------------------
/Firmware/For HW version 5/Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file system_stm32f0xx.h
4 | * @author MCD Application Team
5 | * @brief CMSIS Cortex-M0 Device System Source File for STM32F0xx devices.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2016 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under BSD 3-Clause license,
13 | * the "License"; You may not use this file except in compliance with the
14 | * License. You may obtain a copy of the License at:
15 | * opensource.org/licenses/BSD-3-Clause
16 | *
17 | ******************************************************************************
18 | */
19 |
20 | /** @addtogroup CMSIS
21 | * @{
22 | */
23 |
24 | /** @addtogroup stm32f0xx_system
25 | * @{
26 | */
27 |
28 | /**
29 | * @brief Define to prevent recursive inclusion
30 | */
31 | #ifndef __SYSTEM_STM32F0XX_H
32 | #define __SYSTEM_STM32F0XX_H
33 |
34 | #ifdef __cplusplus
35 | extern "C" {
36 | #endif
37 |
38 | /** @addtogroup STM32F0xx_System_Includes
39 | * @{
40 | */
41 |
42 | /**
43 | * @}
44 | */
45 |
46 |
47 | /** @addtogroup STM32F0xx_System_Exported_types
48 | * @{
49 | */
50 | /* This variable is updated in three ways:
51 | 1) by calling CMSIS function SystemCoreClockUpdate()
52 | 3) by calling HAL API function HAL_RCC_GetHCLKFreq()
53 | 3) by calling HAL API function HAL_RCC_ClockConfig()
54 | Note: If you use this function to configure the system clock; then there
55 | is no need to call the 2 first functions listed above, since SystemCoreClock
56 | variable is updated automatically.
57 | */
58 | extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */
59 | extern const uint8_t AHBPrescTable[16]; /*!< AHB prescalers table values */
60 | extern const uint8_t APBPrescTable[8]; /*!< APB prescalers table values */
61 |
62 | /**
63 | * @}
64 | */
65 |
66 | /** @addtogroup STM32F0xx_System_Exported_Constants
67 | * @{
68 | */
69 |
70 | /**
71 | * @}
72 | */
73 |
74 | /** @addtogroup STM32F0xx_System_Exported_Macros
75 | * @{
76 | */
77 |
78 | /**
79 | * @}
80 | */
81 |
82 | /** @addtogroup STM32F0xx_System_Exported_Functions
83 | * @{
84 | */
85 |
86 | extern void SystemInit(void);
87 | extern void SystemCoreClockUpdate(void);
88 | /**
89 | * @}
90 | */
91 |
92 | #ifdef __cplusplus
93 | }
94 | #endif
95 |
96 | #endif /*__SYSTEM_STM32F0XX_H */
97 |
98 | /**
99 | * @}
100 | */
101 |
102 | /**
103 | * @}
104 | */
105 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
106 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/Drivers/CMSIS/Include/cmsis_version.h:
--------------------------------------------------------------------------------
1 | /**************************************************************************//**
2 | * @file cmsis_version.h
3 | * @brief CMSIS Core(M) Version definitions
4 | * @version V5.0.2
5 | * @date 19. April 2017
6 | ******************************************************************************/
7 | /*
8 | * Copyright (c) 2009-2017 ARM Limited. All rights reserved.
9 | *
10 | * SPDX-License-Identifier: Apache-2.0
11 | *
12 | * Licensed under the Apache License, Version 2.0 (the License); you may
13 | * not use this file except in compliance with the License.
14 | * You may obtain a copy of the License at
15 | *
16 | * www.apache.org/licenses/LICENSE-2.0
17 | *
18 | * Unless required by applicable law or agreed to in writing, software
19 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
20 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | * See the License for the specific language governing permissions and
22 | * limitations under the License.
23 | */
24 |
25 | #if defined ( __ICCARM__ )
26 | #pragma system_include /* treat file as system include file for MISRA check */
27 | #elif defined (__clang__)
28 | #pragma clang system_header /* treat file as system include file */
29 | #endif
30 |
31 | #ifndef __CMSIS_VERSION_H
32 | #define __CMSIS_VERSION_H
33 |
34 | /* CMSIS Version definitions */
35 | #define __CM_CMSIS_VERSION_MAIN ( 5U) /*!< [31:16] CMSIS Core(M) main version */
36 | #define __CM_CMSIS_VERSION_SUB ( 1U) /*!< [15:0] CMSIS Core(M) sub version */
37 | #define __CM_CMSIS_VERSION ((__CM_CMSIS_VERSION_MAIN << 16U) | \
38 | __CM_CMSIS_VERSION_SUB ) /*!< CMSIS Core(M) version number */
39 | #endif
40 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/Drivers/CMSIS/Include/tz_context.h:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * @file tz_context.h
3 | * @brief Context Management for Armv8-M TrustZone
4 | * @version V1.0.1
5 | * @date 10. January 2018
6 | ******************************************************************************/
7 | /*
8 | * Copyright (c) 2017-2018 Arm Limited. All rights reserved.
9 | *
10 | * SPDX-License-Identifier: Apache-2.0
11 | *
12 | * Licensed under the Apache License, Version 2.0 (the License); you may
13 | * not use this file except in compliance with the License.
14 | * You may obtain a copy of the License at
15 | *
16 | * www.apache.org/licenses/LICENSE-2.0
17 | *
18 | * Unless required by applicable law or agreed to in writing, software
19 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
20 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | * See the License for the specific language governing permissions and
22 | * limitations under the License.
23 | */
24 |
25 | #if defined ( __ICCARM__ )
26 | #pragma system_include /* treat file as system include file for MISRA check */
27 | #elif defined (__clang__)
28 | #pragma clang system_header /* treat file as system include file */
29 | #endif
30 |
31 | #ifndef TZ_CONTEXT_H
32 | #define TZ_CONTEXT_H
33 |
34 | #include
35 |
36 | #ifndef TZ_MODULEID_T
37 | #define TZ_MODULEID_T
38 | /// \details Data type that identifies secure software modules called by a process.
39 | typedef uint32_t TZ_ModuleId_t;
40 | #endif
41 |
42 | /// \details TZ Memory ID identifies an allocated memory slot.
43 | typedef uint32_t TZ_MemoryId_t;
44 |
45 | /// Initialize secure context memory system
46 | /// \return execution status (1: success, 0: error)
47 | uint32_t TZ_InitContextSystem_S (void);
48 |
49 | /// Allocate context memory for calling secure software modules in TrustZone
50 | /// \param[in] module identifies software modules called from non-secure mode
51 | /// \return value != 0 id TrustZone memory slot identifier
52 | /// \return value 0 no memory available or internal error
53 | TZ_MemoryId_t TZ_AllocModuleContext_S (TZ_ModuleId_t module);
54 |
55 | /// Free context memory that was previously allocated with \ref TZ_AllocModuleContext_S
56 | /// \param[in] id TrustZone memory slot identifier
57 | /// \return execution status (1: success, 0: error)
58 | uint32_t TZ_FreeModuleContext_S (TZ_MemoryId_t id);
59 |
60 | /// Load secure context (called on RTOS thread context switch)
61 | /// \param[in] id TrustZone memory slot identifier
62 | /// \return execution status (1: success, 0: error)
63 | uint32_t TZ_LoadContext_S (TZ_MemoryId_t id);
64 |
65 | /// Store secure context (called on RTOS thread context switch)
66 | /// \param[in] id TrustZone memory slot identifier
67 | /// \return execution status (1: success, 0: error)
68 | uint32_t TZ_StoreContext_S (TZ_MemoryId_t id);
69 |
70 | #endif // TZ_CONTEXT_H
71 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_cortex.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f0xx_hal_cortex.h
4 | * @author MCD Application Team
5 | * @brief Header file of CORTEX HAL module.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2016 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under BSD 3-Clause license,
13 | * the "License"; You may not use this file except in compliance with the
14 | * License. You may obtain a copy of the License at:
15 | * opensource.org/licenses/BSD-3-Clause
16 | *
17 | ******************************************************************************
18 | */
19 |
20 | /* Define to prevent recursive inclusion -------------------------------------*/
21 | #ifndef __STM32F0xx_HAL_CORTEX_H
22 | #define __STM32F0xx_HAL_CORTEX_H
23 |
24 | #ifdef __cplusplus
25 | extern "C" {
26 | #endif
27 |
28 | /* Includes ------------------------------------------------------------------*/
29 | #include "stm32f0xx_hal_def.h"
30 |
31 | /** @addtogroup STM32F0xx_HAL_Driver
32 | * @{
33 | */
34 |
35 | /** @addtogroup CORTEX CORTEX
36 | * @{
37 | */
38 | /* Exported types ------------------------------------------------------------*/
39 | /* Exported constants --------------------------------------------------------*/
40 |
41 | /** @defgroup CORTEX_Exported_Constants CORTEX Exported Constants
42 | * @{
43 | */
44 |
45 | /** @defgroup CORTEX_SysTick_clock_source CORTEX SysTick clock source
46 | * @{
47 | */
48 | #define SYSTICK_CLKSOURCE_HCLK_DIV8 (0x00000000U)
49 | #define SYSTICK_CLKSOURCE_HCLK (0x00000004U)
50 |
51 | /**
52 | * @}
53 | */
54 |
55 | /**
56 | * @}
57 | */
58 |
59 | /* Exported Macros -----------------------------------------------------------*/
60 |
61 | /* Exported functions --------------------------------------------------------*/
62 | /** @addtogroup CORTEX_Exported_Functions CORTEX Exported Functions
63 | * @{
64 | */
65 | /** @addtogroup CORTEX_Exported_Functions_Group1 Initialization and de-initialization functions
66 | * @brief Initialization and Configuration functions
67 | * @{
68 | */
69 | /* Initialization and de-initialization functions *******************************/
70 | void HAL_NVIC_SetPriority(IRQn_Type IRQn,uint32_t PreemptPriority, uint32_t SubPriority);
71 | void HAL_NVIC_EnableIRQ(IRQn_Type IRQn);
72 | void HAL_NVIC_DisableIRQ(IRQn_Type IRQn);
73 | void HAL_NVIC_SystemReset(void);
74 | uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb);
75 | /**
76 | * @}
77 | */
78 |
79 | /** @addtogroup CORTEX_Exported_Functions_Group2 Peripheral Control functions
80 | * @brief Cortex control functions
81 | * @{
82 | */
83 |
84 | /* Peripheral Control functions *************************************************/
85 | uint32_t HAL_NVIC_GetPriority(IRQn_Type IRQn);
86 | uint32_t HAL_NVIC_GetPendingIRQ(IRQn_Type IRQn);
87 | void HAL_NVIC_SetPendingIRQ(IRQn_Type IRQn);
88 | void HAL_NVIC_ClearPendingIRQ(IRQn_Type IRQn);
89 | void HAL_SYSTICK_CLKSourceConfig(uint32_t CLKSource);
90 | void HAL_SYSTICK_IRQHandler(void);
91 | void HAL_SYSTICK_Callback(void);
92 | /**
93 | * @}
94 | */
95 |
96 | /**
97 | * @}
98 | */
99 |
100 | /* Private types -------------------------------------------------------------*/
101 | /* Private variables ---------------------------------------------------------*/
102 | /* Private constants ---------------------------------------------------------*/
103 | /* Private macros ------------------------------------------------------------*/
104 | /** @defgroup CORTEX_Private_Macros CORTEX Private Macros
105 | * @{
106 | */
107 | #define IS_NVIC_PREEMPTION_PRIORITY(PRIORITY) ((PRIORITY) < 0x4)
108 |
109 | #define IS_NVIC_DEVICE_IRQ(IRQ) ((IRQ) >= 0x00)
110 |
111 | #define IS_SYSTICK_CLK_SOURCE(SOURCE) (((SOURCE) == SYSTICK_CLKSOURCE_HCLK) || \
112 | ((SOURCE) == SYSTICK_CLKSOURCE_HCLK_DIV8))
113 | /**
114 | * @}
115 | */
116 |
117 | /**
118 | * @}
119 | */
120 |
121 | /**
122 | * @}
123 | */
124 |
125 | #ifdef __cplusplus
126 | }
127 | #endif
128 |
129 | #endif /* __STM32F0xx_HAL_CORTEX_H */
130 |
131 |
132 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
133 |
134 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_pcd_ex.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f0xx_hal_pcd_ex.h
4 | * @author MCD Application Team
5 | * @brief Header file of PCD HAL Extension module.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2016 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under BSD 3-Clause license,
13 | * the "License"; You may not use this file except in compliance with the
14 | * License. You may obtain a copy of the License at:
15 | * opensource.org/licenses/BSD-3-Clause
16 | *
17 | ******************************************************************************
18 | */
19 |
20 | /* Define to prevent recursive inclusion -------------------------------------*/
21 | #ifndef STM32F0xx_HAL_PCD_EX_H
22 | #define STM32F0xx_HAL_PCD_EX_H
23 |
24 | #ifdef __cplusplus
25 | extern "C" {
26 | #endif
27 |
28 | /* Includes ------------------------------------------------------------------*/
29 | #include "stm32f0xx_hal_def.h"
30 |
31 | #if defined (USB)
32 | /** @addtogroup STM32F0xx_HAL_Driver
33 | * @{
34 | */
35 |
36 | /** @addtogroup PCDEx
37 | * @{
38 | */
39 | /* Exported types ------------------------------------------------------------*/
40 | /* Exported constants --------------------------------------------------------*/
41 | /* Exported macros -----------------------------------------------------------*/
42 | /* Exported functions --------------------------------------------------------*/
43 | /** @addtogroup PCDEx_Exported_Functions PCDEx Exported Functions
44 | * @{
45 | */
46 | /** @addtogroup PCDEx_Exported_Functions_Group1 Peripheral Control functions
47 | * @{
48 | */
49 |
50 |
51 |
52 | HAL_StatusTypeDef HAL_PCDEx_PMAConfig(PCD_HandleTypeDef *hpcd, uint16_t ep_addr,
53 | uint16_t ep_kind, uint32_t pmaadress);
54 |
55 |
56 | HAL_StatusTypeDef HAL_PCDEx_ActivateLPM(PCD_HandleTypeDef *hpcd);
57 | HAL_StatusTypeDef HAL_PCDEx_DeActivateLPM(PCD_HandleTypeDef *hpcd);
58 |
59 |
60 | HAL_StatusTypeDef HAL_PCDEx_ActivateBCD(PCD_HandleTypeDef *hpcd);
61 | HAL_StatusTypeDef HAL_PCDEx_DeActivateBCD(PCD_HandleTypeDef *hpcd);
62 | void HAL_PCDEx_BCD_VBUSDetect(PCD_HandleTypeDef *hpcd);
63 |
64 | void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg);
65 | void HAL_PCDEx_BCD_Callback(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg);
66 |
67 | /**
68 | * @}
69 | */
70 |
71 | /**
72 | * @}
73 | */
74 |
75 | /**
76 | * @}
77 | */
78 |
79 | /**
80 | * @}
81 | */
82 | #endif /* defined (USB) */
83 |
84 | #ifdef __cplusplus
85 | }
86 | #endif
87 |
88 |
89 | #endif /* STM32F0xx_HAL_PCD_EX_H */
90 |
91 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
92 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file usbd_req.h
4 | * @author MCD Application Team
5 | * @brief Header file for the usbd_req.c file
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2015 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under Ultimate Liberty license
13 | * SLA0044, the "License"; You may not use this file except in compliance with
14 | * the License. You may obtain a copy of the License at:
15 | * www.st.com/SLA0044
16 | *
17 | ******************************************************************************
18 | */
19 |
20 | /* Define to prevent recursive inclusion -------------------------------------*/
21 | #ifndef __USB_REQUEST_H
22 | #define __USB_REQUEST_H
23 |
24 | #ifdef __cplusplus
25 | extern "C" {
26 | #endif
27 |
28 | /* Includes ------------------------------------------------------------------*/
29 | #include "usbd_def.h"
30 |
31 |
32 | /** @addtogroup STM32_USB_DEVICE_LIBRARY
33 | * @{
34 | */
35 |
36 | /** @defgroup USBD_REQ
37 | * @brief header file for the usbd_req.c file
38 | * @{
39 | */
40 |
41 | /** @defgroup USBD_REQ_Exported_Defines
42 | * @{
43 | */
44 | /**
45 | * @}
46 | */
47 |
48 |
49 | /** @defgroup USBD_REQ_Exported_Types
50 | * @{
51 | */
52 | /**
53 | * @}
54 | */
55 |
56 |
57 |
58 | /** @defgroup USBD_REQ_Exported_Macros
59 | * @{
60 | */
61 | /**
62 | * @}
63 | */
64 |
65 | /** @defgroup USBD_REQ_Exported_Variables
66 | * @{
67 | */
68 | /**
69 | * @}
70 | */
71 |
72 | /** @defgroup USBD_REQ_Exported_FunctionsPrototype
73 | * @{
74 | */
75 |
76 | USBD_StatusTypeDef USBD_StdDevReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req);
77 | USBD_StatusTypeDef USBD_StdItfReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req);
78 | USBD_StatusTypeDef USBD_StdEPReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req);
79 |
80 |
81 | void USBD_CtlError(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req);
82 |
83 | void USBD_ParseSetupRequest(USBD_SetupReqTypedef *req, uint8_t *pdata);
84 |
85 | void USBD_GetString(uint8_t *desc, uint8_t *unicode, uint16_t *len);
86 | /**
87 | * @}
88 | */
89 |
90 | #ifdef __cplusplus
91 | }
92 | #endif
93 |
94 | #endif /* __USB_REQUEST_H */
95 |
96 | /**
97 | * @}
98 | */
99 |
100 | /**
101 | * @}
102 | */
103 |
104 |
105 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
106 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file usbd_ioreq.h
4 | * @author MCD Application Team
5 | * @brief Header file for the usbd_ioreq.c file
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * © Copyright (c) 2015 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software component is licensed by ST under Ultimate Liberty license
13 | * SLA0044, the "License"; You may not use this file except in compliance with
14 | * the License. You may obtain a copy of the License at:
15 | * www.st.com/SLA0044
16 | *
17 | ******************************************************************************
18 | */
19 |
20 | /* Define to prevent recursive inclusion -------------------------------------*/
21 | #ifndef __USBD_IOREQ_H
22 | #define __USBD_IOREQ_H
23 |
24 | #ifdef __cplusplus
25 | extern "C" {
26 | #endif
27 |
28 | /* Includes ------------------------------------------------------------------*/
29 | #include "usbd_def.h"
30 | #include "usbd_core.h"
31 |
32 | /** @addtogroup STM32_USB_DEVICE_LIBRARY
33 | * @{
34 | */
35 |
36 | /** @defgroup USBD_IOREQ
37 | * @brief header file for the usbd_ioreq.c file
38 | * @{
39 | */
40 |
41 | /** @defgroup USBD_IOREQ_Exported_Defines
42 | * @{
43 | */
44 | /**
45 | * @}
46 | */
47 |
48 |
49 | /** @defgroup USBD_IOREQ_Exported_Types
50 | * @{
51 | */
52 |
53 |
54 | /**
55 | * @}
56 | */
57 |
58 |
59 |
60 | /** @defgroup USBD_IOREQ_Exported_Macros
61 | * @{
62 | */
63 |
64 | /**
65 | * @}
66 | */
67 |
68 | /** @defgroup USBD_IOREQ_Exported_Variables
69 | * @{
70 | */
71 |
72 | /**
73 | * @}
74 | */
75 |
76 | /** @defgroup USBD_IOREQ_Exported_FunctionsPrototype
77 | * @{
78 | */
79 |
80 | USBD_StatusTypeDef USBD_CtlSendData(USBD_HandleTypeDef *pdev,
81 | uint8_t *pbuf,
82 | uint16_t len);
83 |
84 | USBD_StatusTypeDef USBD_CtlContinueSendData(USBD_HandleTypeDef *pdev,
85 | uint8_t *pbuf,
86 | uint16_t len);
87 |
88 | USBD_StatusTypeDef USBD_CtlPrepareRx(USBD_HandleTypeDef *pdev,
89 | uint8_t *pbuf,
90 | uint16_t len);
91 |
92 | USBD_StatusTypeDef USBD_CtlContinueRx(USBD_HandleTypeDef *pdev,
93 | uint8_t *pbuf,
94 | uint16_t len);
95 |
96 | USBD_StatusTypeDef USBD_CtlSendStatus(USBD_HandleTypeDef *pdev);
97 |
98 | USBD_StatusTypeDef USBD_CtlReceiveStatus(USBD_HandleTypeDef *pdev);
99 |
100 | uint32_t USBD_GetRxCount(USBD_HandleTypeDef *pdev, uint8_t ep_addr);
101 |
102 | /**
103 | * @}
104 | */
105 |
106 | #ifdef __cplusplus
107 | }
108 | #endif
109 |
110 | #endif /* __USBD_IOREQ_H */
111 |
112 | /**
113 | * @}
114 | */
115 |
116 | /**
117 | * @}
118 | */
119 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
120 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/README.md:
--------------------------------------------------------------------------------
1 | # μSMU Firmware for Hardware version 5
2 |
3 | To flash firmware
4 |
5 | 1. Open `.cproject` in STM32CubeIDE 1.5.0
6 | 2. Build and flash to μSMU using a ST-Link of J-Link
7 |
8 |
9 |
10 | SMU commands
11 |
12 | | Command | Function | VCP output |
13 | | --------------------- | ------------------------------------------------------------ | :-------------------------------- |
14 | | `CH1:ENA` | Enable SMU output | None |
15 | | `CH1:DIS` | Disable SMU output (high impedance) | None |
16 | | `CH1:CUR` *float* | Set the sink/source current limit in mA | None |
17 | | `CH1:VOL` *float* | Set the SMU to the requested voltage level in volts | None |
18 | | `CH1:MEA:VOL` *float* | Set the SMU to the requested voltage level in volts and return the measured voltage and current | "voltage (V),current (A)" |
19 |
20 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/STM32F072C8UX_FLASH.ld:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file LinkerScript.ld
4 | * @author Auto-generated by STM32CubeIDE
5 | * @brief Linker script for STM32F072C8Ux Device from STM32F0 series
6 | * 64Kbytes FLASH
7 | * 16Kbytes RAM
8 | *
9 | * Set heap size, stack size and stack location according
10 | * to application requirements.
11 | *
12 | * Set memory bank area and size if external memory is used
13 | ******************************************************************************
14 | * @attention
15 | *
16 | * © Copyright (c) 2020 STMicroelectronics.
17 | * All rights reserved.
18 | *
19 | * This software component is licensed by ST under BSD 3-Clause license,
20 | * the "License"; You may not use this file except in compliance with the
21 | * License. You may obtain a copy of the License at:
22 | * opensource.org/licenses/BSD-3-Clause
23 | *
24 | ******************************************************************************
25 | */
26 |
27 | /* Entry Point */
28 | ENTRY(Reset_Handler)
29 |
30 | /* Highest address of the user mode stack */
31 | _estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */
32 |
33 | _Min_Heap_Size = 0x200 ; /* required amount of heap */
34 | _Min_Stack_Size = 0x400 ; /* required amount of stack */
35 |
36 | /* Memories definition */
37 | MEMORY
38 | {
39 | RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 16K
40 | FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 64K
41 | }
42 |
43 | /* Sections */
44 | SECTIONS
45 | {
46 | /* The startup code into "FLASH" Rom type memory */
47 | .isr_vector :
48 | {
49 | . = ALIGN(4);
50 | KEEP(*(.isr_vector)) /* Startup code */
51 | . = ALIGN(4);
52 | } >FLASH
53 |
54 | /* The program code and other data into "FLASH" Rom type memory */
55 | .text :
56 | {
57 | . = ALIGN(4);
58 | *(.text) /* .text sections (code) */
59 | *(.text*) /* .text* sections (code) */
60 | *(.glue_7) /* glue arm to thumb code */
61 | *(.glue_7t) /* glue thumb to arm code */
62 | *(.eh_frame)
63 |
64 | KEEP (*(.init))
65 | KEEP (*(.fini))
66 |
67 | . = ALIGN(4);
68 | _etext = .; /* define a global symbols at end of code */
69 | } >FLASH
70 |
71 | /* Constant data into "FLASH" Rom type memory */
72 | .rodata :
73 | {
74 | . = ALIGN(4);
75 | *(.rodata) /* .rodata sections (constants, strings, etc.) */
76 | *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
77 | . = ALIGN(4);
78 | } >FLASH
79 |
80 | .ARM.extab : {
81 | . = ALIGN(4);
82 | *(.ARM.extab* .gnu.linkonce.armextab.*)
83 | . = ALIGN(4);
84 | } >FLASH
85 |
86 | .ARM : {
87 | . = ALIGN(4);
88 | __exidx_start = .;
89 | *(.ARM.exidx*)
90 | __exidx_end = .;
91 | . = ALIGN(4);
92 | } >FLASH
93 |
94 | .preinit_array :
95 | {
96 | . = ALIGN(4);
97 | PROVIDE_HIDDEN (__preinit_array_start = .);
98 | KEEP (*(.preinit_array*))
99 | PROVIDE_HIDDEN (__preinit_array_end = .);
100 | . = ALIGN(4);
101 | } >FLASH
102 |
103 | .init_array :
104 | {
105 | . = ALIGN(4);
106 | PROVIDE_HIDDEN (__init_array_start = .);
107 | KEEP (*(SORT(.init_array.*)))
108 | KEEP (*(.init_array*))
109 | PROVIDE_HIDDEN (__init_array_end = .);
110 | . = ALIGN(4);
111 | } >FLASH
112 |
113 | .fini_array :
114 | {
115 | . = ALIGN(4);
116 | PROVIDE_HIDDEN (__fini_array_start = .);
117 | KEEP (*(SORT(.fini_array.*)))
118 | KEEP (*(.fini_array*))
119 | PROVIDE_HIDDEN (__fini_array_end = .);
120 | . = ALIGN(4);
121 | } >FLASH
122 |
123 | /* Used by the startup to initialize data */
124 | _sidata = LOADADDR(.data);
125 |
126 | /* Initialized data sections into "RAM" Ram type memory */
127 | .data :
128 | {
129 | . = ALIGN(4);
130 | _sdata = .; /* create a global symbol at data start */
131 | *(.data) /* .data sections */
132 | *(.data*) /* .data* sections */
133 |
134 | . = ALIGN(4);
135 | _edata = .; /* define a global symbol at data end */
136 |
137 | } >RAM AT> FLASH
138 |
139 | /* Uninitialized data section into "RAM" Ram type memory */
140 | . = ALIGN(4);
141 | .bss :
142 | {
143 | /* This is used by the startup in order to initialize the .bss section */
144 | _sbss = .; /* define a global symbol at bss start */
145 | __bss_start__ = _sbss;
146 | *(.bss)
147 | *(.bss*)
148 | *(COMMON)
149 |
150 | . = ALIGN(4);
151 | _ebss = .; /* define a global symbol at bss end */
152 | __bss_end__ = _ebss;
153 | } >RAM
154 |
155 | /* User_heap_stack section, used to check that there is enough "RAM" Ram type memory left */
156 | ._user_heap_stack :
157 | {
158 | . = ALIGN(8);
159 | PROVIDE ( end = . );
160 | PROVIDE ( _end = . );
161 | . = . + _Min_Heap_Size;
162 | . = . + _Min_Stack_Size;
163 | . = ALIGN(8);
164 | } >RAM
165 |
166 | /* Remove information from the compiler libraries */
167 | /DISCARD/ :
168 | {
169 | libc.a ( * )
170 | libm.a ( * )
171 | libgcc.a ( * )
172 | }
173 |
174 | .ARM.attributes 0 : { *(.ARM.attributes) }
175 | }
176 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/USB_DEVICE/App/usb_device.c:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file : usb_device.c
5 | * @version : v2.0_Cube
6 | * @brief : This file implements the USB Device
7 | ******************************************************************************
8 | * @attention
9 | *
10 | * © Copyright (c) 2020 STMicroelectronics.
11 | * All rights reserved.
12 | *
13 | * This software component is licensed by ST under Ultimate Liberty license
14 | * SLA0044, the "License"; You may not use this file except in compliance with
15 | * the License. You may obtain a copy of the License at:
16 | * www.st.com/SLA0044
17 | *
18 | ******************************************************************************
19 | */
20 | /* USER CODE END Header */
21 |
22 | /* Includes ------------------------------------------------------------------*/
23 |
24 | #include "usb_device.h"
25 | #include "usbd_core.h"
26 | #include "usbd_desc.h"
27 | #include "usbd_cdc.h"
28 | #include "usbd_cdc_if.h"
29 |
30 | /* USER CODE BEGIN Includes */
31 |
32 | /* USER CODE END Includes */
33 |
34 | /* USER CODE BEGIN PV */
35 | /* Private variables ---------------------------------------------------------*/
36 |
37 | /* USER CODE END PV */
38 |
39 | /* USER CODE BEGIN PFP */
40 | /* Private function prototypes -----------------------------------------------*/
41 |
42 | /* USER CODE END PFP */
43 |
44 | /* USB Device Core handle declaration. */
45 | USBD_HandleTypeDef hUsbDeviceFS;
46 |
47 | /*
48 | * -- Insert your variables declaration here --
49 | */
50 | /* USER CODE BEGIN 0 */
51 |
52 | /* USER CODE END 0 */
53 |
54 | /*
55 | * -- Insert your external function declaration here --
56 | */
57 | /* USER CODE BEGIN 1 */
58 |
59 | /* USER CODE END 1 */
60 |
61 | /**
62 | * Init USB device Library, add supported class and start the library
63 | * @retval None
64 | */
65 | void MX_USB_DEVICE_Init(void)
66 | {
67 | /* USER CODE BEGIN USB_DEVICE_Init_PreTreatment */
68 |
69 | /* USER CODE END USB_DEVICE_Init_PreTreatment */
70 |
71 | /* Init Device Library, add supported class and start the library. */
72 | if (USBD_Init(&hUsbDeviceFS, &FS_Desc, DEVICE_FS) != USBD_OK)
73 | {
74 | Error_Handler();
75 | }
76 | if (USBD_RegisterClass(&hUsbDeviceFS, &USBD_CDC) != USBD_OK)
77 | {
78 | Error_Handler();
79 | }
80 | if (USBD_CDC_RegisterInterface(&hUsbDeviceFS, &USBD_Interface_fops_FS) != USBD_OK)
81 | {
82 | Error_Handler();
83 | }
84 | if (USBD_Start(&hUsbDeviceFS) != USBD_OK)
85 | {
86 | Error_Handler();
87 | }
88 |
89 | /* USER CODE BEGIN USB_DEVICE_Init_PostTreatment */
90 |
91 | /* USER CODE END USB_DEVICE_Init_PostTreatment */
92 | }
93 |
94 | /**
95 | * @}
96 | */
97 |
98 | /**
99 | * @}
100 | */
101 |
102 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
103 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/USB_DEVICE/App/usb_device.h:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file : usb_device.h
5 | * @version : v2.0_Cube
6 | * @brief : Header for usb_device.c file.
7 | ******************************************************************************
8 | * @attention
9 | *
10 | * © Copyright (c) 2020 STMicroelectronics.
11 | * All rights reserved.
12 | *
13 | * This software component is licensed by ST under Ultimate Liberty license
14 | * SLA0044, the "License"; You may not use this file except in compliance with
15 | * the License. You may obtain a copy of the License at:
16 | * www.st.com/SLA0044
17 | *
18 | ******************************************************************************
19 | */
20 | /* USER CODE END Header */
21 |
22 | /* Define to prevent recursive inclusion -------------------------------------*/
23 | #ifndef __USB_DEVICE__H__
24 | #define __USB_DEVICE__H__
25 |
26 | #ifdef __cplusplus
27 | extern "C" {
28 | #endif
29 |
30 | /* Includes ------------------------------------------------------------------*/
31 | #include "stm32f0xx.h"
32 | #include "stm32f0xx_hal.h"
33 | #include "usbd_def.h"
34 |
35 | /* USER CODE BEGIN INCLUDE */
36 |
37 | /* USER CODE END INCLUDE */
38 |
39 | /** @addtogroup USBD_OTG_DRIVER
40 | * @{
41 | */
42 |
43 | /** @defgroup USBD_DEVICE USBD_DEVICE
44 | * @brief Device file for Usb otg low level driver.
45 | * @{
46 | */
47 |
48 | /** @defgroup USBD_DEVICE_Exported_Variables USBD_DEVICE_Exported_Variables
49 | * @brief Public variables.
50 | * @{
51 | */
52 |
53 | /* Private variables ---------------------------------------------------------*/
54 | /* USER CODE BEGIN PV */
55 |
56 | /* USER CODE END PV */
57 |
58 | /* Private function prototypes -----------------------------------------------*/
59 | /* USER CODE BEGIN PFP */
60 |
61 | /* USER CODE END PFP */
62 |
63 | /*
64 | * -- Insert your variables declaration here --
65 | */
66 | /* USER CODE BEGIN VARIABLES */
67 |
68 | /* USER CODE END VARIABLES */
69 | /**
70 | * @}
71 | */
72 |
73 | /** @defgroup USBD_DEVICE_Exported_FunctionsPrototype USBD_DEVICE_Exported_FunctionsPrototype
74 | * @brief Declaration of public functions for Usb device.
75 | * @{
76 | */
77 |
78 | /** USB Device initialization function. */
79 | void MX_USB_DEVICE_Init(void);
80 |
81 | /*
82 | * -- Insert functions declaration here --
83 | */
84 | /* USER CODE BEGIN FD */
85 |
86 | /* USER CODE END FD */
87 | /**
88 | * @}
89 | */
90 |
91 | /**
92 | * @}
93 | */
94 |
95 | /**
96 | * @}
97 | */
98 |
99 | #ifdef __cplusplus
100 | }
101 | #endif
102 |
103 | #endif /* __USB_DEVICE__H__ */
104 |
105 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
106 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/USB_DEVICE/App/usbd_cdc_if.h:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file : usbd_cdc_if.h
5 | * @version : v2.0_Cube
6 | * @brief : Header for usbd_cdc_if.c file.
7 | ******************************************************************************
8 | * @attention
9 | *
10 | * © Copyright (c) 2020 STMicroelectronics.
11 | * All rights reserved.
12 | *
13 | * This software component is licensed by ST under Ultimate Liberty license
14 | * SLA0044, the "License"; You may not use this file except in compliance with
15 | * the License. You may obtain a copy of the License at:
16 | * www.st.com/SLA0044
17 | *
18 | ******************************************************************************
19 | */
20 | /* USER CODE END Header */
21 |
22 | /* Define to prevent recursive inclusion -------------------------------------*/
23 | #ifndef __USBD_CDC_IF_H__
24 | #define __USBD_CDC_IF_H__
25 |
26 | #ifdef __cplusplus
27 | extern "C" {
28 | #endif
29 |
30 | /* Includes ------------------------------------------------------------------*/
31 | #include "usbd_cdc.h"
32 |
33 | /* USER CODE BEGIN INCLUDE */
34 | #define FIFO_SIZE 32 // must be 2^N
35 |
36 | #define FIFO_INCR(x) (((x)+1)&((FIFO_SIZE)-1))
37 |
38 | /* Structure of FIFO*/
39 |
40 | typedef struct FIFO
41 |
42 | {
43 | uint32_t head;
44 | uint32_t tail;
45 | uint8_t data[FIFO_SIZE];
46 | } FIFO;
47 |
48 | FIFO RX_FIFO;
49 |
50 | /* USER CODE END INCLUDE */
51 |
52 | /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
53 | * @brief For Usb device.
54 | * @{
55 | */
56 |
57 | /** @defgroup USBD_CDC_IF USBD_CDC_IF
58 | * @brief Usb VCP device module
59 | * @{
60 | */
61 |
62 | /** @defgroup USBD_CDC_IF_Exported_Defines USBD_CDC_IF_Exported_Defines
63 | * @brief Defines.
64 | * @{
65 | */
66 | /* USER CODE BEGIN EXPORTED_DEFINES */
67 | /* Define size for the receive and transmit buffer over CDC */
68 | /* It's up to user to redefine and/or remove those define */
69 | #define APP_RX_DATA_SIZE 1000
70 | #define APP_TX_DATA_SIZE 1000
71 |
72 | /* USER CODE END EXPORTED_DEFINES */
73 |
74 | /**
75 | * @}
76 | */
77 |
78 | /** @defgroup USBD_CDC_IF_Exported_Types USBD_CDC_IF_Exported_Types
79 | * @brief Types.
80 | * @{
81 | */
82 |
83 | /* USER CODE BEGIN EXPORTED_TYPES */
84 |
85 | /* USER CODE END EXPORTED_TYPES */
86 |
87 | /**
88 | * @}
89 | */
90 |
91 | /** @defgroup USBD_CDC_IF_Exported_Macros USBD_CDC_IF_Exported_Macros
92 | * @brief Aliases.
93 | * @{
94 | */
95 |
96 | /* USER CODE BEGIN EXPORTED_MACRO */
97 |
98 | /* USER CODE END EXPORTED_MACRO */
99 |
100 | /**
101 | * @}
102 | */
103 |
104 | /** @defgroup USBD_CDC_IF_Exported_Variables USBD_CDC_IF_Exported_Variables
105 | * @brief Public variables.
106 | * @{
107 | */
108 |
109 | /** CDC Interface callback. */
110 | extern USBD_CDC_ItfTypeDef USBD_Interface_fops_FS;
111 |
112 | /* USER CODE BEGIN EXPORTED_VARIABLES */
113 |
114 | /* USER CODE END EXPORTED_VARIABLES */
115 |
116 | /**
117 | * @}
118 | */
119 |
120 | /** @defgroup USBD_CDC_IF_Exported_FunctionsPrototype USBD_CDC_IF_Exported_FunctionsPrototype
121 | * @brief Public functions declaration.
122 | * @{
123 | */
124 |
125 | uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len);
126 |
127 | /* USER CODE BEGIN EXPORTED_FUNCTIONS */
128 |
129 | /* USER CODE END EXPORTED_FUNCTIONS */
130 |
131 | /**
132 | * @}
133 | */
134 |
135 | /**
136 | * @}
137 | */
138 |
139 | /**
140 | * @}
141 | */
142 |
143 | #ifdef __cplusplus
144 | }
145 | #endif
146 |
147 | #endif /* __USBD_CDC_IF_H__ */
148 |
149 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
150 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/USB_DEVICE/App/usbd_desc.h:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file : usbd_desc.c
5 | * @version : v2.0_Cube
6 | * @brief : Header for usbd_conf.c file.
7 | ******************************************************************************
8 | * @attention
9 | *
10 | * © Copyright (c) 2020 STMicroelectronics.
11 | * All rights reserved.
12 | *
13 | * This software component is licensed by ST under Ultimate Liberty license
14 | * SLA0044, the "License"; You may not use this file except in compliance with
15 | * the License. You may obtain a copy of the License at:
16 | * www.st.com/SLA0044
17 | *
18 | ******************************************************************************
19 | */
20 | /* USER CODE END Header */
21 | /* Define to prevent recursive inclusion -------------------------------------*/
22 | #ifndef __USBD_DESC__C__
23 | #define __USBD_DESC__C__
24 |
25 | #ifdef __cplusplus
26 | extern "C" {
27 | #endif
28 |
29 | /* Includes ------------------------------------------------------------------*/
30 | #include "usbd_def.h"
31 |
32 | /* USER CODE BEGIN INCLUDE */
33 |
34 | /* USER CODE END INCLUDE */
35 |
36 | /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
37 | * @{
38 | */
39 |
40 | /** @defgroup USBD_DESC USBD_DESC
41 | * @brief Usb device descriptors module.
42 | * @{
43 | */
44 |
45 | /** @defgroup USBD_DESC_Exported_Constants USBD_DESC_Exported_Constants
46 | * @brief Constants.
47 | * @{
48 | */
49 | #define DEVICE_ID1 (UID_BASE)
50 | #define DEVICE_ID2 (UID_BASE + 0x4)
51 | #define DEVICE_ID3 (UID_BASE + 0x8)
52 |
53 | #define USB_SIZ_STRING_SERIAL 0x1A
54 |
55 | /* USER CODE BEGIN EXPORTED_CONSTANTS */
56 |
57 | /* USER CODE END EXPORTED_CONSTANTS */
58 |
59 | /**
60 | * @}
61 | */
62 |
63 | /** @defgroup USBD_DESC_Exported_Defines USBD_DESC_Exported_Defines
64 | * @brief Defines.
65 | * @{
66 | */
67 |
68 | /* USER CODE BEGIN EXPORTED_DEFINES */
69 |
70 | /* USER CODE END EXPORTED_DEFINES */
71 |
72 | /**
73 | * @}
74 | */
75 |
76 | /** @defgroup USBD_DESC_Exported_TypesDefinitions USBD_DESC_Exported_TypesDefinitions
77 | * @brief Types.
78 | * @{
79 | */
80 |
81 | /* USER CODE BEGIN EXPORTED_TYPES */
82 |
83 | /* USER CODE END EXPORTED_TYPES */
84 |
85 | /**
86 | * @}
87 | */
88 |
89 | /** @defgroup USBD_DESC_Exported_Macros USBD_DESC_Exported_Macros
90 | * @brief Aliases.
91 | * @{
92 | */
93 |
94 | /* USER CODE BEGIN EXPORTED_MACRO */
95 |
96 | /* USER CODE END EXPORTED_MACRO */
97 |
98 | /**
99 | * @}
100 | */
101 |
102 | /** @defgroup USBD_DESC_Exported_Variables USBD_DESC_Exported_Variables
103 | * @brief Public variables.
104 | * @{
105 | */
106 |
107 | /** Descriptor for the Usb device. */
108 | extern USBD_DescriptorsTypeDef FS_Desc;
109 |
110 | /* USER CODE BEGIN EXPORTED_VARIABLES */
111 |
112 | /* USER CODE END EXPORTED_VARIABLES */
113 |
114 | /**
115 | * @}
116 | */
117 |
118 | /** @defgroup USBD_DESC_Exported_FunctionsPrototype USBD_DESC_Exported_FunctionsPrototype
119 | * @brief Public functions declaration.
120 | * @{
121 | */
122 |
123 | /* USER CODE BEGIN EXPORTED_FUNCTIONS */
124 |
125 | /* USER CODE END EXPORTED_FUNCTIONS */
126 |
127 | /**
128 | * @}
129 | */
130 |
131 | /**
132 | * @}
133 | */
134 |
135 | /**
136 | * @}
137 | */
138 |
139 | #ifdef __cplusplus
140 | }
141 | #endif
142 |
143 | #endif /* __USBD_DESC__C__ */
144 |
145 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
146 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/USB_DEVICE/Target/usbd_conf.h:
--------------------------------------------------------------------------------
1 | /* USER CODE BEGIN Header */
2 | /**
3 | ******************************************************************************
4 | * @file : usbd_conf.h
5 | * @version : v2.0_Cube
6 | * @brief : Header for usbd_conf.c file.
7 | ******************************************************************************
8 | * @attention
9 | *
10 | * © Copyright (c) 2020 STMicroelectronics.
11 | * All rights reserved.
12 | *
13 | * This software component is licensed by ST under Ultimate Liberty license
14 | * SLA0044, the "License"; You may not use this file except in compliance with
15 | * the License. You may obtain a copy of the License at:
16 | * www.st.com/SLA0044
17 | *
18 | ******************************************************************************
19 | */
20 | /* USER CODE END Header */
21 |
22 | /* Define to prevent recursive inclusion -------------------------------------*/
23 | #ifndef __USBD_CONF__H__
24 | #define __USBD_CONF__H__
25 |
26 | #ifdef __cplusplus
27 | extern "C" {
28 | #endif
29 |
30 | /* Includes ------------------------------------------------------------------*/
31 | #include
32 | #include
33 | #include
34 | #include "main.h"
35 | #include "stm32f0xx.h"
36 | #include "stm32f0xx_hal.h"
37 |
38 | /* USER CODE BEGIN INCLUDE */
39 |
40 | /* USER CODE END INCLUDE */
41 |
42 | /** @addtogroup USBD_OTG_DRIVER
43 | * @{
44 | */
45 |
46 | /** @defgroup USBD_CONF USBD_CONF
47 | * @brief Configuration file for Usb otg low level driver.
48 | * @{
49 | */
50 |
51 | /** @defgroup USBD_CONF_Exported_Variables USBD_CONF_Exported_Variables
52 | * @brief Public variables.
53 | * @{
54 | */
55 |
56 | /**
57 | * @}
58 | */
59 |
60 | /** @defgroup USBD_CONF_Exported_Defines USBD_CONF_Exported_Defines
61 | * @brief Defines for configuration of the Usb device.
62 | * @{
63 | */
64 |
65 | /*---------- -----------*/
66 | #define USBD_MAX_NUM_INTERFACES 1
67 | /*---------- -----------*/
68 | #define USBD_MAX_NUM_CONFIGURATION 1
69 | /*---------- -----------*/
70 | #define USBD_MAX_STR_DESC_SIZ 512
71 | /*---------- -----------*/
72 | #define USBD_DEBUG_LEVEL 0
73 | /*---------- -----------*/
74 | #define USBD_SELF_POWERED 0
75 | /*---------- -----------*/
76 | #define MAX_STATIC_ALLOC_SIZE 512
77 |
78 | /****************************************/
79 | /* #define for FS and HS identification */
80 | #define DEVICE_FS 0
81 |
82 | /**
83 | * @}
84 | */
85 |
86 | /** @defgroup USBD_CONF_Exported_Macros USBD_CONF_Exported_Macros
87 | * @brief Aliases.
88 | * @{
89 | */
90 |
91 | /* Memory management macros */
92 |
93 | /** Alias for memory allocation. */
94 | #define USBD_malloc (uint32_t *)USBD_static_malloc
95 |
96 | /** Alias for memory release. */
97 | #define USBD_free USBD_static_free
98 |
99 | /** Alias for memory set. */
100 | #define USBD_memset /* Not used */
101 |
102 | /** Alias for memory copy. */
103 | #define USBD_memcpy /* Not used */
104 |
105 | /** Alias for delay. */
106 | #define USBD_Delay HAL_Delay
107 |
108 | /* DEBUG macros */
109 |
110 | #if (USBD_DEBUG_LEVEL > 0)
111 | #define USBD_UsrLog(...) printf(__VA_ARGS__);\
112 | printf("\n");
113 | #else
114 | #define USBD_UsrLog(...)
115 | #endif
116 |
117 | #if (USBD_DEBUG_LEVEL > 1)
118 |
119 | #define USBD_ErrLog(...) printf("ERROR: ") ;\
120 | printf(__VA_ARGS__);\
121 | printf("\n");
122 | #else
123 | #define USBD_ErrLog(...)
124 | #endif
125 |
126 | #if (USBD_DEBUG_LEVEL > 2)
127 | #define USBD_DbgLog(...) printf("DEBUG : ") ;\
128 | printf(__VA_ARGS__);\
129 | printf("\n");
130 | #else
131 | #define USBD_DbgLog(...)
132 | #endif
133 |
134 | /**
135 | * @}
136 | */
137 |
138 | /** @defgroup USBD_CONF_Exported_Types USBD_CONF_Exported_Types
139 | * @brief Types.
140 | * @{
141 | */
142 |
143 | /**
144 | * @}
145 | */
146 |
147 | /** @defgroup USBD_CONF_Exported_FunctionsPrototype USBD_CONF_Exported_FunctionsPrototype
148 | * @brief Declaration of public functions for Usb device.
149 | * @{
150 | */
151 |
152 | /* Exported functions -------------------------------------------------------*/
153 | void *USBD_static_malloc(uint32_t size);
154 | void USBD_static_free(void *p);
155 | /**
156 | * @}
157 | */
158 |
159 | /**
160 | * @}
161 | */
162 |
163 | /**
164 | * @}
165 | */
166 |
167 | #ifdef __cplusplus
168 | }
169 | #endif
170 |
171 | #endif /* __USBD_CONF__H__ */
172 |
173 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
174 |
--------------------------------------------------------------------------------
/Firmware/For HW version 5/uSMU Debug.cfg:
--------------------------------------------------------------------------------
1 | # This is an genericBoard board with a single STM32F072C8Ux chip
2 | #
3 | # Generated by STM32CubeIDE
4 | # Take care that such file, as generated, may be overridden without any early notice. Please have a look to debug launch configuration setup(s)
5 |
6 | source [find interface/stlink-dap.cfg]
7 |
8 |
9 | set WORKAREASIZE 0x4000
10 |
11 | transport select "dapdirect_swd"
12 |
13 | set CHIPNAME STM32F072C8Ux
14 | set BOARDNAME genericBoard
15 |
16 | # Enable debug when in low power modes
17 | set ENABLE_LOW_POWER 1
18 |
19 | # Stop Watchdog counters when halt
20 | set STOP_WATCHDOG 1
21 |
22 | # STlink Debug clock frequency
23 | set CLOCK_FREQ 8000
24 |
25 | # Reset configuration
26 | # use hardware reset, connect under reset
27 | # connect_assert_srst needed if low power mode application running (WFI...)
28 | reset_config srst_only srst_nogate connect_assert_srst
29 | set CONNECT_UNDER_RESET 1
30 | set CORE_RESET 0
31 |
32 | # ACCESS PORT NUMBER
33 | set AP_NUM 0
34 | # GDB PORT
35 | set GDB_PORT 3333
36 |
37 |
38 |
39 | # BCTM CPU variables
40 |
41 | source [find target/stm32f0x.cfg]
42 |
--------------------------------------------------------------------------------
/Hardware/Version 10/Gerber files/uSMU_v10-B_Paste.gbr:
--------------------------------------------------------------------------------
1 | %TF.GenerationSoftware,KiCad,Pcbnew,(5.99.0-10483-ga6ad7a4a70)*%
2 | %TF.CreationDate,2021-05-23T17:26:51+03:00*%
3 | %TF.ProjectId,uSMU_v10,75534d55-5f76-4313-902e-6b696361645f,rev?*%
4 | %TF.SameCoordinates,Original*%
5 | %TF.FileFunction,Paste,Bot*%
6 | %TF.FilePolarity,Positive*%
7 | %FSLAX46Y46*%
8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
9 | G04 Created by KiCad (PCBNEW (5.99.0-10483-ga6ad7a4a70)) date 2021-05-23 17:26:51*
10 | %MOMM*%
11 | %LPD*%
12 | G01*
13 | G04 APERTURE LIST*
14 | G04 Aperture macros list*
15 | %AMRoundRect*
16 | 0 Rectangle with rounded corners*
17 | 0 $1 Rounding radius*
18 | 0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners*
19 | 0 Add a 4 corners polygon primitive as box body*
20 | 4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0*
21 | 0 Add four circle primitives for the rounded corners*
22 | 1,1,$1+$1,$2,$3*
23 | 1,1,$1+$1,$4,$5*
24 | 1,1,$1+$1,$6,$7*
25 | 1,1,$1+$1,$8,$9*
26 | 0 Add four rect primitives between the rounded corners*
27 | 20,1,$1+$1,$2,$3,$4,$5,0*
28 | 20,1,$1+$1,$4,$5,$6,$7,0*
29 | 20,1,$1+$1,$6,$7,$8,$9,0*
30 | 20,1,$1+$1,$8,$9,$2,$3,0*%
31 | G04 Aperture macros list end*
32 | %ADD10RoundRect,0.250000X0.475000X-0.250000X0.475000X0.250000X-0.475000X0.250000X-0.475000X-0.250000X0*%
33 | G04 APERTURE END LIST*
34 | D10*
35 | %TO.C,C45*%
36 | X166600000Y-105750000D03*
37 | X166600000Y-103850000D03*
38 | %TD*%
39 | M02*
40 |
--------------------------------------------------------------------------------
/Hardware/Version 10/Gerber files/uSMU_v10-Edge_Cuts.gbr:
--------------------------------------------------------------------------------
1 | %TF.GenerationSoftware,KiCad,Pcbnew,(5.99.0-10483-ga6ad7a4a70)*%
2 | %TF.CreationDate,2021-05-23T17:26:51+03:00*%
3 | %TF.ProjectId,uSMU_v10,75534d55-5f76-4313-902e-6b696361645f,rev?*%
4 | %TF.SameCoordinates,Original*%
5 | %TF.FileFunction,Profile,NP*%
6 | %FSLAX46Y46*%
7 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
8 | G04 Created by KiCad (PCBNEW (5.99.0-10483-ga6ad7a4a70)) date 2021-05-23 17:26:51*
9 | %MOMM*%
10 | %LPD*%
11 | G01*
12 | G04 APERTURE LIST*
13 | %TA.AperFunction,Profile*%
14 | %ADD10C,0.100000*%
15 | %TD*%
16 | G04 APERTURE END LIST*
17 | D10*
18 | X111000000Y-127000000D02*
19 | G75*
20 | G02*
21 | X107000000Y-123000000I0J4000000D01*
22 | G01*
23 | X173000000Y-127000000D02*
24 | X111000000Y-127000000D01*
25 | X107000000Y-123000000D02*
26 | X107000000Y-88000000D01*
27 | X173000000Y-84000000D02*
28 | G75*
29 | G02*
30 | X177000000Y-88000000I0J-4000000D01*
31 | G01*
32 | X177000000Y-88000000D02*
33 | X177000000Y-123000000D01*
34 | X111000000Y-84000000D02*
35 | X173000000Y-84000000D01*
36 | X107000000Y-88000000D02*
37 | G75*
38 | G02*
39 | X111000000Y-84000000I4000000J0D01*
40 | G01*
41 | X177000000Y-123000000D02*
42 | G75*
43 | G02*
44 | X173000000Y-127000000I-4000000J0D01*
45 | G01*
46 | M02*
47 |
--------------------------------------------------------------------------------
/Hardware/Version 10/Gerber files/uSMU_v10-NPTH.drl:
--------------------------------------------------------------------------------
1 | M48
2 | ; DRILL file {KiCad (5.99.0-10483-ga6ad7a4a70)} date Sun May 23 17:26:48 2021
3 | ; FORMAT={-:-/ absolute / inch / decimal}
4 | ; #@! TF.CreationDate,2021-05-23T17:26:48+03:00
5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(5.99.0-10483-ga6ad7a4a70)
6 | ; #@! TF.FileFunction,NonPlated,1,4,NPTH
7 | FMAT,2
8 | INCH
9 | ; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
10 | T1C0.0256
11 | %
12 | G90
13 | G05
14 | T1
15 | X4.4549Y-4.0407
16 | X4.4549Y-4.2683
17 | T0
18 | M30
19 |
--------------------------------------------------------------------------------
/Hardware/Version 10/Gerber files/uSMU_v10-job.gbrjob:
--------------------------------------------------------------------------------
1 | {
2 | "Header": {
3 | "GenerationSoftware": {
4 | "Vendor": "KiCad",
5 | "Application": "Pcbnew",
6 | "Version": "(5.99.0-10483-ga6ad7a4a70)"
7 | },
8 | "CreationDate": "2021-05-23T17:26:52+03:00"
9 | },
10 | "GeneralSpecs": {
11 | "ProjectId": {
12 | "Name": "uSMU_v10",
13 | "GUID": "75534d55-5f76-4313-902e-6b696361645f",
14 | "Revision": "rev?"
15 | },
16 | "Size": {
17 | "X": 70.3,
18 | "Y": 43.3
19 | },
20 | "LayerNumber": 4,
21 | "BoardThickness": 1.6,
22 | "Finish": "None"
23 | },
24 | "DesignRules": [
25 | {
26 | "Layers": "Outer",
27 | "PadToPad": 0.127,
28 | "PadToTrack": 0.127,
29 | "TrackToTrack": 0.2,
30 | "MinLineWidth": 0.2,
31 | "TrackToRegion": 0.254,
32 | "RegionToRegion": 0.254
33 | },
34 | {
35 | "Layers": "Inner",
36 | "PadToPad": 0.0,
37 | "PadToTrack": 0.0,
38 | "TrackToTrack": 0.2,
39 | "TrackToRegion": 0.254,
40 | "RegionToRegion": 0.254
41 | }
42 | ],
43 | "FilesAttributes": [
44 | {
45 | "Path": "uSMU_v10-F_Cu.gbr",
46 | "FileFunction": "Copper,L1,Top",
47 | "FilePolarity": "Positive"
48 | },
49 | {
50 | "Path": "uSMU_v10-Ground.gbr",
51 | "FileFunction": "Copper,L2,Inr",
52 | "FilePolarity": "Positive"
53 | },
54 | {
55 | "Path": "uSMU_v10-Power.gbr",
56 | "FileFunction": "Copper,L3,Inr",
57 | "FilePolarity": "Positive"
58 | },
59 | {
60 | "Path": "uSMU_v10-B_Cu.gbr",
61 | "FileFunction": "Copper,L4,Bot",
62 | "FilePolarity": "Positive"
63 | },
64 | {
65 | "Path": "uSMU_v10-F_Paste.gbr",
66 | "FileFunction": "SolderPaste,Top",
67 | "FilePolarity": "Positive"
68 | },
69 | {
70 | "Path": "uSMU_v10-B_Paste.gbr",
71 | "FileFunction": "SolderPaste,Bot",
72 | "FilePolarity": "Positive"
73 | },
74 | {
75 | "Path": "uSMU_v10-F_Silkscreen.gbr",
76 | "FileFunction": "Legend,Top",
77 | "FilePolarity": "Positive"
78 | },
79 | {
80 | "Path": "uSMU_v10-B_Silkscreen.gbr",
81 | "FileFunction": "Legend,Bot",
82 | "FilePolarity": "Positive"
83 | },
84 | {
85 | "Path": "uSMU_v10-F_Mask.gbr",
86 | "FileFunction": "SolderMask,Top",
87 | "FilePolarity": "Negative"
88 | },
89 | {
90 | "Path": "uSMU_v10-B_Mask.gbr",
91 | "FileFunction": "SolderMask,Bot",
92 | "FilePolarity": "Negative"
93 | },
94 | {
95 | "Path": "uSMU_v10-Edge_Cuts.gbr",
96 | "FileFunction": "Profile",
97 | "FilePolarity": "Positive"
98 | }
99 | ],
100 | "MaterialStackup": [
101 | {
102 | "Type": "Legend",
103 | "Name": "Top Silk Screen"
104 | },
105 | {
106 | "Type": "SolderPaste",
107 | "Name": "Top Solder Paste"
108 | },
109 | {
110 | "Type": "SolderMask",
111 | "Color": "Green",
112 | "Thickness": 0.01,
113 | "Name": "Top Solder Mask"
114 | },
115 | {
116 | "Type": "Copper",
117 | "Thickness": 0.035,
118 | "Name": "F.Cu"
119 | },
120 | {
121 | "Type": "Dielectric",
122 | "Thickness": 0.48,
123 | "Material": "FR4",
124 | "Name": "F.Cu/Ground",
125 | "Notes": "Type: dielectric layer 1 (from F.Cu to Ground)"
126 | },
127 | {
128 | "Type": "Copper",
129 | "Thickness": 0.035,
130 | "Name": "Ground"
131 | },
132 | {
133 | "Type": "Dielectric",
134 | "Thickness": 0.48,
135 | "Material": "FR4",
136 | "Name": "Ground/Power",
137 | "Notes": "Type: dielectric layer 2 (from Ground to Power)"
138 | },
139 | {
140 | "Type": "Copper",
141 | "Thickness": 0.035,
142 | "Name": "Power"
143 | },
144 | {
145 | "Type": "Dielectric",
146 | "Thickness": 0.48,
147 | "Material": "FR4",
148 | "Name": "Power/B.Cu",
149 | "Notes": "Type: dielectric layer 3 (from Power to B.Cu)"
150 | },
151 | {
152 | "Type": "Copper",
153 | "Thickness": 0.035,
154 | "Name": "B.Cu"
155 | },
156 | {
157 | "Type": "SolderMask",
158 | "Color": "Green",
159 | "Thickness": 0.01,
160 | "Name": "Bottom Solder Mask"
161 | },
162 | {
163 | "Type": "SolderPaste",
164 | "Name": "Bottom Solder Paste"
165 | },
166 | {
167 | "Type": "Legend",
168 | "Name": "Bottom Silk Screen"
169 | }
170 | ]
171 | }
172 |
--------------------------------------------------------------------------------
/Hardware/Version 10/fp-info-cache:
--------------------------------------------------------------------------------
1 | 0
2 |
--------------------------------------------------------------------------------
/Hardware/Version 10/fp-lib-table:
--------------------------------------------------------------------------------
1 | (fp_lib_table
2 | (lib (name "uSMU_v10")(type "KiCad")(uri "${KIPRJMOD}/uSMU_v10.pretty")(options "")(descr ""))
3 | )
4 |
--------------------------------------------------------------------------------
/Hardware/Version 10/sym-lib-table:
--------------------------------------------------------------------------------
1 | (sym_lib_table
2 | (lib (name "uSMU_v10")(type "KiCad")(uri "${KIPRJMOD}/uSMU_v10.kicad_sym")(options "")(descr ""))
3 | )
4 |
--------------------------------------------------------------------------------
/Hardware/Version 10/uSMU_v10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/Hardware/Version 10/uSMU_v10.png
--------------------------------------------------------------------------------
/Hardware/Version 10/uSMU_v10.pretty/E6C0606RGBC3UDA.kicad_mod:
--------------------------------------------------------------------------------
1 | (module "E6C0606RGBC3UDA" (layer F.Cu) (tedit 5FB0D1FB)
2 | (fp_text reference "REF**" (at 0 -9.5 unlocked) (layer F.SilkS)
3 | (effects (font (size 1 1) (thickness 0.15)))
4 | (tstamp ad8b0931-8e91-4f14-ae4e-041bf4ccff28)
5 | )
6 | (fp_text value "E6C0606RGBC3UDA" (at 0 -8 unlocked) (layer F.Fab)
7 | (effects (font (size 1 1) (thickness 0.15)))
8 | (tstamp 32fe31a5-3427-4934-a0a8-bf5d97c80eb6)
9 | )
10 | (fp_text user "${REF}" (at 0 -6.5 unlocked) (layer F.Fab)
11 | (effects (font (size 1 1) (thickness 0.15)))
12 | (tstamp 7387e9d7-79d9-4b52-a12d-5ec3d4d372d7)
13 | )
14 | (fp_line (start 1.340974 -0.1) (end 1.140974 -0.2) (layer F.SilkS) (width 0.12) (tstamp 1e6d0167-fe23-45e0-b2dd-1ea11cc001c2))
15 | (fp_line (start 1.140974 -0.2) (end 1.140974 0.2) (layer F.SilkS) (width 0.12) (tstamp 49ea66ae-6aa9-4800-a35d-5db1cf3648f3))
16 | (fp_line (start 1.140974 0.2) (end 1.340974 0.1) (layer F.SilkS) (width 0.12) (tstamp 759b16fd-8898-46d4-9f2e-0f465fe71b6d))
17 | (fp_line (start 1.340974 0.1) (end 1.340974 -0.1) (layer F.SilkS) (width 0.12) (tstamp f981c09a-bb58-46af-b553-f06efc43962c))
18 | (fp_rect (start -1.2 -1) (end 1.2 1) (layer F.CrtYd) (width 0.05) (tstamp 086faad4-3383-49ed-90ce-2d511a5ab31e))
19 | (pad "1" smd rect (at -0.7 -0.5) (size 0.6 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp ca31671c-f4ce-4b88-9be4-d04e87ac1901))
20 | (pad "2" smd rect (at 0.7 -0.5) (size 0.6 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 64ff7f0d-d980-43d4-8ca0-ad8cce368e52))
21 | (pad "3" smd rect (at -0.7 0.5) (size 0.6 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp db8351e3-1846-40cd-aa2a-2f56cd9153f7))
22 | (pad "4" smd rect (at 0.7 0.5) (size 0.6 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 9b04a22c-86bd-49ae-a60f-ed66c7d149a0))
23 | )
24 |
--------------------------------------------------------------------------------
/Hardware/Version 10/uSMU_v10.pretty/TYPE-C-31-M-12.kicad_mod:
--------------------------------------------------------------------------------
1 | (footprint "TYPE-C-31-M-12" (version 20210424) (generator pcbnew) (layer "F.Cu")
2 | (tedit 608EAF79)
3 | (fp_text reference "REF**" (at 0 -0.5 unlocked) (layer "F.SilkS")
4 | (effects (font (size 1 1) (thickness 0.15)))
5 | (tstamp 21f56d78-c2c1-4024-b11a-5b5f83dbe252)
6 | )
7 | (fp_text value "TYPE-C-31-M-12" (at 0 1 unlocked) (layer "F.Fab")
8 | (effects (font (size 1 1) (thickness 0.15)))
9 | (tstamp 4fcd42d5-4012-4306-bb6c-a33bc6e0b355)
10 | )
11 | (fp_text user "${REFERENCE}" (at 0 2.5 unlocked) (layer "F.Fab")
12 | (effects (font (size 1 1) (thickness 0.15)))
13 | (tstamp 952b681b-6afb-414e-8edc-6097579200ea)
14 | )
15 | (fp_line (start 4.83 -3.445) (end -4.92 -3.445) (layer "F.CrtYd") (width 0.12) (tstamp 553f0e02-19c8-4410-986d-ae124259846c))
16 | (fp_line (start 4.83 5.055) (end -4.92 5.055) (layer "F.CrtYd") (width 0.12) (tstamp 589edc39-b1c4-43bf-a9d5-d3f7c65affed))
17 | (fp_line (start -4.92 -3.445) (end -4.92 5.055) (layer "F.CrtYd") (width 0.12) (tstamp 8a66dfdb-4235-4c63-bd5e-aa4d15ace0bd))
18 | (fp_line (start 4.83 5.055) (end 4.83 -3.445) (layer "F.CrtYd") (width 0.12) (tstamp fc391615-8af5-4745-9ce7-c9778dac9d7b))
19 | (pad "" thru_hole oval (at 4.3 2.5) (size 1 1.6) (drill oval 0.6 1.2) (layers *.Cu *.Mask) (tstamp 197d0396-cb7f-4f28-8e3d-f45dcdc47c9c))
20 | (pad "" np_thru_hole custom (at 2.87 -1.15) (size 0.6 0.6) (drill 0.65) (layers F&B.Cu *.Mask)
21 | (options (clearance outline) (anchor circle))
22 | (primitives
23 | ) (tstamp 380955fd-3706-472c-a709-ab08d8b20d17))
24 | (pad "" thru_hole oval (at 4.3 -1.68) (size 1 2.1) (drill oval 0.6 1.7) (layers *.Cu *.Mask) (tstamp 51740fff-f587-467f-bec2-4902d4d9295b))
25 | (pad "" thru_hole oval (at -4.34 2.5) (size 1 1.6) (drill oval 0.6 1.2) (layers *.Cu *.Mask) (tstamp 875c374d-e3ed-4054-bcdb-28e36ae8517f))
26 | (pad "" thru_hole oval (at -4.34 -1.68) (size 1 2.1) (drill oval 0.6 1.7) (layers *.Cu *.Mask) (tstamp 87c7c76c-a0d4-4651-ae27-5a575c34224c))
27 | (pad "" np_thru_hole custom (at -2.91 -1.15) (size 0.6 0.6) (drill 0.65) (layers F&B.Cu *.Mask)
28 | (options (clearance outline) (anchor circle))
29 | (primitives
30 | ) (tstamp 92399634-588a-4a34-a6b7-6bf22d6036fe))
31 | (pad "A1" smd rect (at -3.27 -2.595) (size 0.6 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 4ea3f578-cc32-42bd-9f92-d6f1be6342fe))
32 | (pad "A4" smd rect (at -2.47 -2.595) (size 0.6 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp eea23257-f99b-4c1e-aa72-2a2acd507d19))
33 | (pad "A5" smd rect (at -1.27 -2.595) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp b1c36337-3c79-44df-be62-633a214d200e))
34 | (pad "A6" smd rect (at -0.27 -2.595) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 0f7d456d-601d-43ec-97de-e08b107d4d1f))
35 | (pad "A7" smd rect (at 0.23 -2.595) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp eee38f62-427b-41f3-b162-428b49d3f3f5))
36 | (pad "A8" smd rect (at 1.23 -2.595) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp c5472ea7-1494-40a1-8a68-b760cc6f05c5))
37 | (pad "A9" smd rect (at 2.43 -2.595) (size 0.6 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 6b289042-aa2c-4840-818d-909497a6fe42))
38 | (pad "A12" smd rect (at 3.23 -2.595) (size 0.6 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp af7f7113-06ce-4fc9-9291-1bc193e8f9ff))
39 | (pad "B5" smd rect (at 1.73 -2.595) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp c847b6ba-e594-4c25-8b02-f857c63d33f1))
40 | (pad "B6" smd rect (at 0.73 -2.595) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 572903c4-90a2-459b-8ab7-e302d1af2099))
41 | (pad "B7" smd rect (at -0.77 -2.595) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 95733fc8-c849-4d87-b196-8ed331c1f9b9))
42 | (pad "B8" smd rect (at -1.77 -2.595) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 2467190e-2e90-4510-bf82-fe2aa4410574))
43 | )
44 |
--------------------------------------------------------------------------------
/Hardware/Version 10/uSMU_v10_BOM.csv:
--------------------------------------------------------------------------------
1 | Item,Qty,Reference(s),Value,Manufacturer,Mfr. Part number
2 | 1,19,"C1, C5, C8, C9, C10, C11, C13, C15, C17, C18, C19, C20, C22, C23, C24, C33, C35, C37, C38",1uF,Samsung Electro-Mechanics,CL10B105KA8NNNC
3 | 2,5,"C2, C7, C16, C28, C29, C36",0.1uF,Samsung Electro-Mechanics,CL10B104KB8NNNC
4 | 3,6,"C3, C14, C25, C40, C41, C43",10nF,Samsung Electro-Mechanics,CL10B103KB8NNNC
5 | 4,5,"C4, C6, C12, C27, C30",10uF,Samsung Electro-Mechanics,CL21A106KAYNNNE
6 | 5,1,C21,200pF,Samsung Electro-Mechanics,CL10C201JB8NNNC
7 | 6,2,"C26, C32",22uF,Samsung Electro-Mechanics,CL21A226MAQNNNE
8 | 7,2,"C31, C34",2pF,Samsung Electro-Mechanics,CL10C020BB8NNNC
9 | 8,2,"C42, C44",1nF,Samsung Electro-Mechanics,CL10B102KB8NNNC
10 | 9,1,"D1, D2, D3, D4",Status LED,EKINGLUX,E6C0606RGBC3UDA
11 | 10,2,"D5, D6",B5819W,Microdiode Electronics,B5819W
12 | 11,1,J1,SWD,Amphenol ICC,20021121-00010C4LF
13 | 12,1,J2,USB_C_Receptacle_USB2.0,Korean Hroparts Electronics,TYPE-C-31-M-12
14 | 13,1,J3,DUT,TE Connectivity,1-1634624-0
15 | 14,2,"L1, L2",4.7uH,Taiyo Yuden,CBC3225T4R7MR
16 | 15,1,Q1,AO3401A,BORN,AO3401A
17 | 16,15,"R1, R2, R9, R11, R12, R17, R18, R20, R21, R22, R24, R26, R29, R32, R39",10k,Panasonic,ERJPB3D1002V
18 | 17,7,"R3, R4, R5, R7, R23, R25, R28",1k,Panasonic,ERJ3RBD1001V
19 | 18,2,"R6, R16",5.1k,Panasonic,ERJ3EKF5101V
20 | 19,8,"R8, R10, R13, R15, R19, R27, R30, R31",100k,Panasonic,ERJPB3D1003V
21 | 20,2,"R14, R36",330k,Panasonic,ERJ3EKF3303V
22 | 21,3,"R33, R34, R35",47k,Panasonic,ERJPA3F4702V
23 | 22,5,"R37, R38, R42, R43, R44",100,Panasonic,ERJ3EKF1000V
24 | 23,1,R40,50,Panasonic,ERA3AEB49R9V
25 | 24,1,R41,10,Panasonic,ERJUP3D10R0V
26 | 25,1,U1,ADS1115IDGS,Texas Instruments,ADS1115IDGSR
27 | 26,3,"U2, U7, U9",GS8331,Gainsil,GS8331-TR
28 | 27,1,U3,STM32F072C8Ux,ST Microelectronics,STM32F072CBU6
29 | 28,1,U4,TS321,ST Microelectronics,TS321AILT
30 | 29,1,U5,USBLC6-2SC6,ST Microelectronics,USBLC6-2SC6
31 | 30,1,U6,ME6212C33M5G,Microne,ME6212C33M5G
32 | 31,1,U8,MCP1501T-40E_CHY,Microchip,MCP1501T-40E/CHY
33 | 32,1,U10,LT1970,Analog Devices,LT1970CFE#PBF
34 | 33,1,U11,DAC8571IDGKR,Texas Instruments,DAC8571IDGKR
35 | 34,1,U12,TPS65131RGET,Texas Instruments,TPS65131RGET
36 | 35,1,U13,H7650-45PR,Shanghai Siproin Microelectronics,H7650-45PR
37 | 36,1,U14,PGA281,Texas Instruments,PGA281AIPWR
38 |
--------------------------------------------------------------------------------
/Hardware/Version 10/uSMU_v10_schematic.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/Hardware/Version 10/uSMU_v10_schematic.pdf
--------------------------------------------------------------------------------
/Hardware/Version 10r1/Gerber files/Gerber files.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/Hardware/Version 10r1/Gerber files/Gerber files.zip
--------------------------------------------------------------------------------
/Hardware/Version 10r1/Gerber files/uSMU_v10-B_Mask.gbr:
--------------------------------------------------------------------------------
1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.0)*%
2 | %TF.CreationDate,2022-03-21T15:30:00+00:00*%
3 | %TF.ProjectId,uSMU_v10,75534d55-5f76-4313-902e-6b696361645f,rev?*%
4 | %TF.SameCoordinates,Original*%
5 | %TF.FileFunction,Soldermask,Bot*%
6 | %TF.FilePolarity,Negative*%
7 | %FSLAX46Y46*%
8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
9 | G04 Created by KiCad (PCBNEW (6.0.0)) date 2022-03-21 15:30:00*
10 | %MOMM*%
11 | %LPD*%
12 | G01*
13 | G04 APERTURE LIST*
14 | G04 Aperture macros list*
15 | %AMRoundRect*
16 | 0 Rectangle with rounded corners*
17 | 0 $1 Rounding radius*
18 | 0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners*
19 | 0 Add a 4 corners polygon primitive as box body*
20 | 4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0*
21 | 0 Add four circle primitives for the rounded corners*
22 | 1,1,$1+$1,$2,$3*
23 | 1,1,$1+$1,$4,$5*
24 | 1,1,$1+$1,$6,$7*
25 | 1,1,$1+$1,$8,$9*
26 | 0 Add four rect primitives between the rounded corners*
27 | 20,1,$1+$1,$2,$3,$4,$5,0*
28 | 20,1,$1+$1,$4,$5,$6,$7,0*
29 | 20,1,$1+$1,$6,$7,$8,$9,0*
30 | 20,1,$1+$1,$8,$9,$2,$3,0*%
31 | %AMFreePoly0*
32 | 4,1,19,0.150000,0.259808,0.229813,0.192836,0.281908,0.102606,0.300000,0.000000,0.281908,-0.102606,0.229813,-0.192836,0.150000,-0.259808,0.052094,-0.295442,-0.052094,-0.295442,-0.150000,-0.259808,-0.229813,-0.192836,-0.281908,-0.102606,-0.300000,0.000000,-0.281908,0.102606,-0.229813,0.192836,-0.150000,0.259808,-0.052094,0.295442,0.052094,0.295442,0.150000,0.259808,0.150000,0.259808,
33 | $1*%
34 | %AMFreePoly1*
35 | 4,1,22,0.500000,-0.750000,0.000000,-0.750000,0.000000,-0.745033,-0.079941,-0.743568,-0.215256,-0.701293,-0.333266,-0.622738,-0.424486,-0.514219,-0.481581,-0.384460,-0.499164,-0.250000,-0.500000,-0.250000,-0.500000,0.250000,-0.499164,0.250000,-0.499963,0.256109,-0.478152,0.396186,-0.417904,0.524511,-0.324060,0.630769,-0.204165,0.706417,-0.067858,0.745374,0.000000,0.744959,0.000000,0.750000,
36 | 0.500000,0.750000,0.500000,-0.750000,0.500000,-0.750000,$1*%
37 | %AMFreePoly2*
38 | 4,1,20,0.000000,0.744959,0.073905,0.744508,0.209726,0.703889,0.328688,0.626782,0.421226,0.519385,0.479903,0.390333,0.500000,0.250000,0.500000,-0.250000,0.499851,-0.262216,0.476331,-0.402017,0.414519,-0.529596,0.319384,-0.634700,0.198574,-0.708877,0.061801,-0.746166,0.000000,-0.745033,0.000000,-0.750000,-0.500000,-0.750000,-0.500000,0.750000,0.000000,0.750000,0.000000,0.744959,
39 | 0.000000,0.744959,$1*%
40 | G04 Aperture macros list end*
41 | %ADD10C,0.600000*%
42 | %ADD11O,2.500000X1.600000*%
43 | %ADD12O,7.000000X3.500000*%
44 | %ADD13C,0.800000*%
45 | %ADD14C,6.400000*%
46 | %ADD15O,1.600000X1.000000*%
47 | %ADD16FreePoly0,270.000000*%
48 | %ADD17O,2.100000X1.000000*%
49 | %ADD18FreePoly1,0.000000*%
50 | %ADD19FreePoly2,0.000000*%
51 | %ADD20FreePoly1,90.000000*%
52 | %ADD21FreePoly2,90.000000*%
53 | %ADD22RoundRect,0.250000X0.475000X-0.250000X0.475000X0.250000X-0.475000X0.250000X-0.475000X-0.250000X0*%
54 | %ADD23FreePoly1,270.000000*%
55 | %ADD24FreePoly2,270.000000*%
56 | G04 APERTURE END LIST*
57 | D10*
58 | %TO.C,U10*%
59 | X145225000Y-104000000D03*
60 | X144025000Y-104800000D03*
61 | X146425000Y-104800000D03*
62 | X147625000Y-104000000D03*
63 | X146425000Y-103200000D03*
64 | X144025000Y-103200000D03*
65 | X142825000Y-104000000D03*
66 | %TD*%
67 | D11*
68 | %TO.C,J3*%
69 | X164000000Y-105875000D03*
70 | X164000000Y-103335000D03*
71 | D12*
72 | X169080000Y-100795000D03*
73 | X169080000Y-110955000D03*
74 | %TD*%
75 | D13*
76 | %TO.C,H4*%
77 | X171302944Y-121302944D03*
78 | X173000000Y-125400000D03*
79 | X171302944Y-124697056D03*
80 | X170600000Y-123000000D03*
81 | X175400000Y-123000000D03*
82 | X174697056Y-121302944D03*
83 | X174697056Y-124697056D03*
84 | D14*
85 | X173000000Y-123000000D03*
86 | D13*
87 | X173000000Y-120600000D03*
88 | %TD*%
89 | %TO.C,H1*%
90 | X109302944Y-86302944D03*
91 | X113400000Y-88000000D03*
92 | X111000000Y-90400000D03*
93 | X111000000Y-85600000D03*
94 | X112697056Y-86302944D03*
95 | X108600000Y-88000000D03*
96 | D14*
97 | X111000000Y-88000000D03*
98 | D13*
99 | X109302944Y-89697056D03*
100 | X112697056Y-89697056D03*
101 | %TD*%
102 | D15*
103 | %TO.C,J2*%
104 | X109505000Y-109845000D03*
105 | D16*
106 | X113155000Y-108415000D03*
107 | X113155000Y-102635000D03*
108 | D15*
109 | X109505000Y-101205000D03*
110 | D17*
111 | X113685000Y-109845000D03*
112 | X113685000Y-101205000D03*
113 | %TD*%
114 | D13*
115 | %TO.C,H2*%
116 | X174697056Y-86302944D03*
117 | X173000000Y-90400000D03*
118 | D14*
119 | X173000000Y-88000000D03*
120 | D13*
121 | X174697056Y-89697056D03*
122 | X170600000Y-88000000D03*
123 | X171302944Y-86302944D03*
124 | X171302944Y-89697056D03*
125 | X175400000Y-88000000D03*
126 | X173000000Y-85600000D03*
127 | %TD*%
128 | %TO.C,H3*%
129 | X112697056Y-121302944D03*
130 | X111000000Y-125400000D03*
131 | X109302944Y-121302944D03*
132 | X113400000Y-123000000D03*
133 | X111000000Y-120600000D03*
134 | D14*
135 | X111000000Y-123000000D03*
136 | D13*
137 | X109302944Y-124697056D03*
138 | X112697056Y-124697056D03*
139 | X108600000Y-123000000D03*
140 | %TD*%
141 | D18*
142 | %TO.C,JP4*%
143 | X160750000Y-117000000D03*
144 | D19*
145 | X162050000Y-117000000D03*
146 | %TD*%
147 | D20*
148 | %TO.C,JP2*%
149 | X161600000Y-111400000D03*
150 | D21*
151 | X161600000Y-110100000D03*
152 | %TD*%
153 | D22*
154 | %TO.C,C45*%
155 | X166600000Y-105750000D03*
156 | X166600000Y-103850000D03*
157 | %TD*%
158 | D23*
159 | %TO.C,JP3*%
160 | X164200000Y-110100000D03*
161 | D24*
162 | X164200000Y-111400000D03*
163 | %TD*%
164 | M02*
165 |
--------------------------------------------------------------------------------
/Hardware/Version 10r1/Gerber files/uSMU_v10-B_Paste.gbr:
--------------------------------------------------------------------------------
1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.0)*%
2 | %TF.CreationDate,2022-03-21T15:30:00+00:00*%
3 | %TF.ProjectId,uSMU_v10,75534d55-5f76-4313-902e-6b696361645f,rev?*%
4 | %TF.SameCoordinates,Original*%
5 | %TF.FileFunction,Paste,Bot*%
6 | %TF.FilePolarity,Positive*%
7 | %FSLAX46Y46*%
8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
9 | G04 Created by KiCad (PCBNEW (6.0.0)) date 2022-03-21 15:30:00*
10 | %MOMM*%
11 | %LPD*%
12 | G01*
13 | G04 APERTURE LIST*
14 | G04 Aperture macros list*
15 | %AMRoundRect*
16 | 0 Rectangle with rounded corners*
17 | 0 $1 Rounding radius*
18 | 0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners*
19 | 0 Add a 4 corners polygon primitive as box body*
20 | 4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0*
21 | 0 Add four circle primitives for the rounded corners*
22 | 1,1,$1+$1,$2,$3*
23 | 1,1,$1+$1,$4,$5*
24 | 1,1,$1+$1,$6,$7*
25 | 1,1,$1+$1,$8,$9*
26 | 0 Add four rect primitives between the rounded corners*
27 | 20,1,$1+$1,$2,$3,$4,$5,0*
28 | 20,1,$1+$1,$4,$5,$6,$7,0*
29 | 20,1,$1+$1,$6,$7,$8,$9,0*
30 | 20,1,$1+$1,$8,$9,$2,$3,0*%
31 | G04 Aperture macros list end*
32 | %ADD10RoundRect,0.250000X0.475000X-0.250000X0.475000X0.250000X-0.475000X0.250000X-0.475000X-0.250000X0*%
33 | G04 APERTURE END LIST*
34 | D10*
35 | %TO.C,C45*%
36 | X166600000Y-105750000D03*
37 | X166600000Y-103850000D03*
38 | %TD*%
39 | M02*
40 |
--------------------------------------------------------------------------------
/Hardware/Version 10r1/Gerber files/uSMU_v10-Edge_Cuts.gbr:
--------------------------------------------------------------------------------
1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.0)*%
2 | %TF.CreationDate,2022-03-21T15:30:00+00:00*%
3 | %TF.ProjectId,uSMU_v10,75534d55-5f76-4313-902e-6b696361645f,rev?*%
4 | %TF.SameCoordinates,Original*%
5 | %TF.FileFunction,Profile,NP*%
6 | %FSLAX46Y46*%
7 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
8 | G04 Created by KiCad (PCBNEW (6.0.0)) date 2022-03-21 15:30:00*
9 | %MOMM*%
10 | %LPD*%
11 | G01*
12 | G04 APERTURE LIST*
13 | %TA.AperFunction,Profile*%
14 | %ADD10C,0.100000*%
15 | %TD*%
16 | G04 APERTURE END LIST*
17 | D10*
18 | X107000000Y-123000000D02*
19 | G75*
20 | G03*
21 | X111000000Y-127000000I4000000J0D01*
22 | G01*
23 | X173000000Y-127000000D02*
24 | X111000000Y-127000000D01*
25 | X107000000Y-123000000D02*
26 | X107000000Y-88000000D01*
27 | X177000000Y-88000000D02*
28 | G75*
29 | G03*
30 | X173000000Y-84000000I-4000000J0D01*
31 | G01*
32 | X177000000Y-88000000D02*
33 | X177000000Y-123000000D01*
34 | X111000000Y-84000000D02*
35 | X173000000Y-84000000D01*
36 | X111000000Y-84000000D02*
37 | G75*
38 | G03*
39 | X107000000Y-88000000I0J-4000000D01*
40 | G01*
41 | X173000000Y-127000000D02*
42 | G75*
43 | G03*
44 | X177000000Y-123000000I0J4000000D01*
45 | G01*
46 | M02*
47 |
--------------------------------------------------------------------------------
/Hardware/Version 10r1/Gerber files/uSMU_v10-NPTH.drl:
--------------------------------------------------------------------------------
1 | M48
2 | ; DRILL file {KiCad (6.0.0)} date Mon Mar 21 15:29:56 2022
3 | ; FORMAT={-:-/ absolute / inch / decimal}
4 | ; #@! TF.CreationDate,2022-03-21T15:29:56+00:00
5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(6.0.0)
6 | ; #@! TF.FileFunction,NonPlated,1,4,NPTH
7 | FMAT,2
8 | INCH
9 | ; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
10 | T1C0.0256
11 | %
12 | G90
13 | G05
14 | T1
15 | X4.4549Y-4.0407
16 | X4.4549Y-4.2683
17 | T0
18 | M30
19 |
--------------------------------------------------------------------------------
/Hardware/Version 10r1/Gerber files/uSMU_v10-job.gbrjob:
--------------------------------------------------------------------------------
1 | {
2 | "Header": {
3 | "GenerationSoftware": {
4 | "Vendor": "KiCad",
5 | "Application": "Pcbnew",
6 | "Version": "(6.0.0)"
7 | },
8 | "CreationDate": "2022-03-21T15:30:00+00:00"
9 | },
10 | "GeneralSpecs": {
11 | "ProjectId": {
12 | "Name": "uSMU_v10",
13 | "GUID": "75534d55-5f76-4313-902e-6b696361645f",
14 | "Revision": "rev?"
15 | },
16 | "Size": {
17 | "X": 70.1,
18 | "Y": 43.1
19 | },
20 | "LayerNumber": 4,
21 | "BoardThickness": 1.6,
22 | "Finish": "None"
23 | },
24 | "DesignRules": [
25 | {
26 | "Layers": "Outer",
27 | "PadToPad": 0.127,
28 | "PadToTrack": 0.127,
29 | "TrackToTrack": 0.2,
30 | "MinLineWidth": 0.2,
31 | "TrackToRegion": 0.254,
32 | "RegionToRegion": 0.254
33 | },
34 | {
35 | "Layers": "Inner",
36 | "PadToPad": 0.0,
37 | "PadToTrack": 0.0,
38 | "TrackToTrack": 0.2,
39 | "TrackToRegion": 0.254,
40 | "RegionToRegion": 0.254
41 | }
42 | ],
43 | "FilesAttributes": [
44 | {
45 | "Path": "uSMU_v10-F_Cu.gbr",
46 | "FileFunction": "Copper,L1,Top",
47 | "FilePolarity": "Positive"
48 | },
49 | {
50 | "Path": "uSMU_v10-Ground.gbr",
51 | "FileFunction": "Copper,L2,Inr",
52 | "FilePolarity": "Positive"
53 | },
54 | {
55 | "Path": "uSMU_v10-Power.gbr",
56 | "FileFunction": "Copper,L3,Inr",
57 | "FilePolarity": "Positive"
58 | },
59 | {
60 | "Path": "uSMU_v10-B_Cu.gbr",
61 | "FileFunction": "Copper,L4,Bot",
62 | "FilePolarity": "Positive"
63 | },
64 | {
65 | "Path": "uSMU_v10-F_Paste.gbr",
66 | "FileFunction": "SolderPaste,Top",
67 | "FilePolarity": "Positive"
68 | },
69 | {
70 | "Path": "uSMU_v10-B_Paste.gbr",
71 | "FileFunction": "SolderPaste,Bot",
72 | "FilePolarity": "Positive"
73 | },
74 | {
75 | "Path": "uSMU_v10-F_Silkscreen.gbr",
76 | "FileFunction": "Legend,Top",
77 | "FilePolarity": "Positive"
78 | },
79 | {
80 | "Path": "uSMU_v10-B_Silkscreen.gbr",
81 | "FileFunction": "Legend,Bot",
82 | "FilePolarity": "Positive"
83 | },
84 | {
85 | "Path": "uSMU_v10-F_Mask.gbr",
86 | "FileFunction": "SolderMask,Top",
87 | "FilePolarity": "Negative"
88 | },
89 | {
90 | "Path": "uSMU_v10-B_Mask.gbr",
91 | "FileFunction": "SolderMask,Bot",
92 | "FilePolarity": "Negative"
93 | },
94 | {
95 | "Path": "uSMU_v10-Edge_Cuts.gbr",
96 | "FileFunction": "Profile",
97 | "FilePolarity": "Positive"
98 | }
99 | ],
100 | "MaterialStackup": [
101 | {
102 | "Type": "Legend",
103 | "Name": "Top Silk Screen"
104 | },
105 | {
106 | "Type": "SolderPaste",
107 | "Name": "Top Solder Paste"
108 | },
109 | {
110 | "Type": "SolderMask",
111 | "Color": "Green",
112 | "Thickness": 0.01,
113 | "Name": "Top Solder Mask"
114 | },
115 | {
116 | "Type": "Copper",
117 | "Thickness": 0.035,
118 | "Name": "F.Cu"
119 | },
120 | {
121 | "Type": "Dielectric",
122 | "Thickness": 0.48,
123 | "Material": "FR4",
124 | "Name": "F.Cu/Ground",
125 | "Notes": "Type: dielectric layer 1 (from F.Cu to Ground)"
126 | },
127 | {
128 | "Type": "Copper",
129 | "Thickness": 0.035,
130 | "Name": "Ground"
131 | },
132 | {
133 | "Type": "Dielectric",
134 | "Thickness": 0.48,
135 | "Material": "FR4",
136 | "Name": "Ground/Power",
137 | "Notes": "Type: dielectric layer 2 (from Ground to Power)"
138 | },
139 | {
140 | "Type": "Copper",
141 | "Thickness": 0.035,
142 | "Name": "Power"
143 | },
144 | {
145 | "Type": "Dielectric",
146 | "Thickness": 0.48,
147 | "Material": "FR4",
148 | "Name": "Power/B.Cu",
149 | "Notes": "Type: dielectric layer 3 (from Power to B.Cu)"
150 | },
151 | {
152 | "Type": "Copper",
153 | "Thickness": 0.035,
154 | "Name": "B.Cu"
155 | },
156 | {
157 | "Type": "SolderMask",
158 | "Color": "Green",
159 | "Thickness": 0.01,
160 | "Name": "Bottom Solder Mask"
161 | },
162 | {
163 | "Type": "SolderPaste",
164 | "Name": "Bottom Solder Paste"
165 | },
166 | {
167 | "Type": "Legend",
168 | "Name": "Bottom Silk Screen"
169 | }
170 | ]
171 | }
172 |
--------------------------------------------------------------------------------
/Hardware/Version 10r1/uSMU_v10-backups/uSMU_v10-2022-03-21_154303.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/Hardware/Version 10r1/uSMU_v10-backups/uSMU_v10-2022-03-21_154303.zip
--------------------------------------------------------------------------------
/Hardware/Version 10r1/uSMU_v10-backups/uSMU_v10-2022-03-21_154837.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/Hardware/Version 10r1/uSMU_v10-backups/uSMU_v10-2022-03-21_154837.zip
--------------------------------------------------------------------------------
/Hardware/Version 10r1/uSMU_v10.kicad_prl:
--------------------------------------------------------------------------------
1 | {
2 | "board": {
3 | "active_layer": 0,
4 | "active_layer_preset": "",
5 | "auto_track_width": true,
6 | "hidden_nets": [],
7 | "high_contrast_mode": 0,
8 | "net_color_mode": 1,
9 | "opacity": {
10 | "pads": 1.0,
11 | "tracks": 1.0,
12 | "vias": 1.0,
13 | "zones": 0.6
14 | },
15 | "ratsnest_display_mode": 0,
16 | "selection_filter": {
17 | "dimensions": true,
18 | "footprints": true,
19 | "graphics": true,
20 | "keepouts": true,
21 | "lockedItems": true,
22 | "otherItems": true,
23 | "pads": true,
24 | "text": true,
25 | "tracks": true,
26 | "vias": true,
27 | "zones": true
28 | },
29 | "visible_items": [
30 | 0,
31 | 1,
32 | 2,
33 | 3,
34 | 4,
35 | 5,
36 | 8,
37 | 9,
38 | 10,
39 | 11,
40 | 12,
41 | 13,
42 | 14,
43 | 15,
44 | 16,
45 | 17,
46 | 18,
47 | 19,
48 | 20,
49 | 21,
50 | 22,
51 | 23,
52 | 24,
53 | 25,
54 | 26,
55 | 27,
56 | 28,
57 | 29,
58 | 30,
59 | 32,
60 | 33,
61 | 34,
62 | 35,
63 | 36
64 | ],
65 | "visible_layers": "ffcffef_ffffffff",
66 | "zone_display_mode": 1
67 | },
68 | "meta": {
69 | "filename": "uSMU_v10.kicad_prl",
70 | "version": 3
71 | },
72 | "project": {
73 | "files": []
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/Hardware/Version 10r1/uSMU_v10.pretty/E6C0606RGBC3UDA.kicad_mod:
--------------------------------------------------------------------------------
1 | (module "E6C0606RGBC3UDA" (layer F.Cu) (tedit 5FB0D1FB)
2 | (fp_text reference "REF**" (at 0 -9.5 unlocked) (layer F.SilkS)
3 | (effects (font (size 1 1) (thickness 0.15)))
4 | (tstamp ad8b0931-8e91-4f14-ae4e-041bf4ccff28)
5 | )
6 | (fp_text value "E6C0606RGBC3UDA" (at 0 -8 unlocked) (layer F.Fab)
7 | (effects (font (size 1 1) (thickness 0.15)))
8 | (tstamp 32fe31a5-3427-4934-a0a8-bf5d97c80eb6)
9 | )
10 | (fp_text user "${REF}" (at 0 -6.5 unlocked) (layer F.Fab)
11 | (effects (font (size 1 1) (thickness 0.15)))
12 | (tstamp 7387e9d7-79d9-4b52-a12d-5ec3d4d372d7)
13 | )
14 | (fp_line (start 1.340974 -0.1) (end 1.140974 -0.2) (layer F.SilkS) (width 0.12) (tstamp 1e6d0167-fe23-45e0-b2dd-1ea11cc001c2))
15 | (fp_line (start 1.140974 -0.2) (end 1.140974 0.2) (layer F.SilkS) (width 0.12) (tstamp 49ea66ae-6aa9-4800-a35d-5db1cf3648f3))
16 | (fp_line (start 1.140974 0.2) (end 1.340974 0.1) (layer F.SilkS) (width 0.12) (tstamp 759b16fd-8898-46d4-9f2e-0f465fe71b6d))
17 | (fp_line (start 1.340974 0.1) (end 1.340974 -0.1) (layer F.SilkS) (width 0.12) (tstamp f981c09a-bb58-46af-b553-f06efc43962c))
18 | (fp_rect (start -1.2 -1) (end 1.2 1) (layer F.CrtYd) (width 0.05) (tstamp 086faad4-3383-49ed-90ce-2d511a5ab31e))
19 | (pad "1" smd rect (at -0.7 -0.5) (size 0.6 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp ca31671c-f4ce-4b88-9be4-d04e87ac1901))
20 | (pad "2" smd rect (at 0.7 -0.5) (size 0.6 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 64ff7f0d-d980-43d4-8ca0-ad8cce368e52))
21 | (pad "3" smd rect (at -0.7 0.5) (size 0.6 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp db8351e3-1846-40cd-aa2a-2f56cd9153f7))
22 | (pad "4" smd rect (at 0.7 0.5) (size 0.6 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 9b04a22c-86bd-49ae-a60f-ed66c7d149a0))
23 | )
24 |
--------------------------------------------------------------------------------
/Hardware/Version 10r1/uSMU_v10.pretty/TYPE-C-31-M-12.kicad_mod:
--------------------------------------------------------------------------------
1 | (footprint "TYPE-C-31-M-12" (version 20210424) (generator pcbnew) (layer "F.Cu")
2 | (tedit 608EAF79)
3 | (fp_text reference "REF**" (at 0 -0.5 unlocked) (layer "F.SilkS")
4 | (effects (font (size 1 1) (thickness 0.15)))
5 | (tstamp 21f56d78-c2c1-4024-b11a-5b5f83dbe252)
6 | )
7 | (fp_text value "TYPE-C-31-M-12" (at 0 1 unlocked) (layer "F.Fab")
8 | (effects (font (size 1 1) (thickness 0.15)))
9 | (tstamp 4fcd42d5-4012-4306-bb6c-a33bc6e0b355)
10 | )
11 | (fp_text user "${REFERENCE}" (at 0 2.5 unlocked) (layer "F.Fab")
12 | (effects (font (size 1 1) (thickness 0.15)))
13 | (tstamp 952b681b-6afb-414e-8edc-6097579200ea)
14 | )
15 | (fp_line (start 4.83 -3.445) (end -4.92 -3.445) (layer "F.CrtYd") (width 0.12) (tstamp 553f0e02-19c8-4410-986d-ae124259846c))
16 | (fp_line (start 4.83 5.055) (end -4.92 5.055) (layer "F.CrtYd") (width 0.12) (tstamp 589edc39-b1c4-43bf-a9d5-d3f7c65affed))
17 | (fp_line (start -4.92 -3.445) (end -4.92 5.055) (layer "F.CrtYd") (width 0.12) (tstamp 8a66dfdb-4235-4c63-bd5e-aa4d15ace0bd))
18 | (fp_line (start 4.83 5.055) (end 4.83 -3.445) (layer "F.CrtYd") (width 0.12) (tstamp fc391615-8af5-4745-9ce7-c9778dac9d7b))
19 | (pad "" thru_hole oval (at 4.3 2.5) (size 1 1.6) (drill oval 0.6 1.2) (layers *.Cu *.Mask) (tstamp 197d0396-cb7f-4f28-8e3d-f45dcdc47c9c))
20 | (pad "" np_thru_hole custom (at 2.87 -1.15) (size 0.6 0.6) (drill 0.65) (layers F&B.Cu *.Mask)
21 | (options (clearance outline) (anchor circle))
22 | (primitives
23 | ) (tstamp 380955fd-3706-472c-a709-ab08d8b20d17))
24 | (pad "" thru_hole oval (at 4.3 -1.68) (size 1 2.1) (drill oval 0.6 1.7) (layers *.Cu *.Mask) (tstamp 51740fff-f587-467f-bec2-4902d4d9295b))
25 | (pad "" thru_hole oval (at -4.34 2.5) (size 1 1.6) (drill oval 0.6 1.2) (layers *.Cu *.Mask) (tstamp 875c374d-e3ed-4054-bcdb-28e36ae8517f))
26 | (pad "" thru_hole oval (at -4.34 -1.68) (size 1 2.1) (drill oval 0.6 1.7) (layers *.Cu *.Mask) (tstamp 87c7c76c-a0d4-4651-ae27-5a575c34224c))
27 | (pad "" np_thru_hole custom (at -2.91 -1.15) (size 0.6 0.6) (drill 0.65) (layers F&B.Cu *.Mask)
28 | (options (clearance outline) (anchor circle))
29 | (primitives
30 | ) (tstamp 92399634-588a-4a34-a6b7-6bf22d6036fe))
31 | (pad "A1" smd rect (at -3.27 -2.595) (size 0.6 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 4ea3f578-cc32-42bd-9f92-d6f1be6342fe))
32 | (pad "A4" smd rect (at -2.47 -2.595) (size 0.6 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp eea23257-f99b-4c1e-aa72-2a2acd507d19))
33 | (pad "A5" smd rect (at -1.27 -2.595) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp b1c36337-3c79-44df-be62-633a214d200e))
34 | (pad "A6" smd rect (at -0.27 -2.595) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 0f7d456d-601d-43ec-97de-e08b107d4d1f))
35 | (pad "A7" smd rect (at 0.23 -2.595) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp eee38f62-427b-41f3-b162-428b49d3f3f5))
36 | (pad "A8" smd rect (at 1.23 -2.595) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp c5472ea7-1494-40a1-8a68-b760cc6f05c5))
37 | (pad "A9" smd rect (at 2.43 -2.595) (size 0.6 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 6b289042-aa2c-4840-818d-909497a6fe42))
38 | (pad "A12" smd rect (at 3.23 -2.595) (size 0.6 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp af7f7113-06ce-4fc9-9291-1bc193e8f9ff))
39 | (pad "B5" smd rect (at 1.73 -2.595) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp c847b6ba-e594-4c25-8b02-f857c63d33f1))
40 | (pad "B6" smd rect (at 0.73 -2.595) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 572903c4-90a2-459b-8ab7-e302d1af2099))
41 | (pad "B7" smd rect (at -0.77 -2.595) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 95733fc8-c849-4d87-b196-8ed331c1f9b9))
42 | (pad "B8" smd rect (at -1.77 -2.595) (size 0.3 1.45) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 2467190e-2e90-4510-bf82-fe2aa4410574))
43 | )
44 |
--------------------------------------------------------------------------------
/Hardware/Version 10r1/uSMU_v10_BOM.csv:
--------------------------------------------------------------------------------
1 | Item,Qty,Reference(s),Value,Manufacturer,Mfr. Part number
2 | 1,19,"C1, C5, C8, C9, C10, C11, C13, C15, C17, C18, C19, C20, C22, C23, C24, C33, C35, C37, C38",1uF,Samsung Electro-Mechanics,CL10B105KA8NNNC
3 | 2,5,"C2, C7, C16, C28, C29, C36",0.1uF,Samsung Electro-Mechanics,CL10B104KB8NNNC
4 | 3,6,"C3, C14, C25, C40, C41, C43",10nF,Samsung Electro-Mechanics,CL10B103KB8NNNC
5 | 4,5,"C4, C6, C12, C27, C30",10uF,Samsung Electro-Mechanics,CL21A106KAYNNNE
6 | 5,1,C21,200pF,Samsung Electro-Mechanics,CL10C201JB8NNNC
7 | 6,2,"C26, C32",22uF,Samsung Electro-Mechanics,CL21A226MAQNNNE
8 | 7,2,"C31, C34",2pF,Samsung Electro-Mechanics,CL10C020BB8NNNC
9 | 8,2,"C42, C44",1nF,Samsung Electro-Mechanics,CL10B102KB8NNNC
10 | 9,1,"D1, D2, D3, D4",Status LED,EKINGLUX,E6C0606RGBC3UDA
11 | 10,2,"D5, D6",B5819W,Microdiode Electronics,B5819W
12 | 11,1,J1,SWD,Amphenol ICC,20021121-00010C4LF
13 | 12,1,J2,USB_C_Receptacle_USB2.0,Korean Hroparts Electronics,TYPE-C-31-M-12
14 | 13,1,J3,DUT,TE Connectivity,1-1634624-0
15 | 14,2,"L1, L2",4.7uH,Taiyo Yuden,CBC3225T4R7MR
16 | 15,1,Q1,AO3401A,BORN,AO3401A
17 | 16,15,"R1, R2, R9, R11, R12, R17, R18, R20, R21, R22, R24, R26, R29, R32, R39",10k,Panasonic,ERJPB3D1002V
18 | 17,7,"R3, R4, R5, R7, R23, R25, R28",1k,Panasonic,ERJ3RBD1001V
19 | 18,2,"R6, R16",5.1k,Panasonic,ERJ3EKF5101V
20 | 19,8,"R8, R10, R13, R15, R19, R27, R30, R31",100k,Panasonic,ERJPB3D1003V
21 | 20,2,"R14, R36",330k,Panasonic,ERJ3EKF3303V
22 | 21,3,"R33, R34, R35",47k,Panasonic,ERJPA3F4702V
23 | 22,5,"R37, R38, R42, R43, R44",100,Panasonic,ERJ3EKF1000V
24 | 23,1,R40,50,Panasonic,ERA3AEB49R9V
25 | 24,1,R41,10,Panasonic,ERJUP3D10R0V
26 | 25,1,U1,ADS1115IDGS,Texas Instruments,ADS1115IDGSR
27 | 26,3,"U2, U7, U9",GS8331,Gainsil,GS8331-TR
28 | 27,1,U3,STM32F072C8Ux,ST Microelectronics,STM32F072CBU6
29 | 28,1,U4,TS321,ST Microelectronics,TS321AILT
30 | 29,1,U5,USBLC6-2SC6,ST Microelectronics,USBLC6-2SC6
31 | 30,1,U6,ME6212C33M5G,Microne,ME6212C33M5G
32 | 31,1,U8,MCP1501T-40E_CHY,Microchip,MCP1501T-40E/CHY
33 | 32,1,U10,LT1970,Analog Devices,LT1970CFE#PBF
34 | 33,1,U11,DAC8571IDGKR,Texas Instruments,DAC8571IDGKR
35 | 34,1,U12,TPS65131RGET,Texas Instruments,TPS65131RGET
36 | 35,1,U13,H7650-45PR,Shanghai Siproin Microelectronics,H7650-45PR
37 | 36,1,U14,PGA281,Texas Instruments,PGA281AIPWR
38 |
--------------------------------------------------------------------------------
/Hardware/Version 10r1/uSMU_v10_schematic.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/Hardware/Version 10r1/uSMU_v10_schematic.pdf
--------------------------------------------------------------------------------
/Hardware/Version 5/Gerber files/uSMU_v05-B_Mask.gbr:
--------------------------------------------------------------------------------
1 | %TF.GenerationSoftware,KiCad,Pcbnew,(5.99.0-7424-ge38b34a4eb)*%
2 | %TF.CreationDate,2020-12-20T18:04:03+03:00*%
3 | %TF.ProjectId,uSMU_v05,75534d55-5f76-4303-952e-6b696361645f,rev?*%
4 | %TF.SameCoordinates,Original*%
5 | %TF.FileFunction,Soldermask,Bot*%
6 | %TF.FilePolarity,Negative*%
7 | %FSLAX46Y46*%
8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
9 | G04 Created by KiCad (PCBNEW (5.99.0-7424-ge38b34a4eb)) date 2020-12-20 18:04:03*
10 | %MOMM*%
11 | %LPD*%
12 | G01*
13 | G04 APERTURE LIST*
14 | %ADD10C,0.100000*%
15 | %ADD11C,1.524000*%
16 | %ADD12O,2.500000X1.600000*%
17 | %ADD13O,7.000000X3.500000*%
18 | %ADD14C,0.800000*%
19 | %ADD15C,6.400000*%
20 | %ADD16O,2.100000X1.100000*%
21 | %ADD17O,2.600000X1.100000*%
22 | G04 APERTURE END LIST*
23 | D10*
24 | X145000000Y-123500000D02*
25 | X133000000Y-123500000D01*
26 | X133000000Y-123500000D02*
27 | X133000000Y-120000000D01*
28 | X133000000Y-120000000D02*
29 | X145000000Y-120000000D01*
30 | X145000000Y-120000000D02*
31 | X145000000Y-123500000D01*
32 | G36*
33 | X145000000Y-123500000D02*
34 | G01*
35 | X133000000Y-123500000D01*
36 | X133000000Y-120000000D01*
37 | X145000000Y-120000000D01*
38 | X145000000Y-123500000D01*
39 | G37*
40 | X145000000Y-123500000D02*
41 | X133000000Y-123500000D01*
42 | X133000000Y-120000000D01*
43 | X145000000Y-120000000D01*
44 | X145000000Y-123500000D01*
45 | D11*
46 | %TO.C,U3*%
47 | X115400000Y-141000000D03*
48 | X130640000Y-141000000D03*
49 | X130640000Y-133380000D03*
50 | X128100000Y-133380000D03*
51 | X123020000Y-133380000D03*
52 | X115400000Y-133380000D03*
53 | %TD*%
54 | D12*
55 | %TO.C,J1*%
56 | X157000000Y-121500000D03*
57 | D13*
58 | X162080000Y-116420000D03*
59 | D12*
60 | X157000000Y-118960000D03*
61 | D13*
62 | X162080000Y-126580000D03*
63 | %TD*%
64 | D14*
65 | %TO.C,H1*%
66 | X166000000Y-136600000D03*
67 | X167697056Y-140697056D03*
68 | X168400000Y-139000000D03*
69 | X164302944Y-140697056D03*
70 | D15*
71 | X166000000Y-139000000D03*
72 | D14*
73 | X164302944Y-137302944D03*
74 | X163600000Y-139000000D03*
75 | X166000000Y-141400000D03*
76 | X167697056Y-137302944D03*
77 | %TD*%
78 | %TO.C,H4*%
79 | X104000000Y-106400000D03*
80 | X101600000Y-104000000D03*
81 | X105697056Y-105697056D03*
82 | X106400000Y-104000000D03*
83 | X102302944Y-105697056D03*
84 | X104000000Y-101600000D03*
85 | X105697056Y-102302944D03*
86 | D15*
87 | X104000000Y-104000000D03*
88 | D14*
89 | X102302944Y-102302944D03*
90 | %TD*%
91 | D16*
92 | %TO.C,J2*%
93 | X107390000Y-125820000D03*
94 | D17*
95 | X102030000Y-125820000D03*
96 | X102030000Y-117180000D03*
97 | D16*
98 | X107390000Y-117180000D03*
99 | %TD*%
100 | D14*
101 | %TO.C,H3*%
102 | X164302944Y-105697056D03*
103 | X164302944Y-102302944D03*
104 | X168400000Y-104000000D03*
105 | X167697056Y-102302944D03*
106 | X166000000Y-106400000D03*
107 | D15*
108 | X166000000Y-104000000D03*
109 | D14*
110 | X166000000Y-101600000D03*
111 | X163600000Y-104000000D03*
112 | X167697056Y-105697056D03*
113 | %TD*%
114 | %TO.C,H2*%
115 | X106400000Y-139000000D03*
116 | X104000000Y-141400000D03*
117 | X105697056Y-140697056D03*
118 | X102302944Y-140697056D03*
119 | X104000000Y-136600000D03*
120 | X105697056Y-137302944D03*
121 | X101600000Y-139000000D03*
122 | X102302944Y-137302944D03*
123 | D15*
124 | X104000000Y-139000000D03*
125 | %TD*%
126 | M02*
127 |
--------------------------------------------------------------------------------
/Hardware/Version 5/Gerber files/uSMU_v05-B_Paste.gbr:
--------------------------------------------------------------------------------
1 | %TF.GenerationSoftware,KiCad,Pcbnew,(5.99.0-7424-ge38b34a4eb)*%
2 | %TF.CreationDate,2020-12-20T18:04:03+03:00*%
3 | %TF.ProjectId,uSMU_v05,75534d55-5f76-4303-952e-6b696361645f,rev?*%
4 | %TF.SameCoordinates,Original*%
5 | %TF.FileFunction,Paste,Bot*%
6 | %TF.FilePolarity,Positive*%
7 | %FSLAX46Y46*%
8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
9 | G04 Created by KiCad (PCBNEW (5.99.0-7424-ge38b34a4eb)) date 2020-12-20 18:04:03*
10 | %MOMM*%
11 | %LPD*%
12 | G01*
13 | G04 APERTURE LIST*
14 | G04 APERTURE END LIST*
15 | M02*
16 |
--------------------------------------------------------------------------------
/Hardware/Version 5/Gerber files/uSMU_v05-Edge_Cuts.gbr:
--------------------------------------------------------------------------------
1 | %TF.GenerationSoftware,KiCad,Pcbnew,(5.99.0-7424-ge38b34a4eb)*%
2 | %TF.CreationDate,2020-12-20T18:04:03+03:00*%
3 | %TF.ProjectId,uSMU_v05,75534d55-5f76-4303-952e-6b696361645f,rev?*%
4 | %TF.SameCoordinates,Original*%
5 | %TF.FileFunction,Profile,NP*%
6 | %FSLAX46Y46*%
7 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
8 | G04 Created by KiCad (PCBNEW (5.99.0-7424-ge38b34a4eb)) date 2020-12-20 18:04:03*
9 | %MOMM*%
10 | %LPD*%
11 | G01*
12 | G04 APERTURE LIST*
13 | %TA.AperFunction,Profile*%
14 | %ADD10C,0.100000*%
15 | %TD*%
16 | G04 APERTURE END LIST*
17 | D10*
18 | X104000000Y-143000000D02*
19 | G75*
20 | G02*
21 | X100000000Y-139000000I0J4000000D01*
22 | G01*
23 | X166000000Y-143000000D02*
24 | X104000000Y-143000000D01*
25 | X100000000Y-139000000D02*
26 | X100000000Y-104000000D01*
27 | X166000000Y-100000000D02*
28 | G75*
29 | G02*
30 | X170000000Y-104000000I0J-4000000D01*
31 | G01*
32 | X170000000Y-104000000D02*
33 | X170000000Y-139000000D01*
34 | X104000000Y-100000000D02*
35 | X166000000Y-100000000D01*
36 | X100000000Y-104000000D02*
37 | G75*
38 | G02*
39 | X104000000Y-100000000I4000000J0D01*
40 | G01*
41 | X170000000Y-139000000D02*
42 | G75*
43 | G02*
44 | X166000000Y-143000000I-4000000J0D01*
45 | G01*
46 | M02*
47 |
--------------------------------------------------------------------------------
/Hardware/Version 5/Gerber files/uSMU_v05-NPTH.drl:
--------------------------------------------------------------------------------
1 | M48
2 | ; DRILL file {KiCad (5.99.0-7424-ge38b34a4eb)} date 12/20/20 18:04:00
3 | ; FORMAT={-:-/ absolute / inch / decimal}
4 | ; #@! TF.CreationDate,2020-12-20T18:04:00+03:00
5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(5.99.0-7424-ge38b34a4eb)
6 | ; #@! TF.FileFunction,NonPlated,1,4,NPTH
7 | FMAT,2
8 | INCH
9 | %
10 | G90
11 | G05
12 | T0
13 | M30
14 |
--------------------------------------------------------------------------------
/Hardware/Version 5/Gerber files/uSMU_v05-PTH.drl:
--------------------------------------------------------------------------------
1 | M48
2 | ; DRILL file {KiCad (5.99.0-7424-ge38b34a4eb)} date 12/20/20 18:04:00
3 | ; FORMAT={-:-/ absolute / inch / decimal}
4 | ; #@! TF.CreationDate,2020-12-20T18:04:00+03:00
5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(5.99.0-7424-ge38b34a4eb)
6 | ; #@! TF.FileFunction,Plated,1,4,PTH
7 | FMAT,2
8 | INCH
9 | T1C0.0118
10 | T2C0.0157
11 | T3C0.0197
12 | T4C0.0236
13 | T5C0.0300
14 | T6C0.0350
15 | T7C0.0791
16 | T8C0.1260
17 | %
18 | G90
19 | G05
20 | T1
21 | X4.0315Y-4.5669
22 | X4.0709Y-5.0945
23 | X4.0945Y-4.4724
24 | X4.1181Y-5.0709
25 | X4.1417Y-4.7874
26 | X4.1496Y-5.0315
27 | X4.252Y-4.5354
28 | X4.2756Y-4.7795
29 | X4.2756Y-4.8189
30 | X4.2913Y-4.5669
31 | X4.2913Y-4.622
32 | X4.3081Y-5.0
33 | X4.3091Y-4.7008
34 | X4.3159Y-4.4419
35 | X4.3327Y-4.9764
36 | X4.3386Y-4.4803
37 | X4.3573Y-4.9528
38 | X4.3583Y-4.6831
39 | X4.3701Y-4.6457
40 | X4.378Y-4.4882
41 | X4.4016Y-4.6063
42 | X4.4016Y-4.7116
43 | X4.4016Y-5.0
44 | X4.5039Y-5.0472
45 | X4.5354Y-5.0709
46 | X4.6594Y-5.0571
47 | X4.6929Y-4.6929
48 | X4.7185Y-4.8583
49 | X5.315Y-4.5591
50 | X5.409Y-4.2753
51 | X5.5669Y-4.4173
52 | T2
53 | X4.0079Y-5.0787
54 | X4.1024Y-4.6693
55 | X4.1024Y-4.7165
56 | X4.1024Y-4.8425
57 | X4.1024Y-4.8898
58 | X4.1496Y-4.6693
59 | X4.1496Y-4.7165
60 | X4.1496Y-4.8425
61 | X4.1496Y-4.8898
62 | X4.1575Y-4.9449
63 | X4.1575Y-5.2598
64 | X4.1969Y-4.5276
65 | X4.2205Y-5.1575
66 | X4.2751Y-5.3652
67 | X4.2751Y-5.4439
68 | X4.2751Y-5.5069
69 | X4.2751Y-5.5699
70 | X4.2874Y-4.6614
71 | X4.2913Y-5.2598
72 | X4.3228Y-4.0472
73 | X4.3622Y-4.7362
74 | X4.3701Y-4.2992
75 | X4.4213Y-4.2953
76 | X4.4331Y-4.0
77 | X4.4331Y-5.1339
78 | X4.4803Y-4.8031
79 | X4.4803Y-4.9134
80 | X4.4882Y-4.122
81 | X4.4882Y-4.2992
82 | X4.5591Y-4.2992
83 | X4.5669Y-5.1024
84 | X4.5984Y-4.8031
85 | X4.5984Y-4.9134
86 | X4.6299Y-5.1575
87 | X4.6496Y-4.1339
88 | X4.6535Y-4.685
89 | X4.685Y-5.0079
90 | X4.6969Y-4.5709
91 | X4.7087Y-5.189
92 | X4.7165Y-4.3543
93 | X4.7244Y-4.1299
94 | X4.7352Y-4.9606
95 | X4.7638Y-5.4488
96 | X4.7717Y-4.9055
97 | X4.7717Y-4.7362
98 | X4.7874Y-4.315
99 | X4.7953Y-4.685
100 | X4.8189Y-4.2756
101 | X4.8317Y-4.6142
102 | X4.8425Y-5.189
103 | X4.8661Y-4.0079
104 | X4.8898Y-4.3622
105 | X4.8937Y-4.7638
106 | X4.9331Y-4.9567
107 | X4.9528Y-5.0394
108 | X4.9921Y-5.4252
109 | X5.0Y-4.4724
110 | X5.0Y-4.622
111 | X5.0Y-5.189
112 | X5.0236Y-4.748
113 | X5.0463Y-4.9498
114 | X5.0551Y-4.4882
115 | X5.0984Y-5.189
116 | X5.1285Y-5.0354
117 | X5.1339Y-5.126
118 | X5.1811Y-4.2087
119 | X5.1811Y-4.4961
120 | X5.1969Y-4.9449
121 | X5.2244Y-4.878
122 | X5.2283Y-5.3858
123 | X5.2441Y-5.1339
124 | X5.2677Y-4.4646
125 | X5.2992Y-4.9567
126 | X5.3022Y-4.7953
127 | X5.315Y-5.5827
128 | X5.3307Y-4.3071
129 | X5.3386Y-4.0079
130 | X5.378Y-4.9449
131 | X5.3858Y-4.4882
132 | X5.3858Y-4.5591
133 | X5.4331Y-4.9606
134 | X5.4488Y-4.4409
135 | X5.4488Y-4.4882
136 | X5.4537Y-4.6063
137 | X5.4646Y-5.3071
138 | X5.4646Y-5.4488
139 | X5.4709Y-4.5246
140 | X5.4882Y-5.0787
141 | X5.5039Y-4.1811
142 | X5.5039Y-5.2283
143 | X5.5039Y-5.3622
144 | X5.5039Y-5.5118
145 | X5.5354Y-4.5433
146 | X5.5354Y-4.9606
147 | X5.5512Y-5.1102
148 | X5.5591Y-4.6348
149 | X5.5669Y-4.1181
150 | X5.5669Y-5.1811
151 | X5.6102Y-4.7244
152 | X5.6102Y-4.8031
153 | X5.6102Y-4.8819
154 | X5.6102Y-4.9606
155 | X5.6142Y-4.1732
156 | X5.6142Y-5.0945
157 | X5.622Y-4.4016
158 | X5.628Y-5.2185
159 | X5.6318Y-5.0593
160 | X5.6693Y-4.6457
161 | X5.6693Y-4.7244
162 | X5.6693Y-4.8031
163 | X5.6693Y-4.8819
164 | X5.6772Y-5.1102
165 | X5.6772Y-5.5827
166 | X5.7126Y-4.5315
167 | X5.7244Y-5.4488
168 | X5.7244Y-5.5118
169 | X5.7323Y-5.1811
170 | X5.7402Y-4.4882
171 | X5.7402Y-4.6063
172 | X5.748Y-4.8583
173 | X5.8189Y-4.3228
174 | X5.8268Y-4.2598
175 | X5.8346Y-4.2205
176 | X5.8425Y-5.1496
177 | X5.874Y-4.1732
178 | X5.8819Y-4.1181
179 | X5.9685Y-5.3307
180 | X5.9764Y-4.7795
181 | X5.9764Y-5.2913
182 | X5.9843Y-4.685
183 | X5.9843Y-4.9134
184 | X6.0315Y-4.1102
185 | X6.0394Y-5.0866
186 | X6.0472Y-5.3858
187 | X6.063Y-4.2913
188 | X6.0709Y-4.0079
189 | X6.0738Y-5.0551
190 | X6.0787Y-4.4016
191 | X6.1102Y-5.4331
192 | X6.1201Y-4.4488
193 | X6.126Y-5.5276
194 | X6.1732Y-5.2756
195 | X6.1811Y-4.9921
196 | X6.252Y-4.3937
197 | X6.3701Y-5.1496
198 | X6.5827Y-5.2303
199 | X6.5906Y-4.3012
200 | T3
201 | X4.0Y-4.0945
202 | X4.0Y-5.4724
203 | X4.0277Y-4.0277
204 | X4.0277Y-4.1613
205 | X4.0277Y-5.4056
206 | X4.0277Y-5.5393
207 | X4.0945Y-4.0
208 | X4.0945Y-4.189
209 | X4.0945Y-5.378
210 | X4.0945Y-5.5669
211 | X4.1613Y-4.0277
212 | X4.1613Y-4.1613
213 | X4.1613Y-5.4056
214 | X4.1613Y-5.5393
215 | X4.189Y-4.0945
216 | X4.189Y-5.4724
217 | X6.4409Y-4.0945
218 | X6.4409Y-5.4724
219 | X6.4686Y-4.0277
220 | X6.4686Y-4.1613
221 | X6.4686Y-5.4056
222 | X6.4686Y-5.5393
223 | X6.5354Y-4.0
224 | X6.5354Y-4.189
225 | X6.5354Y-5.378
226 | X6.5354Y-5.5669
227 | X6.6022Y-4.0277
228 | X6.6022Y-4.1613
229 | X6.6022Y-5.4056
230 | X6.6022Y-5.5393
231 | X6.6299Y-4.0945
232 | X6.6299Y-5.4724
233 | T5
234 | X4.5433Y-5.2512
235 | X4.5433Y-5.5512
236 | X4.8433Y-5.2512
237 | X5.0433Y-5.2512
238 | X5.1433Y-5.2512
239 | X5.1433Y-5.5512
240 | T6
241 | X6.1811Y-4.6835
242 | X6.1811Y-4.7835
243 | T7
244 | X6.3811Y-4.5835
245 | X6.3811Y-4.9835
246 | T8
247 | X4.0945Y-4.0945
248 | X4.0945Y-5.4724
249 | X6.5354Y-4.0945
250 | X6.5354Y-5.4724
251 | T4
252 | G00X4.0465Y-4.6134
253 | M15
254 | G01X3.9874Y-4.6134
255 | M16
256 | G05
257 | G00X4.0465Y-4.9535
258 | M15
259 | G01X3.9874Y-4.9535
260 | M16
261 | G05
262 | G00X4.2476Y-4.6134
263 | M15
264 | G01X4.2083Y-4.6134
265 | M16
266 | G05
267 | G00X4.2476Y-4.9535
268 | M15
269 | G01X4.2083Y-4.9535
270 | M16
271 | G05
272 | T0
273 | M30
274 |
--------------------------------------------------------------------------------
/Hardware/Version 5/Gerber files/uSMU_v05-job.gbrjob:
--------------------------------------------------------------------------------
1 | {
2 | "Header": {
3 | "GenerationSoftware": {
4 | "Vendor": "KiCad",
5 | "Application": "Pcbnew",
6 | "Version": "(5.99.0-7424-ge38b34a4eb)"
7 | },
8 | "CreationDate": "2020-12-20T18:04:03+03:00"
9 | },
10 | "GeneralSpecs": {
11 | "ProjectId": {
12 | "Name": "uSMU_v05",
13 | "GUID": "75534d55-5f76-4303-952e-6b696361645f",
14 | "Revision": "rev?"
15 | },
16 | "Size": {
17 | "X": 70.1,
18 | "Y": 43.1
19 | },
20 | "LayerNumber": 4,
21 | "BoardThickness": 1.6,
22 | "Finish": "None"
23 | },
24 | "DesignRules": [
25 | {
26 | "Layers": "Outer",
27 | "PadToPad": 0.0,
28 | "PadToTrack": 0.0,
29 | "TrackToTrack": 0.2,
30 | "MinLineWidth": 0.25,
31 | "TrackToRegion": 0.5,
32 | "RegionToRegion": 0.5
33 | },
34 | {
35 | "Layers": "Inner",
36 | "PadToPad": 0.0,
37 | "PadToTrack": 0.0,
38 | "TrackToTrack": 0.2,
39 | "MinLineWidth": 0.5,
40 | "TrackToRegion": 0.5,
41 | "RegionToRegion": 0.5
42 | }
43 | ],
44 | "FilesAttributes": [
45 | {
46 | "Path": "uSMU_v05-F_Cu.gbr",
47 | "FileFunction": "Copper,L1,Top",
48 | "FilePolarity": "Positive"
49 | },
50 | {
51 | "Path": "uSMU_v05-Ground.gbr",
52 | "FileFunction": "Copper,L2,Inr",
53 | "FilePolarity": "Positive"
54 | },
55 | {
56 | "Path": "uSMU_v05-Power.gbr",
57 | "FileFunction": "Copper,L3,Inr",
58 | "FilePolarity": "Positive"
59 | },
60 | {
61 | "Path": "uSMU_v05-B_Cu.gbr",
62 | "FileFunction": "Copper,L4,Bot",
63 | "FilePolarity": "Positive"
64 | },
65 | {
66 | "Path": "uSMU_v05-F_Paste.gbr",
67 | "FileFunction": "SolderPaste,Top",
68 | "FilePolarity": "Positive"
69 | },
70 | {
71 | "Path": "uSMU_v05-B_Paste.gbr",
72 | "FileFunction": "SolderPaste,Bot",
73 | "FilePolarity": "Positive"
74 | },
75 | {
76 | "Path": "uSMU_v05-F_Silkscreen.gbr",
77 | "FileFunction": "Legend,Top",
78 | "FilePolarity": "Positive"
79 | },
80 | {
81 | "Path": "uSMU_v05-B_Silkscreen.gbr",
82 | "FileFunction": "Legend,Bot",
83 | "FilePolarity": "Positive"
84 | },
85 | {
86 | "Path": "uSMU_v05-F_Mask.gbr",
87 | "FileFunction": "SolderMask,Top",
88 | "FilePolarity": "Negative"
89 | },
90 | {
91 | "Path": "uSMU_v05-B_Mask.gbr",
92 | "FileFunction": "SolderMask,Bot",
93 | "FilePolarity": "Negative"
94 | },
95 | {
96 | "Path": "uSMU_v05-Edge_Cuts.gbr",
97 | "FileFunction": "Profile",
98 | "FilePolarity": "Positive"
99 | }
100 | ],
101 | "MaterialStackup": [
102 | {
103 | "Type": "Legend",
104 | "Name": "Top Silk Screen"
105 | },
106 | {
107 | "Type": "SolderPaste",
108 | "Name": "Top Solder Paste"
109 | },
110 | {
111 | "Type": "SolderMask",
112 | "Color": "Green",
113 | "Thickness": 0.01,
114 | "Name": "Top Solder Mask"
115 | },
116 | {
117 | "Type": "Copper",
118 | "Thickness": 0.035,
119 | "Name": "F.Cu"
120 | },
121 | {
122 | "Type": "Dielectric",
123 | "Thickness": 0.48,
124 | "Material": "FR4",
125 | "Name": "F.Cu/Ground",
126 | "Notes": "Type: dielectric layer 1 (from F.Cu to Ground)"
127 | },
128 | {
129 | "Type": "Copper",
130 | "Thickness": 0.035,
131 | "Name": "Ground"
132 | },
133 | {
134 | "Type": "Dielectric",
135 | "Thickness": 0.48,
136 | "Material": "FR4",
137 | "Name": "Ground/Power",
138 | "Notes": "Type: dielectric layer 2 (from Ground to Power)"
139 | },
140 | {
141 | "Type": "Copper",
142 | "Thickness": 0.035,
143 | "Name": "Power"
144 | },
145 | {
146 | "Type": "Dielectric",
147 | "Thickness": 0.48,
148 | "Material": "FR4",
149 | "Name": "Power/B.Cu",
150 | "Notes": "Type: dielectric layer 3 (from Power to B.Cu)"
151 | },
152 | {
153 | "Type": "Copper",
154 | "Thickness": 0.035,
155 | "Name": "B.Cu"
156 | },
157 | {
158 | "Type": "SolderMask",
159 | "Color": "Green",
160 | "Thickness": 0.01,
161 | "Name": "Bottom Solder Mask"
162 | },
163 | {
164 | "Type": "SolderPaste",
165 | "Name": "Bottom Solder Paste"
166 | },
167 | {
168 | "Type": "Legend",
169 | "Name": "Bottom Silk Screen"
170 | }
171 | ]
172 | }
173 |
--------------------------------------------------------------------------------
/Hardware/Version 5/fp-lib-table:
--------------------------------------------------------------------------------
1 | (fp_lib_table
2 | (lib (name "uSMU_v05")(type "KiCad")(uri "${KIPRJMOD}/uSMU_v05.pretty")(options "")(descr ""))
3 | )
4 |
--------------------------------------------------------------------------------
/Hardware/Version 5/sym-lib-table:
--------------------------------------------------------------------------------
1 | (sym_lib_table
2 | (lib (name "uSMU_v05")(type "KiCad")(uri "${KIPRJMOD}/uSMU_v05.kicad_sym")(options "")(descr ""))
3 | )
4 |
--------------------------------------------------------------------------------
/Hardware/Version 5/uSMU_v05.kicad_prl:
--------------------------------------------------------------------------------
1 | {
2 | "board": {
3 | "active_layer": 0,
4 | "active_layer_preset": "All Layers",
5 | "hidden_nets": [],
6 | "high_contrast_mode": 0,
7 | "net_color_mode": 1,
8 | "opacity": {
9 | "pads": 1.0,
10 | "tracks": 1.0,
11 | "vias": 1.0,
12 | "zones": 0.6
13 | },
14 | "ratsnest_display_mode": 0,
15 | "selection_filter": {
16 | "dimensions": true,
17 | "footprints": true,
18 | "graphics": true,
19 | "keepouts": true,
20 | "lockedItems": true,
21 | "otherItems": true,
22 | "pads": true,
23 | "text": true,
24 | "tracks": true,
25 | "vias": true,
26 | "zones": true
27 | },
28 | "visible_items": [
29 | 0,
30 | 1,
31 | 2,
32 | 3,
33 | 4,
34 | 5,
35 | 6,
36 | 8,
37 | 9,
38 | 10,
39 | 11,
40 | 12,
41 | 13,
42 | 14,
43 | 15,
44 | 16,
45 | 17,
46 | 18,
47 | 19,
48 | 20,
49 | 21,
50 | 22,
51 | 23,
52 | 24,
53 | 27,
54 | 28,
55 | 29,
56 | 30,
57 | 31,
58 | 32,
59 | 33,
60 | 37,
61 | 38
62 | ],
63 | "visible_layers": "fffffff_ffffffff"
64 | },
65 | "meta": {
66 | "filename": "uSMU_v05.kicad_prl",
67 | "version": 2
68 | },
69 | "project": {
70 | "files": []
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/Hardware/Version 5/uSMU_v05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/Hardware/Version 5/uSMU_v05.png
--------------------------------------------------------------------------------
/Hardware/Version 5/uSMU_v05.pretty/CUI_PDM2-S5-D7-D.kicad_mod:
--------------------------------------------------------------------------------
1 | (module "CUI_PDM2-S5-D7-D" (layer F.Cu) (tedit 5F6A2D06)
2 | (fp_text reference "REF**" (at 0 -17.78 unlocked) (layer F.SilkS)
3 | (effects (font (size 1 1) (thickness 0.15)))
4 | (tstamp e119a10d-659f-46c7-ab73-49a12aded04a)
5 | )
6 | (fp_text value "CUI_PDM2-S5-D7-D" (at 0 -16.28 unlocked) (layer F.Fab)
7 | (effects (font (size 1 1) (thickness 0.15)))
8 | (tstamp e334ce1b-d9a9-485c-b62b-38d8f3090776)
9 | )
10 | (fp_text user "${REF}" (at 0 -14.78 unlocked) (layer F.Fab)
11 | (effects (font (size 1 1) (thickness 0.15)))
12 | (tstamp caa97a82-45fb-4e5a-9cff-2a910addc950)
13 | )
14 | (fp_rect (start -2.54 -8.89) (end 17.78 1.27) (layer F.SilkS) (width 0.12) (tstamp a822036f-b2d5-4f6d-b690-c0c58ea31d5e))
15 | (fp_rect (start -2.54 -8.89) (end 17.78 1.27) (layer F.Fab) (width 0.1) (tstamp fdf78f31-aef7-4fe3-8890-bbf1f38cd121))
16 | (pad "1" thru_hole circle (at 0 0) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask) (tstamp 628bbb15-aa83-4585-b8d7-081895399006))
17 | (pad "7" thru_hole circle (at 15.24 0) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask) (tstamp e9d1676a-f0c4-4795-bc6f-6c90fa9ce090))
18 | (pad "8" thru_hole circle (at 15.24 -7.62) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask) (tstamp ab9d23e4-edfb-4686-a66f-6c33b39a4187))
19 | (pad "9" thru_hole circle (at 12.7 -7.62) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask) (tstamp c1398771-86e9-41eb-9a53-7da4bfb8f924))
20 | (pad "11" thru_hole circle (at 7.62 -7.62) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask) (tstamp aebe06a2-1f1d-484d-8bff-0dfe1bd84c19))
21 | (pad "14" thru_hole circle (at 0 -7.62) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask) (tstamp 5e8366c1-8304-4055-a734-aa9aa81d05e3))
22 | )
23 |
--------------------------------------------------------------------------------
/Hardware/Version 5/uSMU_v05.pretty/E6C0606RGBC3UDA.kicad_mod:
--------------------------------------------------------------------------------
1 | (module "E6C0606RGBC3UDA" (layer F.Cu) (tedit 5FB0D1FB)
2 | (fp_text reference "REF**" (at 0 -9.5 unlocked) (layer F.SilkS)
3 | (effects (font (size 1 1) (thickness 0.15)))
4 | (tstamp ad8b0931-8e91-4f14-ae4e-041bf4ccff28)
5 | )
6 | (fp_text value "E6C0606RGBC3UDA" (at 0 -8 unlocked) (layer F.Fab)
7 | (effects (font (size 1 1) (thickness 0.15)))
8 | (tstamp 32fe31a5-3427-4934-a0a8-bf5d97c80eb6)
9 | )
10 | (fp_text user "${REF}" (at 0 -6.5 unlocked) (layer F.Fab)
11 | (effects (font (size 1 1) (thickness 0.15)))
12 | (tstamp 7387e9d7-79d9-4b52-a12d-5ec3d4d372d7)
13 | )
14 | (fp_line (start 1.340974 -0.1) (end 1.140974 -0.2) (layer F.SilkS) (width 0.12) (tstamp 1e6d0167-fe23-45e0-b2dd-1ea11cc001c2))
15 | (fp_line (start 1.140974 -0.2) (end 1.140974 0.2) (layer F.SilkS) (width 0.12) (tstamp 49ea66ae-6aa9-4800-a35d-5db1cf3648f3))
16 | (fp_line (start 1.140974 0.2) (end 1.340974 0.1) (layer F.SilkS) (width 0.12) (tstamp 759b16fd-8898-46d4-9f2e-0f465fe71b6d))
17 | (fp_line (start 1.340974 0.1) (end 1.340974 -0.1) (layer F.SilkS) (width 0.12) (tstamp f981c09a-bb58-46af-b553-f06efc43962c))
18 | (fp_rect (start -1.2 -1) (end 1.2 1) (layer F.CrtYd) (width 0.05) (tstamp 086faad4-3383-49ed-90ce-2d511a5ab31e))
19 | (pad "1" smd rect (at -0.7 -0.5) (size 0.6 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp ca31671c-f4ce-4b88-9be4-d04e87ac1901))
20 | (pad "2" smd rect (at 0.7 -0.5) (size 0.6 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 64ff7f0d-d980-43d4-8ca0-ad8cce368e52))
21 | (pad "3" smd rect (at -0.7 0.5) (size 0.6 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp db8351e3-1846-40cd-aa2a-2f56cd9153f7))
22 | (pad "4" smd rect (at 0.7 0.5) (size 0.6 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 9b04a22c-86bd-49ae-a60f-ed66c7d149a0))
23 | )
24 |
--------------------------------------------------------------------------------
/Hardware/Version 5/uSMU_v05.pretty/Linear_FE_TSSOP20.kicad_mod:
--------------------------------------------------------------------------------
1 | (module "Linear_FE_TSSOP20" (layer F.Cu) (tedit 5F4D1EFE)
2 | (attr smd)
3 | (fp_text reference "REF**" (at -4.65 0 90) (layer F.SilkS)
4 | (effects (font (size 1 1) (thickness 0.15)))
5 | (tstamp 6d0e3b2c-a84b-439d-b0e2-cfe45ee17300)
6 | )
7 | (fp_text value "Linear_FE_TSSOP20" (at 0 0) (layer F.Fab)
8 | (effects (font (size 1 1) (thickness 0.15)))
9 | (tstamp 542c2acf-59a5-4dad-ae43-d7e43583f69b)
10 | )
11 | (fp_line (start -2.85 3.775) (end -3.65 2.975) (layer F.SilkS) (width 0.12) (tstamp 5cbc7fa0-149a-4245-a449-41aabaa46ef3))
12 | (fp_line (start -3.65 -3.775) (end 3.65 -3.775) (layer F.SilkS) (width 0.12) (tstamp 9e06bc57-d0fe-42fc-92e4-e22d91eeca11))
13 | (fp_line (start 3.65 3.775) (end -2.85 3.775) (layer F.SilkS) (width 0.12) (tstamp 9ee34376-84e2-421d-a1aa-1b3d19d65e39))
14 | (fp_line (start -3.65 2.975) (end -3.65 -3.775) (layer F.SilkS) (width 0.12) (tstamp a8ae386e-bb59-48da-aa5b-eb27db77de72))
15 | (fp_line (start 3.65 -3.775) (end 3.65 3.775) (layer F.SilkS) (width 0.12) (tstamp b4e8ae93-7ac9-45de-9dca-9cd71728abf3))
16 | (fp_line (start 3.4 -3.53) (end 3.4 3.53) (layer F.CrtYd) (width 0.05) (tstamp 313e7104-72dc-41ae-bf58-4625181577da))
17 | (fp_line (start -3.4 -3.53) (end 3.4 -3.53) (layer F.CrtYd) (width 0.05) (tstamp 4e4c1cae-80df-4c56-83a9-1fc313cc4a04))
18 | (fp_line (start 3.4 3.53) (end -3.4 3.53) (layer F.CrtYd) (width 0.05) (tstamp b0cc9dfa-27e8-4784-8af9-bb60b711fa3e))
19 | (fp_line (start -3.4 3.53) (end -3.4 -3.53) (layer F.CrtYd) (width 0.05) (tstamp f68db39c-920f-435b-a3ab-a25d132e08e4))
20 | (pad "1" smd rect (at -2.925 2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp d6b81ead-e51b-43ed-9a97-36b1d0aa3de5))
21 | (pad "2" smd rect (at -2.275 2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 8b2642b0-3de1-40c1-aeee-75a28613e3e9))
22 | (pad "3" smd rect (at -1.625 2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 1a22523d-abc5-43e8-a12b-e41af5fe7ab0))
23 | (pad "4" smd rect (at -0.975 2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp b2fcff3e-e1af-4b61-85ee-227b69da9a1d))
24 | (pad "5" smd rect (at -0.325 2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp a770cf3b-abef-48f7-89c1-c7e6adcd42d1))
25 | (pad "6" smd rect (at 0.325 2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 3000a9b5-8609-4118-b505-34c09d5f59c2))
26 | (pad "7" smd rect (at 0.975 2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 6fc4c97e-2142-4ed3-a728-0074922c3162))
27 | (pad "8" smd rect (at 1.625 2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 39b2b0fd-59b6-4d78-a130-a3fa88ea2659))
28 | (pad "9" smd rect (at 2.275 2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp c71544e5-e23c-4aeb-9dc9-e2625d356796))
29 | (pad "10" smd rect (at 2.925 2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 2408f5dc-43c6-4887-9eaf-89c55c72f717))
30 | (pad "11" smd rect (at 2.925 -2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 3d5b17e8-134f-430e-bb4f-207219178c7c))
31 | (pad "12" smd rect (at 2.275 -2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp db449199-168f-4c47-86d2-11178110f747))
32 | (pad "13" smd rect (at 1.625 -2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 2a8fb4b6-af4c-42ae-acd4-214ad8b004da))
33 | (pad "14" smd rect (at 0.975 -2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 6e44249c-9d49-45e1-881d-2998d40c7c09))
34 | (pad "15" smd rect (at 0.325 -2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp b52762d9-eee1-451b-81c3-4f54a49452c4))
35 | (pad "16" smd rect (at -0.325 -2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 77de9cc7-ec8a-4479-91d6-a2724d817769))
36 | (pad "17" smd rect (at -0.975 -2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 14885bd5-ae07-469d-965f-447ae344b24f))
37 | (pad "18" smd rect (at -1.625 -2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 93331423-81a3-4bf2-8c32-82f1991895a0))
38 | (pad "19" smd rect (at -2.275 -2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 06b5d544-6658-4a59-b366-83f07242a874))
39 | (pad "20" smd rect (at -2.925 -2.75) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 14b89712-04cd-454e-a986-02c8a0cccaa3))
40 | (pad "21" smd rect (at 0 0) (size 6 2.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 657b4809-e118-458a-a765-0e75994f47e8))
41 | )
42 |
--------------------------------------------------------------------------------
/Hardware/Version 5/uSMU_v05.pretty/Molex_105450-0101.kicad_mod:
--------------------------------------------------------------------------------
1 | (module "Molex_105450-0101" (layer F.Cu) (tedit 5F9E4A05)
2 | (fp_text reference "REF**" (at 2.525 -6.35 unlocked) (layer F.SilkS)
3 | (effects (font (size 1 1) (thickness 0.15)))
4 | (tstamp f9833159-8541-4e3f-ad67-ddad5b8e5caf)
5 | )
6 | (fp_text value "Molex_105450-0101" (at 2.525 -4.85 unlocked) (layer F.Fab)
7 | (effects (font (size 1 1) (thickness 0.15)))
8 | (tstamp 56287274-1c6d-4cb2-86c3-694499a316ac)
9 | )
10 | (fp_text user "${REF}" (at 2.525 -3.35 unlocked) (layer F.Fab)
11 | (effects (font (size 1 1) (thickness 0.15)))
12 | (tstamp 746813e2-321e-4d6e-bf6c-83c89629c0d4)
13 | )
14 | (fp_line (start 7.575 2.85) (end 7.57358 0.425) (layer F.SilkS) (width 0.05) (tstamp 8ce1c4f4-aab0-4d4e-9310-825bb99bb6c1))
15 | (fp_line (start -1.37642 6.425333) (end 7.57358 6.425333) (layer Eco1.User) (width 0.05) (tstamp 3d9cd9b2-25b3-4a82-8077-7cb9ec554a74))
16 | (fp_rect (start -1.975 -2.15) (end 8.175 6.425) (layer F.CrtYd) (width 0.05) (tstamp cb5a4c2a-dda1-4c27-88bf-f128a8a10184))
17 | (pad "A1" smd rect (at 0.1 -1.24) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp cfa6eadc-48f7-4e66-92c5-40f1190df0e4))
18 | (pad "A2" smd rect (at 0.6 -1.24) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp ce30559a-3770-4248-acb6-c3582d17b3e6))
19 | (pad "A3" smd rect (at 1.1 -1.24) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp e35f0ccc-e0a5-46d8-953e-7d3a05389cfc))
20 | (pad "A4" smd rect (at 1.6 -1.24) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 27546b27-d82e-4f57-8c19-02c13a719134))
21 | (pad "A5" smd rect (at 2.1 -1.24) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp f52c18c4-02df-42fa-a9cf-eb6c12808fbf))
22 | (pad "A6" smd rect (at 2.6 -1.24) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 1018d488-e374-4487-bdee-a5b72a20af5e))
23 | (pad "A7" smd rect (at 3.6 -1.24) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp a565458e-ec43-4e43-904a-e1c79cbc385e))
24 | (pad "A8" smd rect (at 4.1 -1.24) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 86120c77-466d-4f9c-b57f-93693db57b15))
25 | (pad "A9" smd rect (at 4.6 -1.24) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 64834d6f-b65b-443a-b3b7-475c14479dc2))
26 | (pad "A10" smd rect (at 5.1 -1.24) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 0499c59c-f8d9-4542-8d48-6a3ad7c1102e))
27 | (pad "A11" smd rect (at 5.6 -1.24) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp f1e24d22-098a-460a-9ad5-a0f30d58cbb6))
28 | (pad "A12" smd rect (at 6.1 -1.24) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 39ecef09-0297-4804-8200-d9dc00f3ab05))
29 | (pad "B1" smd rect (at 6.2 0) (size 1 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp c8a54ba3-17c0-4433-bae9-13cae1c81f78))
30 | (pad "B2" smd rect (at 5.35 0) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 2d8002a4-66c5-427b-a06f-73b26ce78af8))
31 | (pad "B3" smd rect (at 4.85 0) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp c710060e-0b65-448d-860a-ecb4b7709886))
32 | (pad "B4" smd rect (at 4.35 0) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 77a37315-cf79-4cf0-a9ca-2a0e1c4aaf2a))
33 | (pad "B5" smd rect (at 3.85 0) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 16133732-86af-41a3-9a1a-95e8572d4051))
34 | (pad "B6" smd rect (at 3.35 0) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 60c977bc-00b1-4bdb-8bad-b75a63c806f8))
35 | (pad "B7" smd rect (at 2.85 0) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 0244ea4b-80e2-4d34-84fc-76d813f0f97d))
36 | (pad "B8" smd rect (at 2.35 0) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 1fc20832-9916-4ebc-b286-d790d25afafa))
37 | (pad "B9" smd rect (at 1.85 0) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp ed0b0464-0611-45e0-bfa9-b72dc816ff4c))
38 | (pad "B10" smd rect (at 1.35 0) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp bf61c51c-5901-4049-9804-dc0ba78d53f1))
39 | (pad "B11" smd rect (at 0.85 0) (size 0.3 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 28ae0d11-2db8-4da0-ac8b-fbb0afd55a93))
40 | (pad "B12" smd rect (at 0 0) (size 1 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 9a878a0b-f801-4372-b811-eec7df705934))
41 | (pad "S1" thru_hole oval (at -1.22 -0.89) (size 1.1 2.1) (drill oval 0.6 1.6) (layers *.Cu *.Mask) (tstamp 0748fb46-113b-43ed-b931-e64903cc4ac4))
42 | (pad "S1" thru_hole oval (at 7.42 4.47) (size 1.1 2.6) (drill oval 0.6 2.1) (layers *.Cu *.Mask) (tstamp 5aa18240-f72f-4892-a33b-a4b625d3e83e))
43 | (pad "S1" thru_hole oval (at -1.22 4.47) (size 1.1 2.6) (drill oval 0.6 2.1) (layers *.Cu *.Mask) (tstamp 6be05a5a-87d8-466c-a337-949435653f3c))
44 | (pad "S1" thru_hole oval (at 7.42 -0.89) (size 1.1 2.1) (drill oval 0.6 1.6) (layers *.Cu *.Mask) (tstamp 8031474d-64a1-4413-83ac-a6a1e859acd6))
45 | (zone (net 0) (net_name "") (layers "F.Cu" "In1.Cu" "In2.Cu" "In3.Cu" "In4.Cu" "In5.Cu" "In6.Cu" "In7.Cu" "In8.Cu" "In9.Cu" "In10.Cu" "In11.Cu" "In12.Cu" "In13.Cu" "In14.Cu" "In15.Cu" "In16.Cu" "In17.Cu" "In18.Cu" "In19.Cu" "In20.Cu" "In21.Cu" "In22.Cu" "In23.Cu" "In24.Cu" "In25.Cu" "In26.Cu" "In27.Cu" "In28.Cu" "In29.Cu" "In30.Cu") (tstamp df512996-1b44-45d6-974e-3c4001c82787) (hatch edge 0.508)
46 | (connect_pads (clearance 0.508))
47 | (min_thickness 0.254)
48 | (keepout (tracks not_allowed) (vias not_allowed) (pads not_allowed ) (copperpour not_allowed) (footprints allowed))
49 | (fill (thermal_gap 0.508) (thermal_bridge_width 0.508))
50 | (polygon
51 | (pts
52 | (xy 6.574046 6.252645)
53 | (xy -0.425954 6.252645)
54 | (xy -0.425954 0.602645)
55 | (xy 6.574046 0.602645)
56 | )
57 | )
58 | )
59 | )
60 |
--------------------------------------------------------------------------------
/Hardware/Version 5/uSMU_v05.pretty/SOIC-20.kicad_mod:
--------------------------------------------------------------------------------
1 | (module "SOIC-20" (layer F.Cu) (tedit 0)
2 | (attr smd)
3 | (fp_text reference "REF**" (at -4.65 0 90) (layer F.SilkS)
4 | (effects (font (size 1 1) (thickness 0.15)))
5 | (tstamp 90860e07-1d24-406c-9d2f-1ce2b6dd574b)
6 | )
7 | (fp_text value "SOIC-20" (at 0 0) (layer F.Fab)
8 | (effects (font (size 1 1) (thickness 0.15)))
9 | (tstamp 14c3a3a1-6000-4c9c-aed2-fbfb5e07f47c)
10 | )
11 | (fp_line (start -3.65 -3.275) (end 3.65 -3.275) (layer F.SilkS) (width 0.12) (tstamp 011761dc-daa5-4a84-a071-6104f2e56a35))
12 | (fp_line (start 3.65 3.275) (end -2.85 3.275) (layer F.SilkS) (width 0.12) (tstamp 088dad5b-d142-43c6-a40c-d77c2e665d80))
13 | (fp_line (start -3.65 2.475) (end -3.65 -3.275) (layer F.SilkS) (width 0.12) (tstamp 95ae8970-57eb-4b8f-82b4-f0c4674ad546))
14 | (fp_line (start -2.85 3.275) (end -3.65 2.475) (layer F.SilkS) (width 0.12) (tstamp c5a0e14e-db1f-47e9-b03a-70338a97b551))
15 | (fp_line (start 3.65 -3.275) (end 3.65 3.275) (layer F.SilkS) (width 0.12) (tstamp edd028d7-72b9-42cc-bb0c-3e4c69a0dcb2))
16 | (fp_line (start 3.4 3.03) (end -3.4 3.03) (layer F.CrtYd) (width 0.05) (tstamp 1824f8b8-0d55-48a1-a990-1424d5e92377))
17 | (fp_line (start 3.4 -3.03) (end 3.4 3.03) (layer F.CrtYd) (width 0.05) (tstamp 3c6fd851-daff-4921-8305-2524deddcf01))
18 | (fp_line (start -3.4 -3.03) (end 3.4 -3.03) (layer F.CrtYd) (width 0.05) (tstamp c31801fe-dcf7-4c93-823d-d16458e6f87c))
19 | (fp_line (start -3.4 3.03) (end -3.4 -3.03) (layer F.CrtYd) (width 0.05) (tstamp fdfab4ff-8cc3-4b4f-9418-69ef926e2eb6))
20 | (pad "1" smd rect (at -2.925 2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 28324564-faaf-40d1-889e-44a8dd81a642))
21 | (pad "2" smd rect (at -2.275 2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 5ee82372-aaa7-49da-ac68-43c3d395ad6b))
22 | (pad "3" smd rect (at -1.625 2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 42a07f2a-7c46-4316-a100-7cd6f1d6fa54))
23 | (pad "4" smd rect (at -0.975 2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 66d1b564-df53-40fb-8f02-0c083a4b80f1))
24 | (pad "5" smd rect (at -0.325 2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 9277cc25-87bf-4b59-930b-d768a6b22406))
25 | (pad "6" smd rect (at 0.325 2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 006f3489-9d6f-495f-8934-b130a647aa14))
26 | (pad "7" smd rect (at 0.975 2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp c49104be-5cf9-4a47-bb8e-df7b85a7651b))
27 | (pad "8" smd rect (at 1.625 2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 9f5c6c7e-0426-4f96-a385-76dca7f09def))
28 | (pad "9" smd rect (at 2.275 2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 7a4931b8-8f43-431d-a353-be3581828de7))
29 | (pad "10" smd rect (at 2.925 2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp e353caa5-68a7-48bb-a575-96529445cf15))
30 | (pad "11" smd rect (at 2.925 -2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 7ef4d2ea-d3fd-4d3f-b8b1-d7f6a1d1003f))
31 | (pad "12" smd rect (at 2.275 -2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 69dd4a3d-af90-41e6-88ea-9c16afc6430d))
32 | (pad "13" smd rect (at 1.625 -2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 82425b17-9325-4fff-b01b-a5ad0bc70a91))
33 | (pad "14" smd rect (at 0.975 -2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp f5e63ffe-7749-4732-9e84-2a623e5571ff))
34 | (pad "15" smd rect (at 0.325 -2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 261fa679-6b83-4daa-adb2-a890c39a15fe))
35 | (pad "16" smd rect (at -0.325 -2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 888bb588-4289-4cdd-b547-1abf13a2eac1))
36 | (pad "17" smd rect (at -0.975 -2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp ca61c1ce-cbd2-4427-b40a-3c60d5d182f2))
37 | (pad "18" smd rect (at -1.625 -2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 2c8a812d-493b-4a1c-9de0-9ba2a9c376d9))
38 | (pad "19" smd rect (at -2.275 -2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp b6bd96c1-6b4b-4b5c-a838-b4339c64333b))
39 | (pad "20" smd rect (at -2.925 -2.25) (size 0.45 1.05) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp be4f1d22-16ca-4cf2-8eb3-d4fee3bb6fab))
40 | )
41 |
--------------------------------------------------------------------------------
/Hardware/Version 5/uSMU_v05_schematic.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/Hardware/Version 5/uSMU_v05_schematic.pdf
--------------------------------------------------------------------------------
/usmu_tracer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joeltroughton/uSMU/51ece4f96c4998d568ea8d883581df1624eadf7e/usmu_tracer.png
--------------------------------------------------------------------------------