mirror of
https://github.com/eddyem/mmpp.git
synced 2026-01-31 20:35:11 +03:00
start documentation writing
This commit is contained in:
parent
9304f92664
commit
f034d73637
734
Doc_rus/Readme.tex
Normal file
734
Doc_rus/Readme.tex
Normal file
@ -0,0 +1,734 @@
|
||||
\documentclass[a4paper,12pt]{extarticle}
|
||||
\usepackage{listings}
|
||||
\usepackage{/home/eddy/ed}
|
||||
\def\lstref#1{(см.~листинг~\ref{#1})}
|
||||
\lstset{basicstyle=\small\ttfamily,breaklines=true,extendedchars=true,aboveskip=1em,belowcaptionskip=5pt,
|
||||
prebreak = \hbox{\normalfont\small\hfill\green{\ensuremath{\hookleftarrow}}},
|
||||
postbreak = \hbox to 0pt{\hss\normalfont\small\green{\ensuremath{\hookrightarrow}}\hspace{1ex}},
|
||||
commentstyle=\color{blue},showspaces=false,showstringspaces=false,
|
||||
stringstyle=\bfseries\color[rgb]{0.6,0,1},
|
||||
keywordstyle=\bfseries\color[rgb]{0,0.1,0.5},
|
||||
tabsize=4}
|
||||
\nocolon
|
||||
\def\Z{Цейсс--1000\xspace}
|
||||
\title{Многорежимный фотометр--поляриметр (MMPP) телескопа \Z. Техническая документация.}
|
||||
\author{Емельянов~Э.В. \and Фатхуллин~Т.А.}
|
||||
\graphicspath{{./imgs/}}
|
||||
\begin{document}
|
||||
\maketitle
|
||||
\tableofcontents
|
||||
|
||||
|
||||
\section{Описание прибора}
|
||||
|
||||
MMPP (Multi-Mode Photometer-Polarimeter) "--- многорежимный фотометр-поляриметр телескопа \Z
|
||||
предназначен для проведения фотометрических и поляриметрических исследований. Прибор оснащен двумя турелями
|
||||
USB-HSFW (Edmund Optics) с пятью позициями для 50-мм фильтров, анализатором линейной поляризации и
|
||||
четвертьволновой пластиной. Основным светоприемником фотометра является ПЗС Eagle~V ($2048\times2048\,$пикс),
|
||||
позволяющий проводить научные исследования в диапазонах от~300 до~1050\,нм с максимумом чувствительности
|
||||
около 600\,нм. Данный ПЗС оснащен водяным охлаждением. Также прибор рассчитан на использование с быстрым
|
||||
КМОП-светоприемником Andor NEO~5.5 ($2560\times2160\,$пикс) в режиме <<быстрой фотометрии>> и <<lucky
|
||||
imaging>>.
|
||||
|
||||
В фотометрическом режиме в течение ночи без переоснащения прибора возможна работа в восьми фотометрических
|
||||
полосах. Изменение рабочего набора фильтров выполняется посредством замены колес в турелях (пять наборов колес
|
||||
описаны в конфигурации интерфейса управления прибором; нестандартные наборы потребуют изменения конфигурации).
|
||||
|
||||
На рис.~\ref{MMPP_optsch} приведена оптическая схема MMPP. Непосредственно на входном фланце закреплен
|
||||
транслятор поворотной платформы фазовой пластины диаметром 25\,мм. Далее располагается транслятор поворотной
|
||||
платформы анализатора поляризации диаметром 50\,мм. Последними в корпусе установлены турели фотометрических
|
||||
фильтров. К задней стенке прибора крепится фланец светоприемника: ПЗС или CMOS.
|
||||
|
||||
\TODO[картинка]
|
||||
\begin{pict}
|
||||
%\includegraphics{}
|
||||
\caption{Оптическая схема прибора.}
|
||||
\label{MMPP_optsch}
|
||||
\end{pict}
|
||||
|
||||
|
||||
Исходные коды прошивки системы управления, утилит командной строки, принципиальные схемы и pdf-файлы с
|
||||
чертежами прибора размещены в отдельном репозитории github\footnote{\url{https://github.com/eddyem/mmpp}}.
|
||||
|
||||
\section{Оптические характеристики}
|
||||
\paragraph{Характеристики прибора}
|
||||
\begin{list}{}{}
|
||||
\item Теоретическое невиньетированное поле: $11.4'$~в режиме фотометрии, $10.9'$~в режиме линейной поляризации
|
||||
(оба размера "--- диагонали ПЗС-светоприемника), $2.6'$~в режиме циркулярной поляризации;
|
||||
\item диагональ светоприемников: ПЗС "--- $10.3'$, КМОП "--- $5.6'$;
|
||||
\item кривые пропускания фильтров приведены на рис.~\ref{filters_curves};
|
||||
\item
|
||||
\end{list}
|
||||
|
||||
|
||||
\TODO[картинки]
|
||||
\begin{pict}
|
||||
%\includegraphics{}
|
||||
\caption{Кривые пропускания фотометрических фильтров системы Джонсона--Коузинса.}
|
||||
\label{filters_curves}
|
||||
\end{pict}
|
||||
|
||||
\comment[характеристики]{четвертьволновой и поляроида}
|
||||
|
||||
\paragraph{Характеристики ПЗС-светоприемника}
|
||||
\TODO[Тимур]
|
||||
|
||||
\section{Механика}
|
||||
Поворотные платформы фазовой пластины и анализатора поляризации установлены на цилиндрических направляющих,
|
||||
позволяющих при помощи соединения винт-гайка вводить и выводить их из пучка посредством шаговых двигателей.
|
||||
Шаг винтового соединения составляет 1\,мм, т.е. поворот шаговых двигателей на один шаг приводит к перемещению
|
||||
трансляторов на 5\,мкм. Перемещение трансляторов ограничено датчиками Холла~A1101. Точность установки
|
||||
нуль-пункта трансляторов составляет $\pm0.13\,$мм. В положении <<0>> оба транслятора полностью выведены из
|
||||
пучка. Полный ход транслятора фазовой пластины составляет около $67.5\,$мм (13500~шагов), транслятора
|
||||
анализатора поляризации "--- около $145\,$мм (29000~шагов). Положение <<в пучке>> определяется юстировкой
|
||||
прибора, которую необходимо производить каждый раз после вмешательства в положение трансляторов или концевых
|
||||
датчиков. В среднем для транслятора фазовой пластины оно составляет 11400~шагов, а для транслятора анализатора
|
||||
поляризации "--- 16400~шагов.
|
||||
|
||||
Четвертьволновая фазовая пластинка приводится во вращение при помощи поворотной платформы 8MPR16-1 фирмы
|
||||
Standa, в которой аналоговый датчик Холла (служащий для определения нуль-пункта) заменен на A1101 (с
|
||||
встроенным компаратором и триггером Шмидта). Для вращения анализатора поляризации используется поворотная
|
||||
платформа 8MR190-2-4233 фирмы Standa. В ней в качестве нуль-пункта используется концевой выключатель.
|
||||
Конструктивные изменения данной платформы заключаются в удалении разъема типа DS9 и подключения проводки
|
||||
напрямую (при помощи пайки).
|
||||
|
||||
Точность установки нуль-пунктов обеих поворотных платформ составляет~$\pm5'$. Дискрет поворотной платформы
|
||||
фазовой пластины составляет~$0.75'$ (80~шагов на $1\degr$), дискрет анализатора поляризации "--- $0.6'$
|
||||
(100~шагов на $1\degr$).
|
||||
|
||||
Монтаж фотометра на фланце телескопа \Z выполняется в соответствии с положением меток на фланцах
|
||||
телескопа и прибора. Аналогично по расположению меток устанавливаются светоприемники. Для удобства
|
||||
визуализации позиционный угол фланца телескопа должен быть установлен в положение~$337.5\degr$.
|
||||
|
||||
\subsection{Система управления}
|
||||
Так как турели Edmund Optics представляют собой самостоятельные устройства с управлением по USB, система
|
||||
управления прибором имеет модульную структуру. В приборе размещен USB-концентратор, к которому подключены обе
|
||||
турели с фильтрами, а также преобразователь интерфейсов USB$\leftrightarrow$TTL для работы с модулями
|
||||
управления парой шаговых двигателей.
|
||||
|
||||
\subsubsection{Турели}
|
||||
Протокол управления турелями HSFW Edmund Optics не был документирован фирмой-изготовителем, поэтому был
|
||||
восстановлен методом обратной разработки. Устройство работает через HID-интерфейс и не нуждается для работы в
|
||||
правах суперпользователя.
|
||||
Для управления устройством разработана утилита
|
||||
\verb'HSFW_management'\footnote{\url{https://github.com/eddyem/eddys_snippets/tree/master/HSFW_management},
|
||||
там же "--- примеры работы с утилитой} \lstref{hsfwman}, полностью реализующая возможности турелей: поиск
|
||||
среди устройств по идентификатору, названию колеса или названию фильтра; перемещение заданного колеса в
|
||||
требуемую позицию; реинициализация с перемещением в стартовую позицию; сохранение сведений о фильтрах в
|
||||
различных колесах в EEPROM устройства.
|
||||
|
||||
Турели поддерживают до пяти разных колес с фильтрами. Маркировка колес выполняется при помощи постоянного
|
||||
магнита, вклеиваемого в соответствующее отверстие на колесе. При подготовке нового колеса необходимо
|
||||
убедиться, что маркирующий магнит вклеен в соответствии с полярностью магнита, задающего положение нуль-пункта
|
||||
(см.~рис.~\ref{wheel_naming}).
|
||||
|
||||
\TODO[картинка]
|
||||
\begin{pict}
|
||||
%\includegraphics{}
|
||||
\caption{Маркировка колес с фотометрическими фильтрами.}
|
||||
\label{wheel_naming}
|
||||
\end{pict}
|
||||
|
||||
\begin{lstlisting}[caption=Краткая справка по параметрам утилиты {\tt HSFW\_manage},label=hsfwman]
|
||||
-H, --home переместиться в стартовую позицию
|
||||
-N, --wheel-name=arg название колеса
|
||||
-W, --wheel-id=arg буквенный идентификатор колеса
|
||||
-h, --help отобразить эту справку
|
||||
-i, --filter-id=arg идентификатор фильтра, например, "A3"
|
||||
-n, --filter-name=arg название фильтра
|
||||
-p, --f-position=arg номер позиции фильтра
|
||||
-s, --serial=arg серийный номер турели (с начальными нулями)
|
||||
--list список имен только присутствующих устройств
|
||||
--list-all список всех сохраненных имен
|
||||
--rename переименовать сохраненные имена
|
||||
колес/фильтров
|
||||
--resetnames сбросить все названия в значения по умолчанию
|
||||
\end{lstlisting}
|
||||
|
||||
\subsubsection{Управление шаговыми двигателями}
|
||||
Каждый линейный транслятор в совокупности с соответствующей поворотной платформой и управляющим контроллером
|
||||
оформлен как отдельное устройство. Протокол управления приведен в приложении~\ref{MMPP_control}.
|
||||
|
||||
Все управляющие контроллеры размещаются на одной сигнальной шине UART (протокол: 8N1). Сигналы Tx контроллеров
|
||||
подключаются по схеме <<открытый сток>> с использованием внешней или слабой внутренней подтяжки. Скорость
|
||||
интерфейса задается в настройках контроллера, по умолчанию это 115200~бод.
|
||||
|
||||
Система управления построена на основе микроконтроллера STM32F030 (см.~рис.~\ref{MMPP_scheme}). Запись
|
||||
микропрограммы выполняется посредством встроенного в микроконтроллер бутлоадера (для его активации на плате
|
||||
размещены кнопки <<boot>> и <<reset>>). При помощи датчика тока MAX471 возможно измерение потребляемого
|
||||
двигателями в процессе работы тока. Микроконтроллер формирует сигналы STEP\slash DIR, которые преобразуются в
|
||||
силовые сигналы для шаговых двигателей при помощи модулей на основе драйверов DRV8825. В случае замены
|
||||
драйверов, до подключения шаговых двигателей требуется выставить предельный потребляемый ток в соответствии с
|
||||
таблицей~\ref{MotCurrents} в приложении. Драйверы работают в режиме дробления шага на~16, однако, система
|
||||
управления не позволит переместить шаговый двигатель на дробное количество шагов, т.к. после окончания
|
||||
движения двигатель обесточивается.
|
||||
|
||||
Система обеспечивает плавный разгон и торможение двигателей (кроме ситуаций наезда на концевик). Интерфейсы
|
||||
подключения концевых выключателей различаются: для двигателя~1 концевики подключаются к аналоговым входам МК,
|
||||
что позволяет параллельно ним установить дополнительные кнопки управления с сильной подтяжкой (резисторы
|
||||
сопротивлением 47~кОм) к земле. Данные кнопки выведены на лицевую панель прибора и позволяют управлять
|
||||
перемещением трансляторов без компьютера (для проверки работоспособности системы и перемещения транслятора
|
||||
анализатора поляризации при замене нижней турели светофильтров).
|
||||
|
||||
Номер контроллера (по умолчанию "--- 0) хранится во внутренней флеш-памяти МК. Контроллер анализатора
|
||||
поляризации имеет номер~1, контроллер фазовой пластины "--- 2. В случае замены контроллера до установки его в
|
||||
прибор необходимо провести базовые настройки в соответствии со списком на стр.~\pageref{MMPP_basesettings}.
|
||||
|
||||
Сразу после включения питания контроллеры находятся в неинициализированном состоянии. Для их инициализации в
|
||||
ручном режиме необходимо сместить все позиционные устройства в положительном направлении на небольшую величину
|
||||
(для гарантированного съезда с нулевого концевика), а затем двигать их в отрицательном направлении на
|
||||
количество шагов, превышающее рабочий диапазон "--- для установки на нулевые концевики. Далее до следующего
|
||||
отключения питания эту процедуру проводить не нужно.
|
||||
|
||||
Для удобства управления устройствами MMPP разработана утилита
|
||||
\verb'MMPP_control'~\footnote{\url{https://github.com/eddyem/mmpp/tree/master/MMPP_control}}
|
||||
\lstref{mmppcontrman}.
|
||||
|
||||
\begin{lstlisting}[caption=Краткая справка по параметрам {\tt MMPP\_control},label=mmppcontrman]
|
||||
-A, --absmove абсолютное движение (без этого флага заданное
|
||||
количество шагов рассматривается как
|
||||
относительное)
|
||||
-L, --lin1=arg перемещение линейного транслятора поляроида на
|
||||
N шагов
|
||||
-R, --rot1=arg вращение поляроида на заданный угол (в градусах)
|
||||
-S, --stop прекратить любое движение
|
||||
-a, --sendraw=arg отправить в порт заданную управляющую
|
||||
последовательность символов напрямую
|
||||
-d, --comdev=arg имя устройства последовательного порта
|
||||
-h, --help отобразить данную справку
|
||||
-l, --lin2=arg перемещение линейного транслятора фазовой
|
||||
пластины на N шагов
|
||||
-q, --quiet не отображать никакой информации в stdout
|
||||
-r, --rot2=arg вращение фазовой пластины на заданный угол
|
||||
(в градусах)
|
||||
-s, --status получение состояния устройства
|
||||
-t, --temp отображение температуры (довольно условной)
|
||||
микроконтроллеров
|
||||
-w, --wait ожидание окончания движения узлов (если
|
||||
предыдущая команда выполнялась с -y)
|
||||
-y, --async не ожидать окончания движения
|
||||
\end{lstlisting}
|
||||
|
||||
\section{Интерфейс системы управления}
|
||||
\comment[Тимур]{конфигурационный файл колес}
|
||||
\label{wheels_config}
|
||||
|
||||
\section{Приложения}
|
||||
\subsection{Замена колес с фильтрами}
|
||||
Доступ к колесам турелей осуществляется через лицевую панель фотометра. Для замены соответствующего колеса
|
||||
необходимо ослабить винт, фиксирующий колесо в турели, открыть крышку турели, поменять колеса, затянуть
|
||||
фиксирующий винт и закрыть крышку турели.
|
||||
|
||||
Расположение элементов указано на рис.~\ref{wheel_change}. Доступ к фиксирующему винту нижней турели
|
||||
осуществляется через боковую крышку. Чтобы ослабить этот винт, необходимо сначала переместить транслятор
|
||||
анализатора поляризации (контроллер \No\,1) на концевик~1. Это реализуется либо через интерфейс управления
|
||||
прибором, либо посредством сервисных кнопок, расположенных над боковой крышкой.
|
||||
|
||||
\TODO[картинка]
|
||||
\begin{pict}
|
||||
%\includegraphics{}
|
||||
\caption{Расположение элементов турелей.}
|
||||
\label{wheel_change}
|
||||
\end{pict}
|
||||
|
||||
Первая и вторая кнопки управляют транслятором анализатора поляризации, третья и четвертая "--- транслятором
|
||||
фазовой пластины. В каждой группе нажатие левой кнопки вызывает движение транслятора в сторону концевика~0,
|
||||
нажатие правой "--- в сторону концевика~1~(см.~рис.~\ref{buttons}).
|
||||
|
||||
\TODO[картинка]
|
||||
\begin{pict}
|
||||
%\includegraphics{}
|
||||
\caption{Расположение кнопок управления положением линейных трансляторов.}
|
||||
\label{buttons}
|
||||
\end{pict}
|
||||
|
||||
Расположение фильтров в колесе должно быть указано в соответствующем конфигурационном файле интерфейса
|
||||
системы управления прибором (см.~стр.~\pageref{wheels_config}).
|
||||
|
||||
После окончания замены колес турели находятся в неинициализированном состоянии. Для их инициализации
|
||||
необходимо выполнить одну из процедур: либо проводить замену с отключенным питанием контроллера (в этом
|
||||
случае инициализация турелей произойдет автоматически, однако, необходимо будет выполнить инициализацию
|
||||
подвижных элементов MMPP), либо при помощи интерфейса системы управления или утилиты \verb'HSFW_manage'
|
||||
установить оба колеса в положение <<home>>.
|
||||
|
||||
|
||||
\subsection{Методика установки нуль-пунктов}
|
||||
Для установки нуль-пунктов линейных трансляторов используются вспомогательные рамки с натянутыми на них
|
||||
нитяными крестами (см.~рис.~\ref{aux_frames}). Рамки устанавливаются вместо оптических узлов: фазовой
|
||||
пластины, анализатора поляризации и двух фильтров. Контрольный выходной крест натягивается также на фланец
|
||||
ПЗС-светоприемника. Для контрольной засветки оптического тракта используется крестообразный лазерный
|
||||
осветитель, устанавливаемый на специальном фланце во входном окне прибора. Регулировочными винтами необходимо
|
||||
добиться совмещения центра изображения креста осветителя с центром нитяного креста на фланце ПЗС. Дальнейшая
|
||||
юстировка производится визуально, либо при помощи вспомогательной видеокамеры с объективом-трансфокатором.
|
||||
|
||||
\TODO[картинка]
|
||||
\begin{pict}
|
||||
%\includegraphics{}
|
||||
\caption{Вспомогательные юстировочные рамки.}
|
||||
\label{aux_frames}
|
||||
\end{pict}
|
||||
|
||||
Юстировка турелей фильтров производится следующим образом. При помощи интерфейса системы управления либо
|
||||
утилиты \verb'HSFW_manage' в обеих турелях выставляются позиции с нитяными крестами. Далее путем регулировки
|
||||
трех фиксирующих винтов турель центруется относительно удерживающего цилиндра
|
||||
(см.~рис.~\ref{turrets_centering}). После центровки турелей оба колеса необходимо установить в положение
|
||||
<<hole>>, чтобы освободить оптический тракт для установки нуль-пунктов линейных трансляторов.
|
||||
|
||||
\TODO[картинка]
|
||||
\begin{pict}
|
||||
%\includegraphics{}
|
||||
\caption{Схема установки турелей с фильтрами.}
|
||||
\label{turrets_centering}
|
||||
\end{pict}
|
||||
|
||||
Для определения нуль-пунктов трансляторов можно использовать кнопки на боковой панели прибора, при помощи
|
||||
которых необходимо грубо совместить перекрестие нити в соответствующем оптическом узле с изображением креста
|
||||
осветителя. Точное совмещение выполняется при помощи интерфейса системы управления или утилиты
|
||||
\verb'MMPP_control'. По данным \verb'MMPP_control' определяются положения нуль-пунктов \lstref{zeropoints}
|
||||
транслятора анализатора поляризации (Pol: M0POS) и фазовой пластины (L/4: M0POS).
|
||||
|
||||
\begin{lstlisting}[caption=({\tt MMPP\_control -s}),label=zeropoints]
|
||||
Pol: M0ST M0LEFT M0POS - M1ST M1LEFT M1POS || L/4: M0ST M0LEFT M0POS - M1ST M1LEFT M1POS
|
||||
Pol: STOP 0 16400 - STOP 0 0 || L/4: STOP 0 11400 - STOP 0 0
|
||||
ESW00 ESW01 ESW10 ESW11 || ESW00 ESW01 ESW10 ESW11
|
||||
RLSD RLSD HALL RLSD || RLSD RLSD HALL RLSD
|
||||
\end{lstlisting}
|
||||
|
||||
Для определения положений нуль-пунктов анализатора поляризации и четвертьволновой пластины необходимо
|
||||
использовать дополнительное оборудование: осветитель, оснащенный поляризатором с известным направлением
|
||||
поляризации, а также формирователь круговой поляризации с известным направлением вращения (поляризатор и
|
||||
четвертьволновая пластина). Возможно также определение нуль-пунктов поляризационной оптики при помощи
|
||||
наблюдения стандартов с линейной и круговой поляризацией.
|
||||
|
||||
Определение нуль-пункта анализатора поляризации производится при помощи вспомогательного поляроида,
|
||||
осветителя с объективом и светоприемника (при достаточной яркости осветителя в качестве светоприемника
|
||||
возможно использовать фоторезистор). Получить поляризованный в данной плоскости свет можно при помощи
|
||||
куска поляризующей пленки из жидкокристаллических мониторов. Юстировка плоскости поляризатора производится
|
||||
при помощи поляризационной стопы, поляризационной призмы (например, призмы Глана) или поляризатора с известным
|
||||
направлением плоскости поляризации.
|
||||
|
||||
После юстировки осветителя необходимо осветить им оптический тракт прибора и сфокусировать на светоприемнике.
|
||||
Далее требуется линеаризовать показания светоприемника. Это можно сделать, изменяя степень заполнения ШИМ
|
||||
источника питания осветителя (осветителем может выступать светодиод, для минимизации влияния импульсного
|
||||
характера осветителя на точность измерений рекомендуется задавать максимальную частоту ШИМ, от 100\,кГц и
|
||||
выше). В случае использования фоторезистора освещенность хорошо аппроксимируется функцией $I =
|
||||
a\cdot\exp(b-\ln R)$ (см.~рис.~\ref{photores_cali}). Далее строится зависимость освещенности светоприемника от
|
||||
угла вращения и по аппроксимации параболой областей вблизи минимумов освещенности определяется положение
|
||||
скрещенных поляризатора и анализатора, откуда можно определить положение нуль-пункта анализатора поляризации.
|
||||
|
||||
После определения нуль-пункта анализатора он выставляется в положение~$90\degr$ по отношению к осветителю, и в
|
||||
пучок вводится фазовая пластина. Измеряя интенсивность прошедшего света в зависимости от угла вращения
|
||||
четвертьволновой пластины определяются положения плоскостей ее экстремальных скоростей. Точные значения углов
|
||||
определяются аналогично "--- из аппроксимации участков вблизи минимумов освещенности
|
||||
(см.~рис.~\ref{phase_cali}). Для используемой в MMPP четвертьволновой пластины угол между плоскостями
|
||||
экстремальных скоростей в полосе~R составляет $91.7\degr$. Определить, какая из плоскостей соответствует
|
||||
максимальной фазовой скорости, можно при помощи источника циркулярно поляризованного света с известным
|
||||
направлением вращения плоскости поляризации.
|
||||
|
||||
\TODO[картинка]
|
||||
\begin{pict}
|
||||
%\includegraphics{}
|
||||
\caption{Пример графика зависимости сопротивления фоторезистора от интенсивности освещения.}
|
||||
\label{photores_cali}
|
||||
\end{pict}
|
||||
|
||||
\TODO[картинка]
|
||||
\begin{pict}
|
||||
%\includegraphics{}
|
||||
\caption{Интенсивность излучения вблизи плоскостей экстремальных скоростей фазовой пластины.}
|
||||
\label{phase_cali}
|
||||
\end{pict}
|
||||
|
||||
\subsection{Порядок сборки и замены узлов прибора}
|
||||
|
||||
Распайка разъема питания:
|
||||
1 - земля,
|
||||
2 - нуль,
|
||||
3 - фаза.
|
||||
|
||||
\TODO[Уйма фотографий со стадиями сборки прибора]
|
||||
|
||||
Подключение проводов: Rx/Tx преобразователя UART-USB к Tx/Rx контроллеров; дополнительно можно установить
|
||||
сильную (около 4.7\,кОм) подтяжку между +3.3\,В и Rx преобразователя.
|
||||
|
||||
\subsection{Система управления линейными трансляторами и поворотными платформами прибора}
|
||||
\label{MMPP_control}
|
||||
\subsubsection{Принципиальная схема}
|
||||
Разработанная на основе микроконтроллера STM32F030F4P6 система управления шаговыми двигателями имеет
|
||||
модульную структуру. Один модуль управляет двумя биполярными шаговыми двигателями (напряжение питания 12\,В)
|
||||
с опросом пары аналоговых и пары цифровых (активны при замыкании на нуль) концевиков. На
|
||||
рис.~\ref{MMPP_scheme} приведена принципиальная схема одного модуля.
|
||||
|
||||
\begin{pict}
|
||||
\includegraphics[width=\textwidth]{steppers}
|
||||
\caption{Принципиальная схема модуля управления шаговыми двигателями.}
|
||||
\label{MMPP_scheme}
|
||||
\end{pict}
|
||||
|
||||
Суппрессор~D1 совместно с резисторами~R3 и~R4 (допустимо уменьшить при необходимости сопротивление резисторов
|
||||
до $68\div100\,$Ом) обеспечивает антистатическую защиту входов микроконтроллера по линии UART.
|
||||
|
||||
Кнопки~SW1 (<<reset>>) и~SW2 (<<boot>>) обеспечивают выбор режима загрузки микроконтроллера и аппаратный
|
||||
сброс при отладке (для перехода в режим встроенного загрузчика по UART необходимо нажать кнопку <<boot>>,
|
||||
затем, удерживая ее, нажать и отпустить кнопку <<reset>>, после чего отпустить кнопку <<boot>>; далее при
|
||||
помощи утилиты \verb'stm32flash' или команды \verb'make boot' можно записать файл прошивки во флеш-память
|
||||
микроконтроллера).
|
||||
|
||||
Транзистор~Q1 на входе цепи питания обеспечивает защиту от переполюсовки (при подаче питания в правильной
|
||||
полярности p-канальный MOSFET находится в открытом состоянии, при переполюсовке он закрыт).
|
||||
|
||||
Датчик~U2 (MAX471) служит для измерения тока, потребляемого шаговыми двигателями во время работы. Выход
|
||||
датчика является источником тока (500\,мкА на каждый Ампер измеряемого тока). Резистор~R6 выступает в качестве
|
||||
его нагрузки, в результате чего напряжение на выходе RC-фильтра на~R7 и~C8 изменяется по закону 0.75\,В на
|
||||
каждый Ампер измеряемого тока.
|
||||
|
||||
Делитель на резисторах~R8 и~R9 позволяет измерять напряжение в цепи питания прибора. Стабилитрон~D3
|
||||
ограничивает напряжение, подаваемое на вход АЦП микроконтроллера, величиной менее~3.5\,В. Фильтр на~R10 и~C9
|
||||
обеспечивает сглаживание пульсаций и быстрых изменений напряжения. Выходное напряжение примерно в 5.7~раз
|
||||
меньше входного.
|
||||
|
||||
Драйверы шаговых двигателей DRV8825 в виде чип-модулей устанавливаются в соответствующие гнезда. Подтяжка
|
||||
контактов модуля M0$\div$M2 к питанию задает требуемый микрошаговый режим. Конденсаторы~C10 и~C11 (low ESR,
|
||||
минимум 100\,мкФ) обеспечивают сглаживание пульсаций напряжения питания во время работы драйверов.
|
||||
|
||||
Разъемы~J3 и~J8 служат для подключения шаговых двигателей и концевых выключателей. Напряжение питания на
|
||||
датчики Холла для защиты LDO~U1 подается через резистор~R11. Конденсатор~C7 обеспечивает потребление датчика
|
||||
Холла во время переходных процессов. Антистатическая защита выходов концевых выключателей обеспечивается
|
||||
резисторами~R12, R13, R15 и~R22 и суппрессором. Резисторы~R23 и~R24 обеспечивают подтяжку к питанию
|
||||
аналоговых концевиков, имеющих три градации: 0, Vdd/2 и Vdd. Таким образом, кнопки управления линейными
|
||||
трансляторами необходимо тоже подтянуть к земле резисторами сопротивлением 47\,кОм.
|
||||
|
||||
Отдельно назначение каждого вывода микроконтроллера рассмотрено в таблице~\ref{MCUpins}.
|
||||
|
||||
|
||||
\begin{tbl}
|
||||
\caption{Назначение выводов микроконтроллера. Тип: AIN~-- аналоговый вход, PUPD~-- выход push\slash pull,
|
||||
OD~-- выход open drain, FIN~-- плавающий вход, FINPU~-- вход с подтяжкой к Vdd.}
|
||||
\label{MCUpins}
|
||||
\begin{tabular}{|c|c|l|}
|
||||
\hline
|
||||
\tabstrut\bf Pin & \bf Тип & \bf Назначение \\
|
||||
\hline
|
||||
PA0 & AIN & Ток шагового двигателя \tabstrut \\
|
||||
PA1 & AIN & Напряжение питания (12\,В) \\
|
||||
PA2 & AIN & Концевик~1 двигателя~0 \\
|
||||
PA3 & AIN & Концевик~0 двигателя~0 \\
|
||||
PA4 & PUPD & Такты драйвера двигателя~0 (TIM14\_CH1) \\
|
||||
PA5 & PUPD & Подача питания на двигатель~1 \\
|
||||
PA6 & PUPD & Такты драйвера двигателя~1 (TIM3\_CH1) \\
|
||||
PA7 & PUPD & Направление вращения двигателя~1 \\
|
||||
PA9 & OD & USART1 Tx \\
|
||||
PA10& FIN & USART1 Rx \\
|
||||
PA13& FINPU& Концевик~0 двигателя~1 \\
|
||||
PA14& FINPU& Концевик~1 двигателя~1 \\
|
||||
PB1 & PUPD & Управление питанием датчика тока \\
|
||||
PF0 & PUPD & Подача питания на двигатель~0 \\
|
||||
PF1 & PUPD & Направление вращения двигателя~0 \\
|
||||
\hline
|
||||
\end{tabular}
|
||||
\end{tbl}
|
||||
|
||||
\subsubsection{Протокол управления}
|
||||
Управление контроллерами производится по шине UART (8N1, скорость задана в конфигурации, по умолчанию
|
||||
115200\,бод). Команды передаются в строковом режиме: признаком окончания команды является символ новой строки.
|
||||
Микроконтроллер не обрабатывает принимаемые данные до формирования валидной строки. Символы пробела или
|
||||
табуляции внутри строки игнорируются. Первым в строке следует номер контроллера (число int32). Данный номер
|
||||
сохраняется во флеш памяти МК во время его инициализации. Каждый модуль обрабатывает лишь те команды, которые
|
||||
адресованы ему, либо же имеют широковещательную адресацию (в этом случае в качестве адреса указывается -1).
|
||||
Так как вывод данных микроконтроллером при получении широковещательного идентификатора не блокируется, не
|
||||
рекомендуется использовать широковещательные посылки при наличии более одного устройства на линии связи (кроме
|
||||
посылок экстренного останова, сброса и т.п.).
|
||||
|
||||
После идентификатора контроллера следует текст команды и (опционально) ее аргументы. В случае, если команда
|
||||
валидна, контроллер возвращает строку <<ALL OK>>. Если команда не распознана, возвращается маркер ошибки
|
||||
<<BADCMD>>. В случае же ошибок в аргументах команды возвращается маркер ошибки <<ERR>>. Если команда
|
||||
возвращает какую-либо информацию, она следует сразу за маркером <<ALL OK>>. Данные, занимающие более одной
|
||||
строки текста, завершаются маркером <<DATAEND>>. Если команда лишь требует выполнения определенного действия,
|
||||
маркер <<ALL OK>> возвращается после установления возможности выполнения данного действия. В силу синхронного
|
||||
характера интерфейса связи, команды, требующие длительного времени на исполнение (например, перемещение
|
||||
объекта) не выводят в случае ошибки или достижения заданного положения никаких данных, процесс их исполнения
|
||||
необходимо контролировать периодическим запросом состояния модуля.
|
||||
|
||||
Первым символом в строке команды должен быть один из следующих:
|
||||
|
||||
\begin{description}\def\itm#1{\rlap{#1}\phantom{(ничего)}}
|
||||
\item[(ничего)] команда <<ping>>, в ответ на которую устройство выдает сообщение <<ALIVE>>;
|
||||
\item[\itm{G}] команда-геттер;
|
||||
\item[\itm{M}] работа с двигателями;
|
||||
\item[\itm{R}] программная перезагрузка микроконтроллера (первый после перезагрузки геттер <<status>> вернет
|
||||
значение <<SOFTRESET=1>>);
|
||||
\item[\itm{S}] команда-сеттер;
|
||||
\item[\itm{W}] команда записи во флеш-память значений конфигурации из оперативной памяти.
|
||||
\end{description}
|
||||
|
||||
|
||||
Программная перезагрузка контроллера может использоваться для повторной инициализации счетчиков положения
|
||||
двигателей (по опорным концевикам нуль-пунктов). Команду записи данных во флеш-память необходимо вызывать
|
||||
после изменения конфигурации параметров контроллера и проверки геттером <<configuration>> их значения (за
|
||||
исключением скорости интерфейса UART все изменения конфигурационных данных сразу отражаются на поведении
|
||||
контроллера).
|
||||
|
||||
\paragraph{Команды-геттеры.}
|
||||
Данные команды предназначены для вывода в терминал определенной информации. Данные выводятся сразу за маркером
|
||||
<<ALL OK>>. В случае, если они занимают лишь одну строку (возвращается только один параметр), маркер конца
|
||||
данных не выводится, при выводе же более одного параметра конец вывода обозначается маркером <<DATAEND>>.
|
||||
|
||||
\begin{description}\def\itm#1{\rlap{#1}\phantom{XX}}
|
||||
\item[\itm{A}] запрос результатов измерения АЦП:
|
||||
\begin{description}
|
||||
\item[\itm{D}] значение Vdd$\cdot100\,$В, например, {\tt VDD=330} ($Vdd=3.3\,$В);
|
||||
\item[\itm{I}] потребляемый обоими моторами ток I$\cdot100\,$А, например, {\tt IMOT=70} ($I=0.7\,$А);
|
||||
\item[\itm{M}] напряжение питания U$\cdot100\,$В, например, {\tt VMOT=1193} ($U=11.93\,$В);
|
||||
\end{description}
|
||||
\item[\itm{C}] получение текущих значений параметров конфигурации, например,
|
||||
\begin{verbatim}
|
||||
CONFSZ=36
|
||||
DEVID=0
|
||||
V12NUM=1
|
||||
V12DEN=10
|
||||
I12NUM=1
|
||||
I12DEN=1
|
||||
V33NUM=1
|
||||
V33DEN=1
|
||||
ESWTHR=150
|
||||
MOT0SPD=60
|
||||
MOT1SPD=60
|
||||
USARTSPD=115200
|
||||
REVERSE0=0
|
||||
REVERSE1=0
|
||||
MAXSTEPS0=0
|
||||
MAXSTEPS1=0
|
||||
DATAEND
|
||||
\end{verbatim}
|
||||
|
||||
\item[\itm{R}] получение <<сырых>> данных с АЦП:
|
||||
\begin{description}
|
||||
\item[0] ток ШД;
|
||||
\item[1] напряжение 12\,В;
|
||||
\item[2] концевик~1 двигателя~0;
|
||||
\item[3] концевик~0 двигателя~0;
|
||||
\item[4] внутренняя температура;
|
||||
\item[5] Vdd.
|
||||
\end{description}
|
||||
например,
|
||||
\begin{verbatim}
|
||||
ADC[0]=4095
|
||||
ADC[1]=2340
|
||||
ADC[2]=4095
|
||||
ADC[3]=4087
|
||||
ADC[4]=1665
|
||||
ADC[5]=1532
|
||||
DATAEND
|
||||
\end{verbatim}
|
||||
|
||||
\item[\itm{S}] состояние двигателей (возвращает описанные ниже переменные \verb'MOTORx', \verb'ESWxy',
|
||||
\verb'POSx' и \verb'STEPSLEFTx').
|
||||
|
||||
\item[\itm{T}] условная температура микроконтроллера, например, \verb'TEMP=365'.
|
||||
|
||||
\end{description}
|
||||
|
||||
\paragraph{Геттеры состояния.}\label{stategetters}
|
||||
В переменных \verb'MOTORx' ({\tt x} "--- номер двигателя, 0 или 1) хранится текущее состояние конечного
|
||||
автомата шаговых двигателей.
|
||||
Ее значение может быть одним из следующих:
|
||||
\begin{description}\def\itm#1{\rlap{#1}\phantom{STOPZERO}}
|
||||
\item[\itm{ACCEL}] состояние разгона "--- начало движения;
|
||||
\item[\itm{DECEL}] состояние торможения "--- окончание движения;
|
||||
\item[\itm{MOVE}] движение с постоянной скоростью;
|
||||
\item[\itm{MOVETO0}] бесконечное движение до достижения концевика~0;
|
||||
\item[\itm{MOVETO1}] бесконечное движение до достижения концевика~1;
|
||||
\item[\itm{MVSLOW}] движение с наименьшей постоянной скоростью (в случае перемещения на малое количество
|
||||
шагов);
|
||||
\item[\itm{SLEEP}] ожидание команд, движение отсутствует;
|
||||
\item[\itm{STOP}] окончание движения (по запросу);
|
||||
\item[\itm{STOPZERO}] окончание движения с обнулением положения;
|
||||
\item[\itm{UNKNOWN}] неизвестное состояние "--- ошибка.
|
||||
\end{description}
|
||||
|
||||
Переменные \verb'ESWxy', где {\tt y}~-- номер концевика (0 или 1), {\tt x}~-- номер двигателя (0 или 1)
|
||||
отражают состояние концевых выключателей и кнопок.
|
||||
|
||||
\begin{description}\def\itm#1{\rlap{#1}\phantom{RLSD}}
|
||||
\item[\itm{BTN}] (только для концевиков двигателя~0) нажата кнопка;
|
||||
\item[\itm{ERR}] (только для концевиков двигателя~0) уровень вне допустимых диапазонов;
|
||||
\item[\itm{HALL}] активен датчик Холла (логический~0);
|
||||
\item[\itm{RLSD}] концевик неактивен (логическая~1).
|
||||
\end{description}
|
||||
|
||||
Текущее положение (в шагах) двигателя характеризуется переменной \verb'POSx' ({\tt x}~-- номер мотора, 0
|
||||
или~1). Если ее значение отрицательно, требуется инициализация данного двигателя (движение до концевика~0).
|
||||
|
||||
Во время движения геттер состояния возвращает также значение переменной \verb'STEPSLEFTx' "--- оставшееся
|
||||
количество шагов.
|
||||
|
||||
В случае, если до вызова геттера состояния контроллера произошел его сброс (программный сброс, инициированный
|
||||
пользователем, либо сброс, инициированный watchdog'ом), геттер вернет дополнительно одну из двух переменных:
|
||||
\verb'SOFTRESET=1' или \verb'WDGRESET=1'.
|
||||
|
||||
Внимание! После вызова данного геттера переменные не завершаются маркером <<DATAEND>>!
|
||||
Пример:
|
||||
\begin{lstlisting}
|
||||
SOFTRESET=1
|
||||
MOTOR0=SLEEP
|
||||
POS0=-1
|
||||
ESW00=ERR
|
||||
ESW01=BTN
|
||||
MOTOR1=SLEEP
|
||||
POS1=-1
|
||||
ESW10=HALL
|
||||
ESW11=HALL
|
||||
\end{lstlisting}
|
||||
|
||||
\paragraph{Команды работы с двигателями.}
|
||||
Следующим символом после этой команды должен быть номер двигателя (0 или 1), в случае ошибки будет возвращен
|
||||
ответ \verb'Num>1'. В данной группе всего две команды:
|
||||
\begin{description}\def\itm#1{\rlap{#1}\phantom{Mnum}}
|
||||
\item[\itm{Mnum}] перемещение двигателя на \textbf{num} (положительное или отрицательное целое) шагов, в
|
||||
случае ошибки возможны следующие варианты ответа:
|
||||
\begin{description}\def\itm#1{\rlap{#1}\phantom{TooBigNumber}}
|
||||
\item[\itm{BadSteps}] \textbf{num} не является числом;
|
||||
\item[\itm{IsMoving}] двигатель находится в состоянии движения;
|
||||
\item[\itm{OnEndSwitch}] двигатель находится на концевике, запрещающем движение в заданном направлении;
|
||||
\item[\itm{ZeroMove}] \textbf{num} равно нулю;
|
||||
\item[\itm{TooBigNumber}] значение \textbf{num} превышает системное \verb'MAXSTEPSx';
|
||||
\end{description}
|
||||
|
||||
\item[\itm{S}] остановить двигатель.
|
||||
\end{description}
|
||||
|
||||
\paragraph{Команды-сеттеры.}
|
||||
При нормальном завершении команда-сеттер изменяет значение соответствующей переменной в оперативной памяти и
|
||||
(за исключением скорости интерфейса UART) данные изменения сразу же отражаются на поведении контроллера. Для
|
||||
постоянного сохранения изменений во флеш-памяти МК необходимо дать команду записи во флеш-память после всех
|
||||
проведенных изменений и их проверки.
|
||||
|
||||
\begin{description}\def\itm#1{\rlap{#1}\phantom{M\#num}}
|
||||
\item[\itm{C\#num}] изменение значения текущей скорости двигателя с номером \textbf{\#} на \textbf{num}
|
||||
(данное изменение действует лишь до окончания движения двигателя);
|
||||
\item[\itm{Dxnum}] установка знаменателя (\textbf{d}enominator) величины \textbf{x} (D, I или M~-- в
|
||||
соответствии с геттером значения измерений АЦП) в \textbf{num};
|
||||
\item[\itm{Exnum}] установка числителя (num\textbf{e}rator) (аналогично \textbf{Dxnum});
|
||||
\item[\itm{I num}] изменение значения идентификатора (целое число) контроллера;
|
||||
\item[\itm{M\#num}] установка максимального диапазона (\textbf{num} от~1 до~65535) шагового двигателя
|
||||
\textbf{\#};
|
||||
\item[\itm{P num}] включение (\textbf{num} равно нулю) или отключение (\textbf{num} отсутствует или любое,
|
||||
кроме нуля) внутренней подтяжки на UART Tx;
|
||||
\item[\itm{R\#num}] реверсивное движение двигателя \textbf{\#} (\textbf{num} равное нулю отключает реверс),
|
||||
в режиме реверса меняется только направление вращения двигателя, но не обрабатываемые концевики;
|
||||
\item[\itm{S\#num}] изменение значения максимальной скорости двигателя с номером \textbf{\#} на \textbf{num}
|
||||
(максимальная скорость устанавливается после окончания движения с ускорением и не зависит от
|
||||
текущей скорости, \textbf{C\#num});
|
||||
\item[\itm{T num}] изменение пороговых величин (\textbf{num} в ADU) для градации состояний концевика
|
||||
двигателя~0 (0..num~-- датчик Холла, 2048-num..2048+num~-- пользовательская кнопка,
|
||||
4096-num..4095~-- свободное состояние);
|
||||
\item[\itm{U num}] изменение скорости UART.
|
||||
\end{description}
|
||||
|
||||
\paragraph{Сеттеры скорости двигателей.}
|
||||
Для установки значения скорости в \textbf{N} шагов в секунду, используются сеттеры \textbf{C} или \textbf{S}.
|
||||
Их аргумент имеет значение $3000/N$. Например, чтобы дать команду контроллеру с идентификатором <<0>>
|
||||
изменить текущую скорость вращения двигателя~0 на 50~шагов в секунду, необходимо передать команду
|
||||
\textbf{0SC060} (0~-- номер контроллера, S~-- сеттер, C~-- текущая скорость, 0~-- двигатель~0, $60=3000/50$).
|
||||
|
||||
\paragraph{Сеттеры числителя и знаменателя.} Сеттеры \textbf{Dxnum} (знаменатель) и \textbf{Exnum}
|
||||
(числитель) устанавливают величины соответствующих аппроксимаций к коэффициентам перевода измеренных АЦП
|
||||
величин из ADU в физические величины. Следует учитывать, что при расчетах используется беззнаковая
|
||||
целочисленная 32-битная математика, поэтому во избежание переполнения не следует задавать слишком большие
|
||||
величины. В качестве параметра \textbf{x} используется мнемоника из соответствующего геттера (\textbf{D}~--
|
||||
Vdd, \textbf{I}~-- потребляемый ток, \textbf{M}~-- напряжение питания). Для преобразования числа с плавающей
|
||||
точкой в несократимую арифметическую дробь можно использовать функцию Octave \verb'rat()'. Например, для
|
||||
преобразования коэффициента~$1.23$ в несократимую дробь с точностью~$0.1$:
|
||||
{\lstset{language=Octave}
|
||||
\begin{lstlisting}
|
||||
[N D] = rat(1.23,0.01)
|
||||
N = 16
|
||||
D = 13
|
||||
\end{lstlisting}}
|
||||
Полученное приближение~$16/13=1.2308$ лежит в заданных точностных рамках.
|
||||
|
||||
\paragraph{Сеттер идентификатора устройства.} Сразу после получения нового идентификатора, устройство
|
||||
перестает откликаться на команды со старым идентификатором. Поэтому в случае проблем (устройство
|
||||
<<потеряно>>) необходимо произвести перезагрузку устройства кратковременным нажатием на кнопку <<reset>> или
|
||||
кратковременным отключением питания. Если же устройство является единственным на линии связи, можно
|
||||
обратиться к нему по <<широковещательному>> идентификатору <<-1>>.
|
||||
|
||||
|
||||
\subsubsection{Состояние устройства и базовые настройки}
|
||||
Состояние устройства в \verb'MMPP_control' отображается четырьмя строками, например:
|
||||
\begin{lstlisting}
|
||||
Pol: M0ST M0LEFT M0POS - M1ST M1LEFT M1POS || L/4: M0ST M0LEFT M0POS - M1ST M1LEFT M1POS
|
||||
Pol: STOP 0 16400 - STOP 0 0 || L/4: STOP 0 11400 - STOP 0 0
|
||||
ESW00 ESW01 ESW10 ESW11 || ESW00 ESW01 ESW10 ESW11
|
||||
RLSD RLSD HALL RLSD || RLSD RLSD HALL RLSD
|
||||
\end{lstlisting}
|
||||
|
||||
Нечетные строки "--- название полей в четных строках. Две вертикальные линии разделяют поля первого и второго
|
||||
контроллера (в первой группе они имеют соответствующие пометки: <<Pol>> и <<L/4>>).
|
||||
\begin{description}\def\itm#1{\rlap{#1}\phantom{MxLEFT}}
|
||||
\item[\itm{MxST}] состояние двигателей~0 и~1;
|
||||
\item[\itm{MxLEFT}] количество оставшихся шагов;
|
||||
\item[\itm{MxPOS}] текущее положение двигателей;
|
||||
\item[\itm{ESWxy}] состояние концевика \textbf{y} двигателя \textbf{x}.
|
||||
\end{description}
|
||||
Значение полей описано в пункте <<Геттеры состояния>> на стр.~\pageref{stategetters}.
|
||||
|
||||
\paragraph{Базовые настройки.}\label{MMPP_basesettings}
|
||||
Параметры текущей конфигурации контроллера можно получить при помощи геттера конфигурации. Например,
|
||||
\begin{lstlisting}[caption=Базовые настройки контроллеров]
|
||||
MMPP_control -a 1GC
|
||||
Send raw string: 1GC
|
||||
Receive:
|
||||
CONFSZ=36
|
||||
DEVID=1
|
||||
V12NUM=605
|
||||
V12DEN=94
|
||||
I12NUM=3
|
||||
I12DEN=4
|
||||
V33NUM=1
|
||||
V33DEN=1
|
||||
ESWTHR=500
|
||||
MOT0SPD=3
|
||||
MOT1SPD=5
|
||||
MAXSTEPS0=50000
|
||||
MAXSTEPS1=50000
|
||||
INTPULLUP=1
|
||||
USARTSPD=115200
|
||||
REVERSE0=1
|
||||
REVERSE1=0
|
||||
DATAEND
|
||||
|
||||
MMPP_control -a 2GC
|
||||
Send raw string: 2GC
|
||||
Receive:
|
||||
CONFSZ=36
|
||||
DEVID=2
|
||||
V12NUM=605
|
||||
V12DEN=94
|
||||
I12NUM=3
|
||||
I12DEN=4
|
||||
V33NUM=1
|
||||
V33DEN=1
|
||||
ESWTHR=500
|
||||
MOT0SPD=3
|
||||
MOT1SPD=2
|
||||
MAXSTEPS0=50000
|
||||
MAXSTEPS1=50000
|
||||
INTPULLUP=1
|
||||
USARTSPD=115200
|
||||
REVERSE0=0
|
||||
REVERSE1=1
|
||||
DATAEND
|
||||
\end{lstlisting}
|
||||
|
||||
В случае замены контроллера необходимо записать в новый чип конфигурацию, соответствующую заменяемому.
|
||||
Важными параметрами являются \verb'DEVID' (идентификатор устройства), \verb'ESWTHR' (порог реакции на
|
||||
изменение уровня на концевиках двигателя~0, \verb'MOTxSPD' (предельные скорости соответствующих двигателей),
|
||||
\verb'MAXSTEPSx' (максимальное количество шагов данного двигателя), \verb'INTPULLUP' (при отсутствии внешней
|
||||
подтяжки шины~Tx контроллеров отключенная подтяжка приведет к неработоспособности), \verb'USARTSPD' (скорость
|
||||
шины UART) и \verb'REVERSEx' (направление вращения двигателя).
|
||||
|
||||
\paragraph{Значения предельных токов DRV8825.} \label{MotCurrents}
|
||||
Предельные токи определяются по уровню напряжения на подстроечных резисторах DRV8825.
|
||||
\TODO[ТОКИ!]
|
||||
\end{document}
|
||||
BIN
Doc_rus/imgs/steppers.pdf
Normal file
BIN
Doc_rus/imgs/steppers.pdf
Normal file
Binary file not shown.
@ -5,8 +5,9 @@ MMPP (Multimode photometer-polarimeter) for the telescope Zeiss-1000 of SAO RAS.
|
||||
|
||||
## Directory structure
|
||||
|
||||
- **metal** --- all drawings for elements made in SAO
|
||||
- **Doc_rus** --- some documentation
|
||||
- **electronics** --- schematics and PCB (in kicad) of control system
|
||||
- **metal** --- all drawings for elements made in SAO
|
||||
- **MMPP_control** --- simple CLI for moving parts control
|
||||
- **STM32** --- firmware sources
|
||||
|
||||
|
||||
@ -48,7 +48,7 @@ void adc_setup(){
|
||||
/* (3) Wait HSI14 is ready */
|
||||
RCC->APB2ENR |= RCC_APB2ENR_ADC1EN; /* (1) */
|
||||
RCC->CR2 |= RCC_CR2_HSI14ON; /* (2) */
|
||||
while ((RCC->CR2 & RCC_CR2_HSI14RDY) == 0) /* (3) */
|
||||
while ((RCC->CR2 & RCC_CR2_HSI14RDY) == 0){}; /* (3) */
|
||||
/* (1) Ensure that ADEN = 0 */
|
||||
/* (2) Clear ADEN */
|
||||
/* (3) Launch the calibration by setting ADCAL */
|
||||
@ -62,7 +62,7 @@ void adc_setup(){
|
||||
/* (2) Wait until ADC ready */
|
||||
do{
|
||||
ADC1->CR |= ADC_CR_ADEN; /* (1) */
|
||||
}while ((ADC1->ISR & ADC_ISR_ADRDY) == 0) /* (2) */;
|
||||
}while ((ADC1->ISR & ADC_ISR_ADRDY) == 0); /* (2) */;
|
||||
/* (1) Select HSI14 by writing 00 in CKMODE (reset value) */
|
||||
/* (2) Select the continuous mode */
|
||||
/* (3) Select CHSEL0..3, 16,17 */
|
||||
|
||||
@ -119,7 +119,7 @@ int main(void){
|
||||
//def EBUG
|
||||
if(msgctr > Tms || Tms - msgctr > 4999){ // once per 5 seconds
|
||||
msgctr = Tms;
|
||||
txt = "hello";
|
||||
txt = "hello, I'm alive!\n";
|
||||
}
|
||||
#endif
|
||||
/*
|
||||
|
||||
@ -338,15 +338,16 @@ static char *set_something(char *str){
|
||||
return setDevId(str);
|
||||
break;
|
||||
case 'M': // set maxsteps
|
||||
setmotvals('M', str);
|
||||
return setmotvals('M', str);
|
||||
break;
|
||||
case 'P': // set pullup
|
||||
omitwsp(str);
|
||||
if(*str == '0') the_conf.intpullup = 0;
|
||||
else the_conf.intpullup = 1;
|
||||
return ALLOK;
|
||||
break;
|
||||
case 'R': // set reverse
|
||||
setmotvals('R', str);
|
||||
return setmotvals('R', str);
|
||||
break;
|
||||
case 'S': // set speed
|
||||
return setMotSpeed(0, str);
|
||||
|
||||
Binary file not shown.
@ -79,7 +79,7 @@ void USART1_config(){
|
||||
/* Configure USART1 */
|
||||
/* (1) oversampling by 16, set speed */
|
||||
/* (2) 8 data bit, 1 start bit, 1 stop bit, no parity */
|
||||
USART1->BRR = 48000000 / the_conf.usartspd; /* (1) */
|
||||
USART1->BRR = 48000000UL / the_conf.usartspd; /* (1) */
|
||||
USART1->CR1 = USART_CR1_TE | USART_CR1_RE | USART_CR1_UE; /* (2) */
|
||||
/* polling idle frame Transmission */
|
||||
while(!(USART1->ISR & USART_ISR_TC)){}
|
||||
|
||||
Binary file not shown.
@ -1,11 +1,11 @@
|
||||
EESchema-LIBRARY Version 2.3
|
||||
EESchema-LIBRARY Version 2.4
|
||||
#encoding utf-8
|
||||
#
|
||||
# +12V
|
||||
# steppers-rescue_+12V
|
||||
#
|
||||
DEF +12V #PWR 0 0 Y Y 1 F P
|
||||
DEF steppers-rescue_+12V #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 -150 50 H I C CNN
|
||||
F1 "+12V" 0 140 50 H V C CNN
|
||||
F1 "steppers-rescue_+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
|
||||
@ -16,14 +16,13 @@ X +12V 1 0 0 0 U 50 50 1 1 W N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# +3V3
|
||||
# steppers-rescue_+3.3V
|
||||
#
|
||||
DEF +3V3 #PWR 0 0 Y Y 1 F P
|
||||
DEF steppers-rescue_+3.3V #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 -150 50 H I C CNN
|
||||
F1 "+3V3" 0 140 50 H V C CNN
|
||||
F1 "steppers-rescue_+3.3V" 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
|
||||
@ -32,11 +31,11 @@ X +3V3 1 0 0 0 U 50 50 1 1 W N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# C
|
||||
# steppers-rescue_C
|
||||
#
|
||||
DEF C C 0 10 N Y 1 F N
|
||||
DEF steppers-rescue_C C 0 10 N Y 1 F N
|
||||
F0 "C" 25 100 50 H V L CNN
|
||||
F1 "C" 25 -100 50 H V L CNN
|
||||
F1 "steppers-rescue_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
|
||||
@ -50,11 +49,11 @@ X ~ 2 0 -150 110 U 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# CP
|
||||
# steppers-rescue_CP
|
||||
#
|
||||
DEF CP C 0 10 N Y 1 F N
|
||||
DEF steppers-rescue_CP C 0 10 N Y 1 F N
|
||||
F0 "C" 25 100 50 H V L CNN
|
||||
F1 "CP" 25 -100 50 H V L CNN
|
||||
F1 "steppers-rescue_CP" 25 -100 50 H V L CNN
|
||||
F2 "" 38 -150 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
@ -73,11 +72,11 @@ X ~ 2 0 -150 110 U 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# CP_Small
|
||||
# steppers-rescue_CP_Small
|
||||
#
|
||||
DEF CP_Small C 0 10 N N 1 F N
|
||||
DEF steppers-rescue_CP_Small C 0 10 N N 1 F N
|
||||
F0 "C" 10 70 50 H V L CNN
|
||||
F1 "CP_Small" 10 -80 50 H V L CNN
|
||||
F1 "steppers-rescue_CP_Small" 10 -80 50 H V L CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
@ -93,11 +92,11 @@ X ~ 2 0 -100 73 U 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Conn_01x02
|
||||
# steppers-rescue_Conn_01x02
|
||||
#
|
||||
DEF Conn_01x02 J 0 40 Y N 1 F N
|
||||
DEF steppers-rescue_Conn_01x02 J 0 40 Y N 1 F N
|
||||
F0 "J" 0 100 50 H V C CNN
|
||||
F1 "Conn_01x02" 0 -200 50 H V C CNN
|
||||
F1 "steppers-rescue_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
|
||||
@ -117,11 +116,11 @@ X Pin_2 2 -200 -100 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Conn_01x03
|
||||
# steppers-rescue_Conn_01x03
|
||||
#
|
||||
DEF Conn_01x03 J 0 40 Y N 1 F N
|
||||
DEF steppers-rescue_Conn_01x03 J 0 40 Y N 1 F N
|
||||
F0 "J" 0 200 50 H V C CNN
|
||||
F1 "Conn_01x03" 0 -200 50 H V C CNN
|
||||
F1 "steppers-rescue_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
|
||||
@ -143,11 +142,11 @@ X Pin_3 3 -200 -100 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Conn_01x08
|
||||
# steppers-rescue_Conn_01x08
|
||||
#
|
||||
DEF Conn_01x08 J 0 40 Y N 1 F N
|
||||
DEF steppers-rescue_Conn_01x08 J 0 40 Y N 1 F N
|
||||
F0 "J" 0 400 50 H V C CNN
|
||||
F1 "Conn_01x08" 0 -500 50 H V C CNN
|
||||
F1 "steppers-rescue_Conn_01x08" 0 -500 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
@ -179,11 +178,11 @@ X Pin_8 8 -200 -400 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Conn_02x05_Odd_Even
|
||||
# steppers-rescue_Conn_02x05_Odd_Even
|
||||
#
|
||||
DEF Conn_02x05_Odd_Even J 0 40 Y N 1 F N
|
||||
DEF steppers-rescue_Conn_02x05_Odd_Even J 0 40 Y N 1 F N
|
||||
F0 "J" 50 300 50 H V C CNN
|
||||
F1 "Conn_02x05_Odd_Even" 50 -300 50 H V C CNN
|
||||
F1 "steppers-rescue_Conn_02x05_Odd_Even" 50 -300 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
@ -207,6 +206,7 @@ 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
|
||||
X Pin_1 1 -200 200 150 R 50 50 1 1 P
|
||||
X Pin_10 10 300 -200 150 L 50 50 1 1 P
|
||||
X Pin_2 2 300 200 150 L 50 50 1 1 P
|
||||
X Pin_3 3 -200 100 150 R 50 50 1 1 P
|
||||
X Pin_4 4 300 100 150 L 50 50 1 1 P
|
||||
@ -215,15 +215,14 @@ X Pin_6 6 300 0 150 L 50 50 1 1 P
|
||||
X Pin_7 7 -200 -100 150 R 50 50 1 1 P
|
||||
X Pin_8 8 300 -100 150 L 50 50 1 1 P
|
||||
X Pin_9 9 -200 -200 150 R 50 50 1 1 P
|
||||
X Pin_10 10 300 -200 150 L 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# D_Zener
|
||||
# steppers-rescue_D_Zener
|
||||
#
|
||||
DEF D_Zener D 0 40 N N 1 F N
|
||||
DEF steppers-rescue_D_Zener D 0 40 N N 1 F N
|
||||
F0 "D" 0 100 50 H V C CNN
|
||||
F1 "D_Zener" 0 -100 50 H V C CNN
|
||||
F1 "steppers-rescue_D_Zener" 0 -100 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
@ -242,11 +241,11 @@ X A 2 150 0 100 L 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# GND
|
||||
# steppers-rescue_GND
|
||||
#
|
||||
DEF GND #PWR 0 0 Y Y 1 F P
|
||||
DEF steppers-rescue_GND #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 -250 50 H I C CNN
|
||||
F1 "GND" 0 -150 50 H V C CNN
|
||||
F1 "steppers-rescue_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
|
||||
@ -255,11 +254,11 @@ X GND 1 0 0 0 D 50 50 1 1 W N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# LM1117-3.3-RESCUE-steppers
|
||||
# steppers-rescue_LM1117-3.3-RESCUE-steppers
|
||||
#
|
||||
DEF LM1117-3.3-RESCUE-steppers U 0 10 Y Y 1 F N
|
||||
DEF steppers-rescue_LM1117-3.3-RESCUE-steppers U 0 10 Y Y 1 F N
|
||||
F0 "U" -150 125 50 H V C CNN
|
||||
F1 "LM1117-3.3-RESCUE-steppers" 0 125 50 H V L CNN
|
||||
F1 "steppers-rescue_LM1117-3.3-RESCUE-steppers" 0 125 50 H V L CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
@ -277,11 +276,11 @@ X VO 4 300 -100 100 L 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# MAX471
|
||||
# steppers-rescue_MAX471
|
||||
#
|
||||
DEF MAX471 U 0 20 Y Y 1 F N
|
||||
DEF steppers-rescue_MAX471 U 0 20 Y Y 1 F N
|
||||
F0 "U" -300 350 50 H V L CNN
|
||||
F1 "MAX471" 0 350 50 H V L CNN
|
||||
F1 "steppers-rescue_MAX471" 0 350 50 H V L CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
@ -301,24 +300,24 @@ X OUT 8 400 -200 100 L 50 50 1 1 O
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# PWR_FLAG
|
||||
# steppers-rescue_PWR_FLAG
|
||||
#
|
||||
DEF PWR_FLAG #FLG 0 0 N N 1 F P
|
||||
DEF steppers-rescue_PWR_FLAG #FLG 0 0 N N 1 F P
|
||||
F0 "#FLG" 0 75 50 H I C CNN
|
||||
F1 "PWR_FLAG" 0 150 50 H V C CNN
|
||||
F1 "steppers-rescue_PWR_FLAG" 0 150 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
DRAW
|
||||
X pwr 1 0 0 0 U 50 50 0 0 w
|
||||
P 6 0 1 0 0 0 0 50 -40 75 0 100 40 75 0 50 N
|
||||
X pwr 1 0 0 0 U 50 50 0 0 w
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Q_PMOS_GSD
|
||||
# steppers-rescue_Q_PMOS_GSD
|
||||
#
|
||||
DEF Q_PMOS_GSD Q 0 0 Y N 1 F N
|
||||
DEF steppers-rescue_Q_PMOS_GSD Q 0 0 Y N 1 F N
|
||||
F0 "Q" 200 50 50 H V L CNN
|
||||
F1 "Q_PMOS_GSD" 200 -50 50 H V L CNN
|
||||
F1 "steppers-rescue_Q_PMOS_GSD" 200 -50 50 H V L CNN
|
||||
F2 "" 200 100 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
DRAW
|
||||
@ -346,11 +345,11 @@ X D 3 100 200 100 D 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# R
|
||||
# steppers-rescue_R
|
||||
#
|
||||
DEF R R 0 0 N Y 1 F N
|
||||
DEF steppers-rescue_R R 0 0 N Y 1 F N
|
||||
F0 "R" 80 0 50 V V C CNN
|
||||
F1 "R" 0 0 50 V V C CNN
|
||||
F1 "steppers-rescue_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
|
||||
@ -364,18 +363,17 @@ X ~ 2 0 -150 50 U 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# SP0502BAHT
|
||||
# steppers-rescue_SP0502BAHT
|
||||
#
|
||||
DEF SP0502BAHT D 0 40 Y N 1 F N
|
||||
DEF steppers-rescue_SP0502BAHT D 0 40 Y N 1 F N
|
||||
F0 "D" 225 100 50 H V L CNN
|
||||
F1 "SP0502BAHT" 225 25 50 H V L CNN
|
||||
F1 "steppers-rescue_SP0502BAHT" 225 25 50 H V L CNN
|
||||
F2 "TO_SOT_Packages_SMD:SOT-23" 225 -50 50 H I L CNN
|
||||
F3 "" 125 125 50 H I C CNN
|
||||
$FPLIST
|
||||
SOT?23*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
X A 3 0 -200 100 U 50 50 0 0 I
|
||||
S -175 100 175 -100 0 1 10 f
|
||||
P 2 0 1 0 -100 100 -100 50 N
|
||||
P 2 0 1 0 0 -50 0 -100 N
|
||||
@ -385,23 +383,23 @@ P 4 0 1 0 -100 0 -100 -50 100 -50 100 0 N
|
||||
P 4 0 1 0 -100 50 -75 0 -125 0 -100 50 F
|
||||
P 4 0 1 0 50 75 75 50 125 50 150 25 N
|
||||
P 4 0 1 0 100 50 75 0 125 0 100 50 F
|
||||
X A 3 0 -200 100 U 50 50 0 0 I
|
||||
X K 1 -100 200 100 D 50 50 1 1 I
|
||||
X K 2 100 200 100 D 50 50 1 1 I
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# SP0504BAHT
|
||||
# steppers-rescue_SP0504BAHT
|
||||
#
|
||||
DEF SP0504BAHT D 0 40 Y N 1 F N
|
||||
DEF steppers-rescue_SP0504BAHT D 0 40 Y N 1 F N
|
||||
F0 "D" 300 100 50 H V L CNN
|
||||
F1 "SP0504BAHT" 300 25 50 H V L CNN
|
||||
F1 "steppers-rescue_SP0504BAHT" 300 25 50 H V L CNN
|
||||
F2 "TO_SOT_Packages_SMD:SOT-23-5" 300 -50 50 H I L CNN
|
||||
F3 "" 125 125 50 H I C CNN
|
||||
$FPLIST
|
||||
SOT?23*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
X A 2 0 -200 100 U 50 50 0 0 I
|
||||
S -175 100 275 -100 0 1 10 f
|
||||
P 2 0 1 0 -100 100 -100 50 N
|
||||
P 2 0 1 0 0 -50 0 -100 N
|
||||
@ -420,6 +418,7 @@ P 4 0 1 0 50 75 75 50 125 50 150 25 N
|
||||
P 4 0 1 0 100 50 75 0 125 0 100 50 F
|
||||
P 4 0 1 0 150 75 175 50 225 50 250 25 N
|
||||
P 4 0 1 0 200 50 175 0 225 0 200 50 F
|
||||
X A 2 0 -200 100 U 50 50 0 0 I
|
||||
X K 1 -100 200 100 D 50 50 1 1 I
|
||||
X K 3 0 200 100 D 50 50 1 1 I
|
||||
X K 4 100 200 100 D 50 50 1 1 I
|
||||
@ -427,26 +426,17 @@ X K 5 200 200 100 D 50 50 1 1 I
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# STM32F030F4Px
|
||||
# steppers-rescue_STM32F030F4Px
|
||||
#
|
||||
DEF STM32F030F4Px U 0 40 Y Y 1 L N
|
||||
DEF steppers-rescue_STM32F030F4Px U 0 40 Y Y 1 L N
|
||||
F0 "U" -1600 925 50 H V L BNN
|
||||
F1 "STM32F030F4Px" 1600 925 50 H V R BNN
|
||||
F1 "steppers-rescue_STM32F030F4Px" 1600 925 50 H V R BNN
|
||||
F2 "Housings_SSOP:TSSOP-20_4.4x6.5mm_Pitch0.65mm" 1600 875 50 H I R TNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
DRAW
|
||||
S -1600 -800 1600 900 0 1 10 f
|
||||
X BOOT0 1 -1700 400 100 R 50 50 1 1 I
|
||||
X PF0/RCC_OSC_IN 2 -1700 -200 100 R 50 50 1 1 I
|
||||
X PF1/RCC_OSC_OUT 3 -1700 -300 100 R 50 50 1 1 I
|
||||
X NRST 4 -1700 600 100 R 50 50 1 1 I
|
||||
X VDDA 5 0 1000 100 D 50 50 1 1 W
|
||||
X ADC_IN0/RTC_TAMP2/SYS_WKUP1/USART1_CTS/PA0 6 1700 600 100 L 50 50 1 1 B
|
||||
X ADC_IN1/USART1_DE/USART1_RTS/PA1 7 1700 500 100 L 50 50 1 1 B
|
||||
X ADC_IN2/USART1_TX/PA2 8 1700 400 100 L 50 50 1 1 B
|
||||
X ADC_IN3/USART1_RX/PA3 9 1700 300 100 L 50 50 1 1 B
|
||||
X ADC_IN4/SPI1_NSS/TIM14_CH1/USART1_CK/PA4 10 1700 200 100 L 50 50 1 1 B
|
||||
X SYS_SWCLK/USART1_TX/PA14 20 1700 -500 100 L 50 50 1 1 B
|
||||
X ADC_IN5/SPI1_SCK/PA5 11 1700 100 100 L 50 50 1 1 B
|
||||
X ADC_IN6/SPI1_MISO/TIM16_CH1/TIM1_BKIN/TIM3_CH1/PA6 12 1700 0 100 L 50 50 1 1 B
|
||||
X ADC_IN7/SPI1_MOSI/TIM14_CH1/TIM17_CH1/TIM1_CH1N/TIM3_CH2/PA7 13 1700 -100 100 L 50 50 1 1 B
|
||||
@ -456,14 +446,23 @@ X VDD 16 -100 1000 100 D 50 50 1 1 W
|
||||
X I2C1_SCL/TIM1_CH2/USART1_TX/PA9 17 1700 -200 100 L 50 50 1 1 B
|
||||
X I2C1_SDA/TIM17_BKIN/TIM1_CH3/USART1_RX/PA10 18 1700 -300 100 L 50 50 1 1 B
|
||||
X IR_OUT/SYS_SWDIO/PA13 19 1700 -400 100 L 50 50 1 1 B
|
||||
X PF0/RCC_OSC_IN 2 -1700 -200 100 R 50 50 1 1 I
|
||||
X SYS_SWCLK/USART1_TX/PA14 20 1700 -500 100 L 50 50 1 1 B
|
||||
X PF1/RCC_OSC_OUT 3 -1700 -300 100 R 50 50 1 1 I
|
||||
X NRST 4 -1700 600 100 R 50 50 1 1 I
|
||||
X VDDA 5 0 1000 100 D 50 50 1 1 W
|
||||
X ADC_IN0/RTC_TAMP2/SYS_WKUP1/USART1_CTS/PA0 6 1700 600 100 L 50 50 1 1 B
|
||||
X ADC_IN1/USART1_DE/USART1_RTS/PA1 7 1700 500 100 L 50 50 1 1 B
|
||||
X ADC_IN2/USART1_TX/PA2 8 1700 400 100 L 50 50 1 1 B
|
||||
X ADC_IN3/USART1_RX/PA3 9 1700 300 100 L 50 50 1 1 B
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# SW_Push
|
||||
# steppers-rescue_SW_Push
|
||||
#
|
||||
DEF SW_Push SW 0 40 N N 1 F N
|
||||
DEF steppers-rescue_SW_Push SW 0 40 N N 1 F N
|
||||
F0 "SW" 50 100 50 H V L CNN
|
||||
F1 "SW_Push" 0 -60 50 H V C CNN
|
||||
F1 "steppers-rescue_SW_Push" 0 -60 50 H V C CNN
|
||||
F2 "" 0 200 50 H I C CNN
|
||||
F3 "" 0 200 50 H I C CNN
|
||||
DRAW
|
||||
|
||||
@ -1,6 +1,259 @@
|
||||
EESchema-LIBRARY Version 2.3
|
||||
EESchema-LIBRARY Version 2.4
|
||||
#encoding utf-8
|
||||
#
|
||||
# +12V
|
||||
#
|
||||
DEF +12V #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 -150 50 H I C CNN
|
||||
F1 "+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
|
||||
#
|
||||
# +3.3V
|
||||
#
|
||||
DEF +3.3V #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 -150 50 H I C CNN
|
||||
F1 "+3.3V" 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 +3V3 1 0 0 0 U 50 50 1 1 W N
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# C
|
||||
#
|
||||
DEF C C 0 10 N Y 1 F N
|
||||
F0 "C" 25 100 50 H V L CNN
|
||||
F1 "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
|
||||
#
|
||||
# CP
|
||||
#
|
||||
DEF CP C 0 10 N Y 1 F N
|
||||
F0 "C" 25 100 50 H V L CNN
|
||||
F1 "CP" 25 -100 50 H V L CNN
|
||||
F2 "" 38 -150 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
CP_*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -90 20 -90 40 0 1 0 N
|
||||
S -90 20 90 20 0 1 0 N
|
||||
S 90 -20 -90 -40 0 1 0 F
|
||||
S 90 40 -90 40 0 1 0 N
|
||||
S 90 40 90 20 0 1 0 N
|
||||
P 2 0 1 0 -70 90 -30 90 N
|
||||
P 2 0 1 0 -50 110 -50 70 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
|
||||
#
|
||||
# CP_Small
|
||||
#
|
||||
DEF CP_Small C 0 10 N N 1 F N
|
||||
F0 "C" 10 70 50 H V L CNN
|
||||
F1 "CP_Small" 10 -80 50 H V L CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
CP_*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -60 -12 60 -27 0 1 0 F
|
||||
S -60 27 60 12 0 1 0 N
|
||||
P 2 0 1 0 -50 60 -30 60 N
|
||||
P 2 0 1 0 -40 50 -40 70 N
|
||||
X ~ 1 0 100 73 D 50 50 1 1 P
|
||||
X ~ 2 0 -100 73 U 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Conn_01x02
|
||||
#
|
||||
DEF Conn_01x02 J 0 40 Y N 1 F N
|
||||
F0 "J" 0 100 50 H V C CNN
|
||||
F1 "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*:*_??x*mm*
|
||||
Connector*:*1x??x*mm*
|
||||
Pin?Header?Straight?1X*
|
||||
Pin?Header?Angled?1X*
|
||||
Socket?Strip?Straight?1X*
|
||||
Socket?Strip?Angled?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
|
||||
#
|
||||
# Conn_01x03
|
||||
#
|
||||
DEF Conn_01x03 J 0 40 Y N 1 F N
|
||||
F0 "J" 0 200 50 H V C CNN
|
||||
F1 "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*:*_??x*mm*
|
||||
Connector*:*1x??x*mm*
|
||||
Pin?Header?Straight?1X*
|
||||
Pin?Header?Angled?1X*
|
||||
Socket?Strip?Straight?1X*
|
||||
Socket?Strip?Angled?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
|
||||
#
|
||||
# Conn_01x08
|
||||
#
|
||||
DEF Conn_01x08 J 0 40 Y N 1 F N
|
||||
F0 "J" 0 400 50 H V C CNN
|
||||
F1 "Conn_01x08" 0 -500 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
Connector*:*_??x*mm*
|
||||
Connector*:*1x??x*mm*
|
||||
Pin?Header?Straight?1X*
|
||||
Pin?Header?Angled?1X*
|
||||
Socket?Strip?Straight?1X*
|
||||
Socket?Strip?Angled?1X*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -50 -395 0 -405 1 1 6 N
|
||||
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 50 -450 1 1 10 f
|
||||
X Pin_1 1 -200 300 150 R 50 50 1 1 P
|
||||
X Pin_2 2 -200 200 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 0 150 R 50 50 1 1 P
|
||||
X Pin_5 5 -200 -100 150 R 50 50 1 1 P
|
||||
X Pin_6 6 -200 -200 150 R 50 50 1 1 P
|
||||
X Pin_7 7 -200 -300 150 R 50 50 1 1 P
|
||||
X Pin_8 8 -200 -400 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Conn_02x05_Odd_Even
|
||||
#
|
||||
DEF Conn_02x05_Odd_Even J 0 40 Y N 1 F N
|
||||
F0 "J" 50 300 50 H V C CNN
|
||||
F1 "Conn_02x05_Odd_Even" 50 -300 50 H V C CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
Connector*:*2x??x*mm*
|
||||
Connector*:*2x???Pitch*
|
||||
Pin_Header_Straight_2X*
|
||||
Pin_Header_Angled_2X*
|
||||
Socket_Strip_Straight_2X*
|
||||
Socket_Strip_Angled_2X*
|
||||
$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 205 0 195 1 1 6 N
|
||||
S -50 250 150 -250 1 1 10 f
|
||||
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
|
||||
X Pin_1 1 -200 200 150 R 50 50 1 1 P
|
||||
X Pin_10 10 300 -200 150 L 50 50 1 1 P
|
||||
X Pin_2 2 300 200 150 L 50 50 1 1 P
|
||||
X Pin_3 3 -200 100 150 R 50 50 1 1 P
|
||||
X Pin_4 4 300 100 150 L 50 50 1 1 P
|
||||
X Pin_5 5 -200 0 150 R 50 50 1 1 P
|
||||
X Pin_6 6 300 0 150 L 50 50 1 1 P
|
||||
X Pin_7 7 -200 -100 150 R 50 50 1 1 P
|
||||
X Pin_8 8 300 -100 150 L 50 50 1 1 P
|
||||
X Pin_9 9 -200 -200 150 R 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# D_Zener
|
||||
#
|
||||
DEF D_Zener D 0 40 N N 1 F N
|
||||
F0 "D" 0 100 50 H V C CNN
|
||||
F1 "D_Zener" 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-???*
|
||||
*SingleDiode
|
||||
*_Diode_*
|
||||
*SingleDiode*
|
||||
D_*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
P 2 0 1 0 50 0 -50 0 N
|
||||
P 3 0 1 8 -50 -50 -50 50 -30 50 N
|
||||
P 4 0 1 8 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
|
||||
#
|
||||
# GND
|
||||
#
|
||||
DEF GND #PWR 0 0 Y Y 1 F P
|
||||
F0 "#PWR" 0 -250 50 H I C CNN
|
||||
F1 "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
|
||||
#
|
||||
# LM1117-3.3-RESCUE-steppers
|
||||
#
|
||||
DEF LM1117-3.3-RESCUE-steppers U 0 10 Y Y 1 F N
|
||||
@ -23,4 +276,203 @@ X VO 4 300 -100 100 L 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# MAX471
|
||||
#
|
||||
DEF MAX471 U 0 20 Y Y 1 F N
|
||||
F0 "U" -300 350 50 H V L CNN
|
||||
F1 "MAX471" 0 350 50 H V L CNN
|
||||
F2 "" 0 0 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
$FPLIST
|
||||
SOIC*3.9x4.9mm*Pitch1.27mm*
|
||||
DIP*W7.62mm*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -300 300 300 -300 0 1 10 f
|
||||
X SHDN 1 -400 -100 100 R 50 50 1 1 I
|
||||
X RS+ 2 -400 200 100 R 50 50 1 1 I
|
||||
X RS+ 3 -400 100 100 R 50 50 1 1 I
|
||||
X GND 4 0 -400 100 U 50 50 1 1 W
|
||||
X SIGN 5 400 -100 100 L 50 50 1 1 C
|
||||
X RS- 6 400 200 100 L 50 50 1 1 I
|
||||
X RS- 7 400 100 100 L 50 50 1 1 I
|
||||
X OUT 8 400 -200 100 L 50 50 1 1 O
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# PWR_FLAG
|
||||
#
|
||||
DEF PWR_FLAG #FLG 0 0 N N 1 F P
|
||||
F0 "#FLG" 0 75 50 H I C CNN
|
||||
F1 "PWR_FLAG" 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 -40 75 0 100 40 75 0 50 N
|
||||
X pwr 1 0 0 0 U 50 50 0 0 w
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# Q_PMOS_GSD
|
||||
#
|
||||
DEF Q_PMOS_GSD Q 0 0 Y N 1 F N
|
||||
F0 "Q" 200 50 50 H V L CNN
|
||||
F1 "Q_PMOS_GSD" 200 -50 50 H V L CNN
|
||||
F2 "" 200 100 50 H I C CNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
DRAW
|
||||
C 65 0 111 0 1 10 N
|
||||
C 100 -70 11 0 1 0 F
|
||||
C 100 70 11 0 1 0 F
|
||||
P 2 0 1 0 2 0 10 0 N
|
||||
P 2 0 1 0 30 -70 100 -70 N
|
||||
P 2 0 1 10 30 -50 30 -90 N
|
||||
P 2 0 1 0 30 0 100 0 N
|
||||
P 2 0 1 10 30 20 30 -20 N
|
||||
P 2 0 1 0 30 70 100 70 N
|
||||
P 2 0 1 10 30 90 30 50 N
|
||||
P 2 0 1 0 100 -70 100 -100 N
|
||||
P 2 0 1 0 100 -70 100 0 N
|
||||
P 2 0 1 0 100 100 100 70 N
|
||||
P 3 0 1 10 10 75 10 -75 10 -75 N
|
||||
P 4 0 1 0 90 0 50 -15 50 15 90 0 F
|
||||
P 4 0 1 0 100 -70 130 -70 130 70 100 70 N
|
||||
P 4 0 1 0 110 -20 115 -15 145 -15 150 -10 N
|
||||
P 4 0 1 0 130 -15 115 10 145 10 130 -15 N
|
||||
X G 1 -200 0 200 R 50 50 1 1 I
|
||||
X S 2 100 -200 100 U 50 50 1 1 P
|
||||
X D 3 100 200 100 D 50 50 1 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# R
|
||||
#
|
||||
DEF R R 0 0 N Y 1 F N
|
||||
F0 "R" 80 0 50 V V C CNN
|
||||
F1 "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_*
|
||||
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
|
||||
#
|
||||
# SP0502BAHT
|
||||
#
|
||||
DEF SP0502BAHT D 0 40 Y N 1 F N
|
||||
F0 "D" 225 100 50 H V L CNN
|
||||
F1 "SP0502BAHT" 225 25 50 H V L CNN
|
||||
F2 "TO_SOT_Packages_SMD:SOT-23" 225 -50 50 H I L CNN
|
||||
F3 "" 125 125 50 H I C CNN
|
||||
$FPLIST
|
||||
SOT?23*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -175 100 175 -100 0 1 10 f
|
||||
P 2 0 1 0 -100 100 -100 50 N
|
||||
P 2 0 1 0 0 -50 0 -100 N
|
||||
P 2 0 1 0 100 100 100 50 N
|
||||
P 4 0 1 0 -150 75 -125 50 -75 50 -50 25 N
|
||||
P 4 0 1 0 -100 0 -100 -50 100 -50 100 0 N
|
||||
P 4 0 1 0 -100 50 -75 0 -125 0 -100 50 F
|
||||
P 4 0 1 0 50 75 75 50 125 50 150 25 N
|
||||
P 4 0 1 0 100 50 75 0 125 0 100 50 F
|
||||
X A 3 0 -200 100 U 50 50 0 0 I
|
||||
X K 1 -100 200 100 D 50 50 1 1 I
|
||||
X K 2 100 200 100 D 50 50 1 1 I
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# SP0504BAHT
|
||||
#
|
||||
DEF SP0504BAHT D 0 40 Y N 1 F N
|
||||
F0 "D" 300 100 50 H V L CNN
|
||||
F1 "SP0504BAHT" 300 25 50 H V L CNN
|
||||
F2 "TO_SOT_Packages_SMD:SOT-23-5" 300 -50 50 H I L CNN
|
||||
F3 "" 125 125 50 H I C CNN
|
||||
$FPLIST
|
||||
SOT?23*
|
||||
$ENDFPLIST
|
||||
DRAW
|
||||
S -175 100 275 -100 0 1 10 f
|
||||
P 2 0 1 0 -100 100 -100 50 N
|
||||
P 2 0 1 0 0 -50 0 -100 N
|
||||
P 2 0 1 0 0 -50 0 0 N
|
||||
P 2 0 1 0 0 100 0 50 N
|
||||
P 2 0 1 0 25 50 50 25 N
|
||||
P 2 0 1 0 100 100 100 50 N
|
||||
P 2 0 1 0 200 100 200 50 N
|
||||
P 3 0 1 0 25 50 -25 50 -50 75 N
|
||||
P 3 0 1 0 200 0 200 -50 100 -50 N
|
||||
P 4 0 1 0 -150 75 -125 50 -75 50 -50 25 N
|
||||
P 4 0 1 0 -100 0 -100 -50 100 -50 100 0 N
|
||||
P 4 0 1 0 -100 50 -75 0 -125 0 -100 50 F
|
||||
P 4 0 1 0 25 0 -25 0 0 50 25 0 F
|
||||
P 4 0 1 0 50 75 75 50 125 50 150 25 N
|
||||
P 4 0 1 0 100 50 75 0 125 0 100 50 F
|
||||
P 4 0 1 0 150 75 175 50 225 50 250 25 N
|
||||
P 4 0 1 0 200 50 175 0 225 0 200 50 F
|
||||
X A 2 0 -200 100 U 50 50 0 0 I
|
||||
X K 1 -100 200 100 D 50 50 1 1 I
|
||||
X K 3 0 200 100 D 50 50 1 1 I
|
||||
X K 4 100 200 100 D 50 50 1 1 I
|
||||
X K 5 200 200 100 D 50 50 1 1 I
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# STM32F030F4Px
|
||||
#
|
||||
DEF STM32F030F4Px U 0 40 Y Y 1 L N
|
||||
F0 "U" -1600 925 50 H V L BNN
|
||||
F1 "STM32F030F4Px" 1600 925 50 H V R BNN
|
||||
F2 "Housings_SSOP:TSSOP-20_4.4x6.5mm_Pitch0.65mm" 1600 875 50 H I R TNN
|
||||
F3 "" 0 0 50 H I C CNN
|
||||
DRAW
|
||||
S -1600 -800 1600 900 0 1 10 f
|
||||
X BOOT0 1 -1700 400 100 R 50 50 1 1 I
|
||||
X ADC_IN4/SPI1_NSS/TIM14_CH1/USART1_CK/PA4 10 1700 200 100 L 50 50 1 1 B
|
||||
X ADC_IN5/SPI1_SCK/PA5 11 1700 100 100 L 50 50 1 1 B
|
||||
X ADC_IN6/SPI1_MISO/TIM16_CH1/TIM1_BKIN/TIM3_CH1/PA6 12 1700 0 100 L 50 50 1 1 B
|
||||
X ADC_IN7/SPI1_MOSI/TIM14_CH1/TIM17_CH1/TIM1_CH1N/TIM3_CH2/PA7 13 1700 -100 100 L 50 50 1 1 B
|
||||
X PB1/ADC_IN9/TIM14_CH1/TIM1_CH3N/TIM3_CH4 14 -1700 -500 100 R 50 50 1 1 B
|
||||
X VSS 15 0 -900 100 U 50 50 1 1 W
|
||||
X VDD 16 -100 1000 100 D 50 50 1 1 W
|
||||
X I2C1_SCL/TIM1_CH2/USART1_TX/PA9 17 1700 -200 100 L 50 50 1 1 B
|
||||
X I2C1_SDA/TIM17_BKIN/TIM1_CH3/USART1_RX/PA10 18 1700 -300 100 L 50 50 1 1 B
|
||||
X IR_OUT/SYS_SWDIO/PA13 19 1700 -400 100 L 50 50 1 1 B
|
||||
X PF0/RCC_OSC_IN 2 -1700 -200 100 R 50 50 1 1 I
|
||||
X SYS_SWCLK/USART1_TX/PA14 20 1700 -500 100 L 50 50 1 1 B
|
||||
X PF1/RCC_OSC_OUT 3 -1700 -300 100 R 50 50 1 1 I
|
||||
X NRST 4 -1700 600 100 R 50 50 1 1 I
|
||||
X VDDA 5 0 1000 100 D 50 50 1 1 W
|
||||
X ADC_IN0/RTC_TAMP2/SYS_WKUP1/USART1_CTS/PA0 6 1700 600 100 L 50 50 1 1 B
|
||||
X ADC_IN1/USART1_DE/USART1_RTS/PA1 7 1700 500 100 L 50 50 1 1 B
|
||||
X ADC_IN2/USART1_TX/PA2 8 1700 400 100 L 50 50 1 1 B
|
||||
X ADC_IN3/USART1_RX/PA3 9 1700 300 100 L 50 50 1 1 B
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
# SW_Push
|
||||
#
|
||||
DEF SW_Push SW 0 40 N N 1 F N
|
||||
F0 "SW" 50 100 50 H V L CNN
|
||||
F1 "SW_Push" 0 -60 50 H V C CNN
|
||||
F2 "" 0 200 50 H I C CNN
|
||||
F3 "" 0 200 50 H I C CNN
|
||||
DRAW
|
||||
C -80 0 20 0 1 0 N
|
||||
C 80 0 20 0 1 0 N
|
||||
P 2 0 1 0 0 50 0 120 N
|
||||
P 2 0 1 0 100 50 -100 50 N
|
||||
X 1 1 -200 0 100 R 50 50 0 1 P
|
||||
X 2 2 200 0 100 L 50 50 0 1 P
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
(general
|
||||
(links 122)
|
||||
(no_connects 0)
|
||||
(area 37.924999 29.924999 92.075001 84.075001)
|
||||
(area 25.150001 22.8 103.85 90.200001)
|
||||
(thickness 1.6)
|
||||
(drawings 27)
|
||||
(tracks 422)
|
||||
@ -83,8 +83,8 @@
|
||||
(hpglpenoverlay 2)
|
||||
(psnegative false)
|
||||
(psa4output false)
|
||||
(plotreference true)
|
||||
(plotvalue true)
|
||||
(plotreference false)
|
||||
(plotvalue false)
|
||||
(plotinvisibletext false)
|
||||
(padsonsilk false)
|
||||
(subtractmaskfromsilk false)
|
||||
@ -2696,10 +2696,10 @@
|
||||
(gr_text DRV (at 66.5 59.5) (layer F.SilkS)
|
||||
(effects (font (size 3 3) (thickness 0.3)))
|
||||
)
|
||||
(gr_text Boot (at 48 80) (layer F.SilkS)
|
||||
(gr_text Boot (at 45 65) (layer F.SilkS)
|
||||
(effects (font (size 1.5 1.5) (thickness 0.3)))
|
||||
)
|
||||
(gr_text RST (at 44.4135 64.925) (layer F.SilkS)
|
||||
(gr_text RST (at 49 80) (layer F.SilkS)
|
||||
(effects (font (size 1.5 1.5) (thickness 0.3)))
|
||||
)
|
||||
(gr_line (start 92 84) (end 92 82) (angle 90) (layer Edge.Cuts) (width 0.15))
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
update=Вт 12 дек 2017 11:12:17
|
||||
update=Ср 16 янв 2019 08:21:59
|
||||
last_client=kicad
|
||||
[pcbnew]
|
||||
version=1
|
||||
@ -36,20 +36,3 @@ version=1
|
||||
[eeschema]
|
||||
version=1
|
||||
LibDir=
|
||||
[eeschema/libraries]
|
||||
LibName1=steppers-rescue
|
||||
LibName2=conn
|
||||
LibName3=device
|
||||
LibName4=ESD_Protection
|
||||
LibName5=linear
|
||||
LibName6=microcontrollers
|
||||
LibName7=power
|
||||
LibName8=regul
|
||||
LibName9=relays
|
||||
LibName10=sensors
|
||||
LibName11=stm32
|
||||
LibName12=texas
|
||||
LibName13=transistors
|
||||
LibName14=switches
|
||||
LibName15=drv8825
|
||||
LibName16=a3212lh
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user