From 482b612e9f6e218e025ad01b5345d8bb6d29bd03 Mon Sep 17 00:00:00 2001 From: Edward Emelianov Date: Fri, 22 Sep 2023 16:21:05 +0300 Subject: [PATCH] code tested --- F1:F103/shutter/{code => }/Makefile | 0 F1:F103/shutter/Readme.md | 75 ++ F1:F103/shutter/{code => }/adc.c | 0 F1:F103/shutter/{code => }/adc.h | 0 F1:F103/shutter/code/Readme.md | 19 - F1:F103/shutter/code/kicad | 1 - F1:F103/shutter/code/shutter.bin | Bin 8004 -> 0 bytes F1:F103/shutter/code/version.inc | 2 - F1:F103/shutter/{code => }/hardware.c | 0 F1:F103/shutter/{code => }/hardware.h | 0 F1:F103/shutter/{ => kicad}/3d.png | Bin F1:F103/shutter/{ => kicad}/fp-info-cache | 0 .../{ => kicad}/gerbers/shutter-B_Cu.gbr | 0 .../{ => kicad}/gerbers/shutter-Edge_Cuts.gbr | 0 .../{ => kicad}/gerbers/shutter-F_Cu.gbr | 0 .../{ => kicad}/gerbers/shutter-drl.rpt | 0 .../{ => kicad}/gerbers/shutter-drl_map.gbr | 0 .../{ => kicad}/gerbers/shutter-job.gbrjob | 0 .../shutter/{ => kicad}/gerbers/shutter.drl | 0 F1:F103/shutter/kicad/shutter.csv | 38 + F1:F103/shutter/{ => kicad}/shutter.kicad_pcb | 10 +- F1:F103/shutter/{ => kicad}/shutter.kicad_prl | 2 +- F1:F103/shutter/{ => kicad}/shutter.kicad_pro | 0 F1:F103/shutter/{ => kicad}/shutter.kicad_sch | 2 +- F1:F103/shutter/kicad/shutter.pdf | Bin 0 -> 255058 bytes F1:F103/shutter/kicad/shutter.xml | 1105 +++++++++++++++++ F1:F103/shutter/{code => }/main.c | 0 F1:F103/shutter/{code => }/openocd.cfg | 0 F1:F103/shutter/{code => }/proto.c | 60 +- F1:F103/shutter/{code => }/proto.h | 0 F1:F103/shutter/{code => }/ringbuffer.c | 0 F1:F103/shutter/{code => }/ringbuffer.h | 0 F1:F103/shutter/shutter.bin | Bin 0 -> 8104 bytes F1:F103/shutter/{code => }/shutter.c | 63 +- F1:F103/shutter/{code => }/shutter.cflags | 0 F1:F103/shutter/{code => }/shutter.config | 0 F1:F103/shutter/{code => }/shutter.creator | 0 .../shutter/{code => }/shutter.creator.user | 0 .../{code => }/shutter.creator.user.7bd84e3 | 0 F1:F103/shutter/{code => }/shutter.cxxflags | 0 F1:F103/shutter/{code => }/shutter.files | 0 F1:F103/shutter/{code => }/shutter.h | 4 + F1:F103/shutter/{code => }/shutter.includes | 0 F1:F103/shutter/{code => }/usb.c | 0 F1:F103/shutter/{code => }/usb.h | 0 F1:F103/shutter/{code => }/usb_lib.c | 2 +- F1:F103/shutter/{code => }/usb_lib.h | 0 F1:F103/shutter/{code => }/usbhw.c | 0 F1:F103/shutter/{code => }/usbhw.h | 0 F1:F103/shutter/version.inc | 2 + 50 files changed, 1309 insertions(+), 76 deletions(-) rename F1:F103/shutter/{code => }/Makefile (100%) create mode 100644 F1:F103/shutter/Readme.md rename F1:F103/shutter/{code => }/adc.c (100%) rename F1:F103/shutter/{code => }/adc.h (100%) delete mode 100644 F1:F103/shutter/code/Readme.md delete mode 120000 F1:F103/shutter/code/kicad delete mode 100755 F1:F103/shutter/code/shutter.bin delete mode 100644 F1:F103/shutter/code/version.inc rename F1:F103/shutter/{code => }/hardware.c (100%) rename F1:F103/shutter/{code => }/hardware.h (100%) rename F1:F103/shutter/{ => kicad}/3d.png (100%) rename F1:F103/shutter/{ => kicad}/fp-info-cache (100%) rename F1:F103/shutter/{ => kicad}/gerbers/shutter-B_Cu.gbr (100%) rename F1:F103/shutter/{ => kicad}/gerbers/shutter-Edge_Cuts.gbr (100%) rename F1:F103/shutter/{ => kicad}/gerbers/shutter-F_Cu.gbr (100%) rename F1:F103/shutter/{ => kicad}/gerbers/shutter-drl.rpt (100%) rename F1:F103/shutter/{ => kicad}/gerbers/shutter-drl_map.gbr (100%) rename F1:F103/shutter/{ => kicad}/gerbers/shutter-job.gbrjob (100%) rename F1:F103/shutter/{ => kicad}/gerbers/shutter.drl (100%) create mode 100644 F1:F103/shutter/kicad/shutter.csv rename F1:F103/shutter/{ => kicad}/shutter.kicad_pcb (99%) rename F1:F103/shutter/{ => kicad}/shutter.kicad_prl (97%) rename F1:F103/shutter/{ => kicad}/shutter.kicad_pro (100%) rename F1:F103/shutter/{ => kicad}/shutter.kicad_sch (99%) create mode 100644 F1:F103/shutter/kicad/shutter.pdf create mode 100644 F1:F103/shutter/kicad/shutter.xml rename F1:F103/shutter/{code => }/main.c (100%) rename F1:F103/shutter/{code => }/openocd.cfg (100%) rename F1:F103/shutter/{code => }/proto.c (87%) rename F1:F103/shutter/{code => }/proto.h (100%) rename F1:F103/shutter/{code => }/ringbuffer.c (100%) rename F1:F103/shutter/{code => }/ringbuffer.h (100%) create mode 100755 F1:F103/shutter/shutter.bin rename F1:F103/shutter/{code => }/shutter.c (63%) rename F1:F103/shutter/{code => }/shutter.cflags (100%) rename F1:F103/shutter/{code => }/shutter.config (100%) rename F1:F103/shutter/{code => }/shutter.creator (100%) rename F1:F103/shutter/{code => }/shutter.creator.user (100%) rename F1:F103/shutter/{code => }/shutter.creator.user.7bd84e3 (100%) rename F1:F103/shutter/{code => }/shutter.cxxflags (100%) rename F1:F103/shutter/{code => }/shutter.files (100%) rename F1:F103/shutter/{code => }/shutter.h (93%) rename F1:F103/shutter/{code => }/shutter.includes (100%) rename F1:F103/shutter/{code => }/usb.c (100%) rename F1:F103/shutter/{code => }/usb.h (100%) rename F1:F103/shutter/{code => }/usb_lib.c (99%) rename F1:F103/shutter/{code => }/usb_lib.h (100%) rename F1:F103/shutter/{code => }/usbhw.c (100%) rename F1:F103/shutter/{code => }/usbhw.h (100%) create mode 100644 F1:F103/shutter/version.inc diff --git a/F1:F103/shutter/code/Makefile b/F1:F103/shutter/Makefile similarity index 100% rename from F1:F103/shutter/code/Makefile rename to F1:F103/shutter/Makefile diff --git a/F1:F103/shutter/Readme.md b/F1:F103/shutter/Readme.md new file mode 100644 index 0000000..f61bfa6 --- /dev/null +++ b/F1:F103/shutter/Readme.md @@ -0,0 +1,75 @@ +Shutter control +=============== + +Works with bi-stable shutter. +You can find the device in `/dev/shutterX` (symlink to `/dev/ttyUSBX`). + +## Pinout + +**PB0** (pullup in) - hall (or reed switch) sensor input (active low) - opened shutter detector + +**PB11** (pullup in) - CCD or button input: open at low signal, close at high + +**PA3** (ADC in) - shutter voltage (approx 1/12 U) + +**PA5** (PP out) - TLE5205 IN2 + +**PA6** (PP out) - TLE5205 IN1 + +**PA7** (pullup in) - TLE5205 FB + +**PA10** (PP out) - USB pullup (active low) + +**PA11**, **PA12** - USB + +**PA13**, **PA14** - SWD + +## Commands + +* '0' - shutter CLO +* '1' - shutter OPE +* '2' - shutter HIZ +* 'A' - get raw ADC values +* 'C' - close shutter / abort exposition +* 'E n' - expose for n milliseconds +* 'O' - open shutter +* 'R' - software reset +* 'S' - get shutter state; also hall and ccd inputs state (1 - active) +* 't' - get MCU temperature (/10degC) +* 'T' - get Tms +* 'v' - get Vdd (/100V) +* 'V' - get shutter voltage (/100V) +* 'W' - test watchdog + +If you will enter wrong long message, will receive its echo back. Any wrong short command will show help list. + +### Shutter control +Commands '0', '1' and '2' should be used only for debugging purposes. +To open/close shutter use only 'O', 'C' and 'E' commands. + +When opening or closing shutter you will first receive an answer: `OK` if command could be done or `ERR` if there's insufficient voltage on capacitor or shutter is absent. +After opened the message `shutter=opened` will appear. After closing you will receive messages `exptime=xxx` (when `xxx` is approx. exp. time in milliseconds) and `shutter=closed`. + +Command 'E' could return `OK`, `ERR` or `ERRNUM`/`I32OVERFLOW` in wrong number format (number could be decimal, 0x.. - hexadecimal, b.. - binary or 0.. - octal). + +When exposition starts you will receive message `OK` and `shutter=opened`. After its end you'll got `exptime=...`, `shutter=closed`. +If shutter can't be closed, you will give a lots of "exp=cantclose" and different error messages until problem be solved. To stop this error messages give command 'O'. + +### Different commands +* 'A' will show raw values for all ADC channels: 0. - capacitor voltage, 1 - MCU temperature, 2 - MCU Vdd. You will give messages like `adcX=val`. + +* 't' - `mcut=val`, where val = T*10 degrC. + +* 'T' - `tms=val`, val in ms. + +* 'v' - `vdd=val`, val in V*100 + +* 'V' - "voltage=val", val in V*100 + +* 'S' - several answers: + * `shutter=`: `closed`, `opened`, `error`, `process`, `wait` or `exposing` - shutter state + * `exptime=...` (only when shutter is opened) - show time since opening + * `regstate=`: `open`, `close`, `off` or `hiZ` - TLE5205 outputs state + * `fbstate=`: `0` or `1` - TLE5205 FB out state (1 - error) + * `hall=`: `0` or `1` - 1 for opened shutter, 0 for closed + * `ccd=`: `0` or `1` - 1 for active (closed contacts) state of "CCD" input diff --git a/F1:F103/shutter/code/adc.c b/F1:F103/shutter/adc.c similarity index 100% rename from F1:F103/shutter/code/adc.c rename to F1:F103/shutter/adc.c diff --git a/F1:F103/shutter/code/adc.h b/F1:F103/shutter/adc.h similarity index 100% rename from F1:F103/shutter/code/adc.h rename to F1:F103/shutter/adc.h diff --git a/F1:F103/shutter/code/Readme.md b/F1:F103/shutter/code/Readme.md deleted file mode 100644 index f1881a9..0000000 --- a/F1:F103/shutter/code/Readme.md +++ /dev/null @@ -1,19 +0,0 @@ -Shutter control -=============== - -Works with bi-stable shutter. - -Pinout: -PB0 (pullup in) - hall (or reed switch) sensor input (active low) - opened shutter detector -PB11 (pullup in) - CCD or button input: open at low signal, close at high - -PA3 (ADC in) - shutter voltage (approx 1/12 U) -PA5 (PP out) - TLE5205 IN2 -PA6 (PP out) - TLE5205 IN1 -PA7 (pullup in) - TLE5205 FB -PA10 (PP out) - USB pullup (active low) -PA11,12 - USB -PA13,14 - SWD - - -Commands: diff --git a/F1:F103/shutter/code/kicad b/F1:F103/shutter/code/kicad deleted file mode 120000 index 6e6d4f0..0000000 --- a/F1:F103/shutter/code/kicad +++ /dev/null @@ -1 +0,0 @@ -/home/eddy/Docs/SAO/Zeiss-1000/Small_photometer/shutter/kicad/shutter \ No newline at end of file diff --git a/F1:F103/shutter/code/shutter.bin b/F1:F103/shutter/code/shutter.bin deleted file mode 100755 index c66aa66513cd412c44845d9dd1c6c1561f2cc04a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8004 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

1#? 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 literal 0 HcmV?d00001 diff --git a/F1:F103/shutter/kicad/shutter.xml b/F1:F103/shutter/kicad/shutter.xml new file mode 100644 index 0000000..35e351b --- /dev/null +++ b/F1:F103/shutter/kicad/shutter.xml @@ -0,0 +1,1105 @@ + + + + /home/eddy/Docs/SAO/Zeiss-1000/Small_photometer/shutter/kicad/shutter/shutter.kicad_sch + Вт 12 сен 2023 17:34:36 + Eeschema 7.0.5 + + + + <company/> + <rev/> + <date/> + <source>shutter.kicad_sch</source> + <comment number="1" value=""/> + <comment number="2" value=""/> + <comment number="3" value=""/> + <comment number="4" value=""/> + <comment number="5" value=""/> + <comment number="6" value=""/> + <comment number="7" value=""/> + <comment number="8" value=""/> + <comment number="9" value=""/> + </title_block> + </sheet> + </design> + <components> + <comp ref="C1"> + <value>2200u, 40V</value> + <footprint>Capacitor_THT:CP_Radial_D17.0mm_P7.50mm</footprint> + <libsource lib="ALL-rescue" part="CP1" description=""/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>7cafc48e-d805-4dad-9acc-954a0ae1cf67</tstamps> + </comp> + <comp ref="C2"> + <value>1u</value> + <footprint>Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder</footprint> + <libsource lib="Device" part="C" description="Unpolarized capacitor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Unpolarized capacitor"/> + <property name="ki_keywords" value="cap capacitor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>20a72a8b-49f7-4dbd-86d8-088c0a093651</tstamps> + </comp> + <comp ref="C3"> + <value>0.1</value> + <footprint>Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder</footprint> + <libsource lib="Device" part="C" description="Unpolarized capacitor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Unpolarized capacitor"/> + <property name="ki_keywords" value="cap capacitor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>f8ee89a8-d538-45ca-bc61-031426795c3d</tstamps> + </comp> + <comp ref="C4"> + <value>47u</value> + <footprint>Capacitor_Tantalum_SMD:CP_EIA-6032-28_Kemet-C_Pad2.25x2.35mm_HandSolder</footprint> + <libsource lib="Device" part="C_Polarized" description="Polarized capacitor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Polarized capacitor"/> + <property name="ki_keywords" value="cap capacitor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>eaa8f35a-9082-4836-9d53-0c16f77ccf09</tstamps> + </comp> + <comp ref="C5"> + <value>0.1</value> + <footprint>Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder</footprint> + <libsource lib="Device" part="C" description="Unpolarized capacitor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Unpolarized capacitor"/> + <property name="ki_keywords" value="cap capacitor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>8ae7c88d-a928-4e73-acd8-44041733f182</tstamps> + </comp> + <comp ref="C6"> + <value>0.1</value> + <footprint>Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder</footprint> + <libsource lib="Device" part="C" description="Unpolarized capacitor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Unpolarized capacitor"/> + <property name="ki_keywords" value="cap capacitor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>be2976f4-62a1-4517-b2c4-5bf5330ff1b4</tstamps> + </comp> + <comp ref="C7"> + <value>0.1</value> + <footprint>Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder</footprint> + <libsource lib="Device" part="C" description="Unpolarized capacitor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Unpolarized capacitor"/> + <property name="ki_keywords" value="cap capacitor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>399d86de-1cb9-447a-a5ce-b3ddf75a8edc</tstamps> + </comp> + <comp ref="C8"> + <value>0.1</value> + <footprint>Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder</footprint> + <libsource lib="Device" part="C" description="Unpolarized capacitor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Unpolarized capacitor"/> + <property name="ki_keywords" value="cap capacitor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>b1dfd575-70b8-4792-af40-9cfa6f28a6ba</tstamps> + </comp> + <comp ref="C9"> + <value>6</value> + <footprint>Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder</footprint> + <libsource lib="Device" part="C" description="Unpolarized capacitor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Unpolarized capacitor"/> + <property name="ki_keywords" value="cap capacitor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>d66ecc3c-78a9-4638-a80d-9eb56407e476</tstamps> + </comp> + <comp ref="C10"> + <value>6</value> + <footprint>Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder</footprint> + <libsource lib="Device" part="C" description="Unpolarized capacitor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Unpolarized capacitor"/> + <property name="ki_keywords" value="cap capacitor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>d2ddc8d7-1a60-451c-bab3-dbe9df581ae9</tstamps> + </comp> + <comp ref="D1"> + <value>1N5819</value> + <footprint>Diode_SMD:D_SOD-323_HandSoldering</footprint> + <libsource lib="Device" part="D_Schottky" description="Schottky diode"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Schottky diode"/> + <property name="ki_keywords" value="diode Schottky"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>3ddcb342-b864-437a-a032-0d9652191485</tstamps> + </comp> + <comp ref="D2"> + <value>1N5819</value> + <footprint>Diode_SMD:D_SOD-323_HandSoldering</footprint> + <libsource lib="Device" part="D_Schottky" description="Schottky diode"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Schottky diode"/> + <property name="ki_keywords" value="diode Schottky"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>60a630f7-a59e-4e9d-82cc-0c1b48429a9e</tstamps> + </comp> + <comp ref="D3"> + <value>1N5819</value> + <footprint>Diode_SMD:D_SOD-323_HandSoldering</footprint> + <libsource lib="Device" part="D_Schottky" description="Schottky diode"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Schottky diode"/> + <property name="ki_keywords" value="diode Schottky"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>37c85700-9297-41a9-9a27-64c9d4149995</tstamps> + </comp> + <comp ref="D4"> + <value>1N5819</value> + <footprint>Diode_SMD:D_SOD-323_HandSoldering</footprint> + <libsource lib="Device" part="D_Schottky" description="Schottky diode"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Schottky diode"/> + <property name="ki_keywords" value="diode Schottky"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>7698fe80-9b6d-44d9-8dca-468e95006009</tstamps> + </comp> + <comp ref="D5"> + <value>1N5819</value> + <footprint>Diode_SMD:D_SOD-323_HandSoldering</footprint> + <libsource lib="Device" part="D_Schottky" description="Schottky diode"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Schottky diode"/> + <property name="ki_keywords" value="diode Schottky"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>69a101ce-200a-4178-9fe5-656aa100d28c</tstamps> + </comp> + <comp ref="DA1"> + <value>TLE5205</value> + <footprint>Package_TO_SOT_THT:TO-220-7_P2.54x3.8mm_StaggerEven_Lead5.85mm_TabDown</footprint> + <libsource lib="my_elements" part="TLE5205" description=""/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>97c8a242-cdb4-4863-a99c-45b9a3d670a1</tstamps> + </comp> + <comp ref="H1"> + <value>MountingHole</value> + <footprint>MountingHole:MountingHole_3.2mm_M3</footprint> + <libsource lib="Mechanical" part="MountingHole" description="Mounting Hole without connection"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Mounting Hole without connection"/> + <property name="ki_keywords" value="mounting hole"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>11860121-6def-4ab6-aa2f-f26a04c131d6</tstamps> + </comp> + <comp ref="H2"> + <value>MountingHole</value> + <footprint>MountingHole:MountingHole_3.2mm_M3</footprint> + <libsource lib="Mechanical" part="MountingHole" description="Mounting Hole without connection"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Mounting Hole without connection"/> + <property name="ki_keywords" value="mounting hole"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>3610868b-e95c-44b4-bf02-081f0985ef75</tstamps> + </comp> + <comp ref="H3"> + <value>MountingHole</value> + <footprint>MountingHole:MountingHole_3.2mm_M3</footprint> + <libsource lib="Mechanical" part="MountingHole" description="Mounting Hole without connection"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Mounting Hole without connection"/> + <property name="ki_keywords" value="mounting hole"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>b0fd44e4-226f-432f-9e56-49eeb34dc815</tstamps> + </comp> + <comp ref="H4"> + <value>MountingHole</value> + <footprint>MountingHole:MountingHole_3.2mm_M3</footprint> + <libsource lib="Mechanical" part="MountingHole" description="Mounting Hole without connection"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Mounting Hole without connection"/> + <property name="ki_keywords" value="mounting hole"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>f8faa37e-a805-42e4-a0e4-c0da40c94816</tstamps> + </comp> + <comp ref="J1"> + <value>shutter</value> + <footprint>TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal</footprint> + <libsource lib="Connector" part="Conn_01x02_Female" description="Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)"/> + <property name="ki_keywords" value="connector"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>5bd9f636-efbf-4daf-bfde-a7afb874d687</tstamps> + </comp> + <comp ref="J2"> + <value>power</value> + <footprint>TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal</footprint> + <libsource lib="Connector" part="Conn_01x02_Female" description="Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)"/> + <property name="ki_keywords" value="connector"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>ae66468f-e721-4060-96f1-db9d8d781954</tstamps> + </comp> + <comp ref="J3"> + <value>SWD</value> + <footprint>Connector_PinHeader_1.27mm:PinHeader_1x06_P1.27mm_Vertical</footprint> + <libsource lib="Connector" part="Conn_01x06_Female" description="Generic connector, single row, 01x06, script generated (kicad-library-utils/schlib/autogen/connector/)"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Generic connector, single row, 01x06, script generated (kicad-library-utils/schlib/autogen/connector/)"/> + <property name="ki_keywords" value="connector"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>cf4190cb-e894-4cb7-a066-e1fddb54d81d</tstamps> + </comp> + <comp ref="J4"> + <value>5v</value> + <footprint>Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical</footprint> + <libsource lib="Connector_Generic" part="Conn_01x01" description="Generic connector, single row, 01x01, script generated (kicad-library-utils/schlib/autogen/connector/)"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Generic connector, single row, 01x01, script generated (kicad-library-utils/schlib/autogen/connector/)"/> + <property name="ki_keywords" value="connector"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>f510a2d4-5933-4be0-ab8f-369fe764d46e</tstamps> + </comp> + <comp ref="J5"> + <value>GND</value> + <footprint>Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical</footprint> + <libsource lib="Connector_Generic" part="Conn_01x01" description="Generic connector, single row, 01x01, script generated (kicad-library-utils/schlib/autogen/connector/)"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Generic connector, single row, 01x01, script generated (kicad-library-utils/schlib/autogen/connector/)"/> + <property name="ki_keywords" value="connector"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>0e6a2462-6232-4c0c-921f-6a66478b0db9</tstamps> + </comp> + <comp ref="J6"> + <value>3v3</value> + <footprint>Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical</footprint> + <libsource lib="Connector_Generic" part="Conn_01x01" description="Generic connector, single row, 01x01, script generated (kicad-library-utils/schlib/autogen/connector/)"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Generic connector, single row, 01x01, script generated (kicad-library-utils/schlib/autogen/connector/)"/> + <property name="ki_keywords" value="connector"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>6e902ff7-ed64-4be4-a620-dcbec0005084</tstamps> + </comp> + <comp ref="J7"> + <value>USB_B</value> + <footprint>Connector_USB:USB_B_Lumberg_2411_02_Horizontal</footprint> + <datasheet> ~</datasheet> + <libsource lib="Connector" part="USB_B" description="USB Type B connector"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="USB Type B connector"/> + <property name="ki_keywords" value="connector USB"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>ec0c36b0-9030-4188-a3fd-6445c337e863</tstamps> + </comp> + <comp ref="J8"> + <value>hall</value> + <footprint>Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical</footprint> + <libsource lib="Connector" part="Conn_01x02_Female" description="Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)"/> + <property name="ki_keywords" value="connector"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>2cdf4672-8bc0-4c80-a467-2be0b8fc7083</tstamps> + </comp> + <comp ref="J9"> + <value>ccd</value> + <footprint>Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical</footprint> + <libsource lib="Connector" part="Conn_01x02_Female" description="Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)"/> + <property name="ki_keywords" value="connector"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>e91a1ceb-d5ae-4a13-b9ce-026bff51d405</tstamps> + </comp> + <comp ref="Q1"> + <value>DTA114Y</value> + <footprint>Package_TO_SOT_SMD:SOT-323_SC-70_Handsoldering</footprint> + <libsource lib="Transistor_BJT" part="DTA114Y" description="Digital PNP Transistor, 10k/47k, SOT-23"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Digital PNP Transistor, 10k/47k, SOT-23"/> + <property name="ki_keywords" value="ROHM Digital PNP Transistor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>7e23f7fd-4944-4efe-b398-4293e78bbe15</tstamps> + </comp> + <comp ref="R1"> + <value>6.9</value> + <footprint>Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder</footprint> + <libsource lib="Device" part="R" description="Resistor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Resistor"/> + <property name="ki_keywords" value="R res resistor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>f50757df-fee6-46fb-96ff-c0d6200c9fcf</tstamps> + </comp> + <comp ref="R2"> + <value>56k</value> + <footprint>Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder</footprint> + <libsource lib="Device" part="R" description="Resistor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Resistor"/> + <property name="ki_keywords" value="R res resistor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>9ea77273-01ce-4ded-8876-1ca813b38755</tstamps> + </comp> + <comp ref="R3"> + <value>4k7</value> + <footprint>Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder</footprint> + <libsource lib="Device" part="R" description="Resistor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Resistor"/> + <property name="ki_keywords" value="R res resistor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>71e9b536-445c-4f6e-b268-0eb5bf33f7b7</tstamps> + </comp> + <comp ref="R4"> + <value>300 II</value> + <footprint>Resistor_THT:R_Axial_Power_L20.0mm_W6.4mm_P22.40mm</footprint> + <libsource lib="Device" part="R" description="Resistor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Resistor"/> + <property name="ki_keywords" value="R res resistor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>d8e1f451-5fce-416a-b423-7be37c0c9bfb</tstamps> + </comp> + <comp ref="R5"> + <value>4k7</value> + <footprint>Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder</footprint> + <libsource lib="Device" part="R" description="Resistor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Resistor"/> + <property name="ki_keywords" value="R res resistor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>3314803a-6684-4479-a876-1bef9b756677</tstamps> + </comp> + <comp ref="R6"> + <value>4k7</value> + <footprint>Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder</footprint> + <libsource lib="Device" part="R" description="Resistor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Resistor"/> + <property name="ki_keywords" value="R res resistor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>980f7aac-c760-4fac-8c67-6077682c43f4</tstamps> + </comp> + <comp ref="R7"> + <value>10k</value> + <footprint>Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder</footprint> + <libsource lib="Device" part="R" description="Resistor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Resistor"/> + <property name="ki_keywords" value="R res resistor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>7a2b2697-d23b-461c-a18b-db32fdd2ebce</tstamps> + </comp> + <comp ref="R8"> + <value>22</value> + <footprint>Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder</footprint> + <libsource lib="Device" part="R" description="Resistor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Resistor"/> + <property name="ki_keywords" value="R res resistor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>d478ffc1-49d5-4f85-92c3-899e784760e3</tstamps> + </comp> + <comp ref="R9"> + <value>22</value> + <footprint>Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder</footprint> + <libsource lib="Device" part="R" description="Resistor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Resistor"/> + <property name="ki_keywords" value="R res resistor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>e1625402-a7a5-40c8-99fe-f8e9d81decf2</tstamps> + </comp> + <comp ref="R10"> + <value>1k5</value> + <footprint>Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder</footprint> + <libsource lib="Device" part="R" description="Resistor"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Resistor"/> + <property name="ki_keywords" value="R res resistor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>0dd3bdf9-b3e9-4248-b191-433d2726416c</tstamps> + </comp> + <comp ref="U1"> + <value>LM1117-3.3</value> + <footprint>Package_TO_SOT_SMD:SOT-223-3_TabPin2</footprint> + <datasheet>http://www.ti.com/lit/ds/symlink/lm1117.pdf</datasheet> + <libsource lib="Regulator_Linear" part="LM1117-3.3" description="800mA Low-Dropout Linear Regulator, 3.3V fixed output, TO-220/TO-252/TO-263/SOT-223"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="800mA Low-Dropout Linear Regulator, 3.3V fixed output, TO-220/TO-252/TO-263/SOT-223"/> + <property name="ki_keywords" value="linear regulator ldo fixed positive"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>610c83b0-fe12-4592-b310-23f731d13bc6</tstamps> + </comp> + <comp ref="U2"> + <value>STM32F103C6Tx</value> + <footprint>Package_QFP:LQFP-48_7x7mm_P0.5mm</footprint> + <datasheet>http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00210843.pdf</datasheet> + <libsource lib="MCU_ST_STM32F1" part="STM32F103C6Tx" description="ARM Cortex-M3 MCU, 32KB flash, 10KB RAM, 72MHz, 2-3.6V, 37 GPIO, LQFP-48"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="ARM Cortex-M3 MCU, 32KB flash, 10KB RAM, 72MHz, 2-3.6V, 37 GPIO, LQFP-48"/> + <property name="ki_keywords" value="ARM Cortex-M3 STM32F1 STM32F103"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>29a25600-08b3-4abd-8f27-6743d84ba2cf</tstamps> + </comp> + <comp ref="U3"> + <value>USBLC6-2SC6</value> + <footprint>Package_TO_SOT_SMD:SOT-23-6_Handsoldering</footprint> + <datasheet>http://www2.st.com/resource/en/datasheet/CD00050750.pdf</datasheet> + <libsource lib="Power_Protection" part="USBLC6-2SC6" description="Very low capacitance ESD protection diode, 2 data-line, SOT-23-6"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Very low capacitance ESD protection diode, 2 data-line, SOT-23-6"/> + <property name="ki_keywords" value="usb ethernet video"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>88f9b783-65fa-4190-83e6-8920b0786838</tstamps> + </comp> + <comp ref="Y1"> + <value>NX5032GA-8MHz</value> + <footprint>Crystal:Crystal_SMD_5032-2Pin_5.0x3.2mm</footprint> + <libsource lib="Device" part="Crystal" description="Two pin crystal"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="shutter.kicad_sch"/> + <property name="ki_description" value="Two pin crystal"/> + <property name="ki_keywords" value="quartz ceramic resonator oscillator"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>be73e1b2-57bc-49db-a6c9-a6c6f7b2ed34</tstamps> + </comp> + </components> + <libparts> + <libpart lib="ALL-rescue" part="CP1"> + <footprints> + <fp>CP*</fp> + <fp>SM*</fp> + </footprints> + <fields> + <field name="Reference">C</field> + <field name="Value">CP1</field> + </fields> + <pins> + <pin num="1" name="" type="passive"/> + <pin num="2" name="" type="passive"/> + </pins> + </libpart> + <libpart lib="Connector" part="Conn_01x02_Female"> + <description>Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)</description> + <docs>~</docs> + <footprints> + <fp>Connector*:*_1x??_*</fp> + </footprints> + <fields> + <field name="Reference">J</field> + <field name="Value">Conn_01x02_Female</field> + <field name="Datasheet">~</field> + </fields> + <pins> + <pin num="1" name="Pin_1" type="passive"/> + <pin num="2" name="Pin_2" type="passive"/> + </pins> + </libpart> + <libpart lib="Connector" part="Conn_01x06_Female"> + <description>Generic connector, single row, 01x06, script generated (kicad-library-utils/schlib/autogen/connector/)</description> + <docs>~</docs> + <footprints> + <fp>Connector*:*_1x??_*</fp> + </footprints> + <fields> + <field name="Reference">J</field> + <field name="Value">Conn_01x06_Female</field> + <field name="Datasheet">~</field> + </fields> + <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"/> + </pins> + </libpart> + <libpart lib="Connector" part="USB_B"> + <description>USB Type B connector</description> + <docs> ~</docs> + <footprints> + <fp>USB*</fp> + </footprints> + <fields> + <field name="Reference">J</field> + <field name="Value">USB_B</field> + <field name="Datasheet"> ~</field> + </fields> + <pins> + <pin num="1" name="VBUS" type="power_out"/> + <pin num="2" name="D-" type="bidirectional"/> + <pin num="3" name="D+" type="bidirectional"/> + <pin num="4" name="GND" type="power_out"/> + <pin num="5" name="Shield" type="passive"/> + </pins> + </libpart> + <libpart lib="Connector_Generic" part="Conn_01x01"> + <description>Generic connector, single row, 01x01, script generated (kicad-library-utils/schlib/autogen/connector/)</description> + <docs>~</docs> + <footprints> + <fp>Connector*:*_1x??_*</fp> + </footprints> + <fields> + <field name="Reference">J</field> + <field name="Value">Conn_01x01</field> + <field name="Datasheet">~</field> + </fields> + <pins> + <pin num="1" name="Pin_1" type="passive"/> + </pins> + </libpart> + <libpart lib="Device" part="C"> + <description>Unpolarized capacitor</description> + <docs>~</docs> + <footprints> + <fp>C_*</fp> + </footprints> + <fields> + <field name="Reference">C</field> + <field name="Value">C</field> + <field name="Datasheet">~</field> + </fields> + <pins> + <pin num="1" name="" type="passive"/> + <pin num="2" name="" type="passive"/> + </pins> + </libpart> + <libpart lib="Device" part="C_Polarized"> + <description>Polarized capacitor</description> + <docs>~</docs> + <footprints> + <fp>CP_*</fp> + </footprints> + <fields> + <field name="Reference">C</field> + <field name="Value">C_Polarized</field> + <field name="Datasheet">~</field> + </fields> + <pins> + <pin num="1" name="" type="passive"/> + <pin num="2" name="" type="passive"/> + </pins> + </libpart> + <libpart lib="Device" part="Crystal"> + <description>Two pin crystal</description> + <docs>~</docs> + <footprints> + <fp>Crystal*</fp> + </footprints> + <fields> + <field name="Reference">Y</field> + <field name="Value">Crystal</field> + <field name="Datasheet">~</field> + </fields> + <pins> + <pin num="1" name="1" type="passive"/> + <pin num="2" name="2" type="passive"/> + </pins> + </libpart> + <libpart lib="Device" part="D_Schottky"> + <description>Schottky diode</description> + <docs>~</docs> + <footprints> + <fp>TO-???*</fp> + <fp>*_Diode_*</fp> + <fp>*SingleDiode*</fp> + <fp>D_*</fp> + </footprints> + <fields> + <field name="Reference">D</field> + <field name="Value">D_Schottky</field> + <field name="Datasheet">~</field> + </fields> + <pins> + <pin num="1" name="K" type="passive"/> + <pin num="2" name="A" type="passive"/> + </pins> + </libpart> + <libpart lib="Device" part="R"> + <description>Resistor</description> + <docs>~</docs> + <footprints> + <fp>R_*</fp> + </footprints> + <fields> + <field name="Reference">R</field> + <field name="Value">R</field> + <field name="Datasheet">~</field> + </fields> + <pins> + <pin num="1" name="" type="passive"/> + <pin num="2" name="" type="passive"/> + </pins> + </libpart> + <libpart lib="MCU_ST_STM32F1" part="STM32F103C6Tx"> + <description>ARM Cortex-M3 MCU, 32KB flash, 10KB RAM, 72MHz, 2-3.6V, 37 GPIO, LQFP-48</description> + <docs>http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00210843.pdf</docs> + <footprints> + <fp>LQFP*7x7mm*P0.5mm*</fp> + </footprints> + <fields> + <field name="Reference">U</field> + <field name="Value">STM32F103C6Tx</field> + <field name="Footprint">Package_QFP:LQFP-48_7x7mm_P0.5mm</field> + <field name="Datasheet">http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00210843.pdf</field> + </fields> + <pins> + <pin num="1" name="VBAT" type="power_in"/> + <pin num="2" name="PC13" type="bidirectional"/> + <pin num="3" name="PC14" type="bidirectional"/> + <pin num="4" name="PC15" type="bidirectional"/> + <pin num="5" name="PD0" type="input"/> + <pin num="6" name="PD1" 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="bidirectional"/> + <pin num="11" name="PA1" type="bidirectional"/> + <pin num="12" name="PA2" type="bidirectional"/> + <pin num="13" name="PA3" type="bidirectional"/> + <pin num="14" name="PA4" type="bidirectional"/> + <pin num="15" name="PA5" type="bidirectional"/> + <pin num="16" name="PA6" type="bidirectional"/> + <pin num="17" name="PA7" type="bidirectional"/> + <pin num="18" name="PB0" type="bidirectional"/> + <pin num="19" name="PB1" type="bidirectional"/> + <pin num="20" name="PB2" type="bidirectional"/> + <pin num="21" name="PB10" type="bidirectional"/> + <pin num="22" name="PB11" type="bidirectional"/> + <pin num="23" name="VSS" type="power_in"/> + <pin num="24" name="VDD" type="power_in"/> + <pin num="25" name="PB12" type="bidirectional"/> + <pin num="26" name="PB13" type="bidirectional"/> + <pin num="27" name="PB14" type="bidirectional"/> + <pin num="28" name="PB15" type="bidirectional"/> + <pin num="29" name="PA8" type="bidirectional"/> + <pin num="30" name="PA9" type="bidirectional"/> + <pin num="31" name="PA10" type="bidirectional"/> + <pin num="32" name="PA11" type="bidirectional"/> + <pin num="33" name="PA12" type="bidirectional"/> + <pin num="34" name="PA13" type="bidirectional"/> + <pin num="35" name="VSS" type="power_in"/> + <pin num="36" name="VDD" type="power_in"/> + <pin num="37" name="PA14" type="bidirectional"/> + <pin num="38" name="PA15" type="bidirectional"/> + <pin num="39" name="PB3" type="bidirectional"/> + <pin num="40" name="PB4" type="bidirectional"/> + <pin num="41" name="PB5" type="bidirectional"/> + <pin num="42" name="PB6" type="bidirectional"/> + <pin num="43" name="PB7" type="bidirectional"/> + <pin num="44" name="BOOT0" type="input"/> + <pin num="45" name="PB8" type="bidirectional"/> + <pin num="46" name="PB9" type="bidirectional"/> + <pin num="47" name="VSS" type="power_in"/> + <pin num="48" name="VDD" type="power_in"/> + </pins> + </libpart> + <libpart lib="Mechanical" part="MountingHole"> + <description>Mounting Hole without connection</description> + <docs>~</docs> + <footprints> + <fp>MountingHole*</fp> + </footprints> + <fields> + <field name="Reference">H</field> + <field name="Value">MountingHole</field> + <field name="Datasheet">~</field> + </fields> + </libpart> + <libpart lib="Power_Protection" part="USBLC6-2SC6"> + <description>Very low capacitance ESD protection diode, 2 data-line, SOT-23-6</description> + <docs>https://www.st.com/resource/en/datasheet/usblc6-2.pdf</docs> + <footprints> + <fp>SOT?23*</fp> + </footprints> + <fields> + <field name="Reference">U</field> + <field name="Value">USBLC6-2SC6</field> + <field name="Footprint">Package_TO_SOT_SMD:SOT-23-6</field> + <field name="Datasheet">https://www.st.com/resource/en/datasheet/usblc6-2.pdf</field> + </fields> + <pins> + <pin num="1" name="I/O1" type="passive"/> + <pin num="2" name="GND" type="passive"/> + <pin num="3" name="I/O2" type="passive"/> + <pin num="4" name="I/O2" type="passive"/> + <pin num="5" name="VBUS" type="passive"/> + <pin num="6" name="I/O1" type="passive"/> + </pins> + </libpart> + <libpart lib="Regulator_Linear" part="LM1117-3.3"> + <description>800mA Low-Dropout Linear Regulator, 3.3V fixed output, TO-220/TO-252/TO-263/SOT-223</description> + <docs>http://www.ti.com/lit/ds/symlink/lm1117.pdf</docs> + <footprints> + <fp>SOT?223*</fp> + <fp>TO?263*</fp> + <fp>TO?252*</fp> + <fp>TO?220*</fp> + </footprints> + <fields> + <field name="Reference">U</field> + <field name="Value">LM1117-3.3</field> + <field name="Datasheet">http://www.ti.com/lit/ds/symlink/lm1117.pdf</field> + </fields> + <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"/> + </pins> + </libpart> + <libpart lib="Transistor_BJT" part="DTA114Y"> + <description>Digital PNP Transistor, 10k/47k, SOT-23</description> + <footprints> + <fp>SOT?23*</fp> + <fp>SC?59*</fp> + </footprints> + <fields> + <field name="Reference">Q</field> + <field name="Value">DTA114Y</field> + </fields> + <pins> + <pin num="1" name="B" type="input"/> + <pin num="2" name="E" type="passive"/> + <pin num="3" name="C" type="passive"/> + </pins> + </libpart> + <libpart lib="my_elements" part="TLE5205"> + <footprints> + <fp>TO220*</fp> + <fp>TO-220*</fp> + </footprints> + <fields> + <field name="Reference">U</field> + <field name="Value">TLE5205</field> + </fields> + <pins> + <pin num="1" name="OUT1" type="power_out"/> + <pin num="2" name="EF" type="output"/> + <pin num="3" name="IN1" type="input"/> + <pin num="4" name="GND" type="power_in"/> + <pin num="5" name="IN2" type="input"/> + <pin num="6" name="Vs" type="power_in"/> + <pin num="7" name="OUT2" type="power_out"/> + </pins> + </libpart> + </libparts> + <libraries> + <library logical="Connector"> + <uri>/usr/share/kicad/kicad-symbols/Connector.kicad_sym</uri> + </library> + <library logical="Connector_Generic"> + <uri>/usr/share/kicad/kicad-symbols/Connector_Generic.kicad_sym</uri> + </library> + <library logical="Device"> + <uri>/usr/share/kicad/kicad-symbols/Device.kicad_sym</uri> + </library> + <library logical="MCU_ST_STM32F1"> + <uri>/usr/share/kicad/kicad-symbols/MCU_ST_STM32F1.kicad_sym</uri> + </library> + <library logical="Mechanical"> + <uri>/usr/share/kicad/kicad-symbols/Mechanical.kicad_sym</uri> + </library> + <library logical="Power_Protection"> + <uri>/usr/share/kicad/kicad-symbols/Power_Protection.kicad_sym</uri> + </library> + <library logical="Regulator_Linear"> + <uri>/usr/share/kicad/kicad-symbols/Regulator_Linear.kicad_sym</uri> + </library> + <library logical="Transistor_BJT"> + <uri>/usr/share/kicad/kicad-symbols/Transistor_BJT.kicad_sym</uri> + </library> + </libraries> + <nets> + <net code="1" name="+3V3"> + <node ref="C3" pin="1" pintype="passive"/> + <node ref="C4" pin="1" pintype="passive"/> + <node ref="C5" pin="1" pintype="passive"/> + <node ref="C6" pin="1" pintype="passive"/> + <node ref="C7" pin="1" pintype="passive"/> + <node ref="C8" pin="1" pintype="passive"/> + <node ref="D3" pin="1" pinfunction="K" pintype="passive"/> + <node ref="J6" pin="1" pinfunction="Pin_1" pintype="passive"/> + <node ref="Q1" pin="2" pinfunction="E" pintype="passive"/> + <node ref="R1" pin="1" pintype="passive"/> + <node ref="R5" pin="2" pintype="passive"/> + <node ref="R6" pin="2" pintype="passive"/> + <node ref="U1" pin="2" pinfunction="VO" pintype="power_out"/> + <node ref="U2" pin="1" pinfunction="VBAT" pintype="power_in"/> + <node ref="U2" pin="24" pinfunction="VDD" pintype="power_in"/> + <node ref="U2" pin="36" pinfunction="VDD" pintype="power_in"/> + <node ref="U2" pin="48" pinfunction="VDD" pintype="power_in"/> + <node ref="U2" pin="9" pinfunction="VDDA" pintype="power_in"/> + </net> + <net code="2" name="/BOOT0"> + <node ref="J3" pin="5" pinfunction="Pin_5" pintype="passive"/> + <node ref="R7" pin="1" pintype="passive"/> + <node ref="U2" pin="44" pinfunction="BOOT0" pintype="input"/> + </net> + <net code="3" name="/NRST"> + <node ref="J3" pin="6" pinfunction="Pin_6" pintype="passive"/> + <node ref="U2" pin="7" pinfunction="NRST" pintype="input"/> + </net> + <net code="4" name="/OSC_IN"> + <node ref="C9" pin="1" pintype="passive"/> + <node ref="U2" pin="5" pinfunction="PD0" pintype="input"/> + <node ref="Y1" pin="1" pinfunction="1" pintype="passive"/> + </net> + <net code="5" name="/OSC_OUT"> + <node ref="C10" pin="1" pintype="passive"/> + <node ref="U2" pin="6" pinfunction="PD1" pintype="input"/> + <node ref="Y1" pin="2" pinfunction="2" pintype="passive"/> + </net> + <net code="6" name="/SHTR_A"> + <node ref="DA1" pin="3" pinfunction="IN1" pintype="input"/> + <node ref="R6" pin="1" pintype="passive"/> + <node ref="U2" pin="16" pinfunction="PA6" pintype="bidirectional"/> + </net> + <net code="7" name="/SHTR_B"> + <node ref="DA1" pin="5" pinfunction="IN2" pintype="input"/> + <node ref="R5" pin="1" pintype="passive"/> + <node ref="U2" pin="15" pinfunction="PA5" pintype="bidirectional"/> + </net> + <net code="8" name="/SHTR_FB"> + <node ref="DA1" pin="2" pinfunction="EF" pintype="output"/> + <node ref="U2" pin="17" pinfunction="PA7" pintype="bidirectional"/> + </net> + <net code="9" name="/SHTR_V"> + <node ref="D3" pin="2" pinfunction="A" pintype="passive"/> + <node ref="R2" pin="2" pintype="passive"/> + <node ref="R3" pin="1" pintype="passive"/> + <node ref="U2" pin="13" pinfunction="PA3" pintype="bidirectional"/> + </net> + <net code="10" name="/SWCLK"> + <node ref="J3" pin="1" pinfunction="Pin_1" pintype="passive"/> + <node ref="U2" pin="37" pinfunction="PA14" pintype="bidirectional"/> + </net> + <net code="11" name="/SWDIO"> + <node ref="J3" pin="2" pinfunction="Pin_2" pintype="passive"/> + <node ref="U2" pin="34" pinfunction="PA13" pintype="bidirectional"/> + </net> + <net code="12" name="/USBDM"> + <node ref="U2" pin="32" pinfunction="PA11" pintype="bidirectional"/> + <node ref="U3" pin="6" pinfunction="I/O1" pintype="passive"/> + </net> + <net code="13" name="/USBDP"> + <node ref="R10" pin="1" pintype="passive"/> + <node ref="U2" pin="33" pinfunction="PA12" pintype="bidirectional"/> + <node ref="U3" pin="4" pinfunction="I/O2" pintype="passive"/> + </net> + <net code="14" name="/USB_PU"> + <node ref="Q1" pin="1" pinfunction="B" pintype="input"/> + <node ref="U2" pin="31" pinfunction="PA10" pintype="bidirectional"/> + </net> + <net code="15" name="/Uin"> + <node ref="D1" pin="1" pinfunction="K" pintype="passive"/> + <node ref="D4" pin="1" pinfunction="K" pintype="passive"/> + <node ref="J2" pin="2" pinfunction="Pin_2" pintype="passive"/> + <node ref="R4" pin="1" pintype="passive"/> + </net> + <net code="16" name="/VBUS"> + <node ref="C2" pin="1" pintype="passive"/> + <node ref="J4" pin="1" pinfunction="Pin_1" pintype="passive"/> + <node ref="J7" pin="1" pinfunction="VBUS" pintype="power_out"/> + <node ref="U1" pin="3" pinfunction="VI" pintype="power_in"/> + <node ref="U3" pin="5" pinfunction="VBUS" pintype="passive"/> + </net> + <net code="17" name="GND"> + <node ref="C1" pin="2" pintype="passive"/> + <node ref="C10" pin="2" pintype="passive"/> + <node ref="C2" pin="2" pintype="passive"/> + <node ref="C3" pin="2" pintype="passive"/> + <node ref="C4" pin="2" pintype="passive"/> + <node ref="C5" pin="2" pintype="passive"/> + <node ref="C6" pin="2" pintype="passive"/> + <node ref="C7" pin="2" pintype="passive"/> + <node ref="C8" pin="2" pintype="passive"/> + <node ref="C9" pin="2" pintype="passive"/> + <node ref="D2" pin="2" pinfunction="A" pintype="passive"/> + <node ref="D5" pin="2" pinfunction="A" pintype="passive"/> + <node ref="DA1" pin="4" pinfunction="GND" pintype="power_in"/> + <node ref="J2" pin="1" pinfunction="Pin_1" pintype="passive"/> + <node ref="J3" pin="3" pinfunction="Pin_3" pintype="passive"/> + <node ref="J5" pin="1" pinfunction="Pin_1" pintype="passive"/> + <node ref="J7" pin="4" pinfunction="GND" pintype="power_out"/> + <node ref="J7" pin="5" pinfunction="Shield" pintype="passive"/> + <node ref="J8" pin="1" pinfunction="Pin_1" pintype="passive"/> + <node ref="J9" pin="1" pinfunction="Pin_1" pintype="passive"/> + <node ref="R3" pin="2" pintype="passive"/> + <node ref="R7" pin="2" pintype="passive"/> + <node ref="U1" pin="1" pinfunction="GND" pintype="power_in"/> + <node ref="U2" pin="23" pinfunction="VSS" pintype="power_in"/> + <node ref="U2" pin="35" pinfunction="VSS" pintype="power_in"/> + <node ref="U2" pin="47" pinfunction="VSS" pintype="power_in"/> + <node ref="U2" pin="8" pinfunction="VSSA" pintype="power_in"/> + <node ref="U3" pin="2" pinfunction="GND" pintype="passive"/> + </net> + <net code="18" name="Net-(D1-A)"> + <node ref="D1" pin="2" pinfunction="A" pintype="passive"/> + <node ref="D2" pin="1" pinfunction="K" pintype="passive"/> + <node ref="DA1" pin="1" pinfunction="OUT1" pintype="power_out"/> + <node ref="J1" pin="2" pinfunction="Pin_2" pintype="passive"/> + </net> + <net code="19" name="Net-(D4-A)"> + <node ref="D4" pin="2" pinfunction="A" pintype="passive"/> + <node ref="D5" pin="1" pinfunction="K" pintype="passive"/> + <node ref="DA1" pin="7" pinfunction="OUT2" pintype="power_out"/> + <node ref="J1" pin="1" pinfunction="Pin_1" pintype="passive"/> + </net> + <net code="20" name="Net-(DA1-Vs)"> + <node ref="C1" pin="1" pintype="passive"/> + <node ref="DA1" pin="6" pinfunction="Vs" pintype="power_in"/> + <node ref="R2" pin="1" pintype="passive"/> + <node ref="R4" pin="2" pintype="passive"/> + </net> + <net code="21" name="Net-(J3-Pin_4)"> + <node ref="J3" pin="4" pinfunction="Pin_4" pintype="passive"/> + <node ref="R1" pin="2" pintype="passive"/> + </net> + <net code="22" name="Net-(J7-D+)"> + <node ref="J7" pin="3" pinfunction="D+" pintype="bidirectional"/> + <node ref="R8" pin="1" pintype="passive"/> + </net> + <net code="23" name="Net-(J7-D-)"> + <node ref="J7" pin="2" pinfunction="D-" pintype="bidirectional"/> + <node ref="R9" pin="1" pintype="passive"/> + </net> + <net code="24" name="Net-(J8-Pin_2)"> + <node ref="J8" pin="2" pinfunction="Pin_2" pintype="passive"/> + <node ref="U2" pin="18" pinfunction="PB0" pintype="bidirectional"/> + </net> + <net code="25" name="Net-(J9-Pin_2)"> + <node ref="J9" pin="2" pinfunction="Pin_2" pintype="passive"/> + <node ref="U2" pin="22" pinfunction="PB11" pintype="bidirectional"/> + </net> + <net code="26" name="Net-(Q1-C)"> + <node ref="Q1" pin="3" pinfunction="C" pintype="passive"/> + <node ref="R10" pin="2" pintype="passive"/> + </net> + <net code="27" name="Net-(R8-Pad2)"> + <node ref="R8" pin="2" pintype="passive"/> + <node ref="U3" pin="3" pinfunction="I/O2" pintype="passive"/> + </net> + <net code="28" name="Net-(R9-Pad2)"> + <node ref="R9" pin="2" pintype="passive"/> + <node ref="U3" pin="1" pinfunction="I/O1" pintype="passive"/> + </net> + <net code="29" name="unconnected-(U2-PA0-Pad10)"> + <node ref="U2" pin="10" pinfunction="PA0" pintype="bidirectional+no_connect"/> + </net> + <net code="30" name="unconnected-(U2-PA1-Pad11)"> + <node ref="U2" pin="11" pinfunction="PA1" pintype="bidirectional+no_connect"/> + </net> + <net code="31" name="unconnected-(U2-PA2-Pad12)"> + <node ref="U2" pin="12" pinfunction="PA2" pintype="bidirectional+no_connect"/> + </net> + <net code="32" name="unconnected-(U2-PA4-Pad14)"> + <node ref="U2" pin="14" pinfunction="PA4" pintype="bidirectional+no_connect"/> + </net> + <net code="33" name="unconnected-(U2-PA8-Pad29)"> + <node ref="U2" pin="29" pinfunction="PA8" pintype="bidirectional+no_connect"/> + </net> + <net code="34" name="unconnected-(U2-PA9-Pad30)"> + <node ref="U2" pin="30" pinfunction="PA9" pintype="bidirectional+no_connect"/> + </net> + <net code="35" name="unconnected-(U2-PA15-Pad38)"> + <node ref="U2" pin="38" pinfunction="PA15" pintype="bidirectional+no_connect"/> + </net> + <net code="36" name="unconnected-(U2-PB1-Pad19)"> + <node ref="U2" pin="19" pinfunction="PB1" pintype="bidirectional+no_connect"/> + </net> + <net code="37" name="unconnected-(U2-PB2-Pad20)"> + <node ref="U2" pin="20" pinfunction="PB2" pintype="bidirectional+no_connect"/> + </net> + <net code="38" name="unconnected-(U2-PB3-Pad39)"> + <node ref="U2" pin="39" pinfunction="PB3" pintype="bidirectional+no_connect"/> + </net> + <net code="39" name="unconnected-(U2-PB4-Pad40)"> + <node ref="U2" pin="40" pinfunction="PB4" pintype="bidirectional+no_connect"/> + </net> + <net code="40" name="unconnected-(U2-PB5-Pad41)"> + <node ref="U2" pin="41" pinfunction="PB5" pintype="bidirectional+no_connect"/> + </net> + <net code="41" name="unconnected-(U2-PB6-Pad42)"> + <node ref="U2" pin="42" pinfunction="PB6" pintype="bidirectional+no_connect"/> + </net> + <net code="42" name="unconnected-(U2-PB7-Pad43)"> + <node ref="U2" pin="43" pinfunction="PB7" pintype="bidirectional+no_connect"/> + </net> + <net code="43" name="unconnected-(U2-PB8-Pad45)"> + <node ref="U2" pin="45" pinfunction="PB8" pintype="bidirectional+no_connect"/> + </net> + <net code="44" name="unconnected-(U2-PB9-Pad46)"> + <node ref="U2" pin="46" pinfunction="PB9" pintype="bidirectional+no_connect"/> + </net> + <net code="45" name="unconnected-(U2-PB10-Pad21)"> + <node ref="U2" pin="21" pinfunction="PB10" pintype="bidirectional+no_connect"/> + </net> + <net code="46" name="unconnected-(U2-PB12-Pad25)"> + <node ref="U2" pin="25" pinfunction="PB12" pintype="bidirectional+no_connect"/> + </net> + <net code="47" name="unconnected-(U2-PB13-Pad26)"> + <node ref="U2" pin="26" pinfunction="PB13" pintype="bidirectional+no_connect"/> + </net> + <net code="48" name="unconnected-(U2-PB14-Pad27)"> + <node ref="U2" pin="27" pinfunction="PB14" pintype="bidirectional+no_connect"/> + </net> + <net code="49" name="unconnected-(U2-PB15-Pad28)"> + <node ref="U2" pin="28" pinfunction="PB15" pintype="bidirectional+no_connect"/> + </net> + <net code="50" name="unconnected-(U2-PC13-Pad2)"> + <node ref="U2" pin="2" pinfunction="PC13" pintype="bidirectional+no_connect"/> + </net> + <net code="51" name="unconnected-(U2-PC14-Pad3)"> + <node ref="U2" pin="3" pinfunction="PC14" pintype="bidirectional+no_connect"/> + </net> + <net code="52" name="unconnected-(U2-PC15-Pad4)"> + <node ref="U2" pin="4" pinfunction="PC15" pintype="bidirectional+no_connect"/> + </net> + </nets> +</export> diff --git a/F1:F103/shutter/code/main.c b/F1:F103/shutter/main.c similarity index 100% rename from F1:F103/shutter/code/main.c rename to F1:F103/shutter/main.c diff --git a/F1:F103/shutter/code/openocd.cfg b/F1:F103/shutter/openocd.cfg similarity index 100% rename from F1:F103/shutter/code/openocd.cfg rename to F1:F103/shutter/openocd.cfg diff --git a/F1:F103/shutter/code/proto.c b/F1:F103/shutter/proto.c similarity index 87% rename from F1:F103/shutter/code/proto.c rename to F1:F103/shutter/proto.c index ee85953..f441fc9 100644 --- a/F1:F103/shutter/code/proto.c +++ b/F1:F103/shutter/proto.c @@ -21,6 +21,7 @@ #include "proto.h" #include "shutter.h" #include "usb.h" +#include "version.inc" char *omit_spaces(const char *buf){ while(*buf){ @@ -153,12 +154,13 @@ char *getnum(const char *txt, uint32_t *N){ } const char* helpmsg = + "https://github.com/eddyem/stm32samples/tree/master/F1:F103/shutter build#" BUILD_NUMBER " @ " BUILD_DATE "\n" "'0' - shutter CLO\n" "'1' - shutter OPE\n" "'2' - shutter HIZ\n" "'A' - get raw ADC values\n" - "'C' - close shutter\n" - //"'N' - read number (dec, 0xhex, 0oct, bbin) and show it in decimal\n" + "'C' - close shutter / abort exposition\n" + "'E n' - expose for n milliseconds\n" "'O' - open shutter\n" "'R' - software reset\n" "'S' - get shutter state; also hall and ccd inputs state (1 - active)\n" @@ -186,7 +188,7 @@ void bufputchar(char c){ *bptr = 0; } -extern uint8_t usbON; +static const char *OK = "OK", *ERR = "ERR"; const char *parse_cmd(const char *buf){ uint32_t u3; initbuf(); @@ -213,12 +215,12 @@ const char *parse_cmd(const char *buf){ } break; case 'C': - if(close_shutter()) add2buf("OK"); - else add2buf("ERR"); + if(close_shutter()) add2buf(OK); + else add2buf(ERR); break; case 'O': - if(open_shutter()) add2buf("OK"); - else add2buf("ERR"); + if(open_shutter()) add2buf(OK); + else add2buf(ERR); break; case 'R': USB_sendstr("Soft reset\n"); @@ -258,29 +260,29 @@ const char *parse_cmd(const char *buf){ default: return helpmsg; } - bufputchar('\n'); - return stbuf; - } - uint32_t Num = 0; - char *nxt; - switch(*buf){ // long messages - case 'N': - ++buf; - nxt = getnum(buf, &Num); - if(buf == nxt){ - if(Num == 0) return "Wrong number\n"; - return "Integer32 overflow\n"; - } - add2buf("You give: "); - add2buf(u2str(Num)); - if(*nxt && *nxt != '\n'){ - add2buf(", the rest of string: "); - add2buf(nxt); - }else add2buf("\n"); - break; - default: - return buf; + }else{ // long messages + uint32_t Num = 0; + char *nxt; + switch(*buf){ + case 'E': + ++buf; + nxt = getnum(buf, &Num); + if(buf == nxt){ + if(Num == 0) return "ERRNUM\n"; + return "I32OVERFLOW\n"; + } + if(shutterstate != SHUTTER_RELAX){ + add2buf(ERR); + break; + } + if(expose_shutter(Num)) add2buf(OK); + else add2buf(ERR); + break; + default: + return buf; + } } + bufputchar('\n'); return stbuf; } diff --git a/F1:F103/shutter/code/proto.h b/F1:F103/shutter/proto.h similarity index 100% rename from F1:F103/shutter/code/proto.h rename to F1:F103/shutter/proto.h diff --git a/F1:F103/shutter/code/ringbuffer.c b/F1:F103/shutter/ringbuffer.c similarity index 100% rename from F1:F103/shutter/code/ringbuffer.c rename to F1:F103/shutter/ringbuffer.c diff --git a/F1:F103/shutter/code/ringbuffer.h b/F1:F103/shutter/ringbuffer.h similarity index 100% rename from F1:F103/shutter/code/ringbuffer.h rename to F1:F103/shutter/ringbuffer.h diff --git a/F1:F103/shutter/shutter.bin b/F1:F103/shutter/shutter.bin new file mode 100755 index 0000000000000000000000000000000000000000..2b2301669c2ef52a712176829eb22f315caf3488 GIT binary patch literal 8104 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 N>7VS`+6}%-oiIYQ>OzmpciqBEI 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 literal 0 HcmV?d00001 diff --git a/F1:F103/shutter/code/shutter.c b/F1:F103/shutter/shutter.c similarity index 63% rename from F1:F103/shutter/code/shutter.c rename to F1:F103/shutter/shutter.c index 89fb4e3..ee78e6a 100644 --- a/F1:F103/shutter/code/shutter.c +++ b/F1:F103/shutter/shutter.c @@ -27,21 +27,29 @@ static const char *states[SHUTTER_STATE_AMOUNT] = { [SHUTTER_RELAX] = "relax", [SHUTTER_PROCESS] = "process", [SHUTTER_WAIT] = "wait", + [SHUTTER_EXPOSE] = "exposing", }; +static const char *regstates[4] = {"open", "close", "off", "hiZ"}; + static const char *opcl[2] = {"closed", "opened"}; shutter_state shutterstate = SHUTTER_ERROR; +static shutter_state nextstate = SHUTTER_RELAX; -static uint32_t Tstart = 0; +static uint32_t Tstart = 0, Texp = 0, Topened = 0; -static int changestate(int open){ - if(open == CHKHALL()) return TRUE; // already opened or closed +static int changestate(int open, shutter_state nxt){ + if(open == CHKHALL()){ + shutterstate = SHUTTER_RELAX; + return TRUE; // already opened or closed + } if(getADCvoltage(CHSHTR) < SHTR_WORK_VOLTAGE / SHTRVMUL) return FALSE; if(shutterstate == SHUTTER_ERROR) return FALSE; if(open) SHTROPEN(); else SHTRCLOSE(); shutterstate = SHUTTER_PROCESS; + nextstate = nxt; Tstart = Tms; return TRUE; } @@ -51,25 +59,29 @@ static int changestate(int open){ * @return false if can't work due to error (no shutter) or insufficient voltage */ int open_shutter(){ - return changestate(1); + return changestate(1, SHUTTER_RELAX); } int close_shutter(){ - return changestate(0); + return changestate(0, SHUTTER_RELAX); +} + +int expose_shutter(uint32_t exptime){ + if(!changestate(1, SHUTTER_EXPOSE)) return FALSE; + Texp = exptime; + return TRUE; } void process_shutter(){ -#ifdef EBUG static uint32_t T = 0; -#endif uint32_t V = getADCvoltage(CHSHTR)*SHTRVMUL; switch(shutterstate){ - case SHUTTER_ERROR: + case SHUTTER_ERROR: // error state: no shutter? SHTROFF(); shutterstate = SHUTTER_WAIT; Tstart = Tms; break; - case SHUTTER_PROCESS: + case SHUTTER_PROCESS: // process opening or closing #ifdef EBUG if(T != Tms){ T = Tms; @@ -83,15 +95,28 @@ void process_shutter(){ Tstart = Tms; } break; - case SHUTTER_WAIT: + case SHUTTER_WAIT: // wait for mechanical work done if(Tms - Tstart > WAITING_TIME){ SHTRHIZ(); - shutterstate = SHUTTER_RELAX; + shutterstate = nextstate; + int h = CHKHALL(); + if(h) Topened = Tms; + else{ + USB_sendstr("exptime="); + USB_sendstr(u2str(Tms - Topened - SHUTTER_TIME)); + USB_putbyte('\n'); + } USB_sendstr("shutter="); - USB_sendstr(opcl[CHKHALL()]); + USB_sendstr(opcl[h]); USB_putbyte('\n'); } break; + case SHUTTER_EXPOSE: // wait for exposition ends to close shutter + // now Tstart is time when shutter was opened; wait until Tms - Tstart >= Texp + if(Tms - Tstart < Texp || T == Tms) break; // once per 1ms + T = Tms; + if(!close_shutter()) USB_sendstr("exp=cantclose\n"); + break; default: if(CHKFB()) shutterstate = SHUTTER_ERROR; break; @@ -102,11 +127,11 @@ void process_shutter(){ // check button only when can open/close & shutter operations done if(V >= SHTR_WORK_VOLTAGE && shutterstate == SHUTTER_RELAX){ // shutter state allows to open/close if(s){ // pressed - if(!CHKHALL()){ if(open_shutter()){oldbtnstate = s; USB_sendstr(" open, old->1\n");}} - else{USB_sendstr("pressed when CHKHALL(), old->1\n"); oldbtnstate = s;} + if(!CHKHALL()){ if(open_shutter()){oldbtnstate = s; /*USB_sendstr(" open, old->1\n");*/}} + else{/*USB_sendstr("pressed when CHKHALL(), old->1\n");*/ oldbtnstate = s;} }else{ // released - if(CHKHALL()){ if(close_shutter()){oldbtnstate = s; USB_sendstr(" close, old->0\n");}} - else{USB_sendstr("released when !CHKHALL(), old->0\n"); oldbtnstate = s;} + if(CHKHALL()){ if(close_shutter()){oldbtnstate = s; /*USB_sendstr(" close, old->0\n");*/}} + else{/*USB_sendstr("released when !CHKHALL(), old->0\n");*/ oldbtnstate = s;} } } } @@ -115,8 +140,12 @@ void print_shutter_state(){ add2buf("shutter="); if(shutterstate != SHUTTER_RELAX) add2buf(states[shutterstate]); else add2buf(opcl[CHKHALL()]); + if(CHKHALL()){ + add2buf("\nexptime="); + add2buf(u2str(Tms - Topened)); + } add2buf("\nregstate="); - bufputchar('0' + SHTRSTATE()); + add2buf(regstates[SHTRSTATE()]); add2buf("\nfbstate="); bufputchar('0' + CHKFB()); bufputchar('\n'); diff --git a/F1:F103/shutter/code/shutter.cflags b/F1:F103/shutter/shutter.cflags similarity index 100% rename from F1:F103/shutter/code/shutter.cflags rename to F1:F103/shutter/shutter.cflags diff --git a/F1:F103/shutter/code/shutter.config b/F1:F103/shutter/shutter.config similarity index 100% rename from F1:F103/shutter/code/shutter.config rename to F1:F103/shutter/shutter.config diff --git a/F1:F103/shutter/code/shutter.creator b/F1:F103/shutter/shutter.creator similarity index 100% rename from F1:F103/shutter/code/shutter.creator rename to F1:F103/shutter/shutter.creator diff --git a/F1:F103/shutter/code/shutter.creator.user b/F1:F103/shutter/shutter.creator.user similarity index 100% rename from F1:F103/shutter/code/shutter.creator.user rename to F1:F103/shutter/shutter.creator.user diff --git a/F1:F103/shutter/code/shutter.creator.user.7bd84e3 b/F1:F103/shutter/shutter.creator.user.7bd84e3 similarity index 100% rename from F1:F103/shutter/code/shutter.creator.user.7bd84e3 rename to F1:F103/shutter/shutter.creator.user.7bd84e3 diff --git a/F1:F103/shutter/code/shutter.cxxflags b/F1:F103/shutter/shutter.cxxflags similarity index 100% rename from F1:F103/shutter/code/shutter.cxxflags rename to F1:F103/shutter/shutter.cxxflags diff --git a/F1:F103/shutter/code/shutter.files b/F1:F103/shutter/shutter.files similarity index 100% rename from F1:F103/shutter/code/shutter.files rename to F1:F103/shutter/shutter.files diff --git a/F1:F103/shutter/code/shutter.h b/F1:F103/shutter/shutter.h similarity index 93% rename from F1:F103/shutter/code/shutter.h rename to F1:F103/shutter/shutter.h index 752cbbf..3c4359b 100644 --- a/F1:F103/shutter/code/shutter.h +++ b/F1:F103/shutter/shutter.h @@ -18,6 +18,8 @@ #pragma once +#include <stm32f1.h> + // opening/closing time (ms) #define SHUTTER_TIME (20) // waiting for getting status time (ms) @@ -28,6 +30,7 @@ typedef enum{ SHUTTER_RELAX, // powered off SHUTTER_PROCESS, // opened or closed SHUTTER_WAIT, // wait in off state before turn to hi-z + SHUTTER_EXPOSE, // SHUTTER_STATE_AMOUNT } shutter_state; @@ -36,4 +39,5 @@ extern shutter_state shutterstate; void process_shutter(); int open_shutter(); int close_shutter(); +int expose_shutter(uint32_t exptime); void print_shutter_state(); diff --git a/F1:F103/shutter/code/shutter.includes b/F1:F103/shutter/shutter.includes similarity index 100% rename from F1:F103/shutter/code/shutter.includes rename to F1:F103/shutter/shutter.includes diff --git a/F1:F103/shutter/code/usb.c b/F1:F103/shutter/usb.c similarity index 100% rename from F1:F103/shutter/code/usb.c rename to F1:F103/shutter/usb.c diff --git a/F1:F103/shutter/code/usb.h b/F1:F103/shutter/usb.h similarity index 100% rename from F1:F103/shutter/code/usb.h rename to F1:F103/shutter/usb.h diff --git a/F1:F103/shutter/code/usb_lib.c b/F1:F103/shutter/usb_lib.c similarity index 99% rename from F1:F103/shutter/code/usb_lib.c rename to F1:F103/shutter/usb_lib.c index b74e345..29d3c5a 100644 --- a/F1:F103/shutter/code/usb_lib.c +++ b/F1:F103/shutter/usb_lib.c @@ -131,7 +131,7 @@ _USB_LANG_ID_(LD, LANG_US); _USB_STRING_(SD, u"0.0.1"); _USB_STRING_(MD, u"Prolific Technology Inc."); _USB_STRING_(PD, u"USB-Serial Controller"); -_USB_STRING_(ID, u"shutter_emulator"); +_USB_STRING_(ID, u"shutter"); static void const *StringDescriptor[iDESCR_AMOUNT] = { [iLANGUAGE_DESCR] = &LD, [iMANUFACTURER_DESCR] = &MD, diff --git a/F1:F103/shutter/code/usb_lib.h b/F1:F103/shutter/usb_lib.h similarity index 100% rename from F1:F103/shutter/code/usb_lib.h rename to F1:F103/shutter/usb_lib.h diff --git a/F1:F103/shutter/code/usbhw.c b/F1:F103/shutter/usbhw.c similarity index 100% rename from F1:F103/shutter/code/usbhw.c rename to F1:F103/shutter/usbhw.c diff --git a/F1:F103/shutter/code/usbhw.h b/F1:F103/shutter/usbhw.h similarity index 100% rename from F1:F103/shutter/code/usbhw.h rename to F1:F103/shutter/usbhw.h diff --git a/F1:F103/shutter/version.inc b/F1:F103/shutter/version.inc new file mode 100644 index 0000000..65002d8 --- /dev/null +++ b/F1:F103/shutter/version.inc @@ -0,0 +1,2 @@ +#define BUILD_NUMBER "80" +#define BUILD_DATE "2023-09-22"