mirror of
https://github.com/eddyem/stm32samples.git
synced 2026-02-28 03:44:30 +03:00
add/change README files, remove double of Canon management
This commit is contained in:
@@ -3,24 +3,31 @@ Samples for STM32F042-nucleo and chinese STM32F030-based devboard
|
||||
|
||||
This directory contains examples for F0 without any library
|
||||
|
||||
- blink - simple LED blink
|
||||
- canbus - CAN bus on STM32F042C6T6
|
||||
- CANbus_stepper - stepper motor management over CAN-bus, USB and RS-485
|
||||
- Chiller - chiller controller
|
||||
- F0_testbrd - sample code for STM32F0x2 checking via test board
|
||||
- htu21d_nucleo - operaing with HTU-21D in STM32F042-nucleo
|
||||
- morze - for STM32F030, echo data from USART1 on TIM3CH1 (PA6) as Morze code
|
||||
- pl2303 - CDC template (emulation of PL2303)
|
||||
- QuadEncoder - sample code for working with quadrature encoder (via timer)
|
||||
- Servo - simple servo (like SG-90) controller
|
||||
- Snippets - some small code snippets
|
||||
- Socket_fans - fan manager
|
||||
- TM1637 - work with 7-segment LED indicators based on TM1637
|
||||
- tsys01_nucleo - read two TSYS01 sensors using STM32F042
|
||||
- uart - USART over DMA with hardware end-of-string detection
|
||||
- uart_blink - code for STM32F030F4, echo data on USART1 and blink LEDS on PA4 and PA5
|
||||
- uart_blink_dma - USART over DMA
|
||||
- uart_nucleo - USART over DMA for STM32F042-nucleo
|
||||
- usbcan - USB<>CAN bridge using PL2303 emulation
|
||||
- USBHID - USB HID keyboard + mouse
|
||||
- USB_pl2303_snippet - full minimal snippet of PL2303 emulation for STM32F072xB
|
||||
- **3steppersLB** - control independent moving of 3 stepper motors with encoders (by USB and CAN bus)
|
||||
- **blink** - simple LED blink
|
||||
- **canbus** - simplest CAN bus development board
|
||||
- **CANbus4BTA** - (under development) device to replace old PEP-CAN @BTA
|
||||
- **CANBUS_SSI** - work with BTA SSI azimutal encoder
|
||||
- **CANbus_stepper** - (under development) stepper motor management over CAN-bus, USB and RS-485
|
||||
- **Chiller** - simplest chiller controller
|
||||
- **F0_testbrd** - sample code for STM32F0x2 checking via test board
|
||||
- **htu21d_nucleo** - operaing with HTU-21D in STM32F042-nucleo
|
||||
- **inc** - all encludes need
|
||||
- **morze** - for STM32F030, echo data from USART1 on TIM3CH1 (PA6) as Morze code
|
||||
- **NUCLEO_SPI** - tests of SSI over SPI
|
||||
- **pl2303** - CDC template (emulation of PL2303) (*deprecated*)
|
||||
- **PL2303_ringbuffer** - emulation of PL2303 with ring buffers on USB Rx/Tx (USE THIS instead of `pl2303`!!!)
|
||||
- **QuadEncoder** - sample code for working with quadrature encoder (via timer)
|
||||
- **Servo** - simple servo (like SG-90) controller
|
||||
- **Snippets** - some small code snippets
|
||||
- **Socket_fans** - fan manager
|
||||
- **TM1637** - work with 7-segment LED indicators based on TM1637
|
||||
- **tsys01_nucleo** - read two TSYS01 sensors using STM32F042
|
||||
- **uart_blink** - code for STM32F030F4, echo data on USART1 and blink LEDS on PA4 and PA5
|
||||
- **uart_blink_dma** - USART over DMA
|
||||
- **uart_nucleo** - USART over DMA for STM32F042-nucleo
|
||||
- **usbcan** - USB--CAN adapter using PL2303 emulation (*deprecated*)
|
||||
- **usbcan_relay** - relay and some other management board over CAN bus
|
||||
- **usbcan_ringbuffer** - USB--CAN adapter (USE THIS instead of `usbcan`!!!)
|
||||
- **USBHID** - USB HID keyboard + mouse
|
||||
- **USB_pl2303_snippet** - full minimal snippet of PL2303 emulation for STM32F072xB (*deprecated*)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"board": {
|
||||
"active_layer": 0,
|
||||
"active_layer_preset": "",
|
||||
"active_layer_preset": "All Layers",
|
||||
"auto_track_width": true,
|
||||
"hidden_nets": [],
|
||||
"high_contrast_mode": 0,
|
||||
|
||||
@@ -2,25 +2,135 @@
|
||||
"board": {
|
||||
"design_settings": {
|
||||
"defaults": {
|
||||
"board_outline_line_width": 0.1,
|
||||
"copper_line_width": 0.2,
|
||||
"board_outline_line_width": 0.15,
|
||||
"copper_line_width": 0.19999999999999998,
|
||||
"copper_text_italic": false,
|
||||
"copper_text_size_h": 1.5,
|
||||
"copper_text_size_v": 1.5,
|
||||
"copper_text_thickness": 0.3,
|
||||
"other_line_width": 0.15,
|
||||
"copper_text_upright": false,
|
||||
"courtyard_line_width": 0.049999999999999996,
|
||||
"dimension_precision": 4,
|
||||
"dimension_units": 3,
|
||||
"dimensions": {
|
||||
"arrow_length": 1270000,
|
||||
"extension_offset": 500000,
|
||||
"keep_text_aligned": true,
|
||||
"suppress_zeroes": false,
|
||||
"text_position": 0,
|
||||
"units_format": 1
|
||||
},
|
||||
"fab_line_width": 0.09999999999999999,
|
||||
"fab_text_italic": false,
|
||||
"fab_text_size_h": 1.0,
|
||||
"fab_text_size_v": 1.0,
|
||||
"fab_text_thickness": 0.15,
|
||||
"fab_text_upright": false,
|
||||
"other_line_width": 0.09999999999999999,
|
||||
"other_text_italic": false,
|
||||
"other_text_size_h": 1.0,
|
||||
"other_text_size_v": 1.0,
|
||||
"other_text_thickness": 0.15,
|
||||
"other_text_upright": false,
|
||||
"pads": {
|
||||
"drill": 0.8,
|
||||
"height": 1.5,
|
||||
"width": 1.5
|
||||
},
|
||||
"silk_line_width": 0.15,
|
||||
"silk_text_italic": false,
|
||||
"silk_text_size_h": 1.0,
|
||||
"silk_text_size_v": 1.0,
|
||||
"silk_text_thickness": 0.15
|
||||
"silk_text_thickness": 0.15,
|
||||
"silk_text_upright": false,
|
||||
"zones": {
|
||||
"45_degree_only": true,
|
||||
"min_clearance": 0.5
|
||||
}
|
||||
},
|
||||
"diff_pair_dimensions": [],
|
||||
"drc_exclusions": [],
|
||||
"rules": {
|
||||
"solder_mask_clearance": 0.0,
|
||||
"solder_mask_min_width": 0.0
|
||||
"meta": {
|
||||
"filename": "board_design_settings.json",
|
||||
"version": 2
|
||||
},
|
||||
"track_widths": [],
|
||||
"via_dimensions": []
|
||||
"rule_severities": {
|
||||
"annular_width": "error",
|
||||
"clearance": "error",
|
||||
"copper_edge_clearance": "error",
|
||||
"courtyards_overlap": "error",
|
||||
"diff_pair_gap_out_of_range": "error",
|
||||
"diff_pair_uncoupled_length_too_long": "error",
|
||||
"drill_out_of_range": "error",
|
||||
"duplicate_footprints": "warning",
|
||||
"extra_footprint": "warning",
|
||||
"footprint_type_mismatch": "error",
|
||||
"hole_clearance": "error",
|
||||
"hole_near_hole": "error",
|
||||
"invalid_outline": "error",
|
||||
"item_on_disabled_layer": "error",
|
||||
"items_not_allowed": "error",
|
||||
"length_out_of_range": "error",
|
||||
"malformed_courtyard": "error",
|
||||
"microvia_drill_out_of_range": "error",
|
||||
"missing_courtyard": "ignore",
|
||||
"missing_footprint": "warning",
|
||||
"net_conflict": "warning",
|
||||
"npth_inside_courtyard": "ignore",
|
||||
"padstack": "error",
|
||||
"pth_inside_courtyard": "ignore",
|
||||
"shorting_items": "error",
|
||||
"silk_over_copper": "warning",
|
||||
"silk_overlap": "warning",
|
||||
"skew_out_of_range": "error",
|
||||
"through_hole_pad_without_hole": "error",
|
||||
"too_many_vias": "error",
|
||||
"track_dangling": "warning",
|
||||
"track_width": "error",
|
||||
"tracks_crossing": "error",
|
||||
"unconnected_items": "error",
|
||||
"unresolved_variable": "error",
|
||||
"via_dangling": "warning",
|
||||
"zone_has_empty_net": "error",
|
||||
"zones_intersect": "error"
|
||||
},
|
||||
"rules": {
|
||||
"allow_blind_buried_vias": false,
|
||||
"allow_microvias": false,
|
||||
"max_error": 0.005,
|
||||
"min_clearance": 0.0,
|
||||
"min_copper_edge_clearance": 0.075,
|
||||
"min_hole_clearance": 0.25,
|
||||
"min_hole_to_hole": 0.25,
|
||||
"min_microvia_diameter": 0.19999999999999998,
|
||||
"min_microvia_drill": 0.09999999999999999,
|
||||
"min_silk_clearance": 0.0,
|
||||
"min_through_hole_diameter": 0.6,
|
||||
"min_track_width": 0.19999999999999998,
|
||||
"min_via_annular_width": 0.049999999999999996,
|
||||
"min_via_diameter": 0.7999999999999999,
|
||||
"use_height_for_length_calcs": true
|
||||
},
|
||||
"track_widths": [
|
||||
0.0,
|
||||
0.2,
|
||||
0.3,
|
||||
0.5,
|
||||
1.0,
|
||||
2.0
|
||||
],
|
||||
"via_dimensions": [
|
||||
{
|
||||
"diameter": 0.0,
|
||||
"drill": 0.0
|
||||
},
|
||||
{
|
||||
"diameter": 1.5,
|
||||
"drill": 0.8
|
||||
}
|
||||
],
|
||||
"zones_allow_external_fillets": false,
|
||||
"zones_use_no_outline": true
|
||||
},
|
||||
"layer_presets": []
|
||||
},
|
||||
@@ -255,9 +365,47 @@
|
||||
"name": "Default",
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.25,
|
||||
"via_diameter": 0.8,
|
||||
"via_drill": 0.4,
|
||||
"track_width": 0.2,
|
||||
"via_diameter": 1.5,
|
||||
"via_drill": 0.8,
|
||||
"wire_width": 6.0
|
||||
},
|
||||
{
|
||||
"bus_width": 12.0,
|
||||
"clearance": 0.3,
|
||||
"diff_pair_gap": 0.25,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.2,
|
||||
"line_style": 0,
|
||||
"microvia_diameter": 0.3,
|
||||
"microvia_drill": 0.1,
|
||||
"name": "0.5",
|
||||
"nets": [
|
||||
"/12Vin"
|
||||
],
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.5,
|
||||
"via_diameter": 1.5,
|
||||
"via_drill": 0.8,
|
||||
"wire_width": 6.0
|
||||
},
|
||||
{
|
||||
"bus_width": 12.0,
|
||||
"clearance": 0.5,
|
||||
"diff_pair_gap": 0.25,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.2,
|
||||
"line_style": 0,
|
||||
"microvia_diameter": 0.3,
|
||||
"microvia_drill": 0.1,
|
||||
"name": "1",
|
||||
"nets": [],
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 1.0,
|
||||
"via_diameter": 1.5,
|
||||
"via_drill": 0.8,
|
||||
"wire_width": 6.0
|
||||
}
|
||||
],
|
||||
@@ -315,6 +463,11 @@
|
||||
"subpart_first_id": 65,
|
||||
"subpart_id_separator": 0
|
||||
},
|
||||
"sheets": [],
|
||||
"sheets": [
|
||||
[
|
||||
"ec67a79a-cdcf-4e5f-9b39-dc7bf296266e",
|
||||
""
|
||||
]
|
||||
],
|
||||
"text_variables": {}
|
||||
}
|
||||
|
||||
5671
F0:F030,F042,F072/canbus/kicad/stm32.kicad_sch
Normal file
5671
F0:F030,F042,F072/canbus/kicad/stm32.kicad_sch
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,30 +0,0 @@
|
||||
update=Пт 10 апр 2020 13:30:22
|
||||
version=1
|
||||
last_client=kicad
|
||||
[pcbnew]
|
||||
version=1
|
||||
LastNetListRead=
|
||||
UseCmpFile=1
|
||||
PadDrill=0.600000000000
|
||||
PadDrillOvalY=0.600000000000
|
||||
PadSizeH=1.500000000000
|
||||
PadSizeV=1.500000000000
|
||||
PcbTextSizeV=1.500000000000
|
||||
PcbTextSizeH=1.500000000000
|
||||
PcbTextThickness=0.300000000000
|
||||
ModuleTextSizeV=1.000000000000
|
||||
ModuleTextSizeH=1.000000000000
|
||||
ModuleTextSizeThickness=0.150000000000
|
||||
SolderMaskClearance=0.000000000000
|
||||
SolderMaskMinWidth=0.000000000000
|
||||
DrawSegmentWidth=0.200000000000
|
||||
BoardOutlineThickness=0.100000000000
|
||||
ModuleOutlineThickness=0.150000000000
|
||||
[cvpcb]
|
||||
version=1
|
||||
NetIExt=net
|
||||
[general]
|
||||
version=1
|
||||
[eeschema]
|
||||
version=1
|
||||
LibDir=
|
||||
File diff suppressed because it is too large
Load Diff
96
F0:F030,F042,F072/openocd.cfg
Normal file
96
F0:F030,F042,F072/openocd.cfg
Normal file
@@ -0,0 +1,96 @@
|
||||
# script for stm32f0x family
|
||||
|
||||
#
|
||||
# stm32 devices support SWD transports only.
|
||||
#
|
||||
source [find interface/stlink-v2-1.cfg]
|
||||
source [find target/swj-dp.tcl]
|
||||
source [find mem_helper.tcl]
|
||||
|
||||
if { [info exists CHIPNAME] } {
|
||||
set _CHIPNAME $CHIPNAME
|
||||
} else {
|
||||
set _CHIPNAME stm32f0x
|
||||
}
|
||||
|
||||
set _ENDIAN little
|
||||
|
||||
# Work-area is a space in RAM used for flash programming
|
||||
# By default use 4kB
|
||||
if { [info exists WORKAREASIZE] } {
|
||||
set _WORKAREASIZE $WORKAREASIZE
|
||||
} else {
|
||||
set _WORKAREASIZE 0x1000
|
||||
}
|
||||
|
||||
# Allow overriding the Flash bank size
|
||||
if { [info exists FLASH_SIZE] } {
|
||||
set _FLASH_SIZE $FLASH_SIZE
|
||||
} else {
|
||||
# autodetect size
|
||||
set _FLASH_SIZE 0
|
||||
}
|
||||
|
||||
#jtag scan chain
|
||||
if { [info exists CPUTAPID] } {
|
||||
set _CPUTAPID $CPUTAPID
|
||||
} else {
|
||||
# See STM Document RM0091
|
||||
# Section 29.5.3
|
||||
set _CPUTAPID 0x0bb11477
|
||||
}
|
||||
|
||||
swj_newdap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
|
||||
dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu
|
||||
|
||||
set _TARGETNAME $_CHIPNAME.cpu
|
||||
target create $_TARGETNAME cortex_m -endian $_ENDIAN -dap $_CHIPNAME.dap
|
||||
|
||||
$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0
|
||||
|
||||
# flash size will be probed
|
||||
set _FLASHNAME $_CHIPNAME.flash
|
||||
flash bank $_FLASHNAME stm32f1x 0x08000000 $_FLASH_SIZE 0 0 $_TARGETNAME
|
||||
|
||||
# adapter speed should be <= F_CPU/6. F_CPU after reset is 8MHz, so use F_JTAG = 1MHz
|
||||
adapter speed 1000
|
||||
|
||||
adapter srst delay 100
|
||||
|
||||
reset_config srst_nogate
|
||||
|
||||
if {![using_hla]} {
|
||||
# if srst is not fitted use SYSRESETREQ to
|
||||
# perform a soft reset
|
||||
cortex_m reset_config sysresetreq
|
||||
}
|
||||
|
||||
proc stm32f0x_default_reset_start {} {
|
||||
# Reset clock is HSI (8 MHz)
|
||||
adapter speed 1000
|
||||
}
|
||||
|
||||
proc stm32f0x_default_examine_end {} {
|
||||
# Enable debug during low power modes (uses more power)
|
||||
mmw 0x40015804 0x00000006 0 ;# DBGMCU_CR |= DBG_STANDBY | DBG_STOP
|
||||
|
||||
# Stop watchdog counters during halt
|
||||
mmw 0x40015808 0x00001800 0 ;# DBGMCU_APB1_FZ |= DBG_IWDG_STOP | DBG_WWDG_STOP
|
||||
}
|
||||
|
||||
proc stm32f0x_default_reset_init {} {
|
||||
# Configure PLL to boost clock to HSI x 6 (48 MHz)
|
||||
mww 0x40021004 0x00100000 ;# RCC_CFGR = PLLMUL[2]
|
||||
mmw 0x40021000 0x01000000 0 ;# RCC_CR[31:16] |= PLLON
|
||||
mww 0x40022000 0x00000011 ;# FLASH_ACR = PRFTBE | LATENCY[0]
|
||||
sleep 10 ;# Wait for PLL to lock
|
||||
mmw 0x40021004 0x00000002 0 ;# RCC_CFGR |= SW[1]
|
||||
|
||||
# Boost JTAG frequency
|
||||
adapter speed 8000
|
||||
}
|
||||
|
||||
# Default hooks
|
||||
$_TARGETNAME configure -event examine-end { stm32f0x_default_examine_end }
|
||||
$_TARGETNAME configure -event reset-start { stm32f0x_default_reset_start }
|
||||
$_TARGETNAME configure -event reset-init { stm32f0x_default_reset_init }
|
||||
Reference in New Issue
Block a user