mirror of
https://github.com/eddyem/stm32samples.git
synced 2026-02-28 11:54:30 +03:00
hide deprecated code; make USB snippet common for F0/F1/F3
This commit is contained in:
123
F1:F103/deprecated/chronometer_v2/Readme_rus.txt
Normal file
123
F1:F103/deprecated/chronometer_v2/Readme_rus.txt
Normal file
@@ -0,0 +1,123 @@
|
||||
Дополнено выводом времени на LED screen.
|
||||
|
||||
!!! инвертировать USB_PU
|
||||
|
||||
|
||||
****** Распиновка ******
|
||||
|
||||
=== Интерфейсы I/O ===
|
||||
- PA11/12 - USB
|
||||
- PA9(Tx), PA10(Rx) - USART1 - консоль отладки / прокси RMC-сообщений GPS (опт. - bluetooth).
|
||||
- PA2(Tx), PA3(Rx) - USART2 - подключение GPS-приемника.
|
||||
- PB10(Tx), PB11(Rx) - USART3 - подключение лидара или другой консоли.
|
||||
|
||||
=== Остальные порты ===
|
||||
- PA1 - PPS сигнал от GPS; сюда можно подключать любой дополнительный высокоомный вход напрямую.
|
||||
- PB0 - TRIG0 - (замыкать на землю).
|
||||
- PB1 - TRIG1 - подключен к 12В.
|
||||
- PB3 - TRIG2 - (замыкать на землю).
|
||||
- PA15 - подтяжка USB.
|
||||
- PA8 - (еще не реализовано) - bluetooth "state"
|
||||
- PB8, PB9 - индикаторные светодиоды (LED1, LED0 соответственно).
|
||||
- PC13 - пищалка.
|
||||
|
||||
=== Светодиоды ===
|
||||
- LED0 - при отсутствии сигнала PPS просто горит, если PPS появляется - мигает (затухает на 0.25с на каждый сигнал).
|
||||
- LED1 - индикатор GPS: не горит, если приемник не обнаружен; горит постоянно, если неуверенный прием времени
|
||||
(буква "V" во второй позиции RMC-сообщения); мигает при уверенном приеме (буква "A" во второй позиции).
|
||||
Судя по эксперименту, даже через час после пропадания сигнала точность определения события - не хуже 1мс. Сам GPS-приемник выдает
|
||||
PPS даже при отсутствии спутников - лишь бы он успел "подхватить" точное время и начать генерировать pps. Начинать работу можно сразу,
|
||||
как только замигает LED0.
|
||||
|
||||
|
||||
****** Триггеры ******
|
||||
К TRIG0/TRIG2 подключается кнопка, педаль, иной створ, замыкающий контакты. Никакого внешнего напряжения здесь быть не должно!
|
||||
К TRIG1 нужно подключать 12-вольтный сигнал, ток не меньше 10мА. Если створ имеет открытый коллектор, то выход створа подключается
|
||||
к минусу TRIG2, а к плюсу подключается 12В с источника питания.
|
||||
|
||||
Иногда бывают ложные срабатывания триггеров TRIG0..TRIG2, связанные с мощными источниками искр (зажигание, искрящиеся обмотки и т.п.).
|
||||
В случае таких ложных срабатываний рекомендуется заземлить катод источника питания хронометра.
|
||||
|
||||
При подключении внешней кнопки желательно, чтобы она имела нормально замкнутые контакты - это предотвратит ложные срабатывания из-за электромагнитных помех.
|
||||
|
||||
|
||||
****** Подключение ******
|
||||
Хронометр эмулирует "китайский" преобразователь PL2303.
|
||||
|
||||
К выходам PA9/PA10 можно подключить преобразователь USART<>USB или накинуть их напрямую на ноги Rx/Tx "малинки" (не забыв соединить
|
||||
земли хронометра и малинки): PA9(Tx) соединить с Rx, PA10(Rx) - с Tx. Этот USART проксирует RMC-сообщения GPS-приемника (уже после
|
||||
обработки микроконтроллером, поэтому если МК выключен, а приемник включен, сигнала все равно не будет).
|
||||
|
||||
Для подключения PPS сигнала к "малинке" выведен соответствующий разъем.
|
||||
|
||||
|
||||
****** Конфигурация ******
|
||||
Хронометр конфигурируется через USB. Ввод команд не сопровождается эхом (чтобы удобней было работать из внешних программ), поэтому
|
||||
для удобства можно тексты команд копировать из окна текстового редактора.
|
||||
Чтобы увидеть подсказку, достаточно отправить любую строку, начинающуюся с вопросительного знака. Появится справка:
|
||||
|
||||
adcmax - max ADC value treshold for trigger
|
||||
adcmin - min -//- (triggered when ADval>min & <max
|
||||
adcval - get ADC value
|
||||
buzzerS - turn buzzer ON/OFF
|
||||
distmin - min distance threshold (cm)
|
||||
distmax - max distance threshold (cm)
|
||||
gpsrestart - send Full Cold Restart to GPS
|
||||
gpsstring - current GPS data string
|
||||
ledsS - turn leds on/off (1/0)
|
||||
mcutemp - MCU temperature
|
||||
pullupNS - triggers pullups state (N - trigger No, S - 0/1 for off/on)
|
||||
showconf - show current configuration
|
||||
time - print time
|
||||
store - store new configuration in flash
|
||||
triglevelNS - working trigger N level S
|
||||
trigpauseNP - pause (P, ms) after trigger N shots
|
||||
trigtimeN - show last trigger N time
|
||||
vdd - Vdd value
|
||||
|
||||
Из нужного здесь:
|
||||
- gpsrestart - перезапуск GPS (если вдруг начнет глючить - у меня такого не случалось), делает "холодный" рестарт. Команда
|
||||
проверялась лишь на прототипе.
|
||||
- gpsstring - вывод очередного сообщения от GPS. Если все нормально, то появится строка RMC вроде
|
||||
$GPRMC,124001.000,A,4340.9369,N,04127.5034,E,0.00,33.26,150819,,,A*5C
|
||||
- pullupNS - включить или выключить внутренние верхние подтяжки для триггеров 0..3 (особо не нужно, т.к. подтяжки слабые, и если
|
||||
будет нужна подтяжка, лучше сделать сильную внешнюю).
|
||||
- showconf - отображение текущей конфигурации, например:
|
||||
CONFIG:
|
||||
DISTMIN=50
|
||||
DISTMAX=1000
|
||||
ADCMIN=1024
|
||||
ADCMAX=3072
|
||||
PULLUPS=255
|
||||
TRIGLVL=0
|
||||
TRIGPAUSE={400, 400, 400, 300, 300}
|
||||
ENDCONFIG
|
||||
|
||||
пункты конфигурации: DISTMIN/DISTMAX относятся к лидару, ADCMIN/ADCMAX ко входу АЦП, PULLUPS - состояние подтяжек
|
||||
(каждый бит, начиная с младшего - состояние соответствующей подтяжки; 0 - не активна, 1 - активна).
|
||||
TRIGLVL - конфигурация уровней срабатывания, каждый бит, начиная с младшего (всего три младших бита, как и в PULLUPS),
|
||||
равен нулю, если для соответствующего триггера срабатывание при перепаде 1->0, равен единице, если при
|
||||
перепаде 0->1.
|
||||
TRIGPAUSE - пауза между срабатываниями триггера: если после срабатывания произойдет следующее событие за интервал, меньший
|
||||
данного, это событие учитываться не будет.
|
||||
- time - отображает текущее время так, как оно бы отобразилось при срабатывании триггера, например,
|
||||
55725.961 (15:28:45)
|
||||
ВРЕМЯ ИЗМЕРЯЕТСЯ В UTC!!! Первое число - количество секунд и миллисекунд с начала суток по UTC, в скобках
|
||||
указывается человекочитаемое время.
|
||||
- store - сохранить новую конфигурацию во флеш-памяти МК.
|
||||
- triglevelNS - рабочий уровень триггера. Здесь N - номер триггера (0..2), S - уровень (0/1). Скажем, чтобы триггер 0 срабатывал
|
||||
при перепаде 1->0, нужно написать команду
|
||||
triglevel00
|
||||
а чтобы триггер 2 срабатывал при перепаде 0->1,
|
||||
triglevel21
|
||||
- trigpauseNP - задать паузу для триггера N, пауза в миллисекундах. Если написать 0, паузы не будет и каждое срабатывание
|
||||
будет вызывать соответствующее сообщение. Эта пауза нужнад для защиты от "звона" и нескольких срабатываний на "дырках"
|
||||
в объекте. Меньше 50мс лучше не делать.
|
||||
- trigtimeN - отображение последнего времени срабатывания триггера N, например, на запрос trigtime0, может быть выведено:
|
||||
TRIG0=45212.930 (12:33:32)
|
||||
Если срабатываний с момента включения не было, выведутся нули:
|
||||
TRIG4=0.000 (00:00:00)
|
||||
|
||||
После изменения конфигурации и ее сохранения необходимо нажатием на reset или отключением/включением питания перезагрузить МК,
|
||||
т.к. некоторые параметры активируются лишь при старте.
|
||||
|
||||
Reference in New Issue
Block a user