1234
This commit is contained in:
parent
97e8718ef8
commit
e394a4d293
BIN
Hardware/DisplayBoard/MotorcycleMonitor.zip
Normal file
BIN
Hardware/DisplayBoard/MotorcycleMonitor.zip
Normal file
Binary file not shown.
316
Hardware/DisplayBoard/MotorcycleMonitoring-cache.lib
Normal file
316
Hardware/DisplayBoard/MotorcycleMonitoring-cache.lib
Normal file
@ -0,0 +1,316 @@
|
||||
EESchema-LIBRARY Version 2.4
|
||||
#encoding utf-8
|
||||
#
|
||||
# Connector_Generic_Conn_01x02
|
||||
#
|
||||
DEF Connector_Generic_Conn_01x02 J 0 40 Y N 1 F N
|
||||
F0 "J" 0 100 50 H V C CNN
|
||||
F1 "Connector_Generic_Conn_01x02" 0 -200 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
Connector*:*_1x??_*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -50 -95 0 -105 1 1 6 N
|
||||
S -50 5 0 -5 1 1 6 N
|
||||
S -50 50 50 -150 1 1 10 f
|
||||
X Pin_1 1 -200 0 150 R 50 50 1 1 P
|
||||
X Pin_2 2 -200 -100 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Connector_Generic_Conn_01x03
|
||||
#
|
||||
DEF Connector_Generic_Conn_01x03 J 0 40 Y N 1 F N
|
||||
F0 "J" 0 200 50 H V C CNN
|
||||
F1 "Connector_Generic_Conn_01x03" 0 -200 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
Connector*:*_1x??_*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -50 -95 0 -105 1 1 6 N
|
||||
S -50 5 0 -5 1 1 6 N
|
||||
S -50 105 0 95 1 1 6 N
|
||||
S -50 150 50 -150 1 1 10 f
|
||||
X Pin_1 1 -200 100 150 R 50 50 1 1 P
|
||||
X Pin_2 2 -200 0 150 R 50 50 1 1 P
|
||||
X Pin_3 3 -200 -100 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Connector_Generic_Conn_01x04
|
||||
#
|
||||
DEF Connector_Generic_Conn_01x04 J 0 40 Y N 1 F N
|
||||
F0 "J" 0 200 50 H V C CNN
|
||||
F1 "Connector_Generic_Conn_01x04" 0 -300 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
Connector*:*_1x??_*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -50 -195 0 -205 1 1 6 N
|
||||
S -50 -95 0 -105 1 1 6 N
|
||||
S -50 5 0 -5 1 1 6 N
|
||||
S -50 105 0 95 1 1 6 N
|
||||
S -50 150 50 -250 1 1 10 f
|
||||
X Pin_1 1 -200 100 150 R 50 50 1 1 P
|
||||
X Pin_2 2 -200 0 150 R 50 50 1 1 P
|
||||
X Pin_3 3 -200 -100 150 R 50 50 1 1 P
|
||||
X Pin_4 4 -200 -200 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Connector_Generic_Conn_02x07_Odd_Even
|
||||
#
|
||||
DEF Connector_Generic_Conn_02x07_Odd_Even J 0 40 Y N 1 F N
|
||||
F0 "J" 50 400 50 H V C CNN
|
||||
F1 "Connector_Generic_Conn_02x07_Odd_Even" 50 -400 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
Connector*:*_2x??_*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -50 -295 0 -305 1 1 6 N
|
||||
S -50 -195 0 -205 1 1 6 N
|
||||
S -50 -95 0 -105 1 1 6 N
|
||||
S -50 5 0 -5 1 1 6 N
|
||||
S -50 105 0 95 1 1 6 N
|
||||
S -50 205 0 195 1 1 6 N
|
||||
S -50 305 0 295 1 1 6 N
|
||||
S -50 350 150 -350 1 1 10 f
|
||||
S 150 -295 100 -305 1 1 6 N
|
||||
S 150 -195 100 -205 1 1 6 N
|
||||
S 150 -95 100 -105 1 1 6 N
|
||||
S 150 5 100 -5 1 1 6 N
|
||||
S 150 105 100 95 1 1 6 N
|
||||
S 150 205 100 195 1 1 6 N
|
||||
S 150 305 100 295 1 1 6 N
|
||||
X Pin_1 1 -200 300 150 R 50 50 1 1 P
|
||||
X Pin_10 10 300 -100 150 L 50 50 1 1 P
|
||||
X Pin_11 11 -200 -200 150 R 50 50 1 1 P
|
||||
X Pin_12 12 300 -200 150 L 50 50 1 1 P
|
||||
X Pin_13 13 -200 -300 150 R 50 50 1 1 P
|
||||
X Pin_14 14 300 -300 150 L 50 50 1 1 P
|
||||
X Pin_2 2 300 300 150 L 50 50 1 1 P
|
||||
X Pin_3 3 -200 200 150 R 50 50 1 1 P
|
||||
X Pin_4 4 300 200 150 L 50 50 1 1 P
|
||||
X Pin_5 5 -200 100 150 R 50 50 1 1 P
|
||||
X Pin_6 6 300 100 150 L 50 50 1 1 P
|
||||
X Pin_7 7 -200 0 150 R 50 50 1 1 P
|
||||
X Pin_8 8 300 0 150 L 50 50 1 1 P
|
||||
X Pin_9 9 -200 -100 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Device_C
|
||||
#
|
||||
DEF Device_C C 0 10 N Y 1 F N
|
||||
F0 "C" 25 100 50 H V L CNN
|
||||
F1 "Device_C" 25 -100 50 H V L CNN
|
||||
F2 "" 38 -150 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
C_*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
P 2 0 1 20 -80 -30 80 -30 N
|
||||
P 2 0 1 20 -80 30 80 30 N
|
||||
X ~ 1 0 150 110 D 50 50 1 1 P
|
||||
X ~ 2 0 -150 110 U 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Device_D
|
||||
#
|
||||
DEF Device_D D 0 40 N N 1 F N
|
||||
F0 "D" 0 100 50 H V C CNN
|
||||
F1 "Device_D" 0 -100 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
TO-???*
|
||||
*_Diode_*
|
||||
*SingleDiode*
|
||||
D_*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
P 2 0 1 10 -50 50 -50 -50 N
|
||||
P 2 0 1 0 50 0 -50 0 N
|
||||
P 4 0 1 10 50 50 50 -50 -50 0 50 50 N
|
||||
X K 1 -150 0 100 R 50 50 1 1 P
|
||||
X A 2 150 0 100 L 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Device_LED
|
||||
#
|
||||
DEF Device_LED D 0 40 N N 1 F N
|
||||
F0 "D" 0 100 50 H V C CNN
|
||||
F1 "Device_LED" 0 -100 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
LED*
|
||||
LED_SMD:*
|
||||
LED_THT:*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
P 2 0 1 10 -50 -50 -50 50 N
|
||||
P 2 0 1 0 -50 0 50 0 N
|
||||
P 4 0 1 10 50 -50 50 50 -50 0 50 -50 N
|
||||
P 5 0 1 0 -120 -30 -180 -90 -150 -90 -180 -90 -180 -60 N
|
||||
P 5 0 1 0 -70 -30 -130 -90 -100 -90 -130 -90 -130 -60 N
|
||||
X K 1 -150 0 100 R 50 50 1 1 P
|
||||
X A 2 150 0 100 L 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Device_R
|
||||
#
|
||||
DEF Device_R R 0 0 N Y 1 F N
|
||||
F0 "R" 80 0 50 V V C CNN
|
||||
F1 "Device_R" 0 0 50 V V C CNN
|
||||
F2 "" -70 0 50 V I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
R_*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -40 -100 40 100 0 1 10 N
|
||||
X ~ 1 0 150 50 D 50 50 1 1 P
|
||||
X ~ 2 0 -150 50 U 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# MCU_ST_STM32F0_STM32F030C8Tx
|
||||
#
|
||||
DEF MCU_ST_STM32F0_STM32F030C8Tx U 0 20 Y Y 1 F N
|
||||
F0 "U" -500 1550 50 H V L CNN
|
||||
F1 "MCU_ST_STM32F0_STM32F030C8Tx" 300 1550 50 H V L CNN
|
||||
F2 "Package_QFP:LQFP-48_7x7mm_P0.5mm" -500 -1500 50 H I R CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
LQFP*7x7mm*P0.5mm*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -500 -1500 500 1500 0 1 10 f
|
||||
X VDD 1 -100 1600 100 D 50 50 1 1 W
|
||||
X PA0 10 600 100 100 L 50 50 1 1 B
|
||||
X PA1 11 600 0 100 L 50 50 1 1 B
|
||||
X PA2 12 600 -100 100 L 50 50 1 1 B
|
||||
X PA3 13 600 -200 100 L 50 50 1 1 B
|
||||
X PA4 14 600 -300 100 L 50 50 1 1 B
|
||||
X PA5 15 600 -400 100 L 50 50 1 1 B
|
||||
X PA6 16 600 -500 100 L 50 50 1 1 B
|
||||
X PA7 17 600 -600 100 L 50 50 1 1 B
|
||||
X PB0 18 -600 100 100 R 50 50 1 1 B
|
||||
X PB1 19 -600 0 100 R 50 50 1 1 B
|
||||
X PC13 2 -600 500 100 R 50 50 1 1 B
|
||||
X PB2 20 -600 -100 100 R 50 50 1 1 B
|
||||
X PB10 21 -600 -900 100 R 50 50 1 1 B
|
||||
X PB11 22 -600 -1000 100 R 50 50 1 1 B
|
||||
X VSS 23 -100 -1600 100 U 50 50 1 1 W
|
||||
X VDD 24 0 1600 100 D 50 50 1 1 W
|
||||
X PB12 25 -600 -1100 100 R 50 50 1 1 B
|
||||
X PB13 26 -600 -1200 100 R 50 50 1 1 B
|
||||
X PB14 27 -600 -1300 100 R 50 50 1 1 B
|
||||
X PB15 28 -600 -1400 100 R 50 50 1 1 B
|
||||
X PA8 29 600 -700 100 L 50 50 1 1 B
|
||||
X PC14 3 -600 400 100 R 50 50 1 1 B
|
||||
X PA9 30 600 -800 100 L 50 50 1 1 B
|
||||
X PA10 31 600 -900 100 L 50 50 1 1 B
|
||||
X PA11 32 600 -1000 100 L 50 50 1 1 B
|
||||
X PA12 33 600 -1100 100 L 50 50 1 1 B
|
||||
X PA13 34 600 -1200 100 L 50 50 1 1 B
|
||||
X PF6 35 -600 800 100 R 50 50 1 1 B
|
||||
X PF7 36 -600 700 100 R 50 50 1 1 B
|
||||
X PA14 37 600 -1300 100 L 50 50 1 1 B
|
||||
X PA15 38 600 -1400 100 L 50 50 1 1 B
|
||||
X PB3 39 -600 -200 100 R 50 50 1 1 B
|
||||
X PC15 4 -600 300 100 R 50 50 1 1 B
|
||||
X PB4 40 -600 -300 100 R 50 50 1 1 B
|
||||
X PB5 41 -600 -400 100 R 50 50 1 1 B
|
||||
X PB6 42 -600 -500 100 R 50 50 1 1 B
|
||||
X PB7 43 -600 -600 100 R 50 50 1 1 B
|
||||
X BOOT0 44 -600 1200 100 R 50 50 1 1 I
|
||||
X PB8 45 -600 -700 100 R 50 50 1 1 B
|
||||
X PB9 46 -600 -800 100 R 50 50 1 1 B
|
||||
X VSS 47 0 -1600 100 U 50 50 1 1 W
|
||||
X VDD 48 100 1600 100 D 50 50 1 1 W
|
||||
X PF0 5 -600 1000 100 R 50 50 1 1 I
|
||||
X PF1 6 -600 900 100 R 50 50 1 1 I
|
||||
X NRST 7 -600 1400 100 R 50 50 1 1 I
|
||||
X VSSA 8 100 -1600 100 U 50 50 1 1 W
|
||||
X VDDA 9 200 1600 100 D 50 50 1 1 W
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Regulator_Linear_AMS1117-3.3
|
||||
#
|
||||
DEF Regulator_Linear_AMS1117-3.3 U 0 10 Y Y 1 F N
|
||||
F0 "U" -150 125 50 H V C CNN
|
||||
F1 "Regulator_Linear_AMS1117-3.3" 0 125 50 H V L CNN
|
||||
F2 "Package_TO_SOT_SMD:SOT-223-3_TabPin2" 0 200 50 H I C CNN
|
||||
F3 "" 100 -250 50 H I C CNN
|
||||
ALIAS AP1117-18 AP1117-25 AP1117-33 AP1117-50 LD1117S33TR_SOT223 LD1117S12TR_SOT223 LD1117S18TR_SOT223 LD1117S25TR_SOT223 LD1117S50TR_SOT223 NCP1117-12_SOT223 NCP1117-1.5_SOT223 NCP1117-1.8_SOT223 NCP1117-2.0_SOT223 NCP1117-2.5_SOT223 NCP1117-2.85_SOT223 NCP1117-3.3_SOT223 NCP1117-5.0_SOT223 AMS1117-1.5 AMS1117-1.8 AMS1117-2.5 AMS1117-2.85 AMS1117-3.3 AMS1117-5.0
|
||||
$FPLIST
|
||||
SOT?223*TabPin2*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -200 -200 200 75 0 1 10 f
|
||||
X GND 1 0 -300 100 U 50 50 1 1 W
|
||||
X VO 2 300 0 100 L 50 50 1 1 w
|
||||
X VI 3 -300 0 100 R 50 50 1 1 W
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# power_+12V
|
||||
#
|
||||
DEF power_+12V #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 -150 50 H I C CNN
|
||||
F1 "power_+12V" 0 140 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
DRAW
|
||||
P 2 0 1 0 -30 50 0 100 N
|
||||
P 2 0 1 0 0 0 0 100 N
|
||||
P 2 0 1 0 0 100 30 50 N
|
||||
X +12V 1 0 0 0 U 50 50 1 1 W N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# power_+3V3
|
||||
#
|
||||
DEF power_+3V3 #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 -150 50 H I C CNN
|
||||
F1 "power_+3V3" 0 140 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
ALIAS +3.3V
|
||||
DRAW
|
||||
P 2 0 1 0 -30 50 0 100 N
|
||||
P 2 0 1 0 0 0 0 100 N
|
||||
P 2 0 1 0 0 100 30 50 N
|
||||
X +3V3 1 0 0 0 U 50 50 1 1 W N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# power_GND
|
||||
#
|
||||
DEF power_GND #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 -250 50 H I C CNN
|
||||
F1 "power_GND" 0 -150 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
DRAW
|
||||
P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N
|
||||
X GND 1 0 0 0 D 50 50 1 1 W N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
1392
Hardware/DisplayBoard/MotorcycleMonitoring.kicad_pcb
Normal file
1392
Hardware/DisplayBoard/MotorcycleMonitoring.kicad_pcb
Normal file
File diff suppressed because it is too large
Load Diff
1392
Hardware/DisplayBoard/MotorcycleMonitoring.kicad_pcb-bak
Normal file
1392
Hardware/DisplayBoard/MotorcycleMonitoring.kicad_pcb-bak
Normal file
File diff suppressed because it is too large
Load Diff
467
Hardware/DisplayBoard/MotorcycleMonitoring.net
Normal file
467
Hardware/DisplayBoard/MotorcycleMonitoring.net
Normal file
@ -0,0 +1,467 @@
|
||||
(export (version D)
|
||||
(design
|
||||
(source D:\Documents\KiCad\MotorcycleMonitoring\MotorcycleMonitoring.sch)
|
||||
(date "06.12.2020 18:26:05")
|
||||
(tool "Eeschema (5.1.6)-1")
|
||||
(sheet (number 1) (name /) (tstamps /)
|
||||
(title_block
|
||||
(title)
|
||||
(company)
|
||||
(rev)
|
||||
(date)
|
||||
(source MotorcycleMonitoring.sch)
|
||||
(comment (number 1) (value ""))
|
||||
(comment (number 2) (value ""))
|
||||
(comment (number 3) (value ""))
|
||||
(comment (number 4) (value "")))))
|
||||
(components
|
||||
(comp (ref U2)
|
||||
(value STM32F030C8Tx)
|
||||
(footprint Package_QFP:LQFP-48_7x7mm_P0.5mm)
|
||||
(datasheet http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00088500.pdf)
|
||||
(libsource (lib MCU_ST_STM32F0) (part STM32F030C8Tx) (description "ARM Cortex-M0 MCU, 64KB flash, 8KB RAM, 48MHz, 2.4-3.6V, 39 GPIO, LQFP-48"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5FCD0C83))
|
||||
(comp (ref J2)
|
||||
(value Conn_01x04)
|
||||
(footprint Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical)
|
||||
(datasheet ~)
|
||||
(libsource (lib Connector_Generic) (part Conn_01x04) (description "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5FCD1D8E))
|
||||
(comp (ref U1)
|
||||
(value AMS1117-3.3)
|
||||
(footprint Package_TO_SOT_SMD:SOT-223-3_TabPin2)
|
||||
(datasheet http://www.advanced-monolithic.com/pdf/ds1117.pdf)
|
||||
(libsource (lib Regulator_Linear) (part AMS1117-3.3) (description "1A Low Dropout regulator, positive, 3.3V fixed output, SOT-223"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5FCDACE9))
|
||||
(comp (ref C2)
|
||||
(value 100n)
|
||||
(footprint Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder)
|
||||
(datasheet ~)
|
||||
(libsource (lib Device) (part C) (description "Unpolarized capacitor"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5FCDD0B2))
|
||||
(comp (ref C1)
|
||||
(value 100n)
|
||||
(footprint Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder)
|
||||
(datasheet ~)
|
||||
(libsource (lib Device) (part C) (description "Unpolarized capacitor"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5FCDE5DA))
|
||||
(comp (ref D1)
|
||||
(value 1N4007-SMD)
|
||||
(footprint Diode_SMD:D_MELF)
|
||||
(datasheet ~)
|
||||
(libsource (lib Device) (part D) (description Diode))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5FCE1F34))
|
||||
(comp (ref J5)
|
||||
(value Conn_02x07_Odd_Even)
|
||||
(footprint Connector_PinHeader_2.54mm:PinHeader_2x07_P2.54mm_Vertical)
|
||||
(datasheet ~)
|
||||
(libsource (lib Connector_Generic) (part Conn_02x07_Odd_Even) (description "Generic connector, double row, 02x07, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers), script generated (kicad-library-utils/schlib/autogen/connector/)"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5FCF0A96))
|
||||
(comp (ref J1)
|
||||
(value Conn_01x02)
|
||||
(footprint Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical)
|
||||
(datasheet ~)
|
||||
(libsource (lib Connector_Generic) (part Conn_01x02) (description "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5FD1C118))
|
||||
(comp (ref D2)
|
||||
(value LED)
|
||||
(footprint LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder)
|
||||
(datasheet ~)
|
||||
(libsource (lib Device) (part LED) (description "Light emitting diode"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5FD2978D))
|
||||
(comp (ref R1)
|
||||
(value 1k)
|
||||
(footprint Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder)
|
||||
(datasheet ~)
|
||||
(libsource (lib Device) (part R) (description Resistor))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5FD2B311))
|
||||
(comp (ref J4)
|
||||
(value Conn_01x04)
|
||||
(footprint Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical)
|
||||
(datasheet ~)
|
||||
(libsource (lib Connector_Generic) (part Conn_01x04) (description "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5FD3430D))
|
||||
(comp (ref J3)
|
||||
(value Conn_01x03)
|
||||
(footprint Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical)
|
||||
(datasheet ~)
|
||||
(libsource (lib Connector_Generic) (part Conn_01x03) (description "Generic connector, single row, 01x03, script generated (kicad-library-utils/schlib/autogen/connector/)"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5FD3E2DD))
|
||||
(comp (ref C3)
|
||||
(value 100n)
|
||||
(footprint Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder)
|
||||
(datasheet ~)
|
||||
(libsource (lib Device) (part C) (description "Unpolarized capacitor"))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5FD542DD))
|
||||
(comp (ref R2)
|
||||
(value 1k)
|
||||
(footprint Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder)
|
||||
(datasheet ~)
|
||||
(libsource (lib Device) (part R) (description Resistor))
|
||||
(sheetpath (names /) (tstamps /))
|
||||
(tstamp 5FD55A9C)))
|
||||
(libparts
|
||||
(libpart (lib Connector_Generic) (part Conn_01x02)
|
||||
(description "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)")
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp Connector*:*_1x??_*))
|
||||
(fields
|
||||
(field (name Reference) J)
|
||||
(field (name Value) Conn_01x02))
|
||||
(pins
|
||||
(pin (num 1) (name Pin_1) (type passive))
|
||||
(pin (num 2) (name Pin_2) (type passive))))
|
||||
(libpart (lib Connector_Generic) (part Conn_01x03)
|
||||
(description "Generic connector, single row, 01x03, script generated (kicad-library-utils/schlib/autogen/connector/)")
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp Connector*:*_1x??_*))
|
||||
(fields
|
||||
(field (name Reference) J)
|
||||
(field (name Value) Conn_01x03))
|
||||
(pins
|
||||
(pin (num 1) (name Pin_1) (type passive))
|
||||
(pin (num 2) (name Pin_2) (type passive))
|
||||
(pin (num 3) (name Pin_3) (type passive))))
|
||||
(libpart (lib Connector_Generic) (part Conn_01x04)
|
||||
(description "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)")
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp Connector*:*_1x??_*))
|
||||
(fields
|
||||
(field (name Reference) J)
|
||||
(field (name Value) Conn_01x04))
|
||||
(pins
|
||||
(pin (num 1) (name Pin_1) (type passive))
|
||||
(pin (num 2) (name Pin_2) (type passive))
|
||||
(pin (num 3) (name Pin_3) (type passive))
|
||||
(pin (num 4) (name Pin_4) (type passive))))
|
||||
(libpart (lib Connector_Generic) (part Conn_02x07_Odd_Even)
|
||||
(description "Generic connector, double row, 02x07, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers), script generated (kicad-library-utils/schlib/autogen/connector/)")
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp Connector*:*_2x??_*))
|
||||
(fields
|
||||
(field (name Reference) J)
|
||||
(field (name Value) Conn_02x07_Odd_Even))
|
||||
(pins
|
||||
(pin (num 1) (name Pin_1) (type passive))
|
||||
(pin (num 2) (name Pin_2) (type passive))
|
||||
(pin (num 3) (name Pin_3) (type passive))
|
||||
(pin (num 4) (name Pin_4) (type passive))
|
||||
(pin (num 5) (name Pin_5) (type passive))
|
||||
(pin (num 6) (name Pin_6) (type passive))
|
||||
(pin (num 7) (name Pin_7) (type passive))
|
||||
(pin (num 8) (name Pin_8) (type passive))
|
||||
(pin (num 9) (name Pin_9) (type passive))
|
||||
(pin (num 10) (name Pin_10) (type passive))
|
||||
(pin (num 11) (name Pin_11) (type passive))
|
||||
(pin (num 12) (name Pin_12) (type passive))
|
||||
(pin (num 13) (name Pin_13) (type passive))
|
||||
(pin (num 14) (name Pin_14) (type passive))))
|
||||
(libpart (lib Device) (part C)
|
||||
(description "Unpolarized capacitor")
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp C_*))
|
||||
(fields
|
||||
(field (name Reference) C)
|
||||
(field (name Value) C))
|
||||
(pins
|
||||
(pin (num 1) (name ~) (type passive))
|
||||
(pin (num 2) (name ~) (type passive))))
|
||||
(libpart (lib Device) (part D)
|
||||
(description Diode)
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp TO-???*)
|
||||
(fp *_Diode_*)
|
||||
(fp *SingleDiode*)
|
||||
(fp D_*))
|
||||
(fields
|
||||
(field (name Reference) D)
|
||||
(field (name Value) D))
|
||||
(pins
|
||||
(pin (num 1) (name K) (type passive))
|
||||
(pin (num 2) (name A) (type passive))))
|
||||
(libpart (lib Device) (part LED)
|
||||
(description "Light emitting diode")
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp LED*)
|
||||
(fp LED_SMD:*)
|
||||
(fp LED_THT:*))
|
||||
(fields
|
||||
(field (name Reference) D)
|
||||
(field (name Value) LED))
|
||||
(pins
|
||||
(pin (num 1) (name K) (type passive))
|
||||
(pin (num 2) (name A) (type passive))))
|
||||
(libpart (lib Device) (part R)
|
||||
(description Resistor)
|
||||
(docs ~)
|
||||
(footprints
|
||||
(fp R_*))
|
||||
(fields
|
||||
(field (name Reference) R)
|
||||
(field (name Value) R))
|
||||
(pins
|
||||
(pin (num 1) (name ~) (type passive))
|
||||
(pin (num 2) (name ~) (type passive))))
|
||||
(libpart (lib MCU_ST_STM32F0) (part STM32F030C8Tx)
|
||||
(description "ARM Cortex-M0 MCU, 64KB flash, 8KB RAM, 48MHz, 2.4-3.6V, 39 GPIO, LQFP-48")
|
||||
(docs http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00088500.pdf)
|
||||
(footprints
|
||||
(fp LQFP*7x7mm*P0.5mm*))
|
||||
(fields
|
||||
(field (name Reference) U)
|
||||
(field (name Value) STM32F030C8Tx)
|
||||
(field (name Footprint) Package_QFP:LQFP-48_7x7mm_P0.5mm))
|
||||
(pins
|
||||
(pin (num 1) (name VDD) (type power_in))
|
||||
(pin (num 2) (name PC13) (type BiDi))
|
||||
(pin (num 3) (name PC14) (type BiDi))
|
||||
(pin (num 4) (name PC15) (type BiDi))
|
||||
(pin (num 5) (name PF0) (type input))
|
||||
(pin (num 6) (name PF1) (type input))
|
||||
(pin (num 7) (name NRST) (type input))
|
||||
(pin (num 8) (name VSSA) (type power_in))
|
||||
(pin (num 9) (name VDDA) (type power_in))
|
||||
(pin (num 10) (name PA0) (type BiDi))
|
||||
(pin (num 11) (name PA1) (type BiDi))
|
||||
(pin (num 12) (name PA2) (type BiDi))
|
||||
(pin (num 13) (name PA3) (type BiDi))
|
||||
(pin (num 14) (name PA4) (type BiDi))
|
||||
(pin (num 15) (name PA5) (type BiDi))
|
||||
(pin (num 16) (name PA6) (type BiDi))
|
||||
(pin (num 17) (name PA7) (type BiDi))
|
||||
(pin (num 18) (name PB0) (type BiDi))
|
||||
(pin (num 19) (name PB1) (type BiDi))
|
||||
(pin (num 20) (name PB2) (type BiDi))
|
||||
(pin (num 21) (name PB10) (type BiDi))
|
||||
(pin (num 22) (name PB11) (type BiDi))
|
||||
(pin (num 23) (name VSS) (type power_in))
|
||||
(pin (num 24) (name VDD) (type power_in))
|
||||
(pin (num 25) (name PB12) (type BiDi))
|
||||
(pin (num 26) (name PB13) (type BiDi))
|
||||
(pin (num 27) (name PB14) (type BiDi))
|
||||
(pin (num 28) (name PB15) (type BiDi))
|
||||
(pin (num 29) (name PA8) (type BiDi))
|
||||
(pin (num 30) (name PA9) (type BiDi))
|
||||
(pin (num 31) (name PA10) (type BiDi))
|
||||
(pin (num 32) (name PA11) (type BiDi))
|
||||
(pin (num 33) (name PA12) (type BiDi))
|
||||
(pin (num 34) (name PA13) (type BiDi))
|
||||
(pin (num 35) (name PF6) (type BiDi))
|
||||
(pin (num 36) (name PF7) (type BiDi))
|
||||
(pin (num 37) (name PA14) (type BiDi))
|
||||
(pin (num 38) (name PA15) (type BiDi))
|
||||
(pin (num 39) (name PB3) (type BiDi))
|
||||
(pin (num 40) (name PB4) (type BiDi))
|
||||
(pin (num 41) (name PB5) (type BiDi))
|
||||
(pin (num 42) (name PB6) (type BiDi))
|
||||
(pin (num 43) (name PB7) (type BiDi))
|
||||
(pin (num 44) (name BOOT0) (type input))
|
||||
(pin (num 45) (name PB8) (type BiDi))
|
||||
(pin (num 46) (name PB9) (type BiDi))
|
||||
(pin (num 47) (name VSS) (type power_in))
|
||||
(pin (num 48) (name VDD) (type power_in))))
|
||||
(libpart (lib Regulator_Linear) (part AP1117-15)
|
||||
(aliases
|
||||
(alias AP1117-18)
|
||||
(alias AP1117-25)
|
||||
(alias AP1117-33)
|
||||
(alias AP1117-50)
|
||||
(alias LD1117S33TR_SOT223)
|
||||
(alias LD1117S12TR_SOT223)
|
||||
(alias LD1117S18TR_SOT223)
|
||||
(alias LD1117S25TR_SOT223)
|
||||
(alias LD1117S50TR_SOT223)
|
||||
(alias NCP1117-12_SOT223)
|
||||
(alias NCP1117-1.5_SOT223)
|
||||
(alias NCP1117-1.8_SOT223)
|
||||
(alias NCP1117-2.0_SOT223)
|
||||
(alias NCP1117-2.5_SOT223)
|
||||
(alias NCP1117-2.85_SOT223)
|
||||
(alias NCP1117-3.3_SOT223)
|
||||
(alias NCP1117-5.0_SOT223)
|
||||
(alias AMS1117-1.5)
|
||||
(alias AMS1117-1.8)
|
||||
(alias AMS1117-2.5)
|
||||
(alias AMS1117-2.85)
|
||||
(alias AMS1117-3.3)
|
||||
(alias AMS1117-5.0))
|
||||
(description "1A Low Dropout regulator, positive, 1.5V fixed output, SOT-223")
|
||||
(docs http://www.diodes.com/datasheets/AP1117.pdf)
|
||||
(footprints
|
||||
(fp SOT?223*TabPin2*))
|
||||
(fields
|
||||
(field (name Reference) U)
|
||||
(field (name Value) AP1117-15)
|
||||
(field (name Footprint) Package_TO_SOT_SMD:SOT-223-3_TabPin2))
|
||||
(pins
|
||||
(pin (num 1) (name GND) (type power_in))
|
||||
(pin (num 2) (name VO) (type power_out))
|
||||
(pin (num 3) (name VI) (type power_in)))))
|
||||
(libraries
|
||||
(library (logical Connector_Generic)
|
||||
(uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Connector_Generic.lib"))
|
||||
(library (logical Device)
|
||||
(uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Device.lib"))
|
||||
(library (logical MCU_ST_STM32F0)
|
||||
(uri "C:\\Program Files\\KiCad\\share\\kicad\\library/MCU_ST_STM32F0.lib"))
|
||||
(library (logical Regulator_Linear)
|
||||
(uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Regulator_Linear.lib")))
|
||||
(nets
|
||||
(net (code 1) (name +3V3)
|
||||
(node (ref C2) (pin 1))
|
||||
(node (ref U1) (pin 2))
|
||||
(node (ref U2) (pin 1))
|
||||
(node (ref J5) (pin 14))
|
||||
(node (ref J4) (pin 4))
|
||||
(node (ref U2) (pin 48))
|
||||
(node (ref U2) (pin 9))
|
||||
(node (ref J2) (pin 4))
|
||||
(node (ref U2) (pin 24)))
|
||||
(net (code 2) (name "Net-(J5-Pad8)")
|
||||
(node (ref U2) (pin 13))
|
||||
(node (ref J5) (pin 8)))
|
||||
(net (code 3) (name "Net-(J5-Pad10)")
|
||||
(node (ref J5) (pin 10))
|
||||
(node (ref U2) (pin 12)))
|
||||
(net (code 4) (name "Net-(J5-Pad12)")
|
||||
(node (ref J5) (pin 12))
|
||||
(node (ref U2) (pin 11)))
|
||||
(net (code 5) (name +12V)
|
||||
(node (ref J1) (pin 1))
|
||||
(node (ref D1) (pin 2)))
|
||||
(net (code 6) (name "Net-(J5-Pad4)")
|
||||
(node (ref J5) (pin 4))
|
||||
(node (ref U2) (pin 15)))
|
||||
(net (code 7) (name GND)
|
||||
(node (ref U2) (pin 47))
|
||||
(node (ref J4) (pin 3))
|
||||
(node (ref J5) (pin 1))
|
||||
(node (ref U2) (pin 8))
|
||||
(node (ref J2) (pin 3))
|
||||
(node (ref U2) (pin 23))
|
||||
(node (ref C1) (pin 2))
|
||||
(node (ref C2) (pin 2))
|
||||
(node (ref U1) (pin 1))
|
||||
(node (ref C3) (pin 1))
|
||||
(node (ref J5) (pin 3))
|
||||
(node (ref J5) (pin 5))
|
||||
(node (ref J5) (pin 7))
|
||||
(node (ref R2) (pin 2))
|
||||
(node (ref J3) (pin 3))
|
||||
(node (ref R1) (pin 2))
|
||||
(node (ref J5) (pin 13))
|
||||
(node (ref J1) (pin 2))
|
||||
(node (ref J5) (pin 11))
|
||||
(node (ref J5) (pin 9)))
|
||||
(net (code 8) (name "Net-(J5-Pad2)")
|
||||
(node (ref J5) (pin 2))
|
||||
(node (ref U2) (pin 16)))
|
||||
(net (code 9) (name "Net-(J5-Pad6)")
|
||||
(node (ref U2) (pin 14))
|
||||
(node (ref J5) (pin 6)))
|
||||
(net (code 10) (name "Net-(J3-Pad1)")
|
||||
(node (ref U2) (pin 30))
|
||||
(node (ref J3) (pin 1)))
|
||||
(net (code 11) (name "Net-(J3-Pad2)")
|
||||
(node (ref J3) (pin 2))
|
||||
(node (ref U2) (pin 31)))
|
||||
(net (code 12) (name "Net-(C3-Pad2)")
|
||||
(node (ref U2) (pin 7))
|
||||
(node (ref C3) (pin 2)))
|
||||
(net (code 13) (name "Net-(R2-Pad1)")
|
||||
(node (ref R2) (pin 1))
|
||||
(node (ref U2) (pin 44)))
|
||||
(net (code 14) (name "Net-(D2-Pad1)")
|
||||
(node (ref R1) (pin 1))
|
||||
(node (ref D2) (pin 1)))
|
||||
(net (code 15) (name "Net-(D2-Pad2)")
|
||||
(node (ref D2) (pin 2))
|
||||
(node (ref U2) (pin 18)))
|
||||
(net (code 16) (name "Net-(J4-Pad2)")
|
||||
(node (ref U2) (pin 34))
|
||||
(node (ref J4) (pin 2)))
|
||||
(net (code 17) (name "Net-(J4-Pad1)")
|
||||
(node (ref U2) (pin 37))
|
||||
(node (ref J4) (pin 1)))
|
||||
(net (code 18) (name "Net-(U2-Pad33)")
|
||||
(node (ref U2) (pin 33)))
|
||||
(net (code 19) (name "Net-(U2-Pad35)")
|
||||
(node (ref U2) (pin 35)))
|
||||
(net (code 20) (name "Net-(U2-Pad36)")
|
||||
(node (ref U2) (pin 36)))
|
||||
(net (code 21) (name "Net-(U2-Pad38)")
|
||||
(node (ref U2) (pin 38)))
|
||||
(net (code 22) (name "Net-(U2-Pad39)")
|
||||
(node (ref U2) (pin 39)))
|
||||
(net (code 23) (name "Net-(U2-Pad4)")
|
||||
(node (ref U2) (pin 4)))
|
||||
(net (code 24) (name "Net-(U2-Pad40)")
|
||||
(node (ref U2) (pin 40)))
|
||||
(net (code 25) (name "Net-(U2-Pad41)")
|
||||
(node (ref U2) (pin 41)))
|
||||
(net (code 26) (name "Net-(J2-Pad2)")
|
||||
(node (ref U2) (pin 42))
|
||||
(node (ref J2) (pin 2)))
|
||||
(net (code 27) (name "Net-(U2-Pad32)")
|
||||
(node (ref U2) (pin 32)))
|
||||
(net (code 28) (name "Net-(U2-Pad45)")
|
||||
(node (ref U2) (pin 45)))
|
||||
(net (code 29) (name "Net-(U2-Pad46)")
|
||||
(node (ref U2) (pin 46)))
|
||||
(net (code 30) (name "Net-(U2-Pad5)")
|
||||
(node (ref U2) (pin 5)))
|
||||
(net (code 31) (name "Net-(U2-Pad6)")
|
||||
(node (ref U2) (pin 6)))
|
||||
(net (code 32) (name "Net-(J2-Pad1)")
|
||||
(node (ref U2) (pin 43))
|
||||
(node (ref J2) (pin 1)))
|
||||
(net (code 33) (name "Net-(U2-Pad21)")
|
||||
(node (ref U2) (pin 21)))
|
||||
(net (code 34) (name "Net-(U2-Pad10)")
|
||||
(node (ref U2) (pin 10)))
|
||||
(net (code 35) (name "Net-(U2-Pad17)")
|
||||
(node (ref U2) (pin 17)))
|
||||
(net (code 36) (name "Net-(U2-Pad19)")
|
||||
(node (ref U2) (pin 19)))
|
||||
(net (code 37) (name "Net-(U2-Pad2)")
|
||||
(node (ref U2) (pin 2)))
|
||||
(net (code 38) (name "Net-(U2-Pad20)")
|
||||
(node (ref U2) (pin 20)))
|
||||
(net (code 39) (name "Net-(U2-Pad22)")
|
||||
(node (ref U2) (pin 22)))
|
||||
(net (code 40) (name "Net-(U2-Pad25)")
|
||||
(node (ref U2) (pin 25)))
|
||||
(net (code 41) (name "Net-(U2-Pad26)")
|
||||
(node (ref U2) (pin 26)))
|
||||
(net (code 42) (name "Net-(U2-Pad27)")
|
||||
(node (ref U2) (pin 27)))
|
||||
(net (code 43) (name "Net-(U2-Pad28)")
|
||||
(node (ref U2) (pin 28)))
|
||||
(net (code 44) (name "Net-(U2-Pad29)")
|
||||
(node (ref U2) (pin 29)))
|
||||
(net (code 45) (name "Net-(U2-Pad3)")
|
||||
(node (ref U2) (pin 3)))
|
||||
(net (code 46) (name "Net-(C1-Pad1)")
|
||||
(node (ref U1) (pin 3))
|
||||
(node (ref C1) (pin 1))
|
||||
(node (ref D1) (pin 1)))))
|
248
Hardware/DisplayBoard/MotorcycleMonitoring.pro
Normal file
248
Hardware/DisplayBoard/MotorcycleMonitoring.pro
Normal file
@ -0,0 +1,248 @@
|
||||
update=06.12.2020 18:12:43
|
||||
version=1
|
||||
last_client=kicad
|
||||
[general]
|
||||
version=1
|
||||
RootSch=
|
||||
BoardNm=
|
||||
[cvpcb]
|
||||
version=1
|
||||
NetIExt=net
|
||||
[eeschema]
|
||||
version=1
|
||||
LibDir=
|
||||
[eeschema/libraries]
|
||||
[schematic_editor]
|
||||
version=1
|
||||
PageLayoutDescrFile=
|
||||
PlotDirectoryName=
|
||||
SubpartIdSeparator=0
|
||||
SubpartFirstId=65
|
||||
NetFmtName=Pcbnew
|
||||
SpiceAjustPassiveValues=0
|
||||
LabSize=50
|
||||
ERC_TestSimilarLabels=1
|
||||
[pcbnew]
|
||||
version=1
|
||||
PageLayoutDescrFile=
|
||||
LastNetListRead=MotorcycleMonitoring.net
|
||||
CopperLayerCount=2
|
||||
BoardThickness=1.6
|
||||
AllowMicroVias=0
|
||||
AllowBlindVias=0
|
||||
RequireCourtyardDefinitions=0
|
||||
ProhibitOverlappingCourtyards=1
|
||||
MinTrackWidth=0.2
|
||||
MinViaDiameter=0.4
|
||||
MinViaDrill=0.3
|
||||
MinMicroViaDiameter=0.2
|
||||
MinMicroViaDrill=0.09999999999999999
|
||||
MinHoleToHole=0.25
|
||||
TrackWidth1=0.25
|
||||
ViaDiameter1=0.8
|
||||
ViaDrill1=0.4
|
||||
dPairWidth1=0.2
|
||||
dPairGap1=0.25
|
||||
dPairViaGap1=0.25
|
||||
SilkLineWidth=0.12
|
||||
SilkTextSizeV=1
|
||||
SilkTextSizeH=1
|
||||
SilkTextSizeThickness=0.15
|
||||
SilkTextItalic=0
|
||||
SilkTextUpright=1
|
||||
CopperLineWidth=0.2
|
||||
CopperTextSizeV=1.5
|
||||
CopperTextSizeH=1.5
|
||||
CopperTextThickness=0.3
|
||||
CopperTextItalic=0
|
||||
CopperTextUpright=1
|
||||
EdgeCutLineWidth=0.05
|
||||
CourtyardLineWidth=0.05
|
||||
OthersLineWidth=0.15
|
||||
OthersTextSizeV=1
|
||||
OthersTextSizeH=1
|
||||
OthersTextSizeThickness=0.15
|
||||
OthersTextItalic=0
|
||||
OthersTextUpright=1
|
||||
SolderMaskClearance=0.05
|
||||
SolderMaskMinWidth=0
|
||||
SolderPasteClearance=0
|
||||
SolderPasteRatio=0
|
||||
[pcbnew/Layer.F.Cu]
|
||||
Name=F.Cu
|
||||
Type=0
|
||||
Enabled=1
|
||||
[pcbnew/Layer.In1.Cu]
|
||||
Name=In1.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In2.Cu]
|
||||
Name=In2.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In3.Cu]
|
||||
Name=In3.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In4.Cu]
|
||||
Name=In4.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In5.Cu]
|
||||
Name=In5.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In6.Cu]
|
||||
Name=In6.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In7.Cu]
|
||||
Name=In7.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In8.Cu]
|
||||
Name=In8.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In9.Cu]
|
||||
Name=In9.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In10.Cu]
|
||||
Name=In10.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In11.Cu]
|
||||
Name=In11.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In12.Cu]
|
||||
Name=In12.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In13.Cu]
|
||||
Name=In13.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In14.Cu]
|
||||
Name=In14.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In15.Cu]
|
||||
Name=In15.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In16.Cu]
|
||||
Name=In16.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In17.Cu]
|
||||
Name=In17.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In18.Cu]
|
||||
Name=In18.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In19.Cu]
|
||||
Name=In19.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In20.Cu]
|
||||
Name=In20.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In21.Cu]
|
||||
Name=In21.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In22.Cu]
|
||||
Name=In22.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In23.Cu]
|
||||
Name=In23.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In24.Cu]
|
||||
Name=In24.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In25.Cu]
|
||||
Name=In25.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In26.Cu]
|
||||
Name=In26.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In27.Cu]
|
||||
Name=In27.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In28.Cu]
|
||||
Name=In28.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In29.Cu]
|
||||
Name=In29.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.In30.Cu]
|
||||
Name=In30.Cu
|
||||
Type=0
|
||||
Enabled=0
|
||||
[pcbnew/Layer.B.Cu]
|
||||
Name=B.Cu
|
||||
Type=0
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.Adhes]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.Adhes]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.Paste]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.Paste]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.SilkS]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.SilkS]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.Mask]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.Mask]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Dwgs.User]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Cmts.User]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Eco1.User]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Eco2.User]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Edge.Cuts]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Margin]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.CrtYd]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.CrtYd]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.B.Fab]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.F.Fab]
|
||||
Enabled=1
|
||||
[pcbnew/Layer.Rescue]
|
||||
Enabled=1
|
||||
[pcbnew/Netclasses]
|
||||
[pcbnew/Netclasses/Default]
|
||||
Name=Default
|
||||
Clearance=0.2
|
||||
TrackWidth=0.25
|
||||
ViaDiameter=0.8
|
||||
ViaDrill=0.4
|
||||
uViaDiameter=0.3
|
||||
uViaDrill=0.1
|
||||
dPairWidth=0.2
|
||||
dPairGap=0.25
|
||||
dPairViaGap=0.25
|
490
Hardware/DisplayBoard/MotorcycleMonitoring.sch
Normal file
490
Hardware/DisplayBoard/MotorcycleMonitoring.sch
Normal file
@ -0,0 +1,490 @@
|
||||
EESchema Schematic File Version 4
|
||||
EELAYER 30 0
|
||||
EELAYER END
|
||||
$Descr A4 11693 8268
|
||||
encoding utf-8
|
||||
Sheet 1 1
|
||||
Title ""
|
||||
Date ""
|
||||
Rev ""
|
||||
Comp ""
|
||||
Comment1 ""
|
||||
Comment2 ""
|
||||
Comment3 ""
|
||||
Comment4 ""
|
||||
$EndDescr
|
||||
$Comp
|
||||
L MCU_ST_STM32F0:STM32F030C8Tx U2
|
||||
U 1 1 5FCD0C83
|
||||
P 5550 3200
|
||||
F 0 "U2" H 5550 1511 50 0000 C CNN
|
||||
F 1 "STM32F030C8Tx" H 5550 1420 50 0000 C CNN
|
||||
F 2 "Package_QFP:LQFP-48_7x7mm_P0.5mm" H 5050 1700 50 0001 R CNN
|
||||
F 3 "http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00088500.pdf" H 5550 3200 50 0001 C CNN
|
||||
1 5550 3200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x04 J2
|
||||
U 1 1 5FCD1D8E
|
||||
P 4000 3800
|
||||
F 0 "J2" H 3918 4117 50 0000 C CNN
|
||||
F 1 "Conn_01x04" H 3918 4026 50 0000 C CNN
|
||||
F 2 "Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical" H 4000 3800 50 0001 C CNN
|
||||
F 3 "~" H 4000 3800 50 0001 C CNN
|
||||
1 4000 3800
|
||||
-1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3V3 #PWR0101
|
||||
U 1 1 5FCD2A78
|
||||
P 4200 4000
|
||||
F 0 "#PWR0101" H 4200 3850 50 0001 C CNN
|
||||
F 1 "+3V3" V 4215 4128 50 0000 L CNN
|
||||
F 2 "" H 4200 4000 50 0001 C CNN
|
||||
F 3 "" H 4200 4000 50 0001 C CNN
|
||||
1 4200 4000
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR0102
|
||||
U 1 1 5FCD41C4
|
||||
P 4200 3900
|
||||
F 0 "#PWR0102" H 4200 3650 50 0001 C CNN
|
||||
F 1 "GND" V 4205 3772 50 0000 R CNN
|
||||
F 2 "" H 4200 3900 50 0001 C CNN
|
||||
F 3 "" H 4200 3900 50 0001 C CNN
|
||||
1 4200 3900
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
4950 3700 4450 3700
|
||||
Wire Wire Line
|
||||
4450 3700 4450 3800
|
||||
Wire Wire Line
|
||||
4450 3800 4200 3800
|
||||
Wire Wire Line
|
||||
4200 3700 4350 3700
|
||||
Wire Wire Line
|
||||
4350 3700 4350 3750
|
||||
Wire Wire Line
|
||||
4350 3750 4750 3750
|
||||
Wire Wire Line
|
||||
4750 3750 4750 3800
|
||||
Wire Wire Line
|
||||
4750 3800 4950 3800
|
||||
$Comp
|
||||
L Regulator_Linear:AMS1117-3.3 U1
|
||||
U 1 1 5FCDACE9
|
||||
P 1900 950
|
||||
F 0 "U1" H 1900 1192 50 0000 C CNN
|
||||
F 1 "AMS1117-3.3" H 1900 1101 50 0000 C CNN
|
||||
F 2 "Package_TO_SOT_SMD:SOT-223-3_TabPin2" H 1900 1150 50 0001 C CNN
|
||||
F 3 "http://www.advanced-monolithic.com/pdf/ds1117.pdf" H 2000 700 50 0001 C CNN
|
||||
1 1900 950
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C2
|
||||
U 1 1 5FCDD0B2
|
||||
P 2450 1100
|
||||
F 0 "C2" H 2565 1146 50 0000 L CNN
|
||||
F 1 "100n" H 2565 1055 50 0000 L CNN
|
||||
F 2 "Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 2488 950 50 0001 C CNN
|
||||
F 3 "~" H 2450 1100 50 0001 C CNN
|
||||
1 2450 1100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C1
|
||||
U 1 1 5FCDE5DA
|
||||
P 1350 1100
|
||||
F 0 "C1" H 1465 1146 50 0000 L CNN
|
||||
F 1 "100n" H 1465 1055 50 0000 L CNN
|
||||
F 2 "Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 1388 950 50 0001 C CNN
|
||||
F 3 "~" H 1350 1100 50 0001 C CNN
|
||||
1 1350 1100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3V3 #PWR0103
|
||||
U 1 1 5FCDF87C
|
||||
P 2700 950
|
||||
F 0 "#PWR0103" H 2700 800 50 0001 C CNN
|
||||
F 1 "+3V3" V 2715 1078 50 0000 L CNN
|
||||
F 2 "" H 2700 950 50 0001 C CNN
|
||||
F 3 "" H 2700 950 50 0001 C CNN
|
||||
1 2700 950
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR0104
|
||||
U 1 1 5FCDF882
|
||||
P 1900 1250
|
||||
F 0 "#PWR0104" H 1900 1000 50 0001 C CNN
|
||||
F 1 "GND" V 1905 1122 50 0000 R CNN
|
||||
F 2 "" H 1900 1250 50 0001 C CNN
|
||||
F 3 "" H 1900 1250 50 0001 C CNN
|
||||
1 1900 1250
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
2450 1250 1900 1250
|
||||
Connection ~ 1900 1250
|
||||
Wire Wire Line
|
||||
1900 1250 1350 1250
|
||||
Wire Wire Line
|
||||
2700 950 2450 950
|
||||
Connection ~ 2450 950
|
||||
Wire Wire Line
|
||||
2450 950 2200 950
|
||||
Wire Wire Line
|
||||
1600 950 1350 950
|
||||
$Comp
|
||||
L Device:D D1
|
||||
U 1 1 5FCE1F34
|
||||
P 1200 950
|
||||
F 0 "D1" H 1200 733 50 0000 C CNN
|
||||
F 1 "1N4007-SMD" H 1200 824 50 0000 C CNN
|
||||
F 2 "Diode_SMD:D_MELF" H 1200 950 50 0001 C CNN
|
||||
F 3 "~" H 1200 950 50 0001 C CNN
|
||||
1 1200 950
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
Connection ~ 1350 950
|
||||
$Comp
|
||||
L power:+12V #PWR0105
|
||||
U 1 1 5FCE3CFA
|
||||
P 1050 950
|
||||
F 0 "#PWR0105" H 1050 800 50 0001 C CNN
|
||||
F 1 "+12V" V 1065 1078 50 0000 L CNN
|
||||
F 2 "" H 1050 950 50 0001 C CNN
|
||||
F 3 "" H 1050 950 50 0001 C CNN
|
||||
1 1050 950
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3V3 #PWR0106
|
||||
U 1 1 5FCEF5E2
|
||||
P 5600 1450
|
||||
F 0 "#PWR0106" H 5600 1300 50 0001 C CNN
|
||||
F 1 "+3V3" V 5615 1578 50 0000 L CNN
|
||||
F 2 "" H 5600 1450 50 0001 C CNN
|
||||
F 3 "" H 5600 1450 50 0001 C CNN
|
||||
1 5600 1450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5750 1600 5750 1550
|
||||
Wire Wire Line
|
||||
5750 1550 5650 1550
|
||||
Wire Wire Line
|
||||
5600 1550 5600 1450
|
||||
Wire Wire Line
|
||||
5650 1600 5650 1550
|
||||
Connection ~ 5650 1550
|
||||
Wire Wire Line
|
||||
5650 1550 5600 1550
|
||||
Wire Wire Line
|
||||
5550 1600 5550 1550
|
||||
Wire Wire Line
|
||||
5550 1550 5600 1550
|
||||
Connection ~ 5600 1550
|
||||
Wire Wire Line
|
||||
5450 1600 5450 1550
|
||||
Wire Wire Line
|
||||
5450 1550 5550 1550
|
||||
Connection ~ 5550 1550
|
||||
$Comp
|
||||
L Connector_Generic:Conn_02x07_Odd_Even J5
|
||||
U 1 1 5FCF0A96
|
||||
P 7550 3750
|
||||
F 0 "J5" H 7600 4267 50 0000 C CNN
|
||||
F 1 "Conn_02x07_Odd_Even" H 7600 4176 50 0000 C CNN
|
||||
F 2 "Connector_PinHeader_2.54mm:PinHeader_2x07_P2.54mm_Vertical" H 7550 3750 50 0001 C CNN
|
||||
F 3 "~" H 7550 3750 50 0001 C CNN
|
||||
1 7550 3750
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6150 3700 6900 3700
|
||||
Wire Wire Line
|
||||
6900 3700 6900 3450
|
||||
Wire Wire Line
|
||||
6900 3450 7250 3450
|
||||
Wire Wire Line
|
||||
7350 3450 7350 3400
|
||||
Wire Wire Line
|
||||
7350 3400 6850 3400
|
||||
Wire Wire Line
|
||||
6850 3400 6850 3600
|
||||
Wire Wire Line
|
||||
6850 3600 6150 3600
|
||||
Wire Wire Line
|
||||
6150 3500 6800 3500
|
||||
Wire Wire Line
|
||||
6800 3500 6800 3350
|
||||
Wire Wire Line
|
||||
6800 3350 7450 3350
|
||||
Wire Wire Line
|
||||
7450 3350 7450 3450
|
||||
Wire Wire Line
|
||||
7550 3450 7550 3300
|
||||
Wire Wire Line
|
||||
7550 3300 6750 3300
|
||||
Wire Wire Line
|
||||
6750 3300 6750 3400
|
||||
Wire Wire Line
|
||||
6750 3400 6150 3400
|
||||
Wire Wire Line
|
||||
6150 3300 6700 3300
|
||||
Wire Wire Line
|
||||
6700 3300 6700 3250
|
||||
Wire Wire Line
|
||||
6700 3250 7650 3250
|
||||
Wire Wire Line
|
||||
7650 3250 7650 3450
|
||||
Wire Wire Line
|
||||
7750 3450 7750 3200
|
||||
Wire Wire Line
|
||||
6150 3200 7750 3200
|
||||
$Comp
|
||||
L power:GND #PWR0107
|
||||
U 1 1 5FD18A77
|
||||
P 7850 4050
|
||||
F 0 "#PWR0107" H 7850 3800 50 0001 C CNN
|
||||
F 1 "GND" V 7855 3922 50 0000 R CNN
|
||||
F 2 "" H 7850 4050 50 0001 C CNN
|
||||
F 3 "" H 7850 4050 50 0001 C CNN
|
||||
1 7850 4050
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3V3 #PWR0108
|
||||
U 1 1 5FD1B0A4
|
||||
P 7850 3450
|
||||
F 0 "#PWR0108" H 7850 3300 50 0001 C CNN
|
||||
F 1 "+3V3" V 7865 3578 50 0000 L CNN
|
||||
F 2 "" H 7850 3450 50 0001 C CNN
|
||||
F 3 "" H 7850 3450 50 0001 C CNN
|
||||
1 7850 3450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x02 J1
|
||||
U 1 1 5FD1C118
|
||||
P 1900 2300
|
||||
F 0 "J1" H 1980 2292 50 0000 L CNN
|
||||
F 1 "Conn_01x02" H 1980 2201 50 0000 L CNN
|
||||
F 2 "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" H 1900 2300 50 0001 C CNN
|
||||
F 3 "~" H 1900 2300 50 0001 C CNN
|
||||
1 1900 2300
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR0109
|
||||
U 1 1 5FD1F45F
|
||||
P 1700 2400
|
||||
F 0 "#PWR0109" H 1700 2150 50 0001 C CNN
|
||||
F 1 "GND" V 1705 2272 50 0000 R CNN
|
||||
F 2 "" H 1700 2400 50 0001 C CNN
|
||||
F 3 "" H 1700 2400 50 0001 C CNN
|
||||
1 1700 2400
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR0110
|
||||
U 1 1 5FD21E97
|
||||
P 5550 5050
|
||||
F 0 "#PWR0110" H 5550 4800 50 0001 C CNN
|
||||
F 1 "GND" V 5555 4922 50 0000 R CNN
|
||||
F 2 "" H 5550 5050 50 0001 C CNN
|
||||
F 3 "" H 5550 5050 50 0001 C CNN
|
||||
1 5550 5050
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+12V #PWR0111
|
||||
U 1 1 5FD24347
|
||||
P 1700 2300
|
||||
F 0 "#PWR0111" H 1700 2150 50 0001 C CNN
|
||||
F 1 "+12V" V 1715 2428 50 0000 L CNN
|
||||
F 2 "" H 1700 2300 50 0001 C CNN
|
||||
F 3 "" H 1700 2300 50 0001 C CNN
|
||||
1 1700 2300
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5650 4800 5650 4950
|
||||
Wire Wire Line
|
||||
5650 4950 5550 4950
|
||||
Wire Wire Line
|
||||
5550 4950 5550 5050
|
||||
Wire Wire Line
|
||||
5550 4800 5550 4950
|
||||
Connection ~ 5550 4950
|
||||
Wire Wire Line
|
||||
5450 4800 5450 4950
|
||||
Wire Wire Line
|
||||
5450 4950 5550 4950
|
||||
$Comp
|
||||
L Device:LED D2
|
||||
U 1 1 5FD2978D
|
||||
P 4800 3100
|
||||
F 0 "D2" H 4793 3317 50 0000 C CNN
|
||||
F 1 "LED" H 4793 3226 50 0000 C CNN
|
||||
F 2 "LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 4800 3100 50 0001 C CNN
|
||||
F 3 "~" H 4800 3100 50 0001 C CNN
|
||||
1 4800 3100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:R R1
|
||||
U 1 1 5FD2B311
|
||||
P 4500 3100
|
||||
F 0 "R1" V 4293 3100 50 0000 C CNN
|
||||
F 1 "1k" V 4384 3100 50 0000 C CNN
|
||||
F 2 "Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder" V 4430 3100 50 0001 C CNN
|
||||
F 3 "~" H 4500 3100 50 0001 C CNN
|
||||
1 4500 3100
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR0112
|
||||
U 1 1 5FD2D7E6
|
||||
P 4350 3100
|
||||
F 0 "#PWR0112" H 4350 2850 50 0001 C CNN
|
||||
F 1 "GND" V 4355 2972 50 0000 R CNN
|
||||
F 2 "" H 4350 3100 50 0001 C CNN
|
||||
F 3 "" H 4350 3100 50 0001 C CNN
|
||||
1 4350 3100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x04 J4
|
||||
U 1 1 5FD3430D
|
||||
P 7050 4750
|
||||
F 0 "J4" H 6968 5067 50 0000 C CNN
|
||||
F 1 "Conn_01x04" H 6968 4976 50 0000 C CNN
|
||||
F 2 "Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical" H 7050 4750 50 0001 C CNN
|
||||
F 3 "~" H 7050 4750 50 0001 C CNN
|
||||
1 7050 4750
|
||||
1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3V3 #PWR0113
|
||||
U 1 1 5FD34313
|
||||
P 6850 4550
|
||||
F 0 "#PWR0113" H 6850 4400 50 0001 C CNN
|
||||
F 1 "+3V3" V 6865 4678 50 0000 L CNN
|
||||
F 2 "" H 6850 4550 50 0001 C CNN
|
||||
F 3 "" H 6850 4550 50 0001 C CNN
|
||||
1 6850 4550
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR0114
|
||||
U 1 1 5FD34319
|
||||
P 6850 4650
|
||||
F 0 "#PWR0114" H 6850 4400 50 0001 C CNN
|
||||
F 1 "GND" V 6855 4522 50 0000 R CNN
|
||||
F 2 "" H 6850 4650 50 0001 C CNN
|
||||
F 3 "" H 6850 4650 50 0001 C CNN
|
||||
1 6850 4650
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6850 4750 6450 4750
|
||||
Wire Wire Line
|
||||
6450 4750 6450 4400
|
||||
Wire Wire Line
|
||||
6450 4400 6150 4400
|
||||
Wire Wire Line
|
||||
6150 4500 6400 4500
|
||||
Wire Wire Line
|
||||
6400 4500 6400 4850
|
||||
Wire Wire Line
|
||||
6400 4850 6850 4850
|
||||
Wire Wire Line
|
||||
7850 4050 7850 3950
|
||||
Wire Wire Line
|
||||
7850 3950 7750 3950
|
||||
Connection ~ 7850 3950
|
||||
Connection ~ 7350 3950
|
||||
Wire Wire Line
|
||||
7350 3950 7250 3950
|
||||
Connection ~ 7450 3950
|
||||
Wire Wire Line
|
||||
7450 3950 7350 3950
|
||||
Connection ~ 7550 3950
|
||||
Wire Wire Line
|
||||
7550 3950 7450 3950
|
||||
Connection ~ 7650 3950
|
||||
Wire Wire Line
|
||||
7650 3950 7550 3950
|
||||
Connection ~ 7750 3950
|
||||
Wire Wire Line
|
||||
7750 3950 7650 3950
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x03 J3
|
||||
U 1 1 5FD3E2DD
|
||||
P 6650 4100
|
||||
F 0 "J3" H 6730 4142 50 0000 L CNN
|
||||
F 1 "Conn_01x03" H 6730 4051 50 0000 L CNN
|
||||
F 2 "Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical" H 6650 4100 50 0001 C CNN
|
||||
F 3 "~" H 6650 4100 50 0001 C CNN
|
||||
1 6650 4100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6150 4000 6450 4000
|
||||
Wire Wire Line
|
||||
6150 4100 6450 4100
|
||||
$Comp
|
||||
L power:GND #PWR0115
|
||||
U 1 1 5FD46C11
|
||||
P 6450 4200
|
||||
F 0 "#PWR0115" H 6450 3950 50 0001 C CNN
|
||||
F 1 "GND" H 6650 4100 50 0000 R CNN
|
||||
F 2 "" H 6450 4200 50 0001 C CNN
|
||||
F 3 "" H 6450 4200 50 0001 C CNN
|
||||
1 6450 4200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C3
|
||||
U 1 1 5FD542DD
|
||||
P 4800 1800
|
||||
F 0 "C3" H 4915 1846 50 0000 L CNN
|
||||
F 1 "100n" H 4915 1755 50 0000 L CNN
|
||||
F 2 "Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 4838 1650 50 0001 C CNN
|
||||
F 3 "~" H 4800 1800 50 0001 C CNN
|
||||
1 4800 1800
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:R R2
|
||||
U 1 1 5FD55A9C
|
||||
P 4800 2000
|
||||
F 0 "R2" V 4900 2000 50 0000 C CNN
|
||||
F 1 "1k" V 4950 2000 50 0000 C CNN
|
||||
F 2 "Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder" V 4730 2000 50 0001 C CNN
|
||||
F 3 "~" H 4800 2000 50 0001 C CNN
|
||||
1 4800 2000
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR0116
|
||||
U 1 1 5FD58534
|
||||
P 4650 2000
|
||||
F 0 "#PWR0116" H 4650 1750 50 0001 C CNN
|
||||
F 1 "GND" V 4655 1872 50 0000 R CNN
|
||||
F 2 "" H 4650 2000 50 0001 C CNN
|
||||
F 3 "" H 4650 2000 50 0001 C CNN
|
||||
1 4650 2000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
4650 2000 4650 1800
|
||||
Connection ~ 4650 2000
|
||||
$EndSCHEMATC
|
490
Hardware/DisplayBoard/MotorcycleMonitoring.sch-bak
Normal file
490
Hardware/DisplayBoard/MotorcycleMonitoring.sch-bak
Normal file
@ -0,0 +1,490 @@
|
||||
EESchema Schematic File Version 4
|
||||
EELAYER 30 0
|
||||
EELAYER END
|
||||
$Descr A4 11693 8268
|
||||
encoding utf-8
|
||||
Sheet 1 1
|
||||
Title ""
|
||||
Date ""
|
||||
Rev ""
|
||||
Comp ""
|
||||
Comment1 ""
|
||||
Comment2 ""
|
||||
Comment3 ""
|
||||
Comment4 ""
|
||||
$EndDescr
|
||||
$Comp
|
||||
L MCU_ST_STM32F0:STM32F030C8Tx U2
|
||||
U 1 1 5FCD0C83
|
||||
P 5550 3200
|
||||
F 0 "U2" H 5550 1511 50 0000 C CNN
|
||||
F 1 "STM32F030C8Tx" H 5550 1420 50 0000 C CNN
|
||||
F 2 "Package_QFP:LQFP-48_7x7mm_P0.5mm" H 5050 1700 50 0001 R CNN
|
||||
F 3 "http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00088500.pdf" H 5550 3200 50 0001 C CNN
|
||||
1 5550 3200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x04 J2
|
||||
U 1 1 5FCD1D8E
|
||||
P 4000 3800
|
||||
F 0 "J2" H 3918 4117 50 0000 C CNN
|
||||
F 1 "Conn_01x04" H 3918 4026 50 0000 C CNN
|
||||
F 2 "Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical" H 4000 3800 50 0001 C CNN
|
||||
F 3 "~" H 4000 3800 50 0001 C CNN
|
||||
1 4000 3800
|
||||
-1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3V3 #PWR0101
|
||||
U 1 1 5FCD2A78
|
||||
P 4200 4000
|
||||
F 0 "#PWR0101" H 4200 3850 50 0001 C CNN
|
||||
F 1 "+3V3" V 4215 4128 50 0000 L CNN
|
||||
F 2 "" H 4200 4000 50 0001 C CNN
|
||||
F 3 "" H 4200 4000 50 0001 C CNN
|
||||
1 4200 4000
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR0102
|
||||
U 1 1 5FCD41C4
|
||||
P 4200 3900
|
||||
F 0 "#PWR0102" H 4200 3650 50 0001 C CNN
|
||||
F 1 "GND" V 4205 3772 50 0000 R CNN
|
||||
F 2 "" H 4200 3900 50 0001 C CNN
|
||||
F 3 "" H 4200 3900 50 0001 C CNN
|
||||
1 4200 3900
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
4950 3700 4450 3700
|
||||
Wire Wire Line
|
||||
4450 3700 4450 3800
|
||||
Wire Wire Line
|
||||
4450 3800 4200 3800
|
||||
Wire Wire Line
|
||||
4200 3700 4350 3700
|
||||
Wire Wire Line
|
||||
4350 3700 4350 3750
|
||||
Wire Wire Line
|
||||
4350 3750 4750 3750
|
||||
Wire Wire Line
|
||||
4750 3750 4750 3800
|
||||
Wire Wire Line
|
||||
4750 3800 4950 3800
|
||||
$Comp
|
||||
L Regulator_Linear:AMS1117-3.3 U1
|
||||
U 1 1 5FCDACE9
|
||||
P 1900 950
|
||||
F 0 "U1" H 1900 1192 50 0000 C CNN
|
||||
F 1 "AMS1117-3.3" H 1900 1101 50 0000 C CNN
|
||||
F 2 "Package_TO_SOT_SMD:SOT-223-3_TabPin2" H 1900 1150 50 0001 C CNN
|
||||
F 3 "http://www.advanced-monolithic.com/pdf/ds1117.pdf" H 2000 700 50 0001 C CNN
|
||||
1 1900 950
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C2
|
||||
U 1 1 5FCDD0B2
|
||||
P 2450 1100
|
||||
F 0 "C2" H 2565 1146 50 0000 L CNN
|
||||
F 1 "100n" H 2565 1055 50 0000 L CNN
|
||||
F 2 "Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 2488 950 50 0001 C CNN
|
||||
F 3 "~" H 2450 1100 50 0001 C CNN
|
||||
1 2450 1100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C1
|
||||
U 1 1 5FCDE5DA
|
||||
P 1350 1100
|
||||
F 0 "C1" H 1465 1146 50 0000 L CNN
|
||||
F 1 "100n" H 1465 1055 50 0000 L CNN
|
||||
F 2 "Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 1388 950 50 0001 C CNN
|
||||
F 3 "~" H 1350 1100 50 0001 C CNN
|
||||
1 1350 1100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3V3 #PWR0103
|
||||
U 1 1 5FCDF87C
|
||||
P 2700 950
|
||||
F 0 "#PWR0103" H 2700 800 50 0001 C CNN
|
||||
F 1 "+3V3" V 2715 1078 50 0000 L CNN
|
||||
F 2 "" H 2700 950 50 0001 C CNN
|
||||
F 3 "" H 2700 950 50 0001 C CNN
|
||||
1 2700 950
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR0104
|
||||
U 1 1 5FCDF882
|
||||
P 1900 1250
|
||||
F 0 "#PWR0104" H 1900 1000 50 0001 C CNN
|
||||
F 1 "GND" V 1905 1122 50 0000 R CNN
|
||||
F 2 "" H 1900 1250 50 0001 C CNN
|
||||
F 3 "" H 1900 1250 50 0001 C CNN
|
||||
1 1900 1250
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
2450 1250 1900 1250
|
||||
Connection ~ 1900 1250
|
||||
Wire Wire Line
|
||||
1900 1250 1350 1250
|
||||
Wire Wire Line
|
||||
2700 950 2450 950
|
||||
Connection ~ 2450 950
|
||||
Wire Wire Line
|
||||
2450 950 2200 950
|
||||
Wire Wire Line
|
||||
1600 950 1350 950
|
||||
$Comp
|
||||
L Device:D D1
|
||||
U 1 1 5FCE1F34
|
||||
P 1200 950
|
||||
F 0 "D1" H 1200 733 50 0000 C CNN
|
||||
F 1 "1N4007-SMD" H 1200 824 50 0000 C CNN
|
||||
F 2 "Diode_SMD:D_MELF" H 1200 950 50 0001 C CNN
|
||||
F 3 "~" H 1200 950 50 0001 C CNN
|
||||
1 1200 950
|
||||
-1 0 0 1
|
||||
$EndComp
|
||||
Connection ~ 1350 950
|
||||
$Comp
|
||||
L power:+12V #PWR0105
|
||||
U 1 1 5FCE3CFA
|
||||
P 1050 950
|
||||
F 0 "#PWR0105" H 1050 800 50 0001 C CNN
|
||||
F 1 "+12V" V 1065 1078 50 0000 L CNN
|
||||
F 2 "" H 1050 950 50 0001 C CNN
|
||||
F 3 "" H 1050 950 50 0001 C CNN
|
||||
1 1050 950
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3V3 #PWR0106
|
||||
U 1 1 5FCEF5E2
|
||||
P 5600 1450
|
||||
F 0 "#PWR0106" H 5600 1300 50 0001 C CNN
|
||||
F 1 "+3V3" V 5615 1578 50 0000 L CNN
|
||||
F 2 "" H 5600 1450 50 0001 C CNN
|
||||
F 3 "" H 5600 1450 50 0001 C CNN
|
||||
1 5600 1450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5750 1600 5750 1550
|
||||
Wire Wire Line
|
||||
5750 1550 5650 1550
|
||||
Wire Wire Line
|
||||
5600 1550 5600 1450
|
||||
Wire Wire Line
|
||||
5650 1600 5650 1550
|
||||
Connection ~ 5650 1550
|
||||
Wire Wire Line
|
||||
5650 1550 5600 1550
|
||||
Wire Wire Line
|
||||
5550 1600 5550 1550
|
||||
Wire Wire Line
|
||||
5550 1550 5600 1550
|
||||
Connection ~ 5600 1550
|
||||
Wire Wire Line
|
||||
5450 1600 5450 1550
|
||||
Wire Wire Line
|
||||
5450 1550 5550 1550
|
||||
Connection ~ 5550 1550
|
||||
$Comp
|
||||
L Connector_Generic:Conn_02x07_Odd_Even J5
|
||||
U 1 1 5FCF0A96
|
||||
P 7550 3750
|
||||
F 0 "J5" H 7600 4267 50 0000 C CNN
|
||||
F 1 "Conn_02x07_Odd_Even" H 7600 4176 50 0000 C CNN
|
||||
F 2 "Connector_PinHeader_2.54mm:PinHeader_2x07_P2.54mm_Vertical" H 7550 3750 50 0001 C CNN
|
||||
F 3 "~" H 7550 3750 50 0001 C CNN
|
||||
1 7550 3750
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6150 3700 6900 3700
|
||||
Wire Wire Line
|
||||
6900 3700 6900 3450
|
||||
Wire Wire Line
|
||||
6900 3450 7250 3450
|
||||
Wire Wire Line
|
||||
7350 3450 7350 3400
|
||||
Wire Wire Line
|
||||
7350 3400 6850 3400
|
||||
Wire Wire Line
|
||||
6850 3400 6850 3600
|
||||
Wire Wire Line
|
||||
6850 3600 6150 3600
|
||||
Wire Wire Line
|
||||
6150 3500 6800 3500
|
||||
Wire Wire Line
|
||||
6800 3500 6800 3350
|
||||
Wire Wire Line
|
||||
6800 3350 7450 3350
|
||||
Wire Wire Line
|
||||
7450 3350 7450 3450
|
||||
Wire Wire Line
|
||||
7550 3450 7550 3300
|
||||
Wire Wire Line
|
||||
7550 3300 6750 3300
|
||||
Wire Wire Line
|
||||
6750 3300 6750 3400
|
||||
Wire Wire Line
|
||||
6750 3400 6150 3400
|
||||
Wire Wire Line
|
||||
6150 3300 6700 3300
|
||||
Wire Wire Line
|
||||
6700 3300 6700 3250
|
||||
Wire Wire Line
|
||||
6700 3250 7650 3250
|
||||
Wire Wire Line
|
||||
7650 3250 7650 3450
|
||||
Wire Wire Line
|
||||
7750 3450 7750 3200
|
||||
Wire Wire Line
|
||||
6150 3200 7750 3200
|
||||
$Comp
|
||||
L power:GND #PWR0107
|
||||
U 1 1 5FD18A77
|
||||
P 7850 4050
|
||||
F 0 "#PWR0107" H 7850 3800 50 0001 C CNN
|
||||
F 1 "GND" V 7855 3922 50 0000 R CNN
|
||||
F 2 "" H 7850 4050 50 0001 C CNN
|
||||
F 3 "" H 7850 4050 50 0001 C CNN
|
||||
1 7850 4050
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3V3 #PWR0108
|
||||
U 1 1 5FD1B0A4
|
||||
P 7850 3450
|
||||
F 0 "#PWR0108" H 7850 3300 50 0001 C CNN
|
||||
F 1 "+3V3" V 7865 3578 50 0000 L CNN
|
||||
F 2 "" H 7850 3450 50 0001 C CNN
|
||||
F 3 "" H 7850 3450 50 0001 C CNN
|
||||
1 7850 3450
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x02 J1
|
||||
U 1 1 5FD1C118
|
||||
P 1900 2300
|
||||
F 0 "J1" H 1980 2292 50 0000 L CNN
|
||||
F 1 "Conn_01x02" H 1980 2201 50 0000 L CNN
|
||||
F 2 "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" H 1900 2300 50 0001 C CNN
|
||||
F 3 "~" H 1900 2300 50 0001 C CNN
|
||||
1 1900 2300
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR0109
|
||||
U 1 1 5FD1F45F
|
||||
P 1700 2400
|
||||
F 0 "#PWR0109" H 1700 2150 50 0001 C CNN
|
||||
F 1 "GND" V 1705 2272 50 0000 R CNN
|
||||
F 2 "" H 1700 2400 50 0001 C CNN
|
||||
F 3 "" H 1700 2400 50 0001 C CNN
|
||||
1 1700 2400
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR0110
|
||||
U 1 1 5FD21E97
|
||||
P 5550 5050
|
||||
F 0 "#PWR0110" H 5550 4800 50 0001 C CNN
|
||||
F 1 "GND" V 5555 4922 50 0000 R CNN
|
||||
F 2 "" H 5550 5050 50 0001 C CNN
|
||||
F 3 "" H 5550 5050 50 0001 C CNN
|
||||
1 5550 5050
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+12V #PWR0111
|
||||
U 1 1 5FD24347
|
||||
P 1700 2300
|
||||
F 0 "#PWR0111" H 1700 2150 50 0001 C CNN
|
||||
F 1 "+12V" V 1715 2428 50 0000 L CNN
|
||||
F 2 "" H 1700 2300 50 0001 C CNN
|
||||
F 3 "" H 1700 2300 50 0001 C CNN
|
||||
1 1700 2300
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
5650 4800 5650 4950
|
||||
Wire Wire Line
|
||||
5650 4950 5550 4950
|
||||
Wire Wire Line
|
||||
5550 4950 5550 5050
|
||||
Wire Wire Line
|
||||
5550 4800 5550 4950
|
||||
Connection ~ 5550 4950
|
||||
Wire Wire Line
|
||||
5450 4800 5450 4950
|
||||
Wire Wire Line
|
||||
5450 4950 5550 4950
|
||||
$Comp
|
||||
L Device:LED D2
|
||||
U 1 1 5FD2978D
|
||||
P 4800 3100
|
||||
F 0 "D2" H 4793 3317 50 0000 C CNN
|
||||
F 1 "LED" H 4793 3226 50 0000 C CNN
|
||||
F 2 "LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 4800 3100 50 0001 C CNN
|
||||
F 3 "~" H 4800 3100 50 0001 C CNN
|
||||
1 4800 3100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:R R1
|
||||
U 1 1 5FD2B311
|
||||
P 4500 3100
|
||||
F 0 "R1" V 4293 3100 50 0000 C CNN
|
||||
F 1 "1k" V 4384 3100 50 0000 C CNN
|
||||
F 2 "Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder" V 4430 3100 50 0001 C CNN
|
||||
F 3 "~" H 4500 3100 50 0001 C CNN
|
||||
1 4500 3100
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR0112
|
||||
U 1 1 5FD2D7E6
|
||||
P 4350 3100
|
||||
F 0 "#PWR0112" H 4350 2850 50 0001 C CNN
|
||||
F 1 "GND" V 4355 2972 50 0000 R CNN
|
||||
F 2 "" H 4350 3100 50 0001 C CNN
|
||||
F 3 "" H 4350 3100 50 0001 C CNN
|
||||
1 4350 3100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x04 J4
|
||||
U 1 1 5FD3430D
|
||||
P 7050 4750
|
||||
F 0 "J4" H 6968 5067 50 0000 C CNN
|
||||
F 1 "Conn_01x04" H 6968 4976 50 0000 C CNN
|
||||
F 2 "Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical" H 7050 4750 50 0001 C CNN
|
||||
F 3 "~" H 7050 4750 50 0001 C CNN
|
||||
1 7050 4750
|
||||
1 0 0 1
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:+3V3 #PWR0113
|
||||
U 1 1 5FD34313
|
||||
P 6850 4550
|
||||
F 0 "#PWR0113" H 6850 4400 50 0001 C CNN
|
||||
F 1 "+3V3" V 6865 4678 50 0000 L CNN
|
||||
F 2 "" H 6850 4550 50 0001 C CNN
|
||||
F 3 "" H 6850 4550 50 0001 C CNN
|
||||
1 6850 4550
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR0114
|
||||
U 1 1 5FD34319
|
||||
P 6850 4650
|
||||
F 0 "#PWR0114" H 6850 4400 50 0001 C CNN
|
||||
F 1 "GND" V 6855 4522 50 0000 R CNN
|
||||
F 2 "" H 6850 4650 50 0001 C CNN
|
||||
F 3 "" H 6850 4650 50 0001 C CNN
|
||||
1 6850 4650
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6850 4750 6450 4750
|
||||
Wire Wire Line
|
||||
6450 4750 6450 4400
|
||||
Wire Wire Line
|
||||
6450 4400 6150 4400
|
||||
Wire Wire Line
|
||||
6150 4500 6400 4500
|
||||
Wire Wire Line
|
||||
6400 4500 6400 4850
|
||||
Wire Wire Line
|
||||
6400 4850 6850 4850
|
||||
Wire Wire Line
|
||||
7850 4050 7850 3950
|
||||
Wire Wire Line
|
||||
7850 3950 7750 3950
|
||||
Connection ~ 7850 3950
|
||||
Connection ~ 7350 3950
|
||||
Wire Wire Line
|
||||
7350 3950 7250 3950
|
||||
Connection ~ 7450 3950
|
||||
Wire Wire Line
|
||||
7450 3950 7350 3950
|
||||
Connection ~ 7550 3950
|
||||
Wire Wire Line
|
||||
7550 3950 7450 3950
|
||||
Connection ~ 7650 3950
|
||||
Wire Wire Line
|
||||
7650 3950 7550 3950
|
||||
Connection ~ 7750 3950
|
||||
Wire Wire Line
|
||||
7750 3950 7650 3950
|
||||
$Comp
|
||||
L Connector_Generic:Conn_01x03 J3
|
||||
U 1 1 5FD3E2DD
|
||||
P 6650 4100
|
||||
F 0 "J3" H 6730 4142 50 0000 L CNN
|
||||
F 1 "Conn_01x03" H 6730 4051 50 0000 L CNN
|
||||
F 2 "Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical" H 6650 4100 50 0001 C CNN
|
||||
F 3 "~" H 6650 4100 50 0001 C CNN
|
||||
1 6650 4100
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
6150 4000 6450 4000
|
||||
Wire Wire Line
|
||||
6150 4100 6450 4100
|
||||
$Comp
|
||||
L power:GND #PWR0115
|
||||
U 1 1 5FD46C11
|
||||
P 6450 4200
|
||||
F 0 "#PWR0115" H 6450 3950 50 0001 C CNN
|
||||
F 1 "GND" H 6650 4100 50 0000 R CNN
|
||||
F 2 "" H 6450 4200 50 0001 C CNN
|
||||
F 3 "" H 6450 4200 50 0001 C CNN
|
||||
1 6450 4200
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:C C?
|
||||
U 1 1 5FD542DD
|
||||
P 4800 1800
|
||||
F 0 "C?" H 4915 1846 50 0000 L CNN
|
||||
F 1 "100n" H 4915 1755 50 0000 L CNN
|
||||
F 2 "Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 4838 1650 50 0001 C CNN
|
||||
F 3 "~" H 4800 1800 50 0001 C CNN
|
||||
1 4800 1800
|
||||
0 -1 -1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L Device:R R?
|
||||
U 1 1 5FD55A9C
|
||||
P 4800 2000
|
||||
F 0 "R?" V 4900 2000 50 0000 C CNN
|
||||
F 1 "1k" V 4950 2000 50 0000 C CNN
|
||||
F 2 "Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder" V 4730 2000 50 0001 C CNN
|
||||
F 3 "~" H 4800 2000 50 0001 C CNN
|
||||
1 4800 2000
|
||||
0 1 1 0
|
||||
$EndComp
|
||||
$Comp
|
||||
L power:GND #PWR?
|
||||
U 1 1 5FD58534
|
||||
P 4650 2000
|
||||
F 0 "#PWR?" H 4650 1750 50 0001 C CNN
|
||||
F 1 "GND" V 4655 1872 50 0000 R CNN
|
||||
F 2 "" H 4650 2000 50 0001 C CNN
|
||||
F 3 "" H 4650 2000 50 0001 C CNN
|
||||
1 4650 2000
|
||||
1 0 0 -1
|
||||
$EndComp
|
||||
Wire Wire Line
|
||||
4650 2000 4650 1800
|
||||
Connection ~ 4650 2000
|
||||
$EndSCHEMATC
|
24
Hardware/DisplayBoard/Project Log.txt
Normal file
24
Hardware/DisplayBoard/Project Log.txt
Normal file
@ -0,0 +1,24 @@
|
||||
Idea:
|
||||
monitor temps, rpm, speed, gps, tilt, battery voltage,
|
||||
data will be saved on SD card.
|
||||
|
||||
dual readings:
|
||||
temp,gps,battery - every 30s
|
||||
other - every 500ms
|
||||
|
||||
Computers:
|
||||
Arduino
|
||||
RPi ZERO W - wifi data access via ssh?, easiest implementation
|
||||
STM32F030
|
||||
|
||||
|
||||
Sensor solutions:
|
||||
temp: ambient, oil (some sort of thermistor, one on mainboard for ambient and one strapped to spark switches?
|
||||
rpm: coils around sparkplug cables (both for diagnostics)
|
||||
speed: magnet stuck on brake disc
|
||||
gps: gps
|
||||
tilt: gyroscope, maybe with accelerometer for acceleration?
|
||||
battery voltage: AD stuck to voltage divider
|
||||
|
||||
optional:
|
||||
LCD/OLED for displaying information
|
3
Hardware/DisplayBoard/README.md
Normal file
3
Hardware/DisplayBoard/README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Motorcycle_Monitor
|
||||
|
||||
Monitoring Hardware and Software for old motorcycles
|
82181
Hardware/DisplayBoard/fp-info-cache
Normal file
82181
Hardware/DisplayBoard/fp-info-cache
Normal file
File diff suppressed because it is too large
Load Diff
3971
Hardware/DisplayBoard/gerber/MotorcycleMonitoring-B_Cu.gbr
Normal file
3971
Hardware/DisplayBoard/gerber/MotorcycleMonitoring-B_Cu.gbr
Normal file
File diff suppressed because it is too large
Load Diff
1544
Hardware/DisplayBoard/gerber/MotorcycleMonitoring-B_Mask.gbr
Normal file
1544
Hardware/DisplayBoard/gerber/MotorcycleMonitoring-B_Mask.gbr
Normal file
File diff suppressed because it is too large
Load Diff
141
Hardware/DisplayBoard/gerber/MotorcycleMonitoring-B_SilkS.gbr
Normal file
141
Hardware/DisplayBoard/gerber/MotorcycleMonitoring-B_SilkS.gbr
Normal file
@ -0,0 +1,141 @@
|
||||
%TF.GenerationSoftware,KiCad,Pcbnew,(5.1.6)-1*%
|
||||
%TF.CreationDate,2021-03-15T17:29:23+01:00*%
|
||||
%TF.ProjectId,MotorcycleMonitoring,4d6f746f-7263-4796-936c-654d6f6e6974,rev?*%
|
||||
%TF.SameCoordinates,Original*%
|
||||
%TF.FileFunction,Legend,Bot*%
|
||||
%TF.FilePolarity,Positive*%
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW (5.1.6)-1) date 2021-03-15 17:29:23*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,0.120000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
%TO.C,J4*%
|
||||
X125770000Y-88970000D02*
|
||||
X128430000Y-88970000D01*
|
||||
X125770000Y-81290000D02*
|
||||
X125770000Y-88970000D01*
|
||||
X128430000Y-81290000D02*
|
||||
X128430000Y-88970000D01*
|
||||
X125770000Y-81290000D02*
|
||||
X128430000Y-81290000D01*
|
||||
X125770000Y-80020000D02*
|
||||
X125770000Y-78690000D01*
|
||||
X125770000Y-78690000D02*
|
||||
X127100000Y-78690000D01*
|
||||
%TO.C,J3*%
|
||||
X128430000Y-97930000D02*
|
||||
X127100000Y-97930000D01*
|
||||
X128430000Y-96600000D02*
|
||||
X128430000Y-97930000D01*
|
||||
X128430000Y-95330000D02*
|
||||
X125770000Y-95330000D01*
|
||||
X125770000Y-95330000D02*
|
||||
X125770000Y-90190000D01*
|
||||
X128430000Y-95330000D02*
|
||||
X128430000Y-90190000D01*
|
||||
X128430000Y-90190000D02*
|
||||
X125770000Y-90190000D01*
|
||||
%TO.C,J1*%
|
||||
X125770000Y-99370000D02*
|
||||
X127100000Y-99370000D01*
|
||||
X125770000Y-100700000D02*
|
||||
X125770000Y-99370000D01*
|
||||
X125770000Y-101970000D02*
|
||||
X128430000Y-101970000D01*
|
||||
X128430000Y-101970000D02*
|
||||
X128430000Y-104570000D01*
|
||||
X125770000Y-101970000D02*
|
||||
X125770000Y-104570000D01*
|
||||
X125770000Y-104570000D02*
|
||||
X128430000Y-104570000D01*
|
||||
%TO.C,J5*%
|
||||
X133370000Y-104530000D02*
|
||||
X133370000Y-103200000D01*
|
||||
X134700000Y-104530000D02*
|
||||
X133370000Y-104530000D01*
|
||||
X133370000Y-101930000D02*
|
||||
X133370000Y-99330000D01*
|
||||
X135970000Y-101930000D02*
|
||||
X133370000Y-101930000D01*
|
||||
X135970000Y-104530000D02*
|
||||
X135970000Y-101930000D01*
|
||||
X133370000Y-99330000D02*
|
||||
X151270000Y-99330000D01*
|
||||
X135970000Y-104530000D02*
|
||||
X151270000Y-104530000D01*
|
||||
X151270000Y-104530000D02*
|
||||
X151270000Y-99330000D01*
|
||||
%TO.C,C1*%
|
||||
X146890000Y-89313748D02*
|
||||
X146890000Y-89836252D01*
|
||||
X148310000Y-89313748D02*
|
||||
X148310000Y-89836252D01*
|
||||
%TO.C,C2*%
|
||||
X132390000Y-93186252D02*
|
||||
X132390000Y-92663748D01*
|
||||
X133810000Y-93186252D02*
|
||||
X133810000Y-92663748D01*
|
||||
%TO.C,D1*%
|
||||
X151800000Y-87800000D02*
|
||||
X151800000Y-93500000D01*
|
||||
X148800000Y-87800000D02*
|
||||
X151800000Y-87800000D01*
|
||||
X148800000Y-93500000D02*
|
||||
X148800000Y-87800000D01*
|
||||
%TO.C,D2*%
|
||||
X135440000Y-94840000D02*
|
||||
X138300000Y-94840000D01*
|
||||
X135440000Y-96760000D02*
|
||||
X135440000Y-94840000D01*
|
||||
X138300000Y-96760000D02*
|
||||
X135440000Y-96760000D01*
|
||||
%TO.C,R1*%
|
||||
X133661252Y-96510000D02*
|
||||
X133138748Y-96510000D01*
|
||||
X133661252Y-95090000D02*
|
||||
X133138748Y-95090000D01*
|
||||
%TO.C,U1*%
|
||||
X145090000Y-78700000D02*
|
||||
X145090000Y-84710000D01*
|
||||
X151910000Y-80950000D02*
|
||||
X151910000Y-84710000D01*
|
||||
X145090000Y-84710000D02*
|
||||
X146350000Y-84710000D01*
|
||||
X151910000Y-84710000D02*
|
||||
X150650000Y-84710000D01*
|
||||
%TO.C,U2*%
|
||||
X143210000Y-85840000D02*
|
||||
X144500000Y-85840000D01*
|
||||
X143210000Y-85390000D02*
|
||||
X143210000Y-85840000D01*
|
||||
X142760000Y-85390000D02*
|
||||
X143210000Y-85390000D01*
|
||||
X135990000Y-85390000D02*
|
||||
X135990000Y-85840000D01*
|
||||
X136440000Y-85390000D02*
|
||||
X135990000Y-85390000D01*
|
||||
X143210000Y-92610000D02*
|
||||
X143210000Y-92160000D01*
|
||||
X142760000Y-92610000D02*
|
||||
X143210000Y-92610000D01*
|
||||
X135990000Y-92610000D02*
|
||||
X135990000Y-92160000D01*
|
||||
X136440000Y-92610000D02*
|
||||
X135990000Y-92610000D01*
|
||||
%TO.C,C3*%
|
||||
X149690000Y-96961252D02*
|
||||
X149690000Y-96438748D01*
|
||||
X151110000Y-96961252D02*
|
||||
X151110000Y-96438748D01*
|
||||
%TO.C,R2*%
|
||||
X142513748Y-81890000D02*
|
||||
X143036252Y-81890000D01*
|
||||
X142513748Y-83310000D02*
|
||||
X143036252Y-83310000D01*
|
||||
%TD*%
|
||||
M02*
|
@ -0,0 +1,26 @@
|
||||
%TF.GenerationSoftware,KiCad,Pcbnew,(5.1.6)-1*%
|
||||
%TF.CreationDate,2021-03-15T17:29:23+01:00*%
|
||||
%TF.ProjectId,MotorcycleMonitoring,4d6f746f-7263-4796-936c-654d6f6e6974,rev?*%
|
||||
%TF.SameCoordinates,Original*%
|
||||
%TF.FileFunction,Profile,NP*%
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW (5.1.6)-1) date 2021-03-15 17:29:23*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%TA.AperFunction,Profile*%
|
||||
%ADD10C,0.150000*%
|
||||
%TD*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
X125000000Y-105300000D02*
|
||||
X125000000Y-78000000D01*
|
||||
X152300000Y-105300000D02*
|
||||
X125000000Y-105300000D01*
|
||||
X152300000Y-78000000D02*
|
||||
X152300000Y-105300000D01*
|
||||
X125000000Y-78000000D02*
|
||||
X152300000Y-78000000D01*
|
||||
M02*
|
1332
Hardware/DisplayBoard/gerber/MotorcycleMonitoring-F_Cu.gbr
Normal file
1332
Hardware/DisplayBoard/gerber/MotorcycleMonitoring-F_Cu.gbr
Normal file
File diff suppressed because it is too large
Load Diff
74
Hardware/DisplayBoard/gerber/MotorcycleMonitoring-F_Mask.gbr
Normal file
74
Hardware/DisplayBoard/gerber/MotorcycleMonitoring-F_Mask.gbr
Normal file
@ -0,0 +1,74 @@
|
||||
%TF.GenerationSoftware,KiCad,Pcbnew,(5.1.6)-1*%
|
||||
%TF.CreationDate,2021-03-15T17:29:23+01:00*%
|
||||
%TF.ProjectId,MotorcycleMonitoring,4d6f746f-7263-4796-936c-654d6f6e6974,rev?*%
|
||||
%TF.SameCoordinates,Original*%
|
||||
%TF.FileFunction,Soldermask,Top*%
|
||||
%TF.FilePolarity,Negative*%
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW (5.1.6)-1) date 2021-03-15 17:29:23*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10O,1.800000X1.800000*%
|
||||
%ADD11R,1.800000X1.800000*%
|
||||
%ADD12C,0.900000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
%TO.C,J4*%
|
||||
X127100000Y-87640000D03*
|
||||
X127100000Y-85100000D03*
|
||||
X127100000Y-82560000D03*
|
||||
D11*
|
||||
X127100000Y-80020000D03*
|
||||
%TD*%
|
||||
%TO.C,J3*%
|
||||
X127100000Y-96600000D03*
|
||||
D10*
|
||||
X127100000Y-94060000D03*
|
||||
X127100000Y-91520000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,J1*%
|
||||
X127100000Y-100700000D03*
|
||||
D10*
|
||||
X127100000Y-103240000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,J5*%
|
||||
X134700000Y-103200000D03*
|
||||
D10*
|
||||
X134700000Y-100660000D03*
|
||||
X137240000Y-103200000D03*
|
||||
X137240000Y-100660000D03*
|
||||
X139780000Y-103200000D03*
|
||||
X139780000Y-100660000D03*
|
||||
X142320000Y-103200000D03*
|
||||
X142320000Y-100660000D03*
|
||||
X144860000Y-103200000D03*
|
||||
X144860000Y-100660000D03*
|
||||
X147400000Y-103200000D03*
|
||||
X147400000Y-100660000D03*
|
||||
X149940000Y-103200000D03*
|
||||
X149940000Y-100660000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,J2*%
|
||||
X142500000Y-79700000D03*
|
||||
D10*
|
||||
X139960000Y-79700000D03*
|
||||
X137420000Y-79700000D03*
|
||||
X134880000Y-79700000D03*
|
||||
%TD*%
|
||||
D12*
|
||||
X138800000Y-91200000D03*
|
||||
X139600000Y-86700000D03*
|
||||
X147500000Y-92900000D03*
|
||||
X131600000Y-79500000D03*
|
||||
X129300000Y-84100000D03*
|
||||
X148500000Y-82700000D03*
|
||||
X147300000Y-96300000D03*
|
||||
X149100000Y-96100000D03*
|
||||
X145900000Y-89300000D03*
|
||||
M02*
|
@ -0,0 +1,31 @@
|
||||
%TF.GenerationSoftware,KiCad,Pcbnew,(5.1.6)-1*%
|
||||
%TF.CreationDate,2021-03-15T17:29:23+01:00*%
|
||||
%TF.ProjectId,MotorcycleMonitoring,4d6f746f-7263-4796-936c-654d6f6e6974,rev?*%
|
||||
%TF.SameCoordinates,Original*%
|
||||
%TF.FileFunction,Legend,Top*%
|
||||
%TF.FilePolarity,Positive*%
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW (5.1.6)-1) date 2021-03-15 17:29:23*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10C,0.120000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
%TO.C,J2*%
|
||||
X143830000Y-78370000D02*
|
||||
X143830000Y-79700000D01*
|
||||
X142500000Y-78370000D02*
|
||||
X143830000Y-78370000D01*
|
||||
X141230000Y-78370000D02*
|
||||
X141230000Y-81030000D01*
|
||||
X141230000Y-81030000D02*
|
||||
X133550000Y-81030000D01*
|
||||
X141230000Y-78370000D02*
|
||||
X133550000Y-78370000D01*
|
||||
X133550000Y-78370000D02*
|
||||
X133550000Y-81030000D01*
|
||||
%TD*%
|
||||
M02*
|
13
Hardware/DisplayBoard/gerber/MotorcycleMonitoring-NPTH.drl
Normal file
13
Hardware/DisplayBoard/gerber/MotorcycleMonitoring-NPTH.drl
Normal file
@ -0,0 +1,13 @@
|
||||
M48
|
||||
; DRILL file {KiCad (5.1.6)-1} date 03/15/21 17:24:09
|
||||
; FORMAT={-:-/ absolute / metric / decimal}
|
||||
; #@! TF.CreationDate,2021-03-15T17:24:09+01:00
|
||||
; #@! TF.GenerationSoftware,Kicad,Pcbnew,(5.1.6)-1
|
||||
; #@! TF.FileFunction,NonPlated,1,2,NPTH
|
||||
FMAT,2
|
||||
METRIC
|
||||
%
|
||||
G90
|
||||
G05
|
||||
T0
|
||||
M30
|
53
Hardware/DisplayBoard/gerber/MotorcycleMonitoring-PTH.drl
Normal file
53
Hardware/DisplayBoard/gerber/MotorcycleMonitoring-PTH.drl
Normal file
@ -0,0 +1,53 @@
|
||||
M48
|
||||
; DRILL file {KiCad (5.1.6)-1} date 03/15/21 17:24:09
|
||||
; FORMAT={-:-/ absolute / metric / decimal}
|
||||
; #@! TF.CreationDate,2021-03-15T17:24:09+01:00
|
||||
; #@! TF.GenerationSoftware,Kicad,Pcbnew,(5.1.6)-1
|
||||
; #@! TF.FileFunction,Plated,1,2,PTH
|
||||
FMAT,2
|
||||
METRIC
|
||||
T1C0.400
|
||||
T2C1.000
|
||||
%
|
||||
G90
|
||||
G05
|
||||
T1
|
||||
X129.3Y-84.1
|
||||
X131.6Y-79.5
|
||||
X138.8Y-91.2
|
||||
X139.6Y-86.7
|
||||
X145.9Y-89.3
|
||||
X147.3Y-96.3
|
||||
X147.5Y-92.9
|
||||
X148.5Y-82.7
|
||||
X149.1Y-96.1
|
||||
T2
|
||||
X127.1Y-100.7
|
||||
X127.1Y-103.24
|
||||
X127.1Y-91.52
|
||||
X127.1Y-94.06
|
||||
X127.1Y-96.6
|
||||
X134.7Y-100.66
|
||||
X134.7Y-103.2
|
||||
X137.24Y-100.66
|
||||
X137.24Y-103.2
|
||||
X139.78Y-100.66
|
||||
X139.78Y-103.2
|
||||
X142.32Y-100.66
|
||||
X142.32Y-103.2
|
||||
X144.86Y-100.66
|
||||
X144.86Y-103.2
|
||||
X147.4Y-100.66
|
||||
X147.4Y-103.2
|
||||
X149.94Y-100.66
|
||||
X149.94Y-103.2
|
||||
X127.1Y-80.02
|
||||
X127.1Y-82.56
|
||||
X127.1Y-85.1
|
||||
X127.1Y-87.64
|
||||
X134.88Y-79.7
|
||||
X137.42Y-79.7
|
||||
X139.96Y-79.7
|
||||
X142.5Y-79.7
|
||||
T0
|
||||
M30
|
110
Hardware/DisplayBoard/gerber/MotorcycleMonitoring-job.gbrjob
Normal file
110
Hardware/DisplayBoard/gerber/MotorcycleMonitoring-job.gbrjob
Normal file
@ -0,0 +1,110 @@
|
||||
{
|
||||
"Header":
|
||||
{
|
||||
"GenerationSoftware":
|
||||
{
|
||||
"Vendor": "KiCad",
|
||||
"Application": "Pcbnew",
|
||||
"Version": "(5.1.6)-1"
|
||||
},
|
||||
"CreationDate": "2021-03-15T17:29:23+01:00"
|
||||
},
|
||||
"GeneralSpecs":
|
||||
{
|
||||
"ProjectId":
|
||||
{
|
||||
"Name": "MotorcycleMonitoring",
|
||||
"GUID": "4d6f746f-7263-4796-936c-654d6f6e6974",
|
||||
"Revision": "rev?"
|
||||
},
|
||||
"Size":
|
||||
{
|
||||
"X": 27.450,
|
||||
"Y": 27.450
|
||||
},
|
||||
"LayerNumber": 2,
|
||||
"BoardThickness": 1.600
|
||||
},
|
||||
"DesignRules":
|
||||
[
|
||||
{
|
||||
"Layers": "Outer",
|
||||
"PadToPad": 0.200,
|
||||
"PadToTrack": 0.200,
|
||||
"TrackToTrack": 0.200,
|
||||
"MinLineWidth": 0.250,
|
||||
"TrackToRegion": 0.508,
|
||||
"RegionToRegion": 0.508
|
||||
}
|
||||
],
|
||||
"FilesAttributes":
|
||||
[
|
||||
{
|
||||
"Path": "MotorcycleMonitoring-F_Cu.gbr",
|
||||
"FileFunction": "Copper,L1,Top",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "MotorcycleMonitoring-B_Cu.gbr",
|
||||
"FileFunction": "Copper,L2,Bot",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "MotorcycleMonitoring-F_SilkS.gbr",
|
||||
"FileFunction": "Legend,Top",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "MotorcycleMonitoring-B_SilkS.gbr",
|
||||
"FileFunction": "Legend,Bot",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "MotorcycleMonitoring-F_Mask.gbr",
|
||||
"FileFunction": "SolderMask,Top",
|
||||
"FilePolarity": "Negative"
|
||||
},
|
||||
{
|
||||
"Path": "MotorcycleMonitoring-B_Mask.gbr",
|
||||
"FileFunction": "SolderMask,Bot",
|
||||
"FilePolarity": "Negative"
|
||||
},
|
||||
{
|
||||
"Path": "MotorcycleMonitoring-Edge_Cuts.gbr",
|
||||
"FileFunction": "Profile",
|
||||
"FilePolarity": "Positive"
|
||||
}
|
||||
],
|
||||
"MaterialStackup":
|
||||
[
|
||||
{
|
||||
"Type": "Legend",
|
||||
"Notes": "Layer F.SilkS"
|
||||
},
|
||||
{
|
||||
"Type": "SolderMask",
|
||||
"Notes": "Layer F.Mask"
|
||||
},
|
||||
{
|
||||
"Type": "Copper",
|
||||
"Notes": "Layer F.Cu"
|
||||
},
|
||||
{
|
||||
"Type": "Dielectric",
|
||||
"Material": "FR4",
|
||||
"Notes": "Layers L1/L2"
|
||||
},
|
||||
{
|
||||
"Type": "Copper",
|
||||
"Notes": "Layer B.Cu"
|
||||
},
|
||||
{
|
||||
"Type": "SolderMask",
|
||||
"Notes": "Layer B.Mask"
|
||||
},
|
||||
{
|
||||
"Type": "Legend",
|
||||
"Notes": "Layer B.SilkS"
|
||||
}
|
||||
]
|
||||
}
|
22
Software/DisplayBoard/Core/Inc/fonts.h
Normal file
22
Software/DisplayBoard/Core/Inc/fonts.h
Normal file
@ -0,0 +1,22 @@
|
||||
#ifndef _FONTS_H
|
||||
#define _FONTS_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
//
|
||||
// Structure used to define fonts
|
||||
//
|
||||
typedef struct {
|
||||
const uint8_t FontWidth; /* Font width in pixels */
|
||||
uint8_t FontHeight; /* Font height in pixels */
|
||||
const uint16_t *data; /* Pointer to data font data array */
|
||||
} FontDef;
|
||||
|
||||
//
|
||||
// Export the 3 available fonts
|
||||
//
|
||||
extern FontDef Font_7x10;
|
||||
extern FontDef Font_11x18;
|
||||
extern FontDef Font_16x26;
|
||||
|
||||
#endif // _FONTS_H
|
91
Software/DisplayBoard/Core/Inc/main.h
Normal file
91
Software/DisplayBoard/Core/Inc/main.h
Normal file
@ -0,0 +1,91 @@
|
||||
/* USER CODE BEGIN Header */
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file : main.h
|
||||
* @brief : Header for main.c file.
|
||||
* This file contains the common defines of the application.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2021 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __MAIN_H
|
||||
#define __MAIN_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "stm32f0xx_hal.h"
|
||||
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Includes */
|
||||
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN ET */
|
||||
|
||||
/* USER CODE END ET */
|
||||
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/* USER CODE BEGIN EC */
|
||||
|
||||
/* USER CODE END EC */
|
||||
|
||||
/* Exported macro ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN EM */
|
||||
#define TIRE_CIRC_M (float)1.906
|
||||
#define V_REF (float)3.3
|
||||
#define U_BATT_DIV_RATIO (float)11
|
||||
#define FUEL_DIV_RATIO (float)6.6
|
||||
#define MAX_FUEL_U (float)13
|
||||
/* USER CODE END EM */
|
||||
|
||||
/* Exported functions prototypes ---------------------------------------------*/
|
||||
void Error_Handler(void);
|
||||
|
||||
/* USER CODE BEGIN EFP */
|
||||
|
||||
/* USER CODE END EFP */
|
||||
|
||||
/* Private defines -----------------------------------------------------------*/
|
||||
#define GPInput1_Pin GPIO_PIN_1
|
||||
#define GPInput1_GPIO_Port GPIOA
|
||||
#define GPInput1_EXTI_IRQn EXTI0_1_IRQn
|
||||
#define GPInput2_Pin GPIO_PIN_2
|
||||
#define GPInput2_GPIO_Port GPIOA
|
||||
#define GPInput2_EXTI_IRQn EXTI2_3_IRQn
|
||||
#define FUEL_Pin GPIO_PIN_3
|
||||
#define FUEL_GPIO_Port GPIOA
|
||||
#define SPEED_Pin GPIO_PIN_4
|
||||
#define SPEED_GPIO_Port GPIOA
|
||||
#define U_BATT_Pin GPIO_PIN_5
|
||||
#define U_BATT_GPIO_Port GPIOA
|
||||
#define RPM_Pin GPIO_PIN_6
|
||||
#define RPM_GPIO_Port GPIOA
|
||||
#define LED_Pin GPIO_PIN_0
|
||||
#define LED_GPIO_Port GPIOB
|
||||
/* USER CODE BEGIN Private defines */
|
||||
|
||||
/* USER CODE END Private defines */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __MAIN_H */
|
||||
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
58
Software/DisplayBoard/Core/Inc/ssd1306.h
Normal file
58
Software/DisplayBoard/Core/Inc/ssd1306.h
Normal file
@ -0,0 +1,58 @@
|
||||
/**
|
||||
* This Library is written and optimized by Olivier Van den Eede(4ilo) in 2016
|
||||
* for Stm32 Uc and HAL-i2c lib's.
|
||||
*
|
||||
* To use this library with ssd1306 oled display you will need to customize the defines below.
|
||||
*
|
||||
* This library uses 2 extra files (fonts.c/h).
|
||||
* In this files are 3 different fonts you can use:
|
||||
* - Font_7x10
|
||||
* - Font_11x18
|
||||
* - Font_16x26
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _SSD1306_H
|
||||
#define _SSD1306_H
|
||||
|
||||
#include "stm32f0xx_hal.h"
|
||||
#include "fonts.h"
|
||||
|
||||
// I2c address
|
||||
#define SSD1306_I2C_ADDR 0x78
|
||||
// SSD1306 width in pixels
|
||||
#define SSD1306_WIDTH 128
|
||||
// SSD1306 LCD height in pixels
|
||||
#define SSD1306_HEIGHT 64
|
||||
|
||||
|
||||
//
|
||||
// Enumeration for screen colors
|
||||
//
|
||||
typedef enum {
|
||||
Black = 0x00, // Black color, no pixel
|
||||
White = 0x01 //Pixel is set. Color depends on LCD
|
||||
} SSD1306_COLOR;
|
||||
|
||||
//
|
||||
// Struct to store transformations
|
||||
//
|
||||
typedef struct {
|
||||
uint16_t CurrentX;
|
||||
uint16_t CurrentY;
|
||||
uint8_t Inverted;
|
||||
uint8_t Initialized;
|
||||
} SSD1306_t;
|
||||
|
||||
//
|
||||
// Function definitions
|
||||
//
|
||||
uint8_t ssd1306_Init(I2C_HandleTypeDef *hi2c);
|
||||
void ssd1306_UpdateScreen(I2C_HandleTypeDef *hi2c);
|
||||
void ssd1306_Fill(SSD1306_COLOR color);
|
||||
void ssd1306_DrawPixel(uint8_t x, uint8_t y, SSD1306_COLOR color);
|
||||
char ssd1306_WriteChar(char ch, FontDef Font, SSD1306_COLOR color);
|
||||
char ssd1306_WriteString(char* str, FontDef Font, SSD1306_COLOR color);
|
||||
void ssd1306_SetCursor(uint8_t x, uint8_t y);
|
||||
|
||||
#endif // _SSD1306_H
|
322
Software/DisplayBoard/Core/Inc/stm32f0xx_hal_conf.h
Normal file
322
Software/DisplayBoard/Core/Inc/stm32f0xx_hal_conf.h
Normal file
@ -0,0 +1,322 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32f0xx_hal_conf.h
|
||||
* @brief HAL configuration file.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2016 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __STM32F0xx_HAL_CONF_H
|
||||
#define __STM32F0xx_HAL_CONF_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
|
||||
/* ########################## Module Selection ############################## */
|
||||
/**
|
||||
* @brief This is the list of modules to be used in the HAL driver
|
||||
*/
|
||||
#define HAL_MODULE_ENABLED
|
||||
#define HAL_ADC_MODULE_ENABLED
|
||||
/*#define HAL_CRYP_MODULE_ENABLED */
|
||||
/*#define HAL_CAN_MODULE_ENABLED */
|
||||
/*#define HAL_CEC_MODULE_ENABLED */
|
||||
/*#define HAL_COMP_MODULE_ENABLED */
|
||||
/*#define HAL_CRC_MODULE_ENABLED */
|
||||
/*#define HAL_CRYP_MODULE_ENABLED */
|
||||
/*#define HAL_TSC_MODULE_ENABLED */
|
||||
/*#define HAL_DAC_MODULE_ENABLED */
|
||||
/*#define HAL_I2S_MODULE_ENABLED */
|
||||
/*#define HAL_IWDG_MODULE_ENABLED */
|
||||
/*#define HAL_LCD_MODULE_ENABLED */
|
||||
/*#define HAL_LPTIM_MODULE_ENABLED */
|
||||
/*#define HAL_RNG_MODULE_ENABLED */
|
||||
/*#define HAL_RTC_MODULE_ENABLED */
|
||||
/*#define HAL_SPI_MODULE_ENABLED */
|
||||
#define HAL_TIM_MODULE_ENABLED
|
||||
#define HAL_UART_MODULE_ENABLED
|
||||
/*#define HAL_USART_MODULE_ENABLED */
|
||||
/*#define HAL_IRDA_MODULE_ENABLED */
|
||||
/*#define HAL_SMARTCARD_MODULE_ENABLED */
|
||||
/*#define HAL_SMBUS_MODULE_ENABLED */
|
||||
/*#define HAL_WWDG_MODULE_ENABLED */
|
||||
/*#define HAL_PCD_MODULE_ENABLED */
|
||||
#define HAL_CORTEX_MODULE_ENABLED
|
||||
#define HAL_DMA_MODULE_ENABLED
|
||||
#define HAL_FLASH_MODULE_ENABLED
|
||||
#define HAL_GPIO_MODULE_ENABLED
|
||||
#define HAL_EXTI_MODULE_ENABLED
|
||||
#define HAL_PWR_MODULE_ENABLED
|
||||
#define HAL_RCC_MODULE_ENABLED
|
||||
#define HAL_I2C_MODULE_ENABLED
|
||||
|
||||
/* ########################## HSE/HSI Values adaptation ##################### */
|
||||
/**
|
||||
* @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
|
||||
* This value is used by the RCC HAL module to compute the system frequency
|
||||
* (when HSE is used as system clock source, directly or through the PLL).
|
||||
*/
|
||||
#if !defined (HSE_VALUE)
|
||||
#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
|
||||
#endif /* HSE_VALUE */
|
||||
|
||||
/**
|
||||
* @brief In the following line adjust the External High Speed oscillator (HSE) Startup
|
||||
* Timeout value
|
||||
*/
|
||||
#if !defined (HSE_STARTUP_TIMEOUT)
|
||||
#define HSE_STARTUP_TIMEOUT ((uint32_t)100) /*!< Time out for HSE start up, in ms */
|
||||
#endif /* HSE_STARTUP_TIMEOUT */
|
||||
|
||||
/**
|
||||
* @brief Internal High Speed oscillator (HSI) value.
|
||||
* This value is used by the RCC HAL module to compute the system frequency
|
||||
* (when HSI is used as system clock source, directly or through the PLL).
|
||||
*/
|
||||
#if !defined (HSI_VALUE)
|
||||
#define HSI_VALUE ((uint32_t)8000000) /*!< Value of the Internal oscillator in Hz*/
|
||||
#endif /* HSI_VALUE */
|
||||
|
||||
/**
|
||||
* @brief In the following line adjust the Internal High Speed oscillator (HSI) Startup
|
||||
* Timeout value
|
||||
*/
|
||||
#if !defined (HSI_STARTUP_TIMEOUT)
|
||||
#define HSI_STARTUP_TIMEOUT ((uint32_t)5000) /*!< Time out for HSI start up */
|
||||
#endif /* HSI_STARTUP_TIMEOUT */
|
||||
|
||||
/**
|
||||
* @brief Internal High Speed oscillator for ADC (HSI14) value.
|
||||
*/
|
||||
#if !defined (HSI14_VALUE)
|
||||
#define HSI14_VALUE ((uint32_t)14000000) /*!< Value of the Internal High Speed oscillator for ADC in Hz.
|
||||
The real value may vary depending on the variations
|
||||
in voltage and temperature. */
|
||||
#endif /* HSI14_VALUE */
|
||||
|
||||
/**
|
||||
* @brief Internal High Speed oscillator for USB (HSI48) value.
|
||||
*/
|
||||
#if !defined (HSI48_VALUE)
|
||||
#define HSI48_VALUE ((uint32_t)48000000) /*!< Value of the Internal High Speed oscillator for USB in Hz.
|
||||
The real value may vary depending on the variations
|
||||
in voltage and temperature. */
|
||||
#endif /* HSI48_VALUE */
|
||||
|
||||
/**
|
||||
* @brief Internal Low Speed oscillator (LSI) value.
|
||||
*/
|
||||
#if !defined (LSI_VALUE)
|
||||
#define LSI_VALUE ((uint32_t)40000)
|
||||
#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz
|
||||
The real value may vary depending on the variations
|
||||
in voltage and temperature. */
|
||||
/**
|
||||
* @brief External Low Speed oscillator (LSI) value.
|
||||
*/
|
||||
#if !defined (LSE_VALUE)
|
||||
#define LSE_VALUE ((uint32_t)32768) /*!< Value of the External Low Speed oscillator in Hz */
|
||||
#endif /* LSE_VALUE */
|
||||
|
||||
/**
|
||||
* @brief Time out for LSE start up value in ms.
|
||||
*/
|
||||
#if !defined (LSE_STARTUP_TIMEOUT)
|
||||
#define LSE_STARTUP_TIMEOUT ((uint32_t)5000) /*!< Time out for LSE start up, in ms */
|
||||
#endif /* LSE_STARTUP_TIMEOUT */
|
||||
|
||||
/* Tip: To avoid modifying this file each time you need to use different HSE,
|
||||
=== you can define the HSE value in your toolchain compiler preprocessor. */
|
||||
|
||||
/* ########################### System Configuration ######################### */
|
||||
/**
|
||||
* @brief This is the HAL system configuration section
|
||||
*/
|
||||
#define VDD_VALUE ((uint32_t)3300) /*!< Value of VDD in mv */
|
||||
#define TICK_INT_PRIORITY ((uint32_t)0) /*!< tick interrupt priority (lowest by default) */
|
||||
/* Warning: Must be set to higher priority for HAL_Delay() */
|
||||
/* and HAL_GetTick() usage under interrupt context */
|
||||
#define USE_RTOS 0
|
||||
#define PREFETCH_ENABLE 1
|
||||
#define INSTRUCTION_CACHE_ENABLE 0
|
||||
#define DATA_CACHE_ENABLE 0
|
||||
#define USE_SPI_CRC 0U
|
||||
|
||||
#define USE_HAL_ADC_REGISTER_CALLBACKS 0U /* ADC register callback disabled */
|
||||
#define USE_HAL_CAN_REGISTER_CALLBACKS 0U /* CAN register callback disabled */
|
||||
#define USE_HAL_COMP_REGISTER_CALLBACKS 0U /* COMP register callback disabled */
|
||||
#define USE_HAL_CEC_REGISTER_CALLBACKS 0U /* CEC register callback disabled */
|
||||
#define USE_HAL_DAC_REGISTER_CALLBACKS 0U /* DAC register callback disabled */
|
||||
#define USE_HAL_I2C_REGISTER_CALLBACKS 0U /* I2C register callback disabled */
|
||||
#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U /* SMBUS register callback disabled */
|
||||
#define USE_HAL_UART_REGISTER_CALLBACKS 0U /* UART register callback disabled */
|
||||
#define USE_HAL_USART_REGISTER_CALLBACKS 0U /* USART register callback disabled */
|
||||
#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U /* IRDA register callback disabled */
|
||||
#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U /* SMARTCARD register callback disabled */
|
||||
#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U /* WWDG register callback disabled */
|
||||
#define USE_HAL_RTC_REGISTER_CALLBACKS 0U /* RTC register callback disabled */
|
||||
#define USE_HAL_SPI_REGISTER_CALLBACKS 0U /* SPI register callback disabled */
|
||||
#define USE_HAL_I2S_REGISTER_CALLBACKS 0U /* I2S register callback disabled */
|
||||
#define USE_HAL_TIM_REGISTER_CALLBACKS 0U /* TIM register callback disabled */
|
||||
#define USE_HAL_TSC_REGISTER_CALLBACKS 0U /* TSC register callback disabled */
|
||||
#define USE_HAL_PCD_REGISTER_CALLBACKS 0U /* PCD register callback disabled */
|
||||
|
||||
/* ########################## Assert Selection ############################## */
|
||||
/**
|
||||
* @brief Uncomment the line below to expanse the "assert_param" macro in the
|
||||
* HAL drivers code
|
||||
*/
|
||||
/* #define USE_FULL_ASSERT 1U */
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
/**
|
||||
* @brief Include module's header file
|
||||
*/
|
||||
|
||||
#ifdef HAL_RCC_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_rcc.h"
|
||||
#endif /* HAL_RCC_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_GPIO_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_gpio.h"
|
||||
#endif /* HAL_GPIO_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_EXTI_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_exti.h"
|
||||
#endif /* HAL_EXTI_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_DMA_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_dma.h"
|
||||
#endif /* HAL_DMA_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_CORTEX_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_cortex.h"
|
||||
#endif /* HAL_CORTEX_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_ADC_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_adc.h"
|
||||
#endif /* HAL_ADC_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_CAN_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_can.h"
|
||||
#endif /* HAL_CAN_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_CEC_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_cec.h"
|
||||
#endif /* HAL_CEC_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_COMP_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_comp.h"
|
||||
#endif /* HAL_COMP_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_CRC_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_crc.h"
|
||||
#endif /* HAL_CRC_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_DAC_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_dac.h"
|
||||
#endif /* HAL_DAC_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_FLASH_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_flash.h"
|
||||
#endif /* HAL_FLASH_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_I2C_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_i2c.h"
|
||||
#endif /* HAL_I2C_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_I2S_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_i2s.h"
|
||||
#endif /* HAL_I2S_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_IRDA_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_irda.h"
|
||||
#endif /* HAL_IRDA_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_IWDG_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_iwdg.h"
|
||||
#endif /* HAL_IWDG_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_PCD_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_pcd.h"
|
||||
#endif /* HAL_PCD_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_PWR_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_pwr.h"
|
||||
#endif /* HAL_PWR_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_RTC_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_rtc.h"
|
||||
#endif /* HAL_RTC_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_SMARTCARD_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_smartcard.h"
|
||||
#endif /* HAL_SMARTCARD_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_SMBUS_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_smbus.h"
|
||||
#endif /* HAL_SMBUS_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_SPI_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_spi.h"
|
||||
#endif /* HAL_SPI_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_TIM_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_tim.h"
|
||||
#endif /* HAL_TIM_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_TSC_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_tsc.h"
|
||||
#endif /* HAL_TSC_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_UART_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_uart.h"
|
||||
#endif /* HAL_UART_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_USART_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_usart.h"
|
||||
#endif /* HAL_USART_MODULE_ENABLED */
|
||||
|
||||
#ifdef HAL_WWDG_MODULE_ENABLED
|
||||
#include "stm32f0xx_hal_wwdg.h"
|
||||
#endif /* HAL_WWDG_MODULE_ENABLED */
|
||||
|
||||
/* Exported macro ------------------------------------------------------------*/
|
||||
#ifdef USE_FULL_ASSERT
|
||||
/**
|
||||
* @brief The assert_param macro is used for function's parameters check.
|
||||
* @param expr If expr is false, it calls assert_failed function
|
||||
* which reports the name of the source file and the source
|
||||
* line number of the call that failed.
|
||||
* If expr is true, it returns no value.
|
||||
* @retval None
|
||||
*/
|
||||
#define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
|
||||
/* Exported functions ------------------------------------------------------- */
|
||||
void assert_failed(uint8_t* file, uint32_t line);
|
||||
#else
|
||||
#define assert_param(expr) ((void)0U)
|
||||
#endif /* USE_FULL_ASSERT */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __STM32F0xx_HAL_CONF_H */
|
||||
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
73
Software/DisplayBoard/Core/Inc/stm32f0xx_it.h
Normal file
73
Software/DisplayBoard/Core/Inc/stm32f0xx_it.h
Normal file
@ -0,0 +1,73 @@
|
||||
/* USER CODE BEGIN Header */
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32f0xx_it.h
|
||||
* @brief This file contains the headers of the interrupt handlers.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2021 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __STM32F0xx_IT_H
|
||||
#define __STM32F0xx_IT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Includes */
|
||||
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN ET */
|
||||
|
||||
/* USER CODE END ET */
|
||||
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/* USER CODE BEGIN EC */
|
||||
|
||||
/* USER CODE END EC */
|
||||
|
||||
/* Exported macro ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN EM */
|
||||
|
||||
/* USER CODE END EM */
|
||||
|
||||
/* Exported functions prototypes ---------------------------------------------*/
|
||||
void NMI_Handler(void);
|
||||
void HardFault_Handler(void);
|
||||
void SVC_Handler(void);
|
||||
void PendSV_Handler(void);
|
||||
void SysTick_Handler(void);
|
||||
void EXTI0_1_IRQHandler(void);
|
||||
void EXTI2_3_IRQHandler(void);
|
||||
void DMA1_Channel2_3_IRQHandler(void);
|
||||
void TIM3_IRQHandler(void);
|
||||
void TIM6_IRQHandler(void);
|
||||
void TIM14_IRQHandler(void);
|
||||
void I2C1_IRQHandler(void);
|
||||
void USART1_IRQHandler(void);
|
||||
/* USER CODE BEGIN EFP */
|
||||
|
||||
/* USER CODE END EFP */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __STM32F0xx_IT_H */
|
||||
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
301
Software/DisplayBoard/Core/Src/fonts.c
Normal file
301
Software/DisplayBoard/Core/Src/fonts.c
Normal file
@ -0,0 +1,301 @@
|
||||
#include "fonts.h"
|
||||
|
||||
// Bitmaps for 3 different fonts
|
||||
|
||||
static const uint16_t Font7x10 [] = {
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // sp
|
||||
0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0000, 0x1000, 0x0000, 0x0000, // !
|
||||
0x2800, 0x2800, 0x2800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // "
|
||||
0x2400, 0x2400, 0x7C00, 0x2400, 0x4800, 0x7C00, 0x4800, 0x4800, 0x0000, 0x0000, // #
|
||||
0x3800, 0x5400, 0x5000, 0x3800, 0x1400, 0x5400, 0x5400, 0x3800, 0x1000, 0x0000, // $
|
||||
0x2000, 0x5400, 0x5800, 0x3000, 0x2800, 0x5400, 0x1400, 0x0800, 0x0000, 0x0000, // %
|
||||
0x1000, 0x2800, 0x2800, 0x1000, 0x3400, 0x4800, 0x4800, 0x3400, 0x0000, 0x0000, // &
|
||||
0x1000, 0x1000, 0x1000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // '
|
||||
0x0800, 0x1000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1000, 0x0800, // (
|
||||
0x2000, 0x1000, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x1000, 0x2000, // )
|
||||
0x1000, 0x3800, 0x1000, 0x2800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // *
|
||||
0x0000, 0x0000, 0x1000, 0x1000, 0x7C00, 0x1000, 0x1000, 0x0000, 0x0000, 0x0000, // +
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x1000, 0x1000, // ,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3800, 0x0000, 0x0000, 0x0000, 0x0000, // -
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x0000, 0x0000, // .
|
||||
0x0800, 0x0800, 0x1000, 0x1000, 0x1000, 0x1000, 0x2000, 0x2000, 0x0000, 0x0000, // /
|
||||
0x3800, 0x4400, 0x4400, 0x5400, 0x4400, 0x4400, 0x4400, 0x3800, 0x0000, 0x0000, // 0
|
||||
0x1000, 0x3000, 0x5000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0000, 0x0000, // 1
|
||||
0x3800, 0x4400, 0x4400, 0x0400, 0x0800, 0x1000, 0x2000, 0x7C00, 0x0000, 0x0000, // 2
|
||||
0x3800, 0x4400, 0x0400, 0x1800, 0x0400, 0x0400, 0x4400, 0x3800, 0x0000, 0x0000, // 3
|
||||
0x0800, 0x1800, 0x2800, 0x2800, 0x4800, 0x7C00, 0x0800, 0x0800, 0x0000, 0x0000, // 4
|
||||
0x7C00, 0x4000, 0x4000, 0x7800, 0x0400, 0x0400, 0x4400, 0x3800, 0x0000, 0x0000, // 5
|
||||
0x3800, 0x4400, 0x4000, 0x7800, 0x4400, 0x4400, 0x4400, 0x3800, 0x0000, 0x0000, // 6
|
||||
0x7C00, 0x0400, 0x0800, 0x1000, 0x1000, 0x2000, 0x2000, 0x2000, 0x0000, 0x0000, // 7
|
||||
0x3800, 0x4400, 0x4400, 0x3800, 0x4400, 0x4400, 0x4400, 0x3800, 0x0000, 0x0000, // 8
|
||||
0x3800, 0x4400, 0x4400, 0x4400, 0x3C00, 0x0400, 0x4400, 0x3800, 0x0000, 0x0000, // 9
|
||||
0x0000, 0x0000, 0x1000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x0000, 0x0000, // :
|
||||
0x0000, 0x0000, 0x0000, 0x1000, 0x0000, 0x0000, 0x0000, 0x1000, 0x1000, 0x1000, // ;
|
||||
0x0000, 0x0000, 0x0C00, 0x3000, 0x4000, 0x3000, 0x0C00, 0x0000, 0x0000, 0x0000, // <
|
||||
0x0000, 0x0000, 0x0000, 0x7C00, 0x0000, 0x7C00, 0x0000, 0x0000, 0x0000, 0x0000, // =
|
||||
0x0000, 0x0000, 0x6000, 0x1800, 0x0400, 0x1800, 0x6000, 0x0000, 0x0000, 0x0000, // >
|
||||
0x3800, 0x4400, 0x0400, 0x0800, 0x1000, 0x1000, 0x0000, 0x1000, 0x0000, 0x0000, // ?
|
||||
0x3800, 0x4400, 0x4C00, 0x5400, 0x5C00, 0x4000, 0x4000, 0x3800, 0x0000, 0x0000, // @
|
||||
0x1000, 0x2800, 0x2800, 0x2800, 0x2800, 0x7C00, 0x4400, 0x4400, 0x0000, 0x0000, // A
|
||||
0x7800, 0x4400, 0x4400, 0x7800, 0x4400, 0x4400, 0x4400, 0x7800, 0x0000, 0x0000, // B
|
||||
0x3800, 0x4400, 0x4000, 0x4000, 0x4000, 0x4000, 0x4400, 0x3800, 0x0000, 0x0000, // C
|
||||
0x7000, 0x4800, 0x4400, 0x4400, 0x4400, 0x4400, 0x4800, 0x7000, 0x0000, 0x0000, // D
|
||||
0x7C00, 0x4000, 0x4000, 0x7C00, 0x4000, 0x4000, 0x4000, 0x7C00, 0x0000, 0x0000, // E
|
||||
0x7C00, 0x4000, 0x4000, 0x7800, 0x4000, 0x4000, 0x4000, 0x4000, 0x0000, 0x0000, // F
|
||||
0x3800, 0x4400, 0x4000, 0x4000, 0x5C00, 0x4400, 0x4400, 0x3800, 0x0000, 0x0000, // G
|
||||
0x4400, 0x4400, 0x4400, 0x7C00, 0x4400, 0x4400, 0x4400, 0x4400, 0x0000, 0x0000, // H
|
||||
0x3800, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x3800, 0x0000, 0x0000, // I
|
||||
0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x4400, 0x3800, 0x0000, 0x0000, // J
|
||||
0x4400, 0x4800, 0x5000, 0x6000, 0x5000, 0x4800, 0x4800, 0x4400, 0x0000, 0x0000, // K
|
||||
0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x7C00, 0x0000, 0x0000, // L
|
||||
0x4400, 0x6C00, 0x6C00, 0x5400, 0x4400, 0x4400, 0x4400, 0x4400, 0x0000, 0x0000, // M
|
||||
0x4400, 0x6400, 0x6400, 0x5400, 0x5400, 0x4C00, 0x4C00, 0x4400, 0x0000, 0x0000, // N
|
||||
0x3800, 0x4400, 0x4400, 0x4400, 0x4400, 0x4400, 0x4400, 0x3800, 0x0000, 0x0000, // O
|
||||
0x7800, 0x4400, 0x4400, 0x4400, 0x7800, 0x4000, 0x4000, 0x4000, 0x0000, 0x0000, // P
|
||||
0x3800, 0x4400, 0x4400, 0x4400, 0x4400, 0x4400, 0x5400, 0x3800, 0x0400, 0x0000, // Q
|
||||
0x7800, 0x4400, 0x4400, 0x4400, 0x7800, 0x4800, 0x4800, 0x4400, 0x0000, 0x0000, // R
|
||||
0x3800, 0x4400, 0x4000, 0x3000, 0x0800, 0x0400, 0x4400, 0x3800, 0x0000, 0x0000, // S
|
||||
0x7C00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0000, 0x0000, // T
|
||||
0x4400, 0x4400, 0x4400, 0x4400, 0x4400, 0x4400, 0x4400, 0x3800, 0x0000, 0x0000, // U
|
||||
0x4400, 0x4400, 0x4400, 0x2800, 0x2800, 0x2800, 0x1000, 0x1000, 0x0000, 0x0000, // V
|
||||
0x4400, 0x4400, 0x5400, 0x5400, 0x5400, 0x6C00, 0x2800, 0x2800, 0x0000, 0x0000, // W
|
||||
0x4400, 0x2800, 0x2800, 0x1000, 0x1000, 0x2800, 0x2800, 0x4400, 0x0000, 0x0000, // X
|
||||
0x4400, 0x4400, 0x2800, 0x2800, 0x1000, 0x1000, 0x1000, 0x1000, 0x0000, 0x0000, // Y
|
||||
0x7C00, 0x0400, 0x0800, 0x1000, 0x1000, 0x2000, 0x4000, 0x7C00, 0x0000, 0x0000, // Z
|
||||
0x1800, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1800, // [
|
||||
0x2000, 0x2000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0800, 0x0800, 0x0000, 0x0000, /* \ */
|
||||
0x3000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x3000, // ]
|
||||
0x1000, 0x2800, 0x2800, 0x4400, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // ^
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFE00, // _
|
||||
0x2000, 0x1000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // `
|
||||
0x0000, 0x0000, 0x3800, 0x4400, 0x3C00, 0x4400, 0x4C00, 0x3400, 0x0000, 0x0000, // a
|
||||
0x4000, 0x4000, 0x5800, 0x6400, 0x4400, 0x4400, 0x6400, 0x5800, 0x0000, 0x0000, // b
|
||||
0x0000, 0x0000, 0x3800, 0x4400, 0x4000, 0x4000, 0x4400, 0x3800, 0x0000, 0x0000, // c
|
||||
0x0400, 0x0400, 0x3400, 0x4C00, 0x4400, 0x4400, 0x4C00, 0x3400, 0x0000, 0x0000, // d
|
||||
0x0000, 0x0000, 0x3800, 0x4400, 0x7C00, 0x4000, 0x4400, 0x3800, 0x0000, 0x0000, // e
|
||||
0x0C00, 0x1000, 0x7C00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0000, 0x0000, // f
|
||||
0x0000, 0x0000, 0x3400, 0x4C00, 0x4400, 0x4400, 0x4C00, 0x3400, 0x0400, 0x7800, // g
|
||||
0x4000, 0x4000, 0x5800, 0x6400, 0x4400, 0x4400, 0x4400, 0x4400, 0x0000, 0x0000, // h
|
||||
0x1000, 0x0000, 0x7000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0000, 0x0000, // i
|
||||
0x1000, 0x0000, 0x7000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0xE000, // j
|
||||
0x4000, 0x4000, 0x4800, 0x5000, 0x6000, 0x5000, 0x4800, 0x4400, 0x0000, 0x0000, // k
|
||||
0x7000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0000, 0x0000, // l
|
||||
0x0000, 0x0000, 0x7800, 0x5400, 0x5400, 0x5400, 0x5400, 0x5400, 0x0000, 0x0000, // m
|
||||
0x0000, 0x0000, 0x5800, 0x6400, 0x4400, 0x4400, 0x4400, 0x4400, 0x0000, 0x0000, // n
|
||||
0x0000, 0x0000, 0x3800, 0x4400, 0x4400, 0x4400, 0x4400, 0x3800, 0x0000, 0x0000, // o
|
||||
0x0000, 0x0000, 0x5800, 0x6400, 0x4400, 0x4400, 0x6400, 0x5800, 0x4000, 0x4000, // p
|
||||
0x0000, 0x0000, 0x3400, 0x4C00, 0x4400, 0x4400, 0x4C00, 0x3400, 0x0400, 0x0400, // q
|
||||
0x0000, 0x0000, 0x5800, 0x6400, 0x4000, 0x4000, 0x4000, 0x4000, 0x0000, 0x0000, // r
|
||||
0x0000, 0x0000, 0x3800, 0x4400, 0x3000, 0x0800, 0x4400, 0x3800, 0x0000, 0x0000, // s
|
||||
0x2000, 0x2000, 0x7800, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x0000, 0x0000, // t
|
||||
0x0000, 0x0000, 0x4400, 0x4400, 0x4400, 0x4400, 0x4C00, 0x3400, 0x0000, 0x0000, // u
|
||||
0x0000, 0x0000, 0x4400, 0x4400, 0x2800, 0x2800, 0x2800, 0x1000, 0x0000, 0x0000, // v
|
||||
0x0000, 0x0000, 0x5400, 0x5400, 0x5400, 0x6C00, 0x2800, 0x2800, 0x0000, 0x0000, // w
|
||||
0x0000, 0x0000, 0x4400, 0x2800, 0x1000, 0x1000, 0x2800, 0x4400, 0x0000, 0x0000, // x
|
||||
0x0000, 0x0000, 0x4400, 0x4400, 0x2800, 0x2800, 0x1000, 0x1000, 0x1000, 0x6000, // y
|
||||
0x0000, 0x0000, 0x7C00, 0x0800, 0x1000, 0x2000, 0x4000, 0x7C00, 0x0000, 0x0000, // z
|
||||
0x1800, 0x1000, 0x1000, 0x1000, 0x2000, 0x2000, 0x1000, 0x1000, 0x1000, 0x1800, // {
|
||||
0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, // |
|
||||
0x3000, 0x1000, 0x1000, 0x1000, 0x0800, 0x0800, 0x1000, 0x1000, 0x1000, 0x3000, // }
|
||||
0x0000, 0x0000, 0x0000, 0x7400, 0x4C00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // ~
|
||||
};
|
||||
|
||||
static const uint16_t Font11x18 [] = {
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // sp
|
||||
0x0000, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0000, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, // !
|
||||
0x0000, 0x1B00, 0x1B00, 0x1B00, 0x1B00, 0x1B00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // "
|
||||
0x0000, 0x1980, 0x1980, 0x1980, 0x1980, 0x7FC0, 0x7FC0, 0x1980, 0x3300, 0x7FC0, 0x7FC0, 0x3300, 0x3300, 0x3300, 0x3300, 0x0000, 0x0000, 0x0000, // #
|
||||
0x0000, 0x1E00, 0x3F00, 0x7580, 0x6580, 0x7400, 0x3C00, 0x1E00, 0x0700, 0x0580, 0x6580, 0x6580, 0x7580, 0x3F00, 0x1E00, 0x0400, 0x0400, 0x0000, // $
|
||||
0x0000, 0x7000, 0xD800, 0xD840, 0xD8C0, 0xD980, 0x7300, 0x0600, 0x0C00, 0x1B80, 0x36C0, 0x66C0, 0x46C0, 0x06C0, 0x0380, 0x0000, 0x0000, 0x0000, // %
|
||||
0x0000, 0x1E00, 0x3F00, 0x3300, 0x3300, 0x3300, 0x1E00, 0x0C00, 0x3CC0, 0x66C0, 0x6380, 0x6180, 0x6380, 0x3EC0, 0x1C80, 0x0000, 0x0000, 0x0000, // &
|
||||
0x0000, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // '
|
||||
0x0080, 0x0100, 0x0300, 0x0600, 0x0600, 0x0400, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0400, 0x0600, 0x0600, 0x0300, 0x0100, 0x0080, // (
|
||||
0x2000, 0x1000, 0x1800, 0x0C00, 0x0C00, 0x0400, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0400, 0x0C00, 0x0C00, 0x1800, 0x1000, 0x2000, // )
|
||||
0x0000, 0x0C00, 0x2D00, 0x3F00, 0x1E00, 0x3300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // *
|
||||
0x0000, 0x0000, 0x0000, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0xFFC0, 0xFFC0, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // +
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0C00, 0x0C00, 0x0400, 0x0400, 0x0800, // ,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1E00, 0x1E00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // -
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, // .
|
||||
0x0000, 0x0300, 0x0300, 0x0300, 0x0600, 0x0600, 0x0600, 0x0600, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x1800, 0x1800, 0x1800, 0x0000, 0x0000, 0x0000, // /
|
||||
0x0000, 0x1E00, 0x3F00, 0x3300, 0x6180, 0x6180, 0x6180, 0x6D80, 0x6D80, 0x6180, 0x6180, 0x6180, 0x3300, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // 0
|
||||
0x0000, 0x0600, 0x0E00, 0x1E00, 0x3600, 0x2600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0000, 0x0000, 0x0000, // 1
|
||||
0x0000, 0x1E00, 0x3F00, 0x7380, 0x6180, 0x6180, 0x0180, 0x0300, 0x0600, 0x0C00, 0x1800, 0x3000, 0x6000, 0x7F80, 0x7F80, 0x0000, 0x0000, 0x0000, // 2
|
||||
0x0000, 0x1C00, 0x3E00, 0x6300, 0x6300, 0x0300, 0x0E00, 0x0E00, 0x0300, 0x0180, 0x0180, 0x6180, 0x7380, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // 3
|
||||
0x0000, 0x0600, 0x0E00, 0x0E00, 0x1E00, 0x1E00, 0x1600, 0x3600, 0x3600, 0x6600, 0x7F80, 0x7F80, 0x0600, 0x0600, 0x0600, 0x0000, 0x0000, 0x0000, // 4
|
||||
0x0000, 0x7F00, 0x7F00, 0x6000, 0x6000, 0x6000, 0x6E00, 0x7F00, 0x6380, 0x0180, 0x0180, 0x6180, 0x7380, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // 5
|
||||
0x0000, 0x1E00, 0x3F00, 0x3380, 0x6180, 0x6000, 0x6E00, 0x7F00, 0x7380, 0x6180, 0x6180, 0x6180, 0x3380, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // 6
|
||||
0x0000, 0x7F80, 0x7F80, 0x0180, 0x0300, 0x0300, 0x0600, 0x0600, 0x0C00, 0x0C00, 0x0C00, 0x0800, 0x1800, 0x1800, 0x1800, 0x0000, 0x0000, 0x0000, // 7
|
||||
0x0000, 0x1E00, 0x3F00, 0x6380, 0x6180, 0x6180, 0x2100, 0x1E00, 0x3F00, 0x6180, 0x6180, 0x6180, 0x6180, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // 8
|
||||
0x0000, 0x1E00, 0x3F00, 0x7300, 0x6180, 0x6180, 0x6180, 0x7380, 0x3F80, 0x1D80, 0x0180, 0x6180, 0x7300, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // 9
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, // :
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0C00, 0x0C00, 0x0400, 0x0400, 0x0800, // ;
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0080, 0x0380, 0x0E00, 0x3800, 0x6000, 0x3800, 0x0E00, 0x0380, 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // <
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7F80, 0x7F80, 0x0000, 0x0000, 0x7F80, 0x7F80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // =
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x4000, 0x7000, 0x1C00, 0x0700, 0x0180, 0x0700, 0x1C00, 0x7000, 0x4000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // >
|
||||
0x0000, 0x1F00, 0x3F80, 0x71C0, 0x60C0, 0x00C0, 0x01C0, 0x0380, 0x0700, 0x0E00, 0x0C00, 0x0C00, 0x0000, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, // ?
|
||||
0x0000, 0x1E00, 0x3F00, 0x3180, 0x7180, 0x6380, 0x6F80, 0x6D80, 0x6D80, 0x6F80, 0x6780, 0x6000, 0x3200, 0x3E00, 0x1C00, 0x0000, 0x0000, 0x0000, // @
|
||||
0x0000, 0x0E00, 0x0E00, 0x1B00, 0x1B00, 0x1B00, 0x1B00, 0x3180, 0x3180, 0x3F80, 0x3F80, 0x3180, 0x60C0, 0x60C0, 0x60C0, 0x0000, 0x0000, 0x0000, // A
|
||||
0x0000, 0x7C00, 0x7E00, 0x6300, 0x6300, 0x6300, 0x6300, 0x7E00, 0x7E00, 0x6300, 0x6180, 0x6180, 0x6380, 0x7F00, 0x7E00, 0x0000, 0x0000, 0x0000, // B
|
||||
0x0000, 0x1E00, 0x3F00, 0x3180, 0x6180, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6180, 0x3180, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // C
|
||||
0x0000, 0x7C00, 0x7F00, 0x6300, 0x6380, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6300, 0x6300, 0x7E00, 0x7C00, 0x0000, 0x0000, 0x0000, // D
|
||||
0x0000, 0x7F80, 0x7F80, 0x6000, 0x6000, 0x6000, 0x6000, 0x7F00, 0x7F00, 0x6000, 0x6000, 0x6000, 0x6000, 0x7F80, 0x7F80, 0x0000, 0x0000, 0x0000, // E
|
||||
0x0000, 0x7F80, 0x7F80, 0x6000, 0x6000, 0x6000, 0x6000, 0x7F00, 0x7F00, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x0000, 0x0000, 0x0000, // F
|
||||
0x0000, 0x1E00, 0x3F00, 0x3180, 0x6180, 0x6000, 0x6000, 0x6000, 0x6380, 0x6380, 0x6180, 0x6180, 0x3180, 0x3F80, 0x1E00, 0x0000, 0x0000, 0x0000, // G
|
||||
0x0000, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x7F80, 0x7F80, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x0000, 0x0000, 0x0000, // H
|
||||
0x0000, 0x3F00, 0x3F00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x3F00, 0x3F00, 0x0000, 0x0000, 0x0000, // I
|
||||
0x0000, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x6180, 0x6180, 0x7380, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // J
|
||||
0x0000, 0x60C0, 0x6180, 0x6300, 0x6600, 0x6600, 0x6C00, 0x7800, 0x7C00, 0x6600, 0x6600, 0x6300, 0x6180, 0x6180, 0x60C0, 0x0000, 0x0000, 0x0000, // K
|
||||
0x0000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x7F80, 0x7F80, 0x0000, 0x0000, 0x0000, // L
|
||||
0x0000, 0x71C0, 0x71C0, 0x7BC0, 0x7AC0, 0x6AC0, 0x6AC0, 0x6EC0, 0x64C0, 0x60C0, 0x60C0, 0x60C0, 0x60C0, 0x60C0, 0x60C0, 0x0000, 0x0000, 0x0000, // M
|
||||
0x0000, 0x7180, 0x7180, 0x7980, 0x7980, 0x7980, 0x6D80, 0x6D80, 0x6D80, 0x6580, 0x6780, 0x6780, 0x6780, 0x6380, 0x6380, 0x0000, 0x0000, 0x0000, // N
|
||||
0x0000, 0x1E00, 0x3F00, 0x3300, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x3300, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // O
|
||||
0x0000, 0x7E00, 0x7F00, 0x6380, 0x6180, 0x6180, 0x6180, 0x6380, 0x7F00, 0x7E00, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x0000, 0x0000, 0x0000, // P
|
||||
0x0000, 0x1E00, 0x3F00, 0x3300, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6580, 0x6780, 0x3300, 0x3F80, 0x1E40, 0x0000, 0x0000, 0x0000, // Q
|
||||
0x0000, 0x7E00, 0x7F00, 0x6380, 0x6180, 0x6180, 0x6380, 0x7F00, 0x7E00, 0x6600, 0x6300, 0x6300, 0x6180, 0x6180, 0x60C0, 0x0000, 0x0000, 0x0000, // R
|
||||
0x0000, 0x0E00, 0x1F00, 0x3180, 0x3180, 0x3000, 0x3800, 0x1E00, 0x0700, 0x0380, 0x6180, 0x6180, 0x3180, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // S
|
||||
0x0000, 0xFFC0, 0xFFC0, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, // T
|
||||
0x0000, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x7380, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // U
|
||||
0x0000, 0x60C0, 0x60C0, 0x60C0, 0x3180, 0x3180, 0x3180, 0x1B00, 0x1B00, 0x1B00, 0x1B00, 0x0E00, 0x0E00, 0x0E00, 0x0400, 0x0000, 0x0000, 0x0000, // V
|
||||
0x0000, 0xC0C0, 0xC0C0, 0xC0C0, 0xC0C0, 0xC0C0, 0xCCC0, 0x4C80, 0x4C80, 0x5E80, 0x5280, 0x5280, 0x7380, 0x6180, 0x6180, 0x0000, 0x0000, 0x0000, // W
|
||||
0x0000, 0xC0C0, 0x6080, 0x6180, 0x3300, 0x3B00, 0x1E00, 0x0C00, 0x0C00, 0x1E00, 0x1F00, 0x3B00, 0x7180, 0x6180, 0xC0C0, 0x0000, 0x0000, 0x0000, // X
|
||||
0x0000, 0xC0C0, 0x6180, 0x6180, 0x3300, 0x3300, 0x1E00, 0x1E00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, // Y
|
||||
0x0000, 0x3F80, 0x3F80, 0x0180, 0x0300, 0x0300, 0x0600, 0x0C00, 0x0C00, 0x1800, 0x1800, 0x3000, 0x6000, 0x7F80, 0x7F80, 0x0000, 0x0000, 0x0000, // Z
|
||||
0x0F00, 0x0F00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0F00, 0x0F00, // [
|
||||
0x0000, 0x1800, 0x1800, 0x1800, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0600, 0x0600, 0x0600, 0x0600, 0x0300, 0x0300, 0x0300, 0x0000, 0x0000, 0x0000, /* \ */
|
||||
0x1E00, 0x1E00, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x1E00, 0x1E00, // ]
|
||||
0x0000, 0x0C00, 0x0C00, 0x1E00, 0x1200, 0x3300, 0x3300, 0x6180, 0x6180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // ^
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFE0, 0x0000, // _
|
||||
0x0000, 0x3800, 0x1800, 0x0C00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // `
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1F00, 0x3F80, 0x6180, 0x0180, 0x1F80, 0x3F80, 0x6180, 0x6380, 0x7F80, 0x38C0, 0x0000, 0x0000, 0x0000, // a
|
||||
0x0000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6E00, 0x7F00, 0x7380, 0x6180, 0x6180, 0x6180, 0x6180, 0x7380, 0x7F00, 0x6E00, 0x0000, 0x0000, 0x0000, // b
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1E00, 0x3F00, 0x7380, 0x6180, 0x6000, 0x6000, 0x6180, 0x7380, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // c
|
||||
0x0000, 0x0180, 0x0180, 0x0180, 0x0180, 0x1D80, 0x3F80, 0x7380, 0x6180, 0x6180, 0x6180, 0x6180, 0x7380, 0x3F80, 0x1D80, 0x0000, 0x0000, 0x0000, // d
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1E00, 0x3F00, 0x7300, 0x6180, 0x7F80, 0x7F80, 0x6000, 0x7180, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // e
|
||||
0x0000, 0x07C0, 0x0FC0, 0x0C00, 0x0C00, 0x7F80, 0x7F80, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, // f
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x1D80, 0x3F80, 0x7380, 0x6180, 0x6180, 0x6180, 0x6180, 0x7380, 0x3F80, 0x1D80, 0x0180, 0x6380, 0x7F00, 0x3E00, // g
|
||||
0x0000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6F00, 0x7F80, 0x7180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x0000, 0x0000, 0x0000, // h
|
||||
0x0000, 0x0600, 0x0600, 0x0000, 0x0000, 0x3E00, 0x3E00, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0000, 0x0000, 0x0000, // i
|
||||
0x0600, 0x0600, 0x0000, 0x0000, 0x3E00, 0x3E00, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x4600, 0x7E00, 0x3C00, // j
|
||||
0x0000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6180, 0x6300, 0x6600, 0x6C00, 0x7C00, 0x7600, 0x6300, 0x6300, 0x6180, 0x60C0, 0x0000, 0x0000, 0x0000, // k
|
||||
0x0000, 0x3E00, 0x3E00, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0000, 0x0000, 0x0000, // l
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDD80, 0xFFC0, 0xCEC0, 0xCCC0, 0xCCC0, 0xCCC0, 0xCCC0, 0xCCC0, 0xCCC0, 0xCCC0, 0x0000, 0x0000, 0x0000, // m
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6F00, 0x7F80, 0x7180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x0000, 0x0000, 0x0000, // n
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1E00, 0x3F00, 0x7380, 0x6180, 0x6180, 0x6180, 0x6180, 0x7380, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // o
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x6E00, 0x7F00, 0x7380, 0x6180, 0x6180, 0x6180, 0x6180, 0x7380, 0x7F00, 0x6E00, 0x6000, 0x6000, 0x6000, 0x6000, // p
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x1D80, 0x3F80, 0x7380, 0x6180, 0x6180, 0x6180, 0x6180, 0x7380, 0x3F80, 0x1D80, 0x0180, 0x0180, 0x0180, 0x0180, // q
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6700, 0x3F80, 0x3900, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x0000, 0x0000, 0x0000, // r
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1E00, 0x3F80, 0x6180, 0x6000, 0x7F00, 0x3F80, 0x0180, 0x6180, 0x7F00, 0x1E00, 0x0000, 0x0000, 0x0000, // s
|
||||
0x0000, 0x0000, 0x0800, 0x1800, 0x1800, 0x7F00, 0x7F00, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1F80, 0x0F80, 0x0000, 0x0000, 0x0000, // t
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6380, 0x7F80, 0x3D80, 0x0000, 0x0000, 0x0000, // u
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x60C0, 0x3180, 0x3180, 0x3180, 0x1B00, 0x1B00, 0x1B00, 0x0E00, 0x0E00, 0x0600, 0x0000, 0x0000, 0x0000, // v
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDD80, 0xDD80, 0xDD80, 0x5500, 0x5500, 0x5500, 0x7700, 0x7700, 0x2200, 0x2200, 0x0000, 0x0000, 0x0000, // w
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6180, 0x3300, 0x3300, 0x1E00, 0x0C00, 0x0C00, 0x1E00, 0x3300, 0x3300, 0x6180, 0x0000, 0x0000, 0x0000, // x
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x6180, 0x6180, 0x3180, 0x3300, 0x3300, 0x1B00, 0x1B00, 0x1B00, 0x0E00, 0x0E00, 0x0E00, 0x1C00, 0x7C00, 0x7000, // y
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7FC0, 0x7FC0, 0x0180, 0x0300, 0x0600, 0x0C00, 0x1800, 0x3000, 0x7FC0, 0x7FC0, 0x0000, 0x0000, 0x0000, // z
|
||||
0x0380, 0x0780, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0E00, 0x1C00, 0x1C00, 0x0E00, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0780, 0x0380, // {
|
||||
0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, // |
|
||||
0x3800, 0x3C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0E00, 0x0700, 0x0700, 0x0E00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x3C00, 0x3800, // }
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3880, 0x7F80, 0x4700, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // ~
|
||||
};
|
||||
|
||||
static const uint16_t Font16x26 [] = {
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [ ]
|
||||
0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03C0,0x03C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x0000,0x0000,0x0000,0x03E0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [!]
|
||||
0x1E3C,0x1E3C,0x1E3C,0x1E3C,0x1E3C,0x1E3C,0x1E3C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = ["]
|
||||
0x01CE,0x03CE,0x03DE,0x039E,0x039C,0x079C,0x3FFF,0x7FFF,0x0738,0x0F38,0x0F78,0x0F78,0x0E78,0xFFFF,0xFFFF,0x1EF0,0x1CF0,0x1CE0,0x3CE0,0x3DE0,0x39E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [#]
|
||||
0x03FC,0x0FFE,0x1FEE,0x1EE0,0x1EE0,0x1EE0,0x1EE0,0x1FE0,0x0FE0,0x07E0,0x03F0,0x01FC,0x01FE,0x01FE,0x01FE,0x01FE,0x01FE,0x01FE,0x3DFE,0x3FFC,0x0FF0,0x01E0,0x01E0,0x0000,0x0000,0x0000, // Ascii = [$]
|
||||
0x3E03,0xF707,0xE78F,0xE78E,0xE39E,0xE3BC,0xE7B8,0xE7F8,0xF7F0,0x3FE0,0x01C0,0x03FF,0x07FF,0x07F3,0x0FF3,0x1EF3,0x3CF3,0x38F3,0x78F3,0xF07F,0xE03F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [%]
|
||||
0x07E0,0x0FF8,0x0F78,0x1F78,0x1F78,0x1F78,0x0F78,0x0FF0,0x0FE0,0x1F80,0x7FC3,0xFBC3,0xF3E7,0xF1F7,0xF0F7,0xF0FF,0xF07F,0xF83E,0x7C7F,0x3FFF,0x1FEF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [&]
|
||||
0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03C0,0x01C0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [']
|
||||
0x003F,0x007C,0x01F0,0x01E0,0x03C0,0x07C0,0x0780,0x0780,0x0F80,0x0F00,0x0F00,0x0F00,0x0F00,0x0F00,0x0F00,0x0F80,0x0780,0x0780,0x07C0,0x03C0,0x01E0,0x01F0,0x007C,0x003F,0x000F,0x0000, // Ascii = [(]
|
||||
0x7E00,0x1F00,0x07C0,0x03C0,0x01E0,0x01F0,0x00F0,0x00F0,0x00F8,0x0078,0x0078,0x0078,0x0078,0x0078,0x0078,0x00F8,0x00F0,0x00F0,0x01F0,0x01E0,0x03C0,0x07C0,0x1F00,0x7E00,0x7800,0x0000, // Ascii = [)]
|
||||
0x03E0,0x03C0,0x01C0,0x39CE,0x3FFF,0x3F7F,0x0320,0x0370,0x07F8,0x0F78,0x1F3C,0x0638,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [*]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0xFFFF,0xFFFF,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [+]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03E0,0x03E0,0x03E0,0x03E0,0x01E0,0x01E0,0x01E0,0x01C0,0x0380, // Ascii = [,]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3FFE,0x3FFE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [-]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03E0,0x03E0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [.]
|
||||
0x000F,0x000F,0x001E,0x001E,0x003C,0x003C,0x0078,0x0078,0x00F0,0x00F0,0x01E0,0x01E0,0x03C0,0x03C0,0x0780,0x0780,0x0F00,0x0F00,0x1E00,0x1E00,0x3C00,0x3C00,0x7800,0x7800,0xF000,0x0000, // Ascii = [/]
|
||||
0x07F0,0x0FF8,0x1F7C,0x3E3E,0x3C1E,0x7C1F,0x7C1F,0x780F,0x780F,0x780F,0x780F,0x780F,0x780F,0x780F,0x7C1F,0x7C1F,0x3C1E,0x3E3E,0x1F7C,0x0FF8,0x07F0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [0]
|
||||
0x00F0,0x07F0,0x3FF0,0x3FF0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x3FFF,0x3FFF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [1]
|
||||
0x0FE0,0x3FF8,0x3C7C,0x003C,0x003E,0x003E,0x003E,0x003C,0x003C,0x007C,0x00F8,0x01F0,0x03E0,0x07C0,0x0780,0x0F00,0x1E00,0x3E00,0x3C00,0x3FFE,0x3FFE,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [2]
|
||||
0x0FF0,0x1FF8,0x1C7C,0x003E,0x003E,0x003E,0x003C,0x003C,0x00F8,0x0FF0,0x0FF8,0x007C,0x003E,0x001E,0x001E,0x001E,0x001E,0x003E,0x1C7C,0x1FF8,0x1FE0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [3]
|
||||
0x0078,0x00F8,0x00F8,0x01F8,0x03F8,0x07F8,0x07F8,0x0F78,0x1E78,0x1E78,0x3C78,0x7878,0x7878,0xFFFF,0xFFFF,0x0078,0x0078,0x0078,0x0078,0x0078,0x0078,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [4]
|
||||
0x1FFC,0x1FFC,0x1FFC,0x1E00,0x1E00,0x1E00,0x1E00,0x1E00,0x1FE0,0x1FF8,0x00FC,0x007C,0x003E,0x003E,0x001E,0x003E,0x003E,0x003C,0x1C7C,0x1FF8,0x1FE0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [5]
|
||||
0x01FC,0x07FE,0x0F8E,0x1F00,0x1E00,0x3E00,0x3C00,0x3C00,0x3DF8,0x3FFC,0x7F3E,0x7E1F,0x3C0F,0x3C0F,0x3C0F,0x3C0F,0x3E0F,0x1E1F,0x1F3E,0x0FFC,0x03F0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [6]
|
||||
0x3FFF,0x3FFF,0x3FFF,0x000F,0x001E,0x001E,0x003C,0x0038,0x0078,0x00F0,0x00F0,0x01E0,0x01E0,0x03C0,0x03C0,0x0780,0x0F80,0x0F80,0x0F00,0x1F00,0x1F00,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [7]
|
||||
0x07F8,0x0FFC,0x1F3E,0x1E1E,0x3E1E,0x3E1E,0x1E1E,0x1F3C,0x0FF8,0x07F0,0x0FF8,0x1EFC,0x3E3E,0x3C1F,0x7C1F,0x7C0F,0x7C0F,0x3C1F,0x3F3E,0x1FFC,0x07F0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [8]
|
||||
0x07F0,0x0FF8,0x1E7C,0x3C3E,0x3C1E,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x3C1F,0x3E3F,0x1FFF,0x07EF,0x001F,0x001E,0x001E,0x003E,0x003C,0x38F8,0x3FF0,0x1FE0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [9]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03E0,0x03E0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03E0,0x03E0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [:]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03E0,0x03E0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03E0,0x03E0,0x03E0,0x03E0,0x01E0,0x01E0,0x01E0,0x03C0,0x0380, // Ascii = [;]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0003,0x000F,0x003F,0x00FC,0x03F0,0x0FC0,0x3F00,0xFE00,0x3F00,0x0FC0,0x03F0,0x00FC,0x003F,0x000F,0x0003,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [<]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFFFF,0xFFFF,0x0000,0x0000,0x0000,0xFFFF,0xFFFF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [=]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xE000,0xF800,0x7E00,0x1F80,0x07E0,0x01F8,0x007E,0x001F,0x007E,0x01F8,0x07E0,0x1F80,0x7E00,0xF800,0xE000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [>]
|
||||
0x1FF0,0x3FFC,0x383E,0x381F,0x381F,0x001E,0x001E,0x003C,0x0078,0x00F0,0x01E0,0x03C0,0x03C0,0x07C0,0x07C0,0x0000,0x0000,0x0000,0x07C0,0x07C0,0x07C0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [?]
|
||||
0x03F8,0x0FFE,0x1F1E,0x3E0F,0x3C7F,0x78FF,0x79EF,0x73C7,0xF3C7,0xF38F,0xF38F,0xF38F,0xF39F,0xF39F,0x73FF,0x7BFF,0x79F7,0x3C00,0x1F1C,0x0FFC,0x03F8,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [@]
|
||||
0x0000,0x0000,0x0000,0x03E0,0x03E0,0x07F0,0x07F0,0x07F0,0x0F78,0x0F78,0x0E7C,0x1E3C,0x1E3C,0x3C3E,0x3FFE,0x3FFF,0x781F,0x780F,0xF00F,0xF007,0xF007,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [A]
|
||||
0x0000,0x0000,0x0000,0x3FF8,0x3FFC,0x3C3E,0x3C1E,0x3C1E,0x3C1E,0x3C3E,0x3C7C,0x3FF0,0x3FF8,0x3C7E,0x3C1F,0x3C1F,0x3C0F,0x3C0F,0x3C1F,0x3FFE,0x3FF8,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [B]
|
||||
0x0000,0x0000,0x0000,0x01FF,0x07FF,0x1F87,0x3E00,0x3C00,0x7C00,0x7800,0x7800,0x7800,0x7800,0x7800,0x7C00,0x7C00,0x3E00,0x3F00,0x1F83,0x07FF,0x01FF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [C]
|
||||
0x0000,0x0000,0x0000,0x7FF0,0x7FFC,0x787E,0x781F,0x781F,0x780F,0x780F,0x780F,0x780F,0x780F,0x780F,0x780F,0x780F,0x781F,0x781E,0x787E,0x7FF8,0x7FE0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [D]
|
||||
0x0000,0x0000,0x0000,0x3FFF,0x3FFF,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3FFE,0x3FFE,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3FFF,0x3FFF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [E]
|
||||
0x0000,0x0000,0x0000,0x1FFF,0x1FFF,0x1E00,0x1E00,0x1E00,0x1E00,0x1E00,0x1E00,0x1FFF,0x1FFF,0x1E00,0x1E00,0x1E00,0x1E00,0x1E00,0x1E00,0x1E00,0x1E00,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [F]
|
||||
0x0000,0x0000,0x0000,0x03FE,0x0FFF,0x1F87,0x3E00,0x7C00,0x7C00,0x7800,0xF800,0xF800,0xF87F,0xF87F,0x780F,0x7C0F,0x7C0F,0x3E0F,0x1F8F,0x0FFF,0x03FE,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [G]
|
||||
0x0000,0x0000,0x0000,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7FFF,0x7FFF,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [H]
|
||||
0x0000,0x0000,0x0000,0x3FFF,0x3FFF,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x3FFF,0x3FFF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [I]
|
||||
0x0000,0x0000,0x0000,0x1FFC,0x1FFC,0x007C,0x007C,0x007C,0x007C,0x007C,0x007C,0x007C,0x007C,0x007C,0x007C,0x007C,0x0078,0x0078,0x38F8,0x3FF0,0x3FC0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [J]
|
||||
0x0000,0x0000,0x0000,0x3C1F,0x3C1E,0x3C3C,0x3C78,0x3CF0,0x3DE0,0x3FE0,0x3FC0,0x3F80,0x3FC0,0x3FE0,0x3DF0,0x3CF0,0x3C78,0x3C7C,0x3C3E,0x3C1F,0x3C0F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [K]
|
||||
0x0000,0x0000,0x0000,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3FFF,0x3FFF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [L]
|
||||
0x0000,0x0000,0x0000,0xF81F,0xFC1F,0xFC1F,0xFE3F,0xFE3F,0xFE3F,0xFF7F,0xFF77,0xFF77,0xF7F7,0xF7E7,0xF3E7,0xF3E7,0xF3C7,0xF007,0xF007,0xF007,0xF007,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [M]
|
||||
0x0000,0x0000,0x0000,0x7C0F,0x7C0F,0x7E0F,0x7F0F,0x7F0F,0x7F8F,0x7F8F,0x7FCF,0x7BEF,0x79EF,0x79FF,0x78FF,0x78FF,0x787F,0x783F,0x783F,0x781F,0x781F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [N]
|
||||
0x0000,0x0000,0x0000,0x07F0,0x1FFC,0x3E3E,0x7C1F,0x780F,0x780F,0xF80F,0xF80F,0xF80F,0xF80F,0xF80F,0xF80F,0x780F,0x780F,0x7C1F,0x3E3E,0x1FFC,0x07F0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [O]
|
||||
0x0000,0x0000,0x0000,0x3FFC,0x3FFF,0x3E1F,0x3E0F,0x3E0F,0x3E0F,0x3E0F,0x3E1F,0x3E3F,0x3FFC,0x3FF0,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [P]
|
||||
0x0000,0x0000,0x0000,0x07F0,0x1FFC,0x3E3E,0x7C1F,0x780F,0x780F,0xF80F,0xF80F,0xF80F,0xF80F,0xF80F,0xF80F,0x780F,0x780F,0x7C1F,0x3E3E,0x1FFC,0x07F8,0x007C,0x003F,0x000F,0x0003,0x0000, // Ascii = [Q]
|
||||
0x0000,0x0000,0x0000,0x3FF0,0x3FFC,0x3C7E,0x3C3E,0x3C1E,0x3C1E,0x3C3E,0x3C3C,0x3CFC,0x3FF0,0x3FE0,0x3DF0,0x3CF8,0x3C7C,0x3C3E,0x3C1E,0x3C1F,0x3C0F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [R]
|
||||
0x0000,0x0000,0x0000,0x07FC,0x1FFE,0x3E0E,0x3C00,0x3C00,0x3C00,0x3E00,0x1FC0,0x0FF8,0x03FE,0x007F,0x001F,0x000F,0x000F,0x201F,0x3C3E,0x3FFC,0x1FF0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [S]
|
||||
0x0000,0x0000,0x0000,0xFFFF,0xFFFF,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [T]
|
||||
0x0000,0x0000,0x0000,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x3C1E,0x3C1E,0x3E3E,0x1FFC,0x07F0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [U]
|
||||
0x0000,0x0000,0x0000,0xF007,0xF007,0xF807,0x780F,0x7C0F,0x3C1E,0x3C1E,0x3E1E,0x1E3C,0x1F3C,0x1F78,0x0F78,0x0FF8,0x07F0,0x07F0,0x07F0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [V]
|
||||
0x0000,0x0000,0x0000,0xE003,0xF003,0xF003,0xF007,0xF3E7,0xF3E7,0xF3E7,0x73E7,0x7BF7,0x7FF7,0x7FFF,0x7F7F,0x7F7F,0x7F7E,0x3F7E,0x3E3E,0x3E3E,0x3E3E,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [W]
|
||||
0x0000,0x0000,0x0000,0xF807,0x7C0F,0x3E1E,0x3E3E,0x1F3C,0x0FF8,0x07F0,0x07E0,0x03E0,0x03E0,0x07F0,0x0FF8,0x0F7C,0x1E7C,0x3C3E,0x781F,0x780F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [X]
|
||||
0x0000,0x0000,0x0000,0xF807,0x7807,0x7C0F,0x3C1E,0x3E1E,0x1F3C,0x0F78,0x0FF8,0x07F0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [Y]
|
||||
0x0000,0x0000,0x0000,0x7FFF,0x7FFF,0x000F,0x001F,0x003E,0x007C,0x00F8,0x00F0,0x01E0,0x03E0,0x07C0,0x0F80,0x0F00,0x1E00,0x3E00,0x7C00,0x7FFF,0x7FFF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [Z]
|
||||
0x07FF,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x07FF,0x07FF,0x0000, // Ascii = [[]
|
||||
0x7800,0x7800,0x3C00,0x3C00,0x1E00,0x1E00,0x0F00,0x0F00,0x0780,0x0780,0x03C0,0x03C0,0x01E0,0x01E0,0x00F0,0x00F0,0x0078,0x0078,0x003C,0x003C,0x001E,0x001E,0x000F,0x000F,0x0007,0x0000, // Ascii = [\]
|
||||
0x7FF0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x7FF0,0x7FF0,0x0000, // Ascii = []]
|
||||
0x00C0,0x01C0,0x01C0,0x03E0,0x03E0,0x07F0,0x07F0,0x0778,0x0F78,0x0F38,0x1E3C,0x1E3C,0x3C1E,0x3C1E,0x380F,0x780F,0x7807,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [^]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFFFF,0xFFFF,0x0000,0x0000,0x0000, // Ascii = [_]
|
||||
0x00F0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [`]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0FF8,0x3FFC,0x3C7C,0x003E,0x003E,0x003E,0x07FE,0x1FFE,0x3E3E,0x7C3E,0x783E,0x7C3E,0x7C7E,0x3FFF,0x1FCF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [a]
|
||||
0x3C00,0x3C00,0x3C00,0x3C00,0x3C00,0x3C00,0x3DF8,0x3FFE,0x3F3E,0x3E1F,0x3C0F,0x3C0F,0x3C0F,0x3C0F,0x3C0F,0x3C0F,0x3C1F,0x3C1E,0x3F3E,0x3FFC,0x3BF0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [b]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03FE,0x0FFF,0x1F87,0x3E00,0x3E00,0x3C00,0x7C00,0x7C00,0x7C00,0x3C00,0x3E00,0x3E00,0x1F87,0x0FFF,0x03FE,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [c]
|
||||
0x001F,0x001F,0x001F,0x001F,0x001F,0x001F,0x07FF,0x1FFF,0x3E3F,0x3C1F,0x7C1F,0x7C1F,0x7C1F,0x781F,0x781F,0x7C1F,0x7C1F,0x3C3F,0x3E7F,0x1FFF,0x0FDF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [d]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03F8,0x0FFC,0x1F3E,0x3E1E,0x3C1F,0x7C1F,0x7FFF,0x7FFF,0x7C00,0x7C00,0x3C00,0x3E00,0x1F07,0x0FFF,0x03FE,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [e]
|
||||
0x01FF,0x03E1,0x03C0,0x07C0,0x07C0,0x07C0,0x7FFF,0x7FFF,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [f]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07EF,0x1FFF,0x3E7F,0x3C1F,0x7C1F,0x7C1F,0x781F,0x781F,0x781F,0x7C1F,0x7C1F,0x3C3F,0x3E7F,0x1FFF,0x0FDF,0x001E,0x001E,0x001E,0x387C,0x3FF8, // Ascii = [g]
|
||||
0x3C00,0x3C00,0x3C00,0x3C00,0x3C00,0x3C00,0x3DFC,0x3FFE,0x3F9E,0x3F1F,0x3E1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [h]
|
||||
0x01F0,0x01F0,0x0000,0x0000,0x0000,0x0000,0x7FE0,0x7FE0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [i]
|
||||
0x00F8,0x00F8,0x0000,0x0000,0x0000,0x0000,0x3FF8,0x3FF8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F0,0x71F0,0x7FE0, // Ascii = [j]
|
||||
0x3C00,0x3C00,0x3C00,0x3C00,0x3C00,0x3C00,0x3C1F,0x3C3E,0x3C7C,0x3CF8,0x3DF0,0x3DE0,0x3FC0,0x3FC0,0x3FE0,0x3DF0,0x3CF8,0x3C7C,0x3C3E,0x3C1F,0x3C1F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [k]
|
||||
0x7FF0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [l]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xF79E,0xFFFF,0xFFFF,0xFFFF,0xFBE7,0xF9E7,0xF1C7,0xF1C7,0xF1C7,0xF1C7,0xF1C7,0xF1C7,0xF1C7,0xF1C7,0xF1C7,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [m]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3DFC,0x3FFE,0x3F9E,0x3F1F,0x3E1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [n]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07F0,0x1FFC,0x3E3E,0x3C1F,0x7C1F,0x780F,0x780F,0x780F,0x780F,0x780F,0x7C1F,0x3C1F,0x3E3E,0x1FFC,0x07F0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [o]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3DF8,0x3FFE,0x3F3E,0x3E1F,0x3C0F,0x3C0F,0x3C0F,0x3C0F,0x3C0F,0x3C0F,0x3C1F,0x3E1E,0x3F3E,0x3FFC,0x3FF8,0x3C00,0x3C00,0x3C00,0x3C00,0x3C00, // Ascii = [p]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07EE,0x1FFE,0x3E7E,0x3C1E,0x7C1E,0x781E,0x781E,0x781E,0x781E,0x781E,0x7C1E,0x7C3E,0x3E7E,0x1FFE,0x0FDE,0x001E,0x001E,0x001E,0x001E,0x001E, // Ascii = [q]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x1F7F,0x1FFF,0x1FE7,0x1FC7,0x1F87,0x1F00,0x1F00,0x1F00,0x1F00,0x1F00,0x1F00,0x1F00,0x1F00,0x1F00,0x1F00,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [r]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07FC,0x1FFE,0x1E0E,0x3E00,0x3E00,0x3F00,0x1FE0,0x07FC,0x00FE,0x003E,0x001E,0x001E,0x3C3E,0x3FFC,0x1FF0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [s]
|
||||
0x0000,0x0000,0x0000,0x0780,0x0780,0x0780,0x7FFF,0x7FFF,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x07C0,0x03FF,0x01FF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [t]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3C1E,0x3C1E,0x3C1E,0x3C1E,0x3C1E,0x3C1E,0x3C1E,0x3C1E,0x3C1E,0x3C1E,0x3C3E,0x3C7E,0x3EFE,0x1FFE,0x0FDE,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [u]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xF007,0x780F,0x780F,0x3C1E,0x3C1E,0x3E1E,0x1E3C,0x1E3C,0x0F78,0x0F78,0x0FF0,0x07F0,0x07F0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [v]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xF003,0xF1E3,0xF3E3,0xF3E7,0xF3F7,0xF3F7,0x7FF7,0x7F77,0x7F7F,0x7F7F,0x7F7F,0x3E3E,0x3E3E,0x3E3E,0x3E3E,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [w]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7C0F,0x3E1E,0x3E3C,0x1F3C,0x0FF8,0x07F0,0x07F0,0x03E0,0x07F0,0x07F8,0x0FF8,0x1E7C,0x3E3E,0x3C1F,0x781F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [x]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xF807,0x780F,0x7C0F,0x3C1E,0x3C1E,0x1E3C,0x1E3C,0x1F3C,0x0F78,0x0FF8,0x07F0,0x07F0,0x03E0,0x03E0,0x03C0,0x03C0,0x03C0,0x0780,0x0F80,0x7F00, // Ascii = [y]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3FFF,0x3FFF,0x001F,0x003E,0x007C,0x00F8,0x01F0,0x03E0,0x07C0,0x0F80,0x1F00,0x1E00,0x3C00,0x7FFF,0x7FFF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [z]
|
||||
0x01FE,0x03E0,0x03C0,0x03C0,0x03C0,0x03C0,0x01E0,0x01E0,0x01E0,0x01C0,0x03C0,0x3F80,0x3F80,0x03C0,0x01C0,0x01E0,0x01E0,0x01E0,0x03C0,0x03C0,0x03C0,0x03C0,0x03E0,0x01FE,0x007E,0x0000, // Ascii = [{]
|
||||
0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x0000, // Ascii = [|]
|
||||
0x3FC0,0x03E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01C0,0x03C0,0x03C0,0x01C0,0x01E0,0x00FE,0x00FE,0x01E0,0x01C0,0x03C0,0x03C0,0x01C0,0x01E0,0x01E0,0x01E0,0x01E0,0x03E0,0x3FC0,0x3F00,0x0000, // Ascii = [}]
|
||||
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3F07,0x7FC7,0x73E7,0xF1FF,0xF07E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [~]
|
||||
};
|
||||
|
||||
FontDef Font_7x10 = {7,10,Font7x10};
|
||||
FontDef Font_11x18 = {11,18,Font11x18};
|
||||
FontDef Font_16x26 = {16,26,Font16x26};
|
854
Software/DisplayBoard/Core/Src/main.c
Normal file
854
Software/DisplayBoard/Core/Src/main.c
Normal file
@ -0,0 +1,854 @@
|
||||
/* USER CODE BEGIN Header */
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file : main.c
|
||||
* @brief : Main program body
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2021 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "main.h"
|
||||
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Includes */
|
||||
#include "ssd1306.h"
|
||||
#include "fonts.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PTD */
|
||||
|
||||
/* USER CODE END PTD */
|
||||
|
||||
/* Private define ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PD */
|
||||
/* USER CODE END PD */
|
||||
|
||||
/* Private macro -------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PM */
|
||||
|
||||
/* USER CODE END PM */
|
||||
|
||||
/* Private variables ---------------------------------------------------------*/
|
||||
ADC_HandleTypeDef hadc;
|
||||
|
||||
I2C_HandleTypeDef hi2c1;
|
||||
DMA_HandleTypeDef hdma_i2c1_tx;
|
||||
|
||||
TIM_HandleTypeDef htim3;
|
||||
TIM_HandleTypeDef htim6;
|
||||
TIM_HandleTypeDef htim14;
|
||||
|
||||
UART_HandleTypeDef huart1;
|
||||
DMA_HandleTypeDef hdma_usart1_rx;
|
||||
|
||||
/* USER CODE BEGIN PV */
|
||||
int lastFuelGaugeCount = 5;
|
||||
int tstCnt = 0;
|
||||
int cnt = 1;
|
||||
int resetTimer = 0;
|
||||
uint32_t lastRpmPulseTimCnt = 0;
|
||||
uint32_t lastSpdPulseTimCnt = 0;
|
||||
int rpm, speed;
|
||||
float trip = 0;
|
||||
float all_kms = 0;
|
||||
float battVoltage = 0;
|
||||
float fuelLevel = 0;
|
||||
int battVoltageADC = 0;
|
||||
int fuelLevelADC = 0;
|
||||
uint32_t avgRpmTime = 0;
|
||||
uint32_t avgSpdTime = 0;
|
||||
uint32_t rpmSamples[60];
|
||||
int rpmSamplesIndex = 0;
|
||||
uint32_t spdSamples[60];
|
||||
int spdSamplesIndex = 0;
|
||||
/* USER CODE END PV */
|
||||
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
void SystemClock_Config(void);
|
||||
static void MX_GPIO_Init(void);
|
||||
static void MX_DMA_Init(void);
|
||||
static void MX_I2C1_Init(void);
|
||||
static void MX_ADC_Init(void);
|
||||
static void MX_TIM3_Init(void);
|
||||
static void MX_TIM14_Init(void);
|
||||
static void MX_USART1_UART_Init(void);
|
||||
static void MX_TIM6_Init(void);
|
||||
/* USER CODE BEGIN PFP */
|
||||
void FuelGauge(int);
|
||||
void MultiChannelADC(ADC_HandleTypeDef*, uint32_t*, uint8_t);
|
||||
/* USER CODE END PFP */
|
||||
|
||||
/* Private user code ---------------------------------------------------------*/
|
||||
/* USER CODE BEGIN 0 */
|
||||
|
||||
/* USER CODE END 0 */
|
||||
|
||||
/**
|
||||
* @brief The application entry point.
|
||||
* @retval int
|
||||
*/
|
||||
int main(void)
|
||||
{
|
||||
/* USER CODE BEGIN 1 */
|
||||
|
||||
/* USER CODE END 1 */
|
||||
|
||||
/* MCU Configuration--------------------------------------------------------*/
|
||||
|
||||
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
|
||||
HAL_Init();
|
||||
|
||||
/* USER CODE BEGIN Init */
|
||||
|
||||
/* USER CODE END Init */
|
||||
|
||||
/* Configure the system clock */
|
||||
SystemClock_Config();
|
||||
|
||||
/* USER CODE BEGIN SysInit */
|
||||
|
||||
/* USER CODE END SysInit */
|
||||
|
||||
/* Initialize all configured peripherals */
|
||||
MX_GPIO_Init();
|
||||
MX_DMA_Init();
|
||||
MX_I2C1_Init();
|
||||
MX_ADC_Init();
|
||||
MX_TIM3_Init();
|
||||
MX_TIM14_Init();
|
||||
MX_USART1_UART_Init();
|
||||
MX_TIM6_Init();
|
||||
/* USER CODE BEGIN 2 */
|
||||
TIM6->DIER |= 1 << 0;
|
||||
|
||||
if (ssd1306_Init(&hi2c1) != 0) {
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
ssd1306_Fill(Black);
|
||||
ssd1306_UpdateScreen(&hi2c1);
|
||||
|
||||
ssd1306_SetCursor(0, 23);
|
||||
ssd1306_WriteString("Motorcycle Monitor", Font_7x10, White);
|
||||
ssd1306_SetCursor(23, 45);
|
||||
ssd1306_WriteString("Ver: 1.0.0", Font_7x10, White);
|
||||
ssd1306_UpdateScreen(&hi2c1);
|
||||
HAL_Delay(1000);
|
||||
HAL_TIM_Base_Start_IT(&htim6);
|
||||
ssd1306_Fill(Black);
|
||||
|
||||
/* USER CODE END 2 */
|
||||
|
||||
/* Infinite loop */
|
||||
/* USER CODE BEGIN WHILE */
|
||||
while (1)
|
||||
{
|
||||
uint32_t ADCReadArr[2];
|
||||
|
||||
MultiChannelADC(&hadc, ADCReadArr, 2);
|
||||
|
||||
fuelLevelADC = ADCReadArr[0];
|
||||
battVoltageADC = ADCReadArr[1];
|
||||
|
||||
battVoltage = battVoltageADC*(V_REF/4096)*U_BATT_DIV_RATIO;
|
||||
fuelLevel = fuelLevelADC*(V_REF/4096)*FUEL_DIV_RATIO;
|
||||
|
||||
int fuelLevelStep = MAX_FUEL_U/5;
|
||||
if(fuelLevel < fuelLevelStep){
|
||||
FuelGauge(0);
|
||||
}
|
||||
else if(fuelLevel < fuelLevelStep*2){
|
||||
FuelGauge(1);
|
||||
}
|
||||
else if(fuelLevel < fuelLevelStep*3){
|
||||
FuelGauge(2);
|
||||
}
|
||||
else if(fuelLevel < fuelLevelStep*4){
|
||||
FuelGauge(3);
|
||||
}
|
||||
else{
|
||||
FuelGauge(4);
|
||||
}
|
||||
|
||||
if(resetTimer > 5){
|
||||
resetTimer = 0;
|
||||
ssd1306_SetCursor(0, 0);
|
||||
ssd1306_WriteString("0", Font_16x26, White);
|
||||
ssd1306_SetCursor(78, 0);
|
||||
ssd1306_WriteString("0", Font_16x26, White);
|
||||
ssd1306_UpdateScreen(&hi2c1);
|
||||
}
|
||||
|
||||
/* USER CODE END WHILE */
|
||||
|
||||
/* USER CODE BEGIN 3 */
|
||||
}
|
||||
/* USER CODE END 3 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief System Clock Configuration
|
||||
* @retval None
|
||||
*/
|
||||
void SystemClock_Config(void)
|
||||
{
|
||||
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
|
||||
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
|
||||
|
||||
/** Initializes the RCC Oscillators according to the specified parameters
|
||||
* in the RCC_OscInitTypeDef structure.
|
||||
*/
|
||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSI14;
|
||||
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
|
||||
RCC_OscInitStruct.HSI14State = RCC_HSI14_ON;
|
||||
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
|
||||
RCC_OscInitStruct.HSI14CalibrationValue = 16;
|
||||
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
|
||||
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
|
||||
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL12;
|
||||
RCC_OscInitStruct.PLL.PREDIV = RCC_PREDIV_DIV1;
|
||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/** Initializes the CPU, AHB and APB buses clocks
|
||||
*/
|
||||
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|
||||
|RCC_CLOCKTYPE_PCLK1;
|
||||
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
|
||||
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
|
||||
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
|
||||
|
||||
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1|RCC_PERIPHCLK_I2C1;
|
||||
PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK1;
|
||||
PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_HSI;
|
||||
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
HAL_RCC_MCOConfig(RCC_MCO, RCC_MCO1SOURCE_SYSCLK, RCC_MCODIV_1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief ADC Initialization Function
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
static void MX_ADC_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN ADC_Init 0 */
|
||||
|
||||
/* USER CODE END ADC_Init 0 */
|
||||
|
||||
ADC_ChannelConfTypeDef sConfig = {0};
|
||||
|
||||
/* USER CODE BEGIN ADC_Init 1 */
|
||||
|
||||
/* USER CODE END ADC_Init 1 */
|
||||
/** Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion)
|
||||
*/
|
||||
hadc.Instance = ADC1;
|
||||
hadc.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1;
|
||||
hadc.Init.Resolution = ADC_RESOLUTION_12B;
|
||||
hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT;
|
||||
hadc.Init.ScanConvMode = ADC_SCAN_DIRECTION_FORWARD;
|
||||
hadc.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
|
||||
hadc.Init.LowPowerAutoWait = DISABLE;
|
||||
hadc.Init.LowPowerAutoPowerOff = DISABLE;
|
||||
hadc.Init.ContinuousConvMode = DISABLE;
|
||||
hadc.Init.DiscontinuousConvMode = DISABLE;
|
||||
hadc.Init.ExternalTrigConv = ADC_SOFTWARE_START;
|
||||
hadc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
|
||||
hadc.Init.DMAContinuousRequests = DISABLE;
|
||||
hadc.Init.Overrun = ADC_OVR_DATA_PRESERVED;
|
||||
if (HAL_ADC_Init(&hadc) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/** Configure for the selected ADC regular channel to be converted.
|
||||
*/
|
||||
sConfig.Channel = ADC_CHANNEL_3;
|
||||
sConfig.Rank = ADC_RANK_CHANNEL_NUMBER;
|
||||
sConfig.SamplingTime = ADC_SAMPLETIME_239CYCLES_5;
|
||||
if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/** Configure for the selected ADC regular channel to be converted.
|
||||
*/
|
||||
sConfig.Channel = ADC_CHANNEL_5;
|
||||
if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN ADC_Init 2 */
|
||||
|
||||
/* USER CODE END ADC_Init 2 */
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief I2C1 Initialization Function
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
static void MX_I2C1_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN I2C1_Init 0 */
|
||||
|
||||
/* USER CODE END I2C1_Init 0 */
|
||||
|
||||
/* USER CODE BEGIN I2C1_Init 1 */
|
||||
|
||||
/* USER CODE END I2C1_Init 1 */
|
||||
hi2c1.Instance = I2C1;
|
||||
hi2c1.Init.Timing = 0x0000020B;
|
||||
hi2c1.Init.OwnAddress1 = 0;
|
||||
hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
|
||||
hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
|
||||
hi2c1.Init.OwnAddress2 = 0;
|
||||
hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
|
||||
hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
|
||||
hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
|
||||
if (HAL_I2C_Init(&hi2c1) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/** Configure Analogue filter
|
||||
*/
|
||||
if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/** Configure Digital filter
|
||||
*/
|
||||
if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN I2C1_Init 2 */
|
||||
|
||||
/* USER CODE END I2C1_Init 2 */
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TIM3 Initialization Function
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
static void MX_TIM3_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN TIM3_Init 0 */
|
||||
|
||||
/* USER CODE END TIM3_Init 0 */
|
||||
|
||||
TIM_ClockConfigTypeDef sClockSourceConfig = {0};
|
||||
TIM_MasterConfigTypeDef sMasterConfig = {0};
|
||||
TIM_IC_InitTypeDef sConfigIC = {0};
|
||||
|
||||
/* USER CODE BEGIN TIM3_Init 1 */
|
||||
|
||||
/* USER CODE END TIM3_Init 1 */
|
||||
htim3.Instance = TIM3;
|
||||
htim3.Init.Prescaler = 4799;
|
||||
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||
htim3.Init.Period = 10000;
|
||||
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||
htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||
if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
||||
if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
if (HAL_TIM_IC_Init(&htim3) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;
|
||||
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
|
||||
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
|
||||
sConfigIC.ICFilter = 0;
|
||||
if (HAL_TIM_IC_ConfigChannel(&htim3, &sConfigIC, TIM_CHANNEL_1) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN TIM3_Init 2 */
|
||||
|
||||
/* USER CODE END TIM3_Init 2 */
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TIM6 Initialization Function
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
static void MX_TIM6_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN TIM6_Init 0 */
|
||||
|
||||
/* USER CODE END TIM6_Init 0 */
|
||||
|
||||
/* USER CODE BEGIN TIM6_Init 1 */
|
||||
|
||||
/* USER CODE END TIM6_Init 1 */
|
||||
htim6.Instance = TIM6;
|
||||
htim6.Init.Prescaler = 47999;
|
||||
htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||
htim6.Init.Period = 1000;
|
||||
htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||
if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN TIM6_Init 2 */
|
||||
|
||||
/* USER CODE END TIM6_Init 2 */
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TIM14 Initialization Function
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
static void MX_TIM14_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN TIM14_Init 0 */
|
||||
|
||||
/* USER CODE END TIM14_Init 0 */
|
||||
|
||||
TIM_IC_InitTypeDef sConfigIC = {0};
|
||||
|
||||
/* USER CODE BEGIN TIM14_Init 1 */
|
||||
|
||||
/* USER CODE END TIM14_Init 1 */
|
||||
htim14.Instance = TIM14;
|
||||
htim14.Init.Prescaler = 4799;
|
||||
htim14.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||
htim14.Init.Period = 10000;
|
||||
htim14.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||
htim14.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||
if (HAL_TIM_Base_Init(&htim14) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
if (HAL_TIM_IC_Init(&htim14) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;
|
||||
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
|
||||
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
|
||||
sConfigIC.ICFilter = 0;
|
||||
if (HAL_TIM_IC_ConfigChannel(&htim14, &sConfigIC, TIM_CHANNEL_1) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN TIM14_Init 2 */
|
||||
|
||||
/* USER CODE END TIM14_Init 2 */
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief USART1 Initialization Function
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
static void MX_USART1_UART_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN USART1_Init 0 */
|
||||
|
||||
/* USER CODE END USART1_Init 0 */
|
||||
|
||||
/* USER CODE BEGIN USART1_Init 1 */
|
||||
|
||||
/* USER CODE END USART1_Init 1 */
|
||||
huart1.Instance = USART1;
|
||||
huart1.Init.BaudRate = 38400;
|
||||
huart1.Init.WordLength = UART_WORDLENGTH_8B;
|
||||
huart1.Init.StopBits = UART_STOPBITS_1;
|
||||
huart1.Init.Parity = UART_PARITY_NONE;
|
||||
huart1.Init.Mode = UART_MODE_TX_RX;
|
||||
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||||
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
|
||||
huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
|
||||
huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
|
||||
if (HAL_UART_Init(&huart1) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN USART1_Init 2 */
|
||||
|
||||
/* USER CODE END USART1_Init 2 */
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable DMA controller clock
|
||||
*/
|
||||
static void MX_DMA_Init(void)
|
||||
{
|
||||
|
||||
/* DMA controller clock enable */
|
||||
__HAL_RCC_DMA1_CLK_ENABLE();
|
||||
|
||||
/* DMA interrupt init */
|
||||
/* DMA1_Channel2_3_IRQn interrupt configuration */
|
||||
HAL_NVIC_SetPriority(DMA1_Channel2_3_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(DMA1_Channel2_3_IRQn);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief GPIO Initialization Function
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
static void MX_GPIO_Init(void)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||
|
||||
/* GPIO Ports Clock Enable */
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pins : GPInput1_Pin GPInput2_Pin */
|
||||
GPIO_InitStruct.Pin = GPInput1_Pin|GPInput2_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pin : LED_Pin */
|
||||
GPIO_InitStruct.Pin = LED_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(LED_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/* EXTI interrupt init*/
|
||||
HAL_NVIC_SetPriority(EXTI0_1_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(EXTI0_1_IRQn);
|
||||
|
||||
HAL_NVIC_SetPriority(EXTI2_3_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(EXTI2_3_IRQn);
|
||||
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN 4 */
|
||||
void FuelGauge(int barCount){
|
||||
int width = 64;
|
||||
int height = 32;
|
||||
|
||||
if(lastFuelGaugeCount != barCount){
|
||||
lastFuelGaugeCount = barCount;
|
||||
if(barCount == 0){
|
||||
for(int i = 0; i<width; i++){
|
||||
for(int j = 0; j < height; j++){
|
||||
ssd1306_DrawPixel(i,j+32, Black);
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = width/4; i<width/4+20; i++){
|
||||
for(int j = 0; j < height; j++){
|
||||
ssd1306_DrawPixel(i,j+32, White);
|
||||
}
|
||||
}
|
||||
for(int i = width/4+2; i<width/4+18; i++){
|
||||
for(int j = 2; j < height-20; j++){
|
||||
ssd1306_DrawPixel(i,j+32, Black);
|
||||
}
|
||||
}
|
||||
for(int i = 0; i < 3; i++){
|
||||
ssd1306_DrawPixel(36,50+i, White);
|
||||
}
|
||||
for(int i = 0; i < 3; i++){
|
||||
ssd1306_DrawPixel(37,50+i, White);
|
||||
}
|
||||
for(int i = 0; i < 3; i++){
|
||||
ssd1306_DrawPixel(38,50+i, White);
|
||||
}
|
||||
for(int i = 0; i < 3; i++){
|
||||
ssd1306_DrawPixel(39,50+i, White);
|
||||
}
|
||||
for(int i = 0; i < 3; i++){
|
||||
ssd1306_DrawPixel(40,51+i, White);
|
||||
}
|
||||
for(int i = 0; i < 6; i++){
|
||||
ssd1306_DrawPixel(41,52+i, White);
|
||||
}
|
||||
for(int i = 0; i < 6; i++){
|
||||
ssd1306_DrawPixel(42,53+i, White);
|
||||
}
|
||||
for(int i = 0; i < 3; i++){
|
||||
ssd1306_DrawPixel(43,56+i, White);
|
||||
}
|
||||
for(int i = 0; i < 18; i++){
|
||||
ssd1306_DrawPixel(44,40+i, White);
|
||||
}
|
||||
for(int i = 0; i < 16; i++){
|
||||
ssd1306_DrawPixel(45,41+i, White);
|
||||
}
|
||||
for(int i = 0; i < 2; i++){
|
||||
ssd1306_DrawPixel(43,39+i, White);
|
||||
}
|
||||
for(int i = 0; i < 2; i++){
|
||||
ssd1306_DrawPixel(42,38+i, White);
|
||||
}
|
||||
for(int i = 0; i < 2; i++){
|
||||
ssd1306_DrawPixel(41,37+i, White);
|
||||
}
|
||||
for(int i = 0; i < 2; i++){
|
||||
ssd1306_DrawPixel(40,36+i, White);
|
||||
}
|
||||
for(int i = 0; i < 2; i++){
|
||||
ssd1306_DrawPixel(39,35+i, White);
|
||||
}
|
||||
ssd1306_SetCursor(21, 45);
|
||||
ssd1306_WriteString("!", Font_11x18, Black);
|
||||
}
|
||||
if(barCount >= 1){
|
||||
for(int i = 0; i<width; i++){
|
||||
for(int j = 0; j < height; j++){
|
||||
ssd1306_DrawPixel(i,j+32, Black);
|
||||
}
|
||||
}
|
||||
for(int i = 0; i<width/4; i++){
|
||||
for(int j = 0; j < height/4; j++){
|
||||
ssd1306_DrawPixel(i,63-j, White);
|
||||
}
|
||||
}
|
||||
/*
|
||||
for(int i = width/4+1; i<width/2; i++){
|
||||
for(int j = 0; j < height/2; j++){
|
||||
ssd1306_DrawPixel(i,63-j, Black);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
if(barCount >= 2){
|
||||
for(int i = width/4+1; i<width/2; i++){
|
||||
for(int j = 0; j < height/2; j++){
|
||||
ssd1306_DrawPixel(i,63-j, White);
|
||||
}
|
||||
}
|
||||
for(int i = width/2+1; i<width-width/4; i++){
|
||||
for(int j = 0; j < height-height/4; j++){
|
||||
ssd1306_DrawPixel(i,63-j, Black);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(barCount >= 3){
|
||||
for(int i = width/2+1; i<width-width/4; i++){
|
||||
for(int j = 0; j < height-height/4; j++){
|
||||
ssd1306_DrawPixel(i,63-j, White);
|
||||
}
|
||||
}
|
||||
for(int i = width-width/4+1; i<width; i++){
|
||||
for(int j = 0; j < height; j++){
|
||||
ssd1306_DrawPixel(i,63-j, Black);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(barCount >= 4){
|
||||
for(int i = width-width/4+1; i<width; i++){
|
||||
for(int j = 0; j < height; j++){
|
||||
ssd1306_DrawPixel(i,63-j, White);
|
||||
}
|
||||
}
|
||||
}
|
||||
ssd1306_UpdateScreen(&hi2c1);
|
||||
}
|
||||
}
|
||||
|
||||
void MultiChannelADC(ADC_HandleTypeDef *hadc, uint32_t *outbuffer, uint8_t n_of_channels){
|
||||
HAL_ADC_Start(hadc);
|
||||
for(uint8_t i = 0; i<n_of_channels; i++){
|
||||
HAL_ADC_PollForConversion (hadc, 100);
|
||||
outbuffer[i] = HAL_ADC_GetValue(hadc);
|
||||
HAL_ADC_Stop(hadc);
|
||||
}
|
||||
}
|
||||
/*##############################################CALLBACKS##############################################*/
|
||||
|
||||
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim){
|
||||
//RPM - pulse = 100ns
|
||||
if(htim -> Instance == TIM3){
|
||||
uint32_t rpmTime;
|
||||
uint32_t RpmPulseTime = TIM3->CNT;
|
||||
|
||||
resetTimer = 0;
|
||||
|
||||
if(RpmPulseTime < lastRpmPulseTimCnt){
|
||||
rpmTime = (65535 + RpmPulseTime) - lastRpmPulseTimCnt;
|
||||
}
|
||||
else{
|
||||
rpmTime = RpmPulseTime - lastRpmPulseTimCnt;
|
||||
}
|
||||
rpmSamples[rpmSamplesIndex] = rpmTime;
|
||||
rpmSamplesIndex++;
|
||||
|
||||
if(rpmSamplesIndex == 60){
|
||||
rpmSamplesIndex = 0;
|
||||
|
||||
for(int i = 0; i < (sizeof(rpmSamples)/sizeof(rpmSamples[0])); i++){
|
||||
avgRpmTime += rpmSamples[i];
|
||||
}
|
||||
avgRpmTime /= (sizeof(rpmSamples)/sizeof(rpmSamples[0]));
|
||||
rpm = ((float)TIM3->ARR/(float)avgRpmTime)*60;
|
||||
char msg[4];
|
||||
sprintf(msg, "%d", rpm);
|
||||
|
||||
for(int i = 0; i<104; i++){
|
||||
for(int j = 0; j < 27; j++){
|
||||
ssd1306_DrawPixel(i,j, Black);
|
||||
}
|
||||
}
|
||||
|
||||
ssd1306_SetCursor(0, 0);
|
||||
ssd1306_WriteString(msg, Font_16x26, White);
|
||||
ssd1306_UpdateScreen(&hi2c1);
|
||||
}
|
||||
}
|
||||
//SPEED - pulse = 100ns
|
||||
if(htim -> Instance == TIM14){
|
||||
uint32_t spdTime;
|
||||
uint32_t SpdPulseTime = TIM14->CNT;
|
||||
|
||||
resetTimer = 0;
|
||||
trip += TIRE_CIRC_M/1000;
|
||||
all_kms += TIRE_CIRC_M/1000;
|
||||
|
||||
if(SpdPulseTime < lastSpdPulseTimCnt){
|
||||
spdTime = (65535 + SpdPulseTime) - lastSpdPulseTimCnt;
|
||||
}
|
||||
else{
|
||||
spdTime = SpdPulseTime - lastSpdPulseTimCnt;
|
||||
}
|
||||
spdSamples[spdSamplesIndex] = spdTime;
|
||||
spdSamplesIndex++;
|
||||
|
||||
if(spdSamplesIndex == 60){
|
||||
spdSamplesIndex = 0;
|
||||
|
||||
for(int i = 0; i < (sizeof(spdSamples)/sizeof(spdSamples[0])); i++){
|
||||
avgSpdTime += spdSamples[i];
|
||||
}
|
||||
avgSpdTime /= (sizeof(spdSamples)/sizeof(spdSamples[0]));
|
||||
speed = (TIRE_CIRC_M/1000)*(float)(((float)TIM14->ARR/(float)spdTime)*3600);
|
||||
char msg[4];
|
||||
sprintf(msg, "%d", rpm);
|
||||
|
||||
for(int i = 104; i<128; i++){
|
||||
for(int j = 0; j < 27; j++){
|
||||
ssd1306_DrawPixel(i,j, Black);
|
||||
}
|
||||
}
|
||||
|
||||
ssd1306_SetCursor(78, 0);
|
||||
ssd1306_WriteString(msg, Font_16x26, White);
|
||||
ssd1306_UpdateScreen(&hi2c1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){
|
||||
if(htim -> Instance == TIM6){
|
||||
char voltage[4];
|
||||
char trp[6];
|
||||
char km[6];
|
||||
|
||||
resetTimer++;
|
||||
sprintf(voltage, "%.1f", battVoltage);
|
||||
sprintf(trp, "%.1f", trip);
|
||||
sprintf(km, "%.1f", all_kms);
|
||||
|
||||
for(int i = 70; i<128; i++){
|
||||
for(int j = 27; j < 63; j++){
|
||||
ssd1306_DrawPixel(i,j, Black);
|
||||
}
|
||||
}
|
||||
ssd1306_SetCursor(70, 27);
|
||||
ssd1306_WriteString("U: ", Font_7x10, White);
|
||||
ssd1306_WriteString(voltage, Font_7x10, White);
|
||||
ssd1306_SetCursor(70+7*7, 27);
|
||||
ssd1306_WriteString("V", Font_7x10, White);
|
||||
ssd1306_SetCursor(70, 39);
|
||||
ssd1306_WriteString(km, Font_7x10, White);
|
||||
ssd1306_SetCursor(70, 51);
|
||||
ssd1306_WriteString(trp, Font_7x10, White);
|
||||
ssd1306_UpdateScreen(&hi2c1);
|
||||
}
|
||||
}
|
||||
|
||||
/* USER CODE END 4 */
|
||||
|
||||
/**
|
||||
* @brief This function is executed in case of error occurrence.
|
||||
* @retval None
|
||||
*/
|
||||
void Error_Handler(void)
|
||||
{
|
||||
/* USER CODE BEGIN Error_Handler_Debug */
|
||||
/* User can add his own implementation to report the HAL error return state */
|
||||
|
||||
/* USER CODE END Error_Handler_Debug */
|
||||
}
|
||||
|
||||
#ifdef USE_FULL_ASSERT
|
||||
/**
|
||||
* @brief Reports the name of the source file and the source line number
|
||||
* where the assert_param error has occurred.
|
||||
* @param file: pointer to the source file name
|
||||
* @param line: assert_param error line source number
|
||||
* @retval None
|
||||
*/
|
||||
void assert_failed(uint8_t *file, uint32_t line)
|
||||
{
|
||||
/* USER CODE BEGIN 6 */
|
||||
/* User can add his own implementation to report the file name and line number,
|
||||
tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
|
||||
/* USER CODE END 6 */
|
||||
}
|
||||
#endif /* USE_FULL_ASSERT */
|
||||
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
211
Software/DisplayBoard/Core/Src/ssd1306.c
Normal file
211
Software/DisplayBoard/Core/Src/ssd1306.c
Normal file
@ -0,0 +1,211 @@
|
||||
#include "ssd1306.h"
|
||||
|
||||
|
||||
// Screenbuffer
|
||||
static uint8_t SSD1306_Buffer[SSD1306_WIDTH * SSD1306_HEIGHT / 8];
|
||||
|
||||
// Screen object
|
||||
static SSD1306_t SSD1306;
|
||||
|
||||
|
||||
//
|
||||
// Send a byte to the command register
|
||||
//
|
||||
static uint8_t ssd1306_WriteCommand(I2C_HandleTypeDef *hi2c, uint8_t command)
|
||||
{
|
||||
return HAL_I2C_Mem_Write(hi2c, SSD1306_I2C_ADDR, 0x00, 1, &command, 1, 10);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Initialize the oled screen
|
||||
//
|
||||
uint8_t ssd1306_Init(I2C_HandleTypeDef *hi2c)
|
||||
{
|
||||
// Wait for the screen to boot
|
||||
HAL_Delay(100);
|
||||
int status = 0;
|
||||
|
||||
// Init LCD
|
||||
status += ssd1306_WriteCommand(hi2c, 0xAE); // Display off
|
||||
status += ssd1306_WriteCommand(hi2c, 0x20); // Set Memory Addressing Mode
|
||||
status += ssd1306_WriteCommand(hi2c, 0x10); // 00,Horizontal Addressing Mode;01,Vertical Addressing Mode;10,Page Addressing Mode (RESET);11,Invalid
|
||||
status += ssd1306_WriteCommand(hi2c, 0xB0); // Set Page Start Address for Page Addressing Mode,0-7
|
||||
status += ssd1306_WriteCommand(hi2c, 0xC8); // Set COM Output Scan Direction
|
||||
status += ssd1306_WriteCommand(hi2c, 0x00); // Set low column address
|
||||
status += ssd1306_WriteCommand(hi2c, 0x10); // Set high column address
|
||||
status += ssd1306_WriteCommand(hi2c, 0x40); // Set start line address
|
||||
status += ssd1306_WriteCommand(hi2c, 0x81); // set contrast control register
|
||||
status += ssd1306_WriteCommand(hi2c, 0xFF);
|
||||
status += ssd1306_WriteCommand(hi2c, 0xA1); // Set segment re-map 0 to 127
|
||||
status += ssd1306_WriteCommand(hi2c, 0xA6); // Set normal display
|
||||
status += ssd1306_WriteCommand(hi2c, 0xA8); // Set multiplex ratio(1 to 64)
|
||||
status += ssd1306_WriteCommand(hi2c, 0x3F);
|
||||
status += ssd1306_WriteCommand(hi2c, 0xA4); // 0xa4,Output follows RAM content;0xa5,Output ignores RAM content
|
||||
status += ssd1306_WriteCommand(hi2c, 0xD3); // Set display offset
|
||||
status += ssd1306_WriteCommand(hi2c, 0x00); // No offset
|
||||
status += ssd1306_WriteCommand(hi2c, 0xD5); // Set display clock divide ratio/oscillator frequency
|
||||
status += ssd1306_WriteCommand(hi2c, 0xF0); // Set divide ratio
|
||||
status += ssd1306_WriteCommand(hi2c, 0xD9); // Set pre-charge period
|
||||
status += ssd1306_WriteCommand(hi2c, 0x22);
|
||||
status += ssd1306_WriteCommand(hi2c, 0xDA); // Set com pins hardware configuration
|
||||
status += ssd1306_WriteCommand(hi2c, 0x12);
|
||||
status += ssd1306_WriteCommand(hi2c, 0xDB); // Set vcomh
|
||||
status += ssd1306_WriteCommand(hi2c, 0x20); // 0x20,0.77xVcc
|
||||
status += ssd1306_WriteCommand(hi2c, 0x8D); // Set DC-DC enable
|
||||
status += ssd1306_WriteCommand(hi2c, 0x14); //
|
||||
status += ssd1306_WriteCommand(hi2c, 0xAF); // Turn on SSD1306 panel
|
||||
|
||||
if (status != 0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Clear screen
|
||||
ssd1306_Fill(Black);
|
||||
|
||||
// Flush buffer to screen
|
||||
ssd1306_UpdateScreen(hi2c);
|
||||
|
||||
// Set default values for screen object
|
||||
SSD1306.CurrentX = 0;
|
||||
SSD1306.CurrentY = 0;
|
||||
|
||||
SSD1306.Initialized = 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//
|
||||
// Fill the whole screen with the given color
|
||||
//
|
||||
void ssd1306_Fill(SSD1306_COLOR color)
|
||||
{
|
||||
// Fill screenbuffer with a constant value (color)
|
||||
uint32_t i;
|
||||
|
||||
for(i = 0; i < sizeof(SSD1306_Buffer); i++)
|
||||
{
|
||||
SSD1306_Buffer[i] = (color == Black) ? 0x00 : 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Write the screenbuffer with changed to the screen
|
||||
//
|
||||
void ssd1306_UpdateScreen(I2C_HandleTypeDef *hi2c)
|
||||
{
|
||||
uint8_t i;
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
ssd1306_WriteCommand(hi2c, 0xB0 + i);
|
||||
ssd1306_WriteCommand(hi2c, 0x00);
|
||||
ssd1306_WriteCommand(hi2c, 0x10);
|
||||
|
||||
HAL_I2C_Mem_Write(hi2c, SSD1306_I2C_ADDR, 0x40, 1, &SSD1306_Buffer[SSD1306_WIDTH * i], SSD1306_WIDTH, 100);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Draw one pixel in the screenbuffer
|
||||
// X => X Coordinate
|
||||
// Y => Y Coordinate
|
||||
// color => Pixel color
|
||||
//
|
||||
void ssd1306_DrawPixel(uint8_t x, uint8_t y, SSD1306_COLOR color)
|
||||
{
|
||||
if (x >= SSD1306_WIDTH || y >= SSD1306_HEIGHT)
|
||||
{
|
||||
// Don't write outside the buffer
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if pixel should be inverted
|
||||
if (SSD1306.Inverted)
|
||||
{
|
||||
color = (SSD1306_COLOR)!color;
|
||||
}
|
||||
|
||||
// Draw in the correct color
|
||||
if (color == White)
|
||||
{
|
||||
SSD1306_Buffer[x + (y / 8) * SSD1306_WIDTH] |= 1 << (y % 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
SSD1306_Buffer[x + (y / 8) * SSD1306_WIDTH] &= ~(1 << (y % 8));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Draw 1 char to the screen buffer
|
||||
// ch => Character to write
|
||||
// Font => Font to use
|
||||
// color => Black or White
|
||||
//
|
||||
char ssd1306_WriteChar(char ch, FontDef Font, SSD1306_COLOR color)
|
||||
{
|
||||
uint32_t i, b, j;
|
||||
|
||||
// Check remaining space on current line
|
||||
if (SSD1306_WIDTH <= (SSD1306.CurrentX + Font.FontWidth) ||
|
||||
SSD1306_HEIGHT <= (SSD1306.CurrentY + Font.FontHeight))
|
||||
{
|
||||
// Not enough space on current line
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Translate font to screenbuffer
|
||||
for (i = 0; i < Font.FontHeight; i++)
|
||||
{
|
||||
b = Font.data[(ch - 32) * Font.FontHeight + i];
|
||||
for (j = 0; j < Font.FontWidth; j++)
|
||||
{
|
||||
if ((b << j) & 0x8000)
|
||||
{
|
||||
ssd1306_DrawPixel(SSD1306.CurrentX + j, (SSD1306.CurrentY + i), (SSD1306_COLOR) color);
|
||||
}
|
||||
else
|
||||
{
|
||||
ssd1306_DrawPixel(SSD1306.CurrentX + j, (SSD1306.CurrentY + i), (SSD1306_COLOR)!color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// The current space is now taken
|
||||
SSD1306.CurrentX += Font.FontWidth;
|
||||
|
||||
// Return written char for validation
|
||||
return ch;
|
||||
}
|
||||
|
||||
//
|
||||
// Write full string to screenbuffer
|
||||
//
|
||||
char ssd1306_WriteString(char* str, FontDef Font, SSD1306_COLOR color)
|
||||
{
|
||||
// Write until null-byte
|
||||
while (*str)
|
||||
{
|
||||
if (ssd1306_WriteChar(*str, Font, color) != *str)
|
||||
{
|
||||
// Char could not be written
|
||||
return *str;
|
||||
}
|
||||
|
||||
// Next char
|
||||
str++;
|
||||
}
|
||||
|
||||
// Everything ok
|
||||
return *str;
|
||||
}
|
||||
|
||||
//
|
||||
// Set cursor position
|
||||
//
|
||||
void ssd1306_SetCursor(uint8_t x, uint8_t y)
|
||||
{
|
||||
SSD1306.CurrentX = x;
|
||||
SSD1306.CurrentY = y;
|
||||
}
|
474
Software/DisplayBoard/Core/Src/stm32f0xx_hal_msp.c
Normal file
474
Software/DisplayBoard/Core/Src/stm32f0xx_hal_msp.c
Normal file
@ -0,0 +1,474 @@
|
||||
/* USER CODE BEGIN Header */
|
||||
/**
|
||||
******************************************************************************
|
||||
* File Name : stm32f0xx_hal_msp.c
|
||||
* Description : This file provides code for the MSP Initialization
|
||||
* and de-Initialization codes.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2021 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "main.h"
|
||||
/* USER CODE BEGIN Includes */
|
||||
|
||||
/* USER CODE END Includes */
|
||||
extern DMA_HandleTypeDef hdma_i2c1_tx;
|
||||
|
||||
extern DMA_HandleTypeDef hdma_usart1_rx;
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN TD */
|
||||
|
||||
/* USER CODE END TD */
|
||||
|
||||
/* Private define ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Define */
|
||||
|
||||
/* USER CODE END Define */
|
||||
|
||||
/* Private macro -------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Macro */
|
||||
|
||||
/* USER CODE END Macro */
|
||||
|
||||
/* Private variables ---------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PV */
|
||||
|
||||
/* USER CODE END PV */
|
||||
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
/* USER CODE BEGIN PFP */
|
||||
|
||||
/* USER CODE END PFP */
|
||||
|
||||
/* External functions --------------------------------------------------------*/
|
||||
/* USER CODE BEGIN ExternalFunctions */
|
||||
|
||||
/* USER CODE END ExternalFunctions */
|
||||
|
||||
/* USER CODE BEGIN 0 */
|
||||
|
||||
/* USER CODE END 0 */
|
||||
/**
|
||||
* Initializes the Global MSP.
|
||||
*/
|
||||
void HAL_MspInit(void)
|
||||
{
|
||||
/* USER CODE BEGIN MspInit 0 */
|
||||
|
||||
/* USER CODE END MspInit 0 */
|
||||
|
||||
__HAL_RCC_SYSCFG_CLK_ENABLE();
|
||||
__HAL_RCC_PWR_CLK_ENABLE();
|
||||
|
||||
/* System interrupt init*/
|
||||
|
||||
/* USER CODE BEGIN MspInit 1 */
|
||||
|
||||
/* USER CODE END MspInit 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief ADC MSP Initialization
|
||||
* This function configures the hardware resources used in this example
|
||||
* @param hadc: ADC handle pointer
|
||||
* @retval None
|
||||
*/
|
||||
void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||
if(hadc->Instance==ADC1)
|
||||
{
|
||||
/* USER CODE BEGIN ADC1_MspInit 0 */
|
||||
|
||||
/* USER CODE END ADC1_MspInit 0 */
|
||||
/* Peripheral clock enable */
|
||||
__HAL_RCC_ADC1_CLK_ENABLE();
|
||||
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
/**ADC GPIO Configuration
|
||||
PA3 ------> ADC_IN3
|
||||
PA5 ------> ADC_IN5
|
||||
*/
|
||||
GPIO_InitStruct.Pin = FUEL_Pin|U_BATT_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
/* USER CODE BEGIN ADC1_MspInit 1 */
|
||||
|
||||
/* USER CODE END ADC1_MspInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief ADC MSP De-Initialization
|
||||
* This function freeze the hardware resources used in this example
|
||||
* @param hadc: ADC handle pointer
|
||||
* @retval None
|
||||
*/
|
||||
void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
|
||||
{
|
||||
if(hadc->Instance==ADC1)
|
||||
{
|
||||
/* USER CODE BEGIN ADC1_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END ADC1_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_ADC1_CLK_DISABLE();
|
||||
|
||||
/**ADC GPIO Configuration
|
||||
PA3 ------> ADC_IN3
|
||||
PA5 ------> ADC_IN5
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOA, FUEL_Pin|U_BATT_Pin);
|
||||
|
||||
/* USER CODE BEGIN ADC1_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END ADC1_MspDeInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief I2C MSP Initialization
|
||||
* This function configures the hardware resources used in this example
|
||||
* @param hi2c: I2C handle pointer
|
||||
* @retval None
|
||||
*/
|
||||
void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||
if(hi2c->Instance==I2C1)
|
||||
{
|
||||
/* USER CODE BEGIN I2C1_MspInit 0 */
|
||||
|
||||
/* USER CODE END I2C1_MspInit 0 */
|
||||
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
/**I2C1 GPIO Configuration
|
||||
PB6 ------> I2C1_SCL
|
||||
PB7 ------> I2C1_SDA
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF1_I2C1;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
||||
/* Peripheral clock enable */
|
||||
__HAL_RCC_I2C1_CLK_ENABLE();
|
||||
|
||||
/* I2C1 DMA Init */
|
||||
/* I2C1_TX Init */
|
||||
hdma_i2c1_tx.Instance = DMA1_Channel2;
|
||||
hdma_i2c1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
|
||||
hdma_i2c1_tx.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||
hdma_i2c1_tx.Init.MemInc = DMA_MINC_ENABLE;
|
||||
hdma_i2c1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
|
||||
hdma_i2c1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
|
||||
hdma_i2c1_tx.Init.Mode = DMA_NORMAL;
|
||||
hdma_i2c1_tx.Init.Priority = DMA_PRIORITY_LOW;
|
||||
if (HAL_DMA_Init(&hdma_i2c1_tx) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
__HAL_LINKDMA(hi2c,hdmatx,hdma_i2c1_tx);
|
||||
|
||||
/* I2C1 interrupt Init */
|
||||
HAL_NVIC_SetPriority(I2C1_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(I2C1_IRQn);
|
||||
/* USER CODE BEGIN I2C1_MspInit 1 */
|
||||
|
||||
/* USER CODE END I2C1_MspInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief I2C MSP De-Initialization
|
||||
* This function freeze the hardware resources used in this example
|
||||
* @param hi2c: I2C handle pointer
|
||||
* @retval None
|
||||
*/
|
||||
void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c)
|
||||
{
|
||||
if(hi2c->Instance==I2C1)
|
||||
{
|
||||
/* USER CODE BEGIN I2C1_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END I2C1_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_I2C1_CLK_DISABLE();
|
||||
|
||||
/**I2C1 GPIO Configuration
|
||||
PB6 ------> I2C1_SCL
|
||||
PB7 ------> I2C1_SDA
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6);
|
||||
|
||||
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7);
|
||||
|
||||
/* I2C1 DMA DeInit */
|
||||
HAL_DMA_DeInit(hi2c->hdmatx);
|
||||
|
||||
/* I2C1 interrupt DeInit */
|
||||
HAL_NVIC_DisableIRQ(I2C1_IRQn);
|
||||
/* USER CODE BEGIN I2C1_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END I2C1_MspDeInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TIM_Base MSP Initialization
|
||||
* This function configures the hardware resources used in this example
|
||||
* @param htim_base: TIM_Base handle pointer
|
||||
* @retval None
|
||||
*/
|
||||
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||
if(htim_base->Instance==TIM3)
|
||||
{
|
||||
/* USER CODE BEGIN TIM3_MspInit 0 */
|
||||
|
||||
/* USER CODE END TIM3_MspInit 0 */
|
||||
/* Peripheral clock enable */
|
||||
__HAL_RCC_TIM3_CLK_ENABLE();
|
||||
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
/**TIM3 GPIO Configuration
|
||||
PA6 ------> TIM3_CH1
|
||||
*/
|
||||
GPIO_InitStruct.Pin = RPM_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF1_TIM3;
|
||||
HAL_GPIO_Init(RPM_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/* TIM3 interrupt Init */
|
||||
HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(TIM3_IRQn);
|
||||
/* USER CODE BEGIN TIM3_MspInit 1 */
|
||||
|
||||
/* USER CODE END TIM3_MspInit 1 */
|
||||
}
|
||||
else if(htim_base->Instance==TIM6)
|
||||
{
|
||||
/* USER CODE BEGIN TIM6_MspInit 0 */
|
||||
|
||||
/* USER CODE END TIM6_MspInit 0 */
|
||||
/* Peripheral clock enable */
|
||||
__HAL_RCC_TIM6_CLK_ENABLE();
|
||||
/* TIM6 interrupt Init */
|
||||
HAL_NVIC_SetPriority(TIM6_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(TIM6_IRQn);
|
||||
/* USER CODE BEGIN TIM6_MspInit 1 */
|
||||
|
||||
/* USER CODE END TIM6_MspInit 1 */
|
||||
}
|
||||
else if(htim_base->Instance==TIM14)
|
||||
{
|
||||
/* USER CODE BEGIN TIM14_MspInit 0 */
|
||||
|
||||
/* USER CODE END TIM14_MspInit 0 */
|
||||
/* Peripheral clock enable */
|
||||
__HAL_RCC_TIM14_CLK_ENABLE();
|
||||
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
/**TIM14 GPIO Configuration
|
||||
PA4 ------> TIM14_CH1
|
||||
*/
|
||||
GPIO_InitStruct.Pin = SPEED_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF4_TIM14;
|
||||
HAL_GPIO_Init(SPEED_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/* TIM14 interrupt Init */
|
||||
HAL_NVIC_SetPriority(TIM14_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(TIM14_IRQn);
|
||||
/* USER CODE BEGIN TIM14_MspInit 1 */
|
||||
|
||||
/* USER CODE END TIM14_MspInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TIM_Base MSP De-Initialization
|
||||
* This function freeze the hardware resources used in this example
|
||||
* @param htim_base: TIM_Base handle pointer
|
||||
* @retval None
|
||||
*/
|
||||
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
||||
{
|
||||
if(htim_base->Instance==TIM3)
|
||||
{
|
||||
/* USER CODE BEGIN TIM3_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END TIM3_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_TIM3_CLK_DISABLE();
|
||||
|
||||
/**TIM3 GPIO Configuration
|
||||
PA6 ------> TIM3_CH1
|
||||
*/
|
||||
HAL_GPIO_DeInit(RPM_GPIO_Port, RPM_Pin);
|
||||
|
||||
/* TIM3 interrupt DeInit */
|
||||
HAL_NVIC_DisableIRQ(TIM3_IRQn);
|
||||
/* USER CODE BEGIN TIM3_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END TIM3_MspDeInit 1 */
|
||||
}
|
||||
else if(htim_base->Instance==TIM6)
|
||||
{
|
||||
/* USER CODE BEGIN TIM6_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END TIM6_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_TIM6_CLK_DISABLE();
|
||||
|
||||
/* TIM6 interrupt DeInit */
|
||||
HAL_NVIC_DisableIRQ(TIM6_IRQn);
|
||||
/* USER CODE BEGIN TIM6_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END TIM6_MspDeInit 1 */
|
||||
}
|
||||
else if(htim_base->Instance==TIM14)
|
||||
{
|
||||
/* USER CODE BEGIN TIM14_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END TIM14_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_TIM14_CLK_DISABLE();
|
||||
|
||||
/**TIM14 GPIO Configuration
|
||||
PA4 ------> TIM14_CH1
|
||||
*/
|
||||
HAL_GPIO_DeInit(SPEED_GPIO_Port, SPEED_Pin);
|
||||
|
||||
/* TIM14 interrupt DeInit */
|
||||
HAL_NVIC_DisableIRQ(TIM14_IRQn);
|
||||
/* USER CODE BEGIN TIM14_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END TIM14_MspDeInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief UART MSP Initialization
|
||||
* This function configures the hardware resources used in this example
|
||||
* @param huart: UART handle pointer
|
||||
* @retval None
|
||||
*/
|
||||
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||
if(huart->Instance==USART1)
|
||||
{
|
||||
/* USER CODE BEGIN USART1_MspInit 0 */
|
||||
|
||||
/* USER CODE END USART1_MspInit 0 */
|
||||
/* Peripheral clock enable */
|
||||
__HAL_RCC_USART1_CLK_ENABLE();
|
||||
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
/**USART1 GPIO Configuration
|
||||
PA9 ------> USART1_TX
|
||||
PA10 ------> USART1_RX
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF1_USART1;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
/* USART1 DMA Init */
|
||||
/* USART1_RX Init */
|
||||
hdma_usart1_rx.Instance = DMA1_Channel3;
|
||||
hdma_usart1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
|
||||
hdma_usart1_rx.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||
hdma_usart1_rx.Init.MemInc = DMA_MINC_ENABLE;
|
||||
hdma_usart1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
|
||||
hdma_usart1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
|
||||
hdma_usart1_rx.Init.Mode = DMA_CIRCULAR;
|
||||
hdma_usart1_rx.Init.Priority = DMA_PRIORITY_LOW;
|
||||
if (HAL_DMA_Init(&hdma_usart1_rx) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
__HAL_LINKDMA(huart,hdmarx,hdma_usart1_rx);
|
||||
|
||||
/* USART1 interrupt Init */
|
||||
HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(USART1_IRQn);
|
||||
/* USER CODE BEGIN USART1_MspInit 1 */
|
||||
|
||||
/* USER CODE END USART1_MspInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief UART MSP De-Initialization
|
||||
* This function freeze the hardware resources used in this example
|
||||
* @param huart: UART handle pointer
|
||||
* @retval None
|
||||
*/
|
||||
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
|
||||
{
|
||||
if(huart->Instance==USART1)
|
||||
{
|
||||
/* USER CODE BEGIN USART1_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END USART1_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_USART1_CLK_DISABLE();
|
||||
|
||||
/**USART1 GPIO Configuration
|
||||
PA9 ------> USART1_TX
|
||||
PA10 ------> USART1_RX
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
|
||||
|
||||
/* USART1 DMA DeInit */
|
||||
HAL_DMA_DeInit(huart->hdmarx);
|
||||
|
||||
/* USART1 interrupt DeInit */
|
||||
HAL_NVIC_DisableIRQ(USART1_IRQn);
|
||||
/* USER CODE BEGIN USART1_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END USART1_MspDeInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN 1 */
|
||||
|
||||
/* USER CODE END 1 */
|
||||
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
268
Software/DisplayBoard/Core/Src/stm32f0xx_it.c
Normal file
268
Software/DisplayBoard/Core/Src/stm32f0xx_it.c
Normal file
@ -0,0 +1,268 @@
|
||||
/* USER CODE BEGIN Header */
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32f0xx_it.c
|
||||
* @brief Interrupt Service Routines.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2021 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "main.h"
|
||||
#include "stm32f0xx_it.h"
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Includes */
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN TD */
|
||||
|
||||
/* USER CODE END TD */
|
||||
|
||||
/* Private define ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PD */
|
||||
|
||||
/* USER CODE END PD */
|
||||
|
||||
/* Private macro -------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PM */
|
||||
|
||||
/* USER CODE END PM */
|
||||
|
||||
/* Private variables ---------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PV */
|
||||
|
||||
/* USER CODE END PV */
|
||||
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
/* USER CODE BEGIN PFP */
|
||||
|
||||
/* USER CODE END PFP */
|
||||
|
||||
/* Private user code ---------------------------------------------------------*/
|
||||
/* USER CODE BEGIN 0 */
|
||||
|
||||
/* USER CODE END 0 */
|
||||
|
||||
/* External variables --------------------------------------------------------*/
|
||||
extern DMA_HandleTypeDef hdma_i2c1_tx;
|
||||
extern I2C_HandleTypeDef hi2c1;
|
||||
extern TIM_HandleTypeDef htim3;
|
||||
extern TIM_HandleTypeDef htim6;
|
||||
extern TIM_HandleTypeDef htim14;
|
||||
extern DMA_HandleTypeDef hdma_usart1_rx;
|
||||
extern UART_HandleTypeDef huart1;
|
||||
/* USER CODE BEGIN EV */
|
||||
|
||||
/* USER CODE END EV */
|
||||
|
||||
/******************************************************************************/
|
||||
/* Cortex-M0 Processor Interruption and Exception Handlers */
|
||||
/******************************************************************************/
|
||||
/**
|
||||
* @brief This function handles Non maskable interrupt.
|
||||
*/
|
||||
void NMI_Handler(void)
|
||||
{
|
||||
/* USER CODE BEGIN NonMaskableInt_IRQn 0 */
|
||||
|
||||
/* USER CODE END NonMaskableInt_IRQn 0 */
|
||||
/* USER CODE BEGIN NonMaskableInt_IRQn 1 */
|
||||
|
||||
/* USER CODE END NonMaskableInt_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles Hard fault interrupt.
|
||||
*/
|
||||
void HardFault_Handler(void)
|
||||
{
|
||||
/* USER CODE BEGIN HardFault_IRQn 0 */
|
||||
|
||||
/* USER CODE END HardFault_IRQn 0 */
|
||||
while (1)
|
||||
{
|
||||
/* USER CODE BEGIN W1_HardFault_IRQn 0 */
|
||||
/* USER CODE END W1_HardFault_IRQn 0 */
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles System service call via SWI instruction.
|
||||
*/
|
||||
void SVC_Handler(void)
|
||||
{
|
||||
/* USER CODE BEGIN SVC_IRQn 0 */
|
||||
|
||||
/* USER CODE END SVC_IRQn 0 */
|
||||
/* USER CODE BEGIN SVC_IRQn 1 */
|
||||
|
||||
/* USER CODE END SVC_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles Pendable request for system service.
|
||||
*/
|
||||
void PendSV_Handler(void)
|
||||
{
|
||||
/* USER CODE BEGIN PendSV_IRQn 0 */
|
||||
|
||||
/* USER CODE END PendSV_IRQn 0 */
|
||||
/* USER CODE BEGIN PendSV_IRQn 1 */
|
||||
|
||||
/* USER CODE END PendSV_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles System tick timer.
|
||||
*/
|
||||
void SysTick_Handler(void)
|
||||
{
|
||||
/* USER CODE BEGIN SysTick_IRQn 0 */
|
||||
|
||||
/* USER CODE END SysTick_IRQn 0 */
|
||||
HAL_IncTick();
|
||||
/* USER CODE BEGIN SysTick_IRQn 1 */
|
||||
|
||||
/* USER CODE END SysTick_IRQn 1 */
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
/* STM32F0xx Peripheral Interrupt Handlers */
|
||||
/* Add here the Interrupt Handlers for the used peripherals. */
|
||||
/* For the available peripheral interrupt handler names, */
|
||||
/* please refer to the startup file (startup_stm32f0xx.s). */
|
||||
/******************************************************************************/
|
||||
|
||||
/**
|
||||
* @brief This function handles EXTI line 0 and 1 interrupts.
|
||||
*/
|
||||
void EXTI0_1_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN EXTI0_1_IRQn 0 */
|
||||
|
||||
/* USER CODE END EXTI0_1_IRQn 0 */
|
||||
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1);
|
||||
/* USER CODE BEGIN EXTI0_1_IRQn 1 */
|
||||
|
||||
/* USER CODE END EXTI0_1_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles EXTI line 2 and 3 interrupts.
|
||||
*/
|
||||
void EXTI2_3_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN EXTI2_3_IRQn 0 */
|
||||
|
||||
/* USER CODE END EXTI2_3_IRQn 0 */
|
||||
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2);
|
||||
/* USER CODE BEGIN EXTI2_3_IRQn 1 */
|
||||
|
||||
/* USER CODE END EXTI2_3_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles DMA1 channel 2 and 3 interrupts.
|
||||
*/
|
||||
void DMA1_Channel2_3_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN DMA1_Channel2_3_IRQn 0 */
|
||||
|
||||
/* USER CODE END DMA1_Channel2_3_IRQn 0 */
|
||||
HAL_DMA_IRQHandler(&hdma_i2c1_tx);
|
||||
HAL_DMA_IRQHandler(&hdma_usart1_rx);
|
||||
/* USER CODE BEGIN DMA1_Channel2_3_IRQn 1 */
|
||||
|
||||
/* USER CODE END DMA1_Channel2_3_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles TIM3 global interrupt.
|
||||
*/
|
||||
void TIM3_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN TIM3_IRQn 0 */
|
||||
|
||||
/* USER CODE END TIM3_IRQn 0 */
|
||||
HAL_TIM_IRQHandler(&htim3);
|
||||
/* USER CODE BEGIN TIM3_IRQn 1 */
|
||||
|
||||
/* USER CODE END TIM3_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles TIM6 global interrupt.
|
||||
*/
|
||||
void TIM6_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN TIM6_IRQn 0 */
|
||||
|
||||
/* USER CODE END TIM6_IRQn 0 */
|
||||
HAL_TIM_IRQHandler(&htim6);
|
||||
/* USER CODE BEGIN TIM6_IRQn 1 */
|
||||
|
||||
/* USER CODE END TIM6_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles TIM14 global interrupt.
|
||||
*/
|
||||
void TIM14_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN TIM14_IRQn 0 */
|
||||
|
||||
/* USER CODE END TIM14_IRQn 0 */
|
||||
HAL_TIM_IRQHandler(&htim14);
|
||||
/* USER CODE BEGIN TIM14_IRQn 1 */
|
||||
|
||||
/* USER CODE END TIM14_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles I2C1 global interrupt.
|
||||
*/
|
||||
void I2C1_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN I2C1_IRQn 0 */
|
||||
|
||||
/* USER CODE END I2C1_IRQn 0 */
|
||||
if (hi2c1.Instance->ISR & (I2C_FLAG_BERR | I2C_FLAG_ARLO | I2C_FLAG_OVR)) {
|
||||
HAL_I2C_ER_IRQHandler(&hi2c1);
|
||||
} else {
|
||||
HAL_I2C_EV_IRQHandler(&hi2c1);
|
||||
}
|
||||
/* USER CODE BEGIN I2C1_IRQn 1 */
|
||||
|
||||
/* USER CODE END I2C1_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles USART1 global interrupt.
|
||||
*/
|
||||
void USART1_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN USART1_IRQn 0 */
|
||||
|
||||
/* USER CODE END USART1_IRQn 0 */
|
||||
HAL_UART_IRQHandler(&huart1);
|
||||
/* USER CODE BEGIN USART1_IRQn 1 */
|
||||
|
||||
/* USER CODE END USART1_IRQn 1 */
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN 1 */
|
||||
|
||||
/* USER CODE END 1 */
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
159
Software/DisplayBoard/Core/Src/syscalls.c
Normal file
159
Software/DisplayBoard/Core/Src/syscalls.c
Normal file
@ -0,0 +1,159 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file syscalls.c
|
||||
* @author Auto-generated by STM32CubeIDE
|
||||
* @brief STM32CubeIDE Minimal System calls file
|
||||
*
|
||||
* For more information about which c-functions
|
||||
* need which of these lowlevel functions
|
||||
* please consult the Newlib libc-manual
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2020 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Includes */
|
||||
#include <sys/stat.h>
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <signal.h>
|
||||
#include <time.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/times.h>
|
||||
|
||||
|
||||
/* Variables */
|
||||
//#undef errno
|
||||
extern int errno;
|
||||
extern int __io_putchar(int ch) __attribute__((weak));
|
||||
extern int __io_getchar(void) __attribute__((weak));
|
||||
|
||||
register char * stack_ptr asm("sp");
|
||||
|
||||
char *__env[1] = { 0 };
|
||||
char **environ = __env;
|
||||
|
||||
|
||||
/* Functions */
|
||||
void initialise_monitor_handles()
|
||||
{
|
||||
}
|
||||
|
||||
int _getpid(void)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
int _kill(int pid, int sig)
|
||||
{
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
|
||||
void _exit (int status)
|
||||
{
|
||||
_kill(status, -1);
|
||||
while (1) {} /* Make sure we hang here */
|
||||
}
|
||||
|
||||
__attribute__((weak)) int _read(int file, char *ptr, int len)
|
||||
{
|
||||
int DataIdx;
|
||||
|
||||
for (DataIdx = 0; DataIdx < len; DataIdx++)
|
||||
{
|
||||
*ptr++ = __io_getchar();
|
||||
}
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
__attribute__((weak)) int _write(int file, char *ptr, int len)
|
||||
{
|
||||
int DataIdx;
|
||||
|
||||
for (DataIdx = 0; DataIdx < len; DataIdx++)
|
||||
{
|
||||
__io_putchar(*ptr++);
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
int _close(int file)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
int _fstat(int file, struct stat *st)
|
||||
{
|
||||
st->st_mode = S_IFCHR;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int _isatty(int file)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
int _lseek(int file, int ptr, int dir)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int _open(char *path, int flags, ...)
|
||||
{
|
||||
/* Pretend like we always fail */
|
||||
return -1;
|
||||
}
|
||||
|
||||
int _wait(int *status)
|
||||
{
|
||||
errno = ECHILD;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int _unlink(char *name)
|
||||
{
|
||||
errno = ENOENT;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int _times(struct tms *buf)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
int _stat(char *file, struct stat *st)
|
||||
{
|
||||
st->st_mode = S_IFCHR;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int _link(char *old, char *new)
|
||||
{
|
||||
errno = EMLINK;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int _fork(void)
|
||||
{
|
||||
errno = EAGAIN;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int _execve(char *name, char **argv, char **env)
|
||||
{
|
||||
errno = ENOMEM;
|
||||
return -1;
|
||||
}
|
80
Software/DisplayBoard/Core/Src/sysmem.c
Normal file
80
Software/DisplayBoard/Core/Src/sysmem.c
Normal file
@ -0,0 +1,80 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file sysmem.c
|
||||
* @author Generated by STM32CubeIDE
|
||||
* @brief STM32CubeIDE System Memory calls file
|
||||
*
|
||||
* For more information about which C functions
|
||||
* need which of these lowlevel functions
|
||||
* please consult the newlib libc manual
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2020 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Includes */
|
||||
#include <errno.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/**
|
||||
* Pointer to the current high watermark of the heap usage
|
||||
*/
|
||||
static uint8_t *__sbrk_heap_end = NULL;
|
||||
|
||||
/**
|
||||
* @brief _sbrk() allocates memory to the newlib heap and is used by malloc
|
||||
* and others from the C library
|
||||
*
|
||||
* @verbatim
|
||||
* ############################################################################
|
||||
* # .data # .bss # newlib heap # MSP stack #
|
||||
* # # # # Reserved by _Min_Stack_Size #
|
||||
* ############################################################################
|
||||
* ^-- RAM start ^-- _end _estack, RAM end --^
|
||||
* @endverbatim
|
||||
*
|
||||
* This implementation starts allocating at the '_end' linker symbol
|
||||
* The '_Min_Stack_Size' linker symbol reserves a memory for the MSP stack
|
||||
* The implementation considers '_estack' linker symbol to be RAM end
|
||||
* NOTE: If the MSP stack, at any point during execution, grows larger than the
|
||||
* reserved size, please increase the '_Min_Stack_Size'.
|
||||
*
|
||||
* @param incr Memory size
|
||||
* @return Pointer to allocated memory
|
||||
*/
|
||||
void *_sbrk(ptrdiff_t incr)
|
||||
{
|
||||
extern uint8_t _end; /* Symbol defined in the linker script */
|
||||
extern uint8_t _estack; /* Symbol defined in the linker script */
|
||||
extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */
|
||||
const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size;
|
||||
const uint8_t *max_heap = (uint8_t *)stack_limit;
|
||||
uint8_t *prev_heap_end;
|
||||
|
||||
/* Initalize heap end at first call */
|
||||
if (NULL == __sbrk_heap_end)
|
||||
{
|
||||
__sbrk_heap_end = &_end;
|
||||
}
|
||||
|
||||
/* Protect heap from growing into the reserved MSP stack */
|
||||
if (__sbrk_heap_end + incr > max_heap)
|
||||
{
|
||||
errno = ENOMEM;
|
||||
return (void *)-1;
|
||||
}
|
||||
|
||||
prev_heap_end = __sbrk_heap_end;
|
||||
__sbrk_heap_end += incr;
|
||||
|
||||
return (void *)prev_heap_end;
|
||||
}
|
247
Software/DisplayBoard/Core/Src/system_stm32f0xx.c
Normal file
247
Software/DisplayBoard/Core/Src/system_stm32f0xx.c
Normal file
@ -0,0 +1,247 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file system_stm32f0xx.c
|
||||
* @author MCD Application Team
|
||||
* @brief CMSIS Cortex-M0 Device Peripheral Access Layer System Source File.
|
||||
*
|
||||
* 1. This file provides two functions and one global variable to be called from
|
||||
* user application:
|
||||
* - SystemInit(): This function is called at startup just after reset and
|
||||
* before branch to main program. This call is made inside
|
||||
* the "startup_stm32f0xx.s" file.
|
||||
*
|
||||
* - SystemCoreClock variable: Contains the core clock (HCLK), it can be used
|
||||
* by the user application to setup the SysTick
|
||||
* timer or configure other parameters.
|
||||
*
|
||||
* - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must
|
||||
* be called whenever the core clock is changed
|
||||
* during program execution.
|
||||
*
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2016 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/** @addtogroup CMSIS
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @addtogroup stm32f0xx_system
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @addtogroup STM32F0xx_System_Private_Includes
|
||||
* @{
|
||||
*/
|
||||
|
||||
#include "stm32f0xx.h"
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @addtogroup STM32F0xx_System_Private_TypesDefinitions
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @addtogroup STM32F0xx_System_Private_Defines
|
||||
* @{
|
||||
*/
|
||||
#if !defined (HSE_VALUE)
|
||||
#define HSE_VALUE ((uint32_t)8000000) /*!< Default value of the External oscillator in Hz.
|
||||
This value can be provided and adapted by the user application. */
|
||||
#endif /* HSE_VALUE */
|
||||
|
||||
#if !defined (HSI_VALUE)
|
||||
#define HSI_VALUE ((uint32_t)8000000) /*!< Default value of the Internal oscillator in Hz.
|
||||
This value can be provided and adapted by the user application. */
|
||||
#endif /* HSI_VALUE */
|
||||
|
||||
#if !defined (HSI48_VALUE)
|
||||
#define HSI48_VALUE ((uint32_t)48000000) /*!< Default value of the HSI48 Internal oscillator in Hz.
|
||||
This value can be provided and adapted by the user application. */
|
||||
#endif /* HSI48_VALUE */
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @addtogroup STM32F0xx_System_Private_Macros
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @addtogroup STM32F0xx_System_Private_Variables
|
||||
* @{
|
||||
*/
|
||||
/* This variable is updated in three ways:
|
||||
1) by calling CMSIS function SystemCoreClockUpdate()
|
||||
2) by calling HAL API function HAL_RCC_GetHCLKFreq()
|
||||
3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
|
||||
Note: If you use this function to configure the system clock; then there
|
||||
is no need to call the 2 first functions listed above, since SystemCoreClock
|
||||
variable is updated automatically.
|
||||
*/
|
||||
uint32_t SystemCoreClock = 8000000;
|
||||
|
||||
const uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
|
||||
const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4};
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @addtogroup STM32F0xx_System_Private_FunctionPrototypes
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @addtogroup STM32F0xx_System_Private_Functions
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Setup the microcontroller system
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void SystemInit(void)
|
||||
{
|
||||
/* NOTE :SystemInit(): This function is called at startup just after reset and
|
||||
before branch to main program. This call is made inside
|
||||
the "startup_stm32f0xx.s" file.
|
||||
User can setups the default system clock (System clock source, PLL Multiplier
|
||||
and Divider factors, AHB/APBx prescalers and Flash settings).
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Update SystemCoreClock variable according to Clock Register Values.
|
||||
* The SystemCoreClock variable contains the core clock (HCLK), it can
|
||||
* be used by the user application to setup the SysTick timer or configure
|
||||
* other parameters.
|
||||
*
|
||||
* @note Each time the core clock (HCLK) changes, this function must be called
|
||||
* to update SystemCoreClock variable value. Otherwise, any configuration
|
||||
* based on this variable will be incorrect.
|
||||
*
|
||||
* @note - The system frequency computed by this function is not the real
|
||||
* frequency in the chip. It is calculated based on the predefined
|
||||
* constant and the selected clock source:
|
||||
*
|
||||
* - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*)
|
||||
*
|
||||
* - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**)
|
||||
*
|
||||
* - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**)
|
||||
* or HSI_VALUE(*) multiplied/divided by the PLL factors.
|
||||
*
|
||||
* (*) HSI_VALUE is a constant defined in stm32f0xx_hal_conf.h file (default value
|
||||
* 8 MHz) but the real value may vary depending on the variations
|
||||
* in voltage and temperature.
|
||||
*
|
||||
* (**) HSE_VALUE is a constant defined in stm32f0xx_hal_conf.h file (its value
|
||||
* depends on the application requirements), user has to ensure that HSE_VALUE
|
||||
* is same as the real frequency of the crystal used. Otherwise, this function
|
||||
* may have wrong result.
|
||||
*
|
||||
* - The result of this function could be not correct when using fractional
|
||||
* value for HSE crystal.
|
||||
*
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void SystemCoreClockUpdate (void)
|
||||
{
|
||||
uint32_t tmp = 0, pllmull = 0, pllsource = 0, predivfactor = 0;
|
||||
|
||||
/* Get SYSCLK source -------------------------------------------------------*/
|
||||
tmp = RCC->CFGR & RCC_CFGR_SWS;
|
||||
|
||||
switch (tmp)
|
||||
{
|
||||
case RCC_CFGR_SWS_HSI: /* HSI used as system clock */
|
||||
SystemCoreClock = HSI_VALUE;
|
||||
break;
|
||||
case RCC_CFGR_SWS_HSE: /* HSE used as system clock */
|
||||
SystemCoreClock = HSE_VALUE;
|
||||
break;
|
||||
case RCC_CFGR_SWS_PLL: /* PLL used as system clock */
|
||||
/* Get PLL clock source and multiplication factor ----------------------*/
|
||||
pllmull = RCC->CFGR & RCC_CFGR_PLLMUL;
|
||||
pllsource = RCC->CFGR & RCC_CFGR_PLLSRC;
|
||||
pllmull = ( pllmull >> 18) + 2;
|
||||
predivfactor = (RCC->CFGR2 & RCC_CFGR2_PREDIV) + 1;
|
||||
|
||||
if (pllsource == RCC_CFGR_PLLSRC_HSE_PREDIV)
|
||||
{
|
||||
/* HSE used as PLL clock source : SystemCoreClock = HSE/PREDIV * PLLMUL */
|
||||
SystemCoreClock = (HSE_VALUE/predivfactor) * pllmull;
|
||||
}
|
||||
#if defined(STM32F042x6) || defined(STM32F048xx) || defined(STM32F072xB) || defined(STM32F078xx) || defined(STM32F091xC) || defined(STM32F098xx)
|
||||
else if (pllsource == RCC_CFGR_PLLSRC_HSI48_PREDIV)
|
||||
{
|
||||
/* HSI48 used as PLL clock source : SystemCoreClock = HSI48/PREDIV * PLLMUL */
|
||||
SystemCoreClock = (HSI48_VALUE/predivfactor) * pllmull;
|
||||
}
|
||||
#endif /* STM32F042x6 || STM32F048xx || STM32F072xB || STM32F078xx || STM32F091xC || STM32F098xx */
|
||||
else
|
||||
{
|
||||
#if defined(STM32F042x6) || defined(STM32F048xx) || defined(STM32F070x6) \
|
||||
|| defined(STM32F078xx) || defined(STM32F071xB) || defined(STM32F072xB) \
|
||||
|| defined(STM32F070xB) || defined(STM32F091xC) || defined(STM32F098xx) || defined(STM32F030xC)
|
||||
/* HSI used as PLL clock source : SystemCoreClock = HSI/PREDIV * PLLMUL */
|
||||
SystemCoreClock = (HSI_VALUE/predivfactor) * pllmull;
|
||||
#else
|
||||
/* HSI used as PLL clock source : SystemCoreClock = HSI/2 * PLLMUL */
|
||||
SystemCoreClock = (HSI_VALUE >> 1) * pllmull;
|
||||
#endif /* STM32F042x6 || STM32F048xx || STM32F070x6 ||
|
||||
STM32F071xB || STM32F072xB || STM32F078xx || STM32F070xB ||
|
||||
STM32F091xC || STM32F098xx || STM32F030xC */
|
||||
}
|
||||
break;
|
||||
default: /* HSI used as system clock */
|
||||
SystemCoreClock = HSI_VALUE;
|
||||
break;
|
||||
}
|
||||
/* Compute HCLK clock frequency ----------------*/
|
||||
/* Get HCLK prescaler */
|
||||
tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)];
|
||||
/* HCLK clock frequency */
|
||||
SystemCoreClock >>= tmp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||
|
273
Software/DisplayBoard/Core/Startup/startup_stm32f030c8tx.s
Normal file
273
Software/DisplayBoard/Core/Startup/startup_stm32f030c8tx.s
Normal file
@ -0,0 +1,273 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file startup_stm32f030x8.s
|
||||
* @author MCD Application Team
|
||||
* @brief STM32F030x8 devices vector table for GCC toolchain.
|
||||
* This module performs:
|
||||
* - Set the initial SP
|
||||
* - Set the initial PC == Reset_Handler,
|
||||
* - Set the vector table entries with the exceptions ISR address
|
||||
* - Branches to main in the C library (which eventually
|
||||
* calls main()).
|
||||
* After Reset the Cortex-M0 processor is in Thread mode,
|
||||
* priority is Privileged, and the Stack is set to Main.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2016 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
.syntax unified
|
||||
.cpu cortex-m0
|
||||
.fpu softvfp
|
||||
.thumb
|
||||
|
||||
.global g_pfnVectors
|
||||
.global Default_Handler
|
||||
|
||||
/* start address for the initialization values of the .data section.
|
||||
defined in linker script */
|
||||
.word _sidata
|
||||
/* start address for the .data section. defined in linker script */
|
||||
.word _sdata
|
||||
/* end address for the .data section. defined in linker script */
|
||||
.word _edata
|
||||
/* start address for the .bss section. defined in linker script */
|
||||
.word _sbss
|
||||
/* end address for the .bss section. defined in linker script */
|
||||
.word _ebss
|
||||
|
||||
.section .text.Reset_Handler
|
||||
.weak Reset_Handler
|
||||
.type Reset_Handler, %function
|
||||
Reset_Handler:
|
||||
ldr r0, =_estack
|
||||
mov sp, r0 /* set stack pointer */
|
||||
|
||||
/* Copy the data segment initializers from flash to SRAM */
|
||||
ldr r0, =_sdata
|
||||
ldr r1, =_edata
|
||||
ldr r2, =_sidata
|
||||
movs r3, #0
|
||||
b LoopCopyDataInit
|
||||
|
||||
CopyDataInit:
|
||||
ldr r4, [r2, r3]
|
||||
str r4, [r0, r3]
|
||||
adds r3, r3, #4
|
||||
|
||||
LoopCopyDataInit:
|
||||
adds r4, r0, r3
|
||||
cmp r4, r1
|
||||
bcc CopyDataInit
|
||||
|
||||
/* Zero fill the bss segment. */
|
||||
ldr r2, =_sbss
|
||||
ldr r4, =_ebss
|
||||
movs r3, #0
|
||||
b LoopFillZerobss
|
||||
|
||||
FillZerobss:
|
||||
str r3, [r2]
|
||||
adds r2, r2, #4
|
||||
|
||||
LoopFillZerobss:
|
||||
cmp r2, r4
|
||||
bcc FillZerobss
|
||||
|
||||
/* Call the clock system intitialization function.*/
|
||||
bl SystemInit
|
||||
/* Call static constructors */
|
||||
bl __libc_init_array
|
||||
/* Call the application's entry point.*/
|
||||
bl main
|
||||
|
||||
LoopForever:
|
||||
b LoopForever
|
||||
|
||||
|
||||
.size Reset_Handler, .-Reset_Handler
|
||||
|
||||
/**
|
||||
* @brief This is the code that gets called when the processor receives an
|
||||
* unexpected interrupt. This simply enters an infinite loop, preserving
|
||||
* the system state for examination by a debugger.
|
||||
*
|
||||
* @param None
|
||||
* @retval : None
|
||||
*/
|
||||
.section .text.Default_Handler,"ax",%progbits
|
||||
Default_Handler:
|
||||
Infinite_Loop:
|
||||
b Infinite_Loop
|
||||
.size Default_Handler, .-Default_Handler
|
||||
/******************************************************************************
|
||||
*
|
||||
* The minimal vector table for a Cortex M0. Note that the proper constructs
|
||||
* must be placed on this to ensure that it ends up at physical address
|
||||
* 0x0000.0000.
|
||||
*
|
||||
******************************************************************************/
|
||||
.section .isr_vector,"a",%progbits
|
||||
.type g_pfnVectors, %object
|
||||
.size g_pfnVectors, .-g_pfnVectors
|
||||
|
||||
|
||||
g_pfnVectors:
|
||||
.word _estack
|
||||
.word Reset_Handler
|
||||
.word NMI_Handler
|
||||
.word HardFault_Handler
|
||||
.word 0
|
||||
.word 0
|
||||
.word 0
|
||||
.word 0
|
||||
.word 0
|
||||
.word 0
|
||||
.word 0
|
||||
.word SVC_Handler
|
||||
.word 0
|
||||
.word 0
|
||||
.word PendSV_Handler
|
||||
.word SysTick_Handler
|
||||
.word WWDG_IRQHandler /* Window WatchDog */
|
||||
.word 0 /* Reserved */
|
||||
.word RTC_IRQHandler /* RTC through the EXTI line */
|
||||
.word FLASH_IRQHandler /* FLASH */
|
||||
.word RCC_IRQHandler /* RCC */
|
||||
.word EXTI0_1_IRQHandler /* EXTI Line 0 and 1 */
|
||||
.word EXTI2_3_IRQHandler /* EXTI Line 2 and 3 */
|
||||
.word EXTI4_15_IRQHandler /* EXTI Line 4 to 15 */
|
||||
.word 0 /* Reserved */
|
||||
.word DMA1_Channel1_IRQHandler /* DMA1 Channel 1 */
|
||||
.word DMA1_Channel2_3_IRQHandler /* DMA1 Channel 2 and Channel 3 */
|
||||
.word DMA1_Channel4_5_IRQHandler /* DMA1 Channel 4 and Channel 5 */
|
||||
.word ADC1_IRQHandler /* ADC1 */
|
||||
.word TIM1_BRK_UP_TRG_COM_IRQHandler /* TIM1 Break, Update, Trigger and Commutation */
|
||||
.word TIM1_CC_IRQHandler /* TIM1 Capture Compare */
|
||||
.word 0 /* Reserved */
|
||||
.word TIM3_IRQHandler /* TIM3 */
|
||||
.word TIM6_IRQHandler /* TIM6 */
|
||||
.word 0 /* Reserved */
|
||||
.word TIM14_IRQHandler /* TIM14 */
|
||||
.word TIM15_IRQHandler /* TIM15 */
|
||||
.word TIM16_IRQHandler /* TIM16 */
|
||||
.word TIM17_IRQHandler /* TIM17 */
|
||||
.word I2C1_IRQHandler /* I2C1 */
|
||||
.word I2C2_IRQHandler /* I2C2 */
|
||||
.word SPI1_IRQHandler /* SPI1 */
|
||||
.word SPI2_IRQHandler /* SPI2 */
|
||||
.word USART1_IRQHandler /* USART1 */
|
||||
.word USART2_IRQHandler /* USART2 */
|
||||
.word 0 /* Reserved */
|
||||
.word 0 /* Reserved */
|
||||
.word 0 /* Reserved */
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Provide weak aliases for each Exception handler to the Default_Handler.
|
||||
* As they are weak aliases, any function with the same name will override
|
||||
* this definition.
|
||||
*
|
||||
*******************************************************************************/
|
||||
|
||||
.weak NMI_Handler
|
||||
.thumb_set NMI_Handler,Default_Handler
|
||||
|
||||
.weak HardFault_Handler
|
||||
.thumb_set HardFault_Handler,Default_Handler
|
||||
|
||||
.weak SVC_Handler
|
||||
.thumb_set SVC_Handler,Default_Handler
|
||||
|
||||
.weak PendSV_Handler
|
||||
.thumb_set PendSV_Handler,Default_Handler
|
||||
|
||||
.weak SysTick_Handler
|
||||
.thumb_set SysTick_Handler,Default_Handler
|
||||
|
||||
.weak WWDG_IRQHandler
|
||||
.thumb_set WWDG_IRQHandler,Default_Handler
|
||||
|
||||
.weak RTC_IRQHandler
|
||||
.thumb_set RTC_IRQHandler,Default_Handler
|
||||
|
||||
.weak FLASH_IRQHandler
|
||||
.thumb_set FLASH_IRQHandler,Default_Handler
|
||||
|
||||
.weak RCC_IRQHandler
|
||||
.thumb_set RCC_IRQHandler,Default_Handler
|
||||
|
||||
.weak EXTI0_1_IRQHandler
|
||||
.thumb_set EXTI0_1_IRQHandler,Default_Handler
|
||||
|
||||
.weak EXTI2_3_IRQHandler
|
||||
.thumb_set EXTI2_3_IRQHandler,Default_Handler
|
||||
|
||||
.weak EXTI4_15_IRQHandler
|
||||
.thumb_set EXTI4_15_IRQHandler,Default_Handler
|
||||
|
||||
.weak DMA1_Channel1_IRQHandler
|
||||
.thumb_set DMA1_Channel1_IRQHandler,Default_Handler
|
||||
|
||||
.weak DMA1_Channel2_3_IRQHandler
|
||||
.thumb_set DMA1_Channel2_3_IRQHandler,Default_Handler
|
||||
|
||||
.weak DMA1_Channel4_5_IRQHandler
|
||||
.thumb_set DMA1_Channel4_5_IRQHandler,Default_Handler
|
||||
|
||||
.weak ADC1_IRQHandler
|
||||
.thumb_set ADC1_IRQHandler,Default_Handler
|
||||
|
||||
.weak TIM1_BRK_UP_TRG_COM_IRQHandler
|
||||
.thumb_set TIM1_BRK_UP_TRG_COM_IRQHandler,Default_Handler
|
||||
|
||||
.weak TIM1_CC_IRQHandler
|
||||
.thumb_set TIM1_CC_IRQHandler,Default_Handler
|
||||
|
||||
.weak TIM3_IRQHandler
|
||||
.thumb_set TIM3_IRQHandler,Default_Handler
|
||||
|
||||
.weak TIM6_IRQHandler
|
||||
.thumb_set TIM6_IRQHandler,Default_Handler
|
||||
|
||||
.weak TIM14_IRQHandler
|
||||
.thumb_set TIM14_IRQHandler,Default_Handler
|
||||
|
||||
.weak TIM15_IRQHandler
|
||||
.thumb_set TIM15_IRQHandler,Default_Handler
|
||||
|
||||
.weak TIM16_IRQHandler
|
||||
.thumb_set TIM16_IRQHandler,Default_Handler
|
||||
|
||||
.weak TIM17_IRQHandler
|
||||
.thumb_set TIM17_IRQHandler,Default_Handler
|
||||
|
||||
.weak I2C1_IRQHandler
|
||||
.thumb_set I2C1_IRQHandler,Default_Handler
|
||||
|
||||
.weak I2C2_IRQHandler
|
||||
.thumb_set I2C2_IRQHandler,Default_Handler
|
||||
|
||||
.weak SPI1_IRQHandler
|
||||
.thumb_set SPI1_IRQHandler,Default_Handler
|
||||
|
||||
.weak SPI2_IRQHandler
|
||||
.thumb_set SPI2_IRQHandler,Default_Handler
|
||||
|
||||
.weak USART1_IRQHandler
|
||||
.thumb_set USART1_IRQHandler,Default_Handler
|
||||
|
||||
.weak USART2_IRQHandler
|
||||
.thumb_set USART2_IRQHandler,Default_Handler
|
||||
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||
|
202
Software/DisplayBoard/DisplayBoard.ioc
Normal file
202
Software/DisplayBoard/DisplayBoard.ioc
Normal file
@ -0,0 +1,202 @@
|
||||
#MicroXplorer Configuration settings - do not modify
|
||||
ADC.IPParameters=SamplingTime
|
||||
ADC.SamplingTime=ADC_SAMPLETIME_239CYCLES_5
|
||||
Dma.I2C1_TX.0.Direction=DMA_MEMORY_TO_PERIPH
|
||||
Dma.I2C1_TX.0.Instance=DMA1_Channel2
|
||||
Dma.I2C1_TX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
|
||||
Dma.I2C1_TX.0.MemInc=DMA_MINC_ENABLE
|
||||
Dma.I2C1_TX.0.Mode=DMA_NORMAL
|
||||
Dma.I2C1_TX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
|
||||
Dma.I2C1_TX.0.PeriphInc=DMA_PINC_DISABLE
|
||||
Dma.I2C1_TX.0.Priority=DMA_PRIORITY_LOW
|
||||
Dma.I2C1_TX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
|
||||
Dma.Request0=I2C1_TX
|
||||
Dma.Request1=USART1_RX
|
||||
Dma.RequestsNb=2
|
||||
Dma.USART1_RX.1.Direction=DMA_PERIPH_TO_MEMORY
|
||||
Dma.USART1_RX.1.Instance=DMA1_Channel3
|
||||
Dma.USART1_RX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
|
||||
Dma.USART1_RX.1.MemInc=DMA_MINC_ENABLE
|
||||
Dma.USART1_RX.1.Mode=DMA_CIRCULAR
|
||||
Dma.USART1_RX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
|
||||
Dma.USART1_RX.1.PeriphInc=DMA_PINC_DISABLE
|
||||
Dma.USART1_RX.1.Priority=DMA_PRIORITY_LOW
|
||||
Dma.USART1_RX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
|
||||
File.Version=6
|
||||
GPIO.groupedBy=Group By Peripherals
|
||||
I2C1.I2C_Speed_Mode=I2C_Fast
|
||||
I2C1.IPParameters=I2C_Speed_Mode,Timing
|
||||
I2C1.Timing=0x0000020B
|
||||
KeepUserPlacement=false
|
||||
Mcu.Family=STM32F0
|
||||
Mcu.IP0=ADC
|
||||
Mcu.IP1=DMA
|
||||
Mcu.IP2=I2C1
|
||||
Mcu.IP3=NVIC
|
||||
Mcu.IP4=RCC
|
||||
Mcu.IP5=SYS
|
||||
Mcu.IP6=TIM3
|
||||
Mcu.IP7=TIM6
|
||||
Mcu.IP8=TIM14
|
||||
Mcu.IP9=USART1
|
||||
Mcu.IPNb=10
|
||||
Mcu.Name=STM32F030C8Tx
|
||||
Mcu.Package=LQFP48
|
||||
Mcu.Pin0=PA1
|
||||
Mcu.Pin1=PA2
|
||||
Mcu.Pin10=PA14
|
||||
Mcu.Pin11=PB6
|
||||
Mcu.Pin12=PB7
|
||||
Mcu.Pin13=VP_SYS_VS_Systick
|
||||
Mcu.Pin14=VP_TIM3_VS_ClockSourceINT
|
||||
Mcu.Pin15=VP_TIM6_VS_ClockSourceINT
|
||||
Mcu.Pin16=VP_TIM14_VS_ClockSourceINT
|
||||
Mcu.Pin2=PA3
|
||||
Mcu.Pin3=PA4
|
||||
Mcu.Pin4=PA5
|
||||
Mcu.Pin5=PA6
|
||||
Mcu.Pin6=PB0
|
||||
Mcu.Pin7=PA9
|
||||
Mcu.Pin8=PA10
|
||||
Mcu.Pin9=PA13
|
||||
Mcu.PinsNb=17
|
||||
Mcu.ThirdPartyNb=0
|
||||
Mcu.UserConstants=
|
||||
Mcu.UserName=STM32F030C8Tx
|
||||
MxCube.Version=6.1.1
|
||||
MxDb.Version=DB.6.0.10
|
||||
NVIC.DMA1_Channel2_3_IRQn=true\:0\:0\:false\:false\:true\:false\:true
|
||||
NVIC.EXTI0_1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
|
||||
NVIC.EXTI2_3_IRQn=true\:0\:0\:false\:false\:true\:true\:true
|
||||
NVIC.ForceEnableDMAVector=true
|
||||
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
|
||||
NVIC.I2C1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
|
||||
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
|
||||
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
|
||||
NVIC.SVC_IRQn=true\:0\:0\:false\:false\:true\:false\:false
|
||||
NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
|
||||
NVIC.TIM14_IRQn=true\:0\:0\:false\:false\:true\:true\:true
|
||||
NVIC.TIM3_IRQn=true\:0\:0\:false\:false\:true\:true\:true
|
||||
NVIC.TIM6_IRQn=true\:0\:0\:false\:false\:true\:true\:true
|
||||
NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
|
||||
PA1.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
|
||||
PA1.GPIO_Label=GPInput1
|
||||
PA1.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_FALLING
|
||||
PA1.GPIO_PuPd=GPIO_PULLUP
|
||||
PA1.Locked=true
|
||||
PA1.Signal=GPXTI1
|
||||
PA10.Mode=Asynchronous
|
||||
PA10.Signal=USART1_RX
|
||||
PA13.Mode=Serial_Wire
|
||||
PA13.Signal=SYS_SWDIO
|
||||
PA14.Mode=Serial_Wire
|
||||
PA14.Signal=SYS_SWCLK
|
||||
PA2.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
|
||||
PA2.GPIO_Label=GPInput2
|
||||
PA2.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_FALLING
|
||||
PA2.GPIO_PuPd=GPIO_PULLUP
|
||||
PA2.Locked=true
|
||||
PA2.Signal=GPXTI2
|
||||
PA3.GPIOParameters=GPIO_Label
|
||||
PA3.GPIO_Label=FUEL
|
||||
PA3.Locked=true
|
||||
PA3.Mode=IN3
|
||||
PA3.Signal=ADC_IN3
|
||||
PA4.GPIOParameters=GPIO_Label
|
||||
PA4.GPIO_Label=SPEED
|
||||
PA4.Locked=true
|
||||
PA4.Signal=S_TIM14_CH1
|
||||
PA5.GPIOParameters=GPIO_Label
|
||||
PA5.GPIO_Label=U_BATT
|
||||
PA5.Locked=true
|
||||
PA5.Mode=IN5
|
||||
PA5.Signal=ADC_IN5
|
||||
PA6.GPIOParameters=GPIO_Label
|
||||
PA6.GPIO_Label=RPM
|
||||
PA6.Locked=true
|
||||
PA6.Signal=S_TIM3_CH1
|
||||
PA9.Mode=Asynchronous
|
||||
PA9.Signal=USART1_TX
|
||||
PB0.GPIOParameters=GPIO_Label
|
||||
PB0.GPIO_Label=LED
|
||||
PB0.Locked=true
|
||||
PB0.Signal=GPIO_Output
|
||||
PB6.Mode=I2C
|
||||
PB6.Signal=I2C1_SCL
|
||||
PB7.Mode=I2C
|
||||
PB7.Signal=I2C1_SDA
|
||||
PinOutPanel.RotationAngle=0
|
||||
ProjectManager.AskForMigrate=true
|
||||
ProjectManager.BackupPrevious=false
|
||||
ProjectManager.CompilerOptimize=6
|
||||
ProjectManager.ComputerToolchain=false
|
||||
ProjectManager.CoupleFile=false
|
||||
ProjectManager.CustomerFirmwarePackage=
|
||||
ProjectManager.DefaultFWLocation=true
|
||||
ProjectManager.DeletePrevious=true
|
||||
ProjectManager.DeviceId=STM32F030C8Tx
|
||||
ProjectManager.FirmwarePackage=STM32Cube FW_F0 V1.11.2
|
||||
ProjectManager.FreePins=false
|
||||
ProjectManager.HalAssertFull=false
|
||||
ProjectManager.HeapSize=0x200
|
||||
ProjectManager.KeepUserCode=true
|
||||
ProjectManager.LastFirmware=true
|
||||
ProjectManager.LibraryCopy=1
|
||||
ProjectManager.MainLocation=Core/Src
|
||||
ProjectManager.NoMain=false
|
||||
ProjectManager.PreviousToolchain=STM32CubeIDE
|
||||
ProjectManager.ProjectBuild=false
|
||||
ProjectManager.ProjectFileName=DisplayBoard.ioc
|
||||
ProjectManager.ProjectName=DisplayBoard
|
||||
ProjectManager.RegisterCallBack=
|
||||
ProjectManager.StackSize=0x400
|
||||
ProjectManager.TargetToolchain=STM32CubeIDE
|
||||
ProjectManager.ToolChainLocation=
|
||||
ProjectManager.UnderRoot=true
|
||||
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_I2C1_Init-I2C1-false-HAL-true,5-MX_ADC_Init-ADC-false-HAL-true,6-MX_TIM3_Init-TIM3-false-HAL-true,7-MX_TIM14_Init-TIM14-false-HAL-true,8-MX_USART1_UART_Init-USART1-false-HAL-true
|
||||
RCC.AHBFreq_Value=48000000
|
||||
RCC.APB1Freq_Value=48000000
|
||||
RCC.APB1TimFreq_Value=48000000
|
||||
RCC.FCLKCortexFreq_Value=48000000
|
||||
RCC.FamilyName=M
|
||||
RCC.HCLKFreq_Value=48000000
|
||||
RCC.IPParameters=AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,MCOFreq_Value,PLLCLKFreq_Value,PLLMCOFreq_Value,PLLMUL,SYSCLKFreq_VALUE,SYSCLKSource,TimSysFreq_Value,USART1Freq_Value
|
||||
RCC.MCOFreq_Value=48000000
|
||||
RCC.PLLCLKFreq_Value=48000000
|
||||
RCC.PLLMCOFreq_Value=24000000
|
||||
RCC.PLLMUL=RCC_PLL_MUL12
|
||||
RCC.SYSCLKFreq_VALUE=48000000
|
||||
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
|
||||
RCC.TimSysFreq_Value=48000000
|
||||
RCC.USART1Freq_Value=48000000
|
||||
SH.GPXTI1.0=GPIO_EXTI1
|
||||
SH.GPXTI1.ConfNb=1
|
||||
SH.GPXTI2.0=GPIO_EXTI2
|
||||
SH.GPXTI2.ConfNb=1
|
||||
SH.S_TIM14_CH1.0=TIM14_CH1,Input_Capture1_from_TI1
|
||||
SH.S_TIM14_CH1.ConfNb=1
|
||||
SH.S_TIM3_CH1.0=TIM3_CH1,Input_Capture1_from_TI1
|
||||
SH.S_TIM3_CH1.ConfNb=1
|
||||
TIM14.Channel=TIM_CHANNEL_1
|
||||
TIM14.IPParameters=Channel,Prescaler,Period
|
||||
TIM14.Period=10000
|
||||
TIM14.Prescaler=4799
|
||||
TIM3.Channel-Input_Capture1_from_TI1=TIM_CHANNEL_1
|
||||
TIM3.IPParameters=Channel-Input_Capture1_from_TI1,Prescaler,Period
|
||||
TIM3.Period=10000
|
||||
TIM3.Prescaler=4799
|
||||
TIM6.IPParameters=Prescaler,Period
|
||||
TIM6.Period=1000
|
||||
TIM6.Prescaler=47999
|
||||
USART1.IPParameters=VirtualMode-Asynchronous
|
||||
USART1.VirtualMode-Asynchronous=VM_ASYNC
|
||||
VP_SYS_VS_Systick.Mode=SysTick
|
||||
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
|
||||
VP_TIM14_VS_ClockSourceINT.Mode=Enable_Timer
|
||||
VP_TIM14_VS_ClockSourceINT.Signal=TIM14_VS_ClockSourceINT
|
||||
VP_TIM3_VS_ClockSourceINT.Mode=Internal
|
||||
VP_TIM3_VS_ClockSourceINT.Signal=TIM3_VS_ClockSourceINT
|
||||
VP_TIM6_VS_ClockSourceINT.Mode=Enable_Timer
|
||||
VP_TIM6_VS_ClockSourceINT.Signal=TIM6_VS_ClockSourceINT
|
||||
board=custom
|
||||
isbadioc=false
|
Loading…
x
Reference in New Issue
Block a user