|
Есть задача под STM32, Изделие не серийное. Всего сделаем штук 5 |
|
|
|
Dec 26 2014, 00:20
|

Участник

Группа: Участник
Сообщений: 37
Регистрация: 2-03-10
Из: М.О.
Пользователь №: 55 769

|
Здравия желаю. Есть разработанная и собранная плата, но нужен софт. Устройство собрано в пяти экземплярах и не факт, что будет тиражироваться.
Плата на STM32f415
Вообще-то есть и софт под всё это дело, он даже как-то работал, но есть следующие особенности: 1. с тех пор я изменил схему и камень (тоже STM32, но я взял покруче), добавил по аналоговым входам усилители PGA с управлением по SPI, на выходе поставил опторазвязку, управление скоростью PWM вместо DAC. 2. исходник без комментов, недостаточно структурен, на си, программист устал и отвалился. 3. Математики я почти совсем не знаю, но мой друг математик, видевший этот код, говорил о неоптимальности применённого алгоритма синхронного детектирования (выделения первой гармоники). Он готов на математическом языке понимальщику свои соображения изложить. Но в принципе, даже я почти всё понимаю в этом коде, кто там что делает. "Даже" относится к тому, что я не программист, тем более, что почти совсем не знаю си, но на Паскалевиче программки допиливал-модернизировал-фиксил.
Да, всё железо уже есть, включая программатор, отладочные платки для разминки, компьютер, частотный привод, мотор с энкодером и проч.
Теперь Т.з.: Нужно разработать ПО следующего устройства ввода-вывода. Технические параметры: 3 цифровых входа инкрементного углового датчика - опорный(0), квадратурные "А" и "В". Уровни сигналов - TTL. Диапазон частот опорного сигнала 0-500Гц. 4 аналоговых входа с предусилителями с переключаемым по SPI коэфф. усиления. Диапазон частот полезного сигнала 0.5-500Гц. Диапазон напряжений на 4-х аналоговых входах 0.5 - 4.5V(p-p), ноль смещён на 2.5V, но постоянная составляющая не интересует, соответственно на входе - развязывающий кондюк. Интерфейс с ведущим компьютером - MODBUS RS-232
Режимы работы: 0. Режим управления: принимаем из компьютера управляющие посылки: 15 байт данных + один байт - команда включить один из режимов работы. 1. Режим разгона: получаем с порта значение требуемой скорости вращения, ШИМом преобразуем с каким-то коэффициентом в управляющее напряжение, пропорционально требуемой скорости, меряем частоту опорного сигнала (Z), как только её нестабильность станет меньше константы, переходим в режим измерения, если так и не стала стабильной (нестабильность меньше соотв. константы) за заданное константой время разгона - выдать соответствующий код ошибки на порт и продолжать ловить частоту. 2. Режим измерения: непрерывно получаем оцифрованные сигналы с встроенного АЦП (от 1-го до 4-х) и опорные импульсы, синхронно детектируем, т.е. выделяем из всех аналоговых сигналов первую гармонику (sin/cos преобразование) с частотой, равной частоте опорных импльсов, векторно усредняем значения амплитуд и фаз сигналов и N раз в сек. выдаём в порт накопленные за этот период усреднённые значения амплитуд и фаз по каждому из 4-х каналов и опорной частоты. Не всегда нужны все 4 канала АЦП. Скорее всего, экономить время, выбирая к-во каналов АЦП, меньшее, чем 4, и не нужно - надо смотреть. В начале измерения по каждому каналу подбираем коэфф. усиления для оптимального попадания во входной диапазон АЦП и записываем их в соответствующий программируемый усилитель по SPI Надо мерить ОДНОВРЕМЕННО все каналы и загонять данные через DMA. Вроде, скоростей должно хватить. АЦП 12 разрядов, 3. Режим измерения угла: получаем импульсы: опорный(0) и 2 квадратурных с двух каналов энкодера, непрерывно считаем их и выдаём в порт угловое значение в единицах, равных учетверённому количеству импульсов на оборот энкодера. Выдача в порт по запросу. энкодер 600 имп. на оборот (или меньше) При этом энкодер в некоторых случаях соединен с ротором, угловое положение которого интересует, при помощи ременной передачи, соответственно от случая к случая количество импульсов на оборот разное. Но индексный импульс (Z) приходит с метки на измеряемом роторе, соответственно мы за один поворот ротора всегда получаем строго один и только один импульс. И при повороте ротора вручную или на выбеге можем посчитать число импульсов А и В на оборот. 4. Режим вывода - по сигналу с порта выводим биты на шесть ног (оптопары). 5. режим позиционирования - два выхода (оптопары) - команда "вперёд" и "назад", один выход - через ШИМ и оптопару делает управляющее постоянное напряжение на привод (скорость). На порт компьютер посылает два байта - значение требуемого угла позиционирования, контроллер, играя означенными тремя оптопарами, заставляет привод спозиционировать ротор на нужный угол.
Пишите на fesadd@gmail.com
В случае успешного опыта сотрудничество обещает быть продлённым...
UPD 2 ALL: Кактегорически не приветствуется обсуждение избранной мной стратегии решения МОЕЙ задачи и схемное реализации оной.
Кактегорически приветствуются и рукопожимаются конкретные предложения услуг по созданию/допилу ПО.
С пониманием и поддержкой отношусь к вопросам/уточнениям, высказанным с целью лучшего понимания поставленной задачи.
Спасибо за в нимание.
Сообщение отредактировал Fester Addams - Dec 26 2014, 01:17
--------------------
Лиссажу. Дорого. - тел. 322-223-32.
|
|
|
|
|
 |
Ответов
|
Dec 26 2014, 12:23
|

Участник

Группа: Участник
Сообщений: 37
Регистрация: 2-03-10
Из: М.О.
Пользователь №: 55 769

|
Цитата(AlexandrY @ Dec 26 2014, 14:35)  А можно не синхронно детектировать? А усреднять не векторно? Можно, но мне нужно то, что я написал. Цитата(Shivers @ Dec 26 2014, 14:49)  Если это тот камень, о котором я думаю, т.е. CortexM4 разработки якобы НИИЕТ, а на самом деле - ЦР, то почему бы сразу не обратиться к авторам тестового софта под него, а именно, к Вектору? Они профи, с этим камнем год почти возились. Сразу предупреждаю, если этот тот самый камень, то намучаетесь с ним .. одно DMA там чего стоит армовское ... Это камень от ST.com Названные Вами буквы мне неведомы.
Сообщение отредактировал Fester Addams - Dec 26 2014, 12:25
--------------------
Лиссажу. Дорого. - тел. 322-223-32.
|
|
|
|
|
Dec 26 2014, 12:46
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(Fester Addams @ Dec 26 2014, 14:23)  Можно, но мне нужно то, что я написал. Так вам нужна первая или главная гармоника? Или нужна траектория n-ой гармоники во времени? Какая точность оценки нужна? В курсе что фильтр постоянной составляющей вносит фазовые искажения? Какой динамический диапазон сигналов? Задача может быть вообще нетривиальной при достаточно высокой частоте измерений.
|
|
|
|
Сообщений в этой теме
Fester Addams Есть задача под STM32 Dec 26 2014, 00:20 In_an_im_di Ременная передача и ацп 12 разрядов... кто это всё... Dec 26 2014, 00:49 Fester Addams Цитата(In_an_im_di @ Dec 26 2014, 04:49) ... Dec 26 2014, 01:06  In_an_im_di Цитата(Fester Addams @ Dec 26 2014, 04:06... Dec 26 2014, 01:37   Fester Addams Цитата(In_an_im_di @ Dec 26 2014, 05:13) ... Dec 26 2014, 01:38    In_an_im_di Цитата(Fester Addams @ Dec 26 2014, 04:38... Dec 26 2014, 01:42     Fester Addams Цитата(In_an_im_di @ Dec 26 2014, 05:42) ... Dec 26 2014, 01:43      In_an_im_di Цитата(Fester Addams @ Dec 26 2014, 04:43... Dec 26 2014, 01:44 Dog Pawlowa Цитата(In_an_im_di @ Dec 26 2014, 04:44) ... Dec 26 2014, 03:24 =pcb= Цитата(Dog Pawlowa @ Dec 26 2014, 08:24) ... Dec 26 2014, 11:24  Fester Addams Цитата(=pcb= @ Dec 26 2014, 15:24) ЗЫ: ес... Dec 26 2014, 12:54   AlexandrY Цитата(Fester Addams @ Dec 26 2014, 14:54... Dec 26 2014, 13:09   =pcb= Цитата(Fester Addams @ Dec 26 2014, 17:54... Dec 26 2014, 14:10   Fester Addams Цитата(AlexandrY @ Dec 26 2014, 16:46) Та... Dec 26 2014, 13:27    AlexandrY Цитата(Fester Addams @ Dec 26 2014, 15:27... Dec 26 2014, 13:44     Fester Addams Цитата(AlexandrY @ Dec 26 2014, 17:44) А ... Dec 26 2014, 13:57      AlexandrY Цитата(Fester Addams @ Dec 26 2014, 15:57... Dec 26 2014, 18:09       Fester Addams Цитата(AlexandrY @ Dec 26 2014, 22:09) Сл... Dec 26 2014, 19:39      Timmy Цитата(Fester Addams @ Dec 26 2014, 16:57... Dec 26 2014, 19:41       Fester Addams Цитата(Timmy @ Dec 26 2014, 23:41) По 4 и... Dec 26 2014, 20:50 Shivers Если это тот камень, о котором я думаю, т.е. Corte... Dec 26 2014, 10:49 sidy Цитата(Shivers @ Dec 26 2014, 13:49) Если... Dec 27 2014, 13:46 OlegH Цитата(Fester Addams @ Dec 26 2014, 02:20... Dec 26 2014, 11:34 Aner Да не, ... задачка из области робототехники, не пр... Dec 26 2014, 18:44 Aner Если вся математика уже отработана и понятна то чт... Dec 26 2014, 20:27 Fester Addams Вменяемый (в отличие от подавляющего большинства ф... Jan 13 2015, 07:43
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|