Дополнено выводом времени на 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 & 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 или отключением/включением питания перезагрузить МК, т.к. некоторые параметры активируются лишь при старте.