Страница 42 из 71
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 05 ноя 2019, 08:38
Сергей Саныч
MX_Master писал(а):Для проца всегда есть работа.
Для МК в узкоспециализированном контроллере важно только, чтобы он успевал производить вовремя нужные вычисления для "наихудшей" ситуации. Эти ситуации можно и нужно просчитывать "на берегу". Благо, алгоритмы в данном случае не столь сложные.
А полагаться просто на "запас карман не тяготит", я бы не стал.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 05 ноя 2019, 09:27
MX_Master
У меня, к примеру, перерасчёт и правка частоты идёт в прерывании каждые 50мкс

В миллисекундном прерывании ведутся хоз. работы. А в основном цикле крутится работа со всеми цифровыми (Ethernet, SPI, UART, ...). В других проектах нагрузка на проц может быть ещё больше. Поэтому ни о каком майно-запасе, оттягивающем блох в кармане свитера, речи нет
Нашёл самый эффективный способ вывода шагов на китайском контроллере (клон NVEM). Для каждого канала
STEP/DIR используется 1 аппаратный таймер, 1 канал
DMA и небольшой 32-битный массив. Таймер тактирует
DMA канал, который с заданной частотой копирует данные из массива в регистр
GPIOx->BSRR. Массив с данными заполняем один раз при старте
STM32. Шаги считает контроллер
DMA. Одна передача из ячейки массива в
GPIOx->BSRR равна полушагу.
Таким способом можно без проблем выводить целые мегагерцы шагов. При этом, каждый мегагерцовый канал отвлекает процессор максимум на
2%.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 12:33
sidor094
MX_Master писал(а):ппаратный таймер тактирует канал DMA. Подсчёт импульсов ведёт контроллер DMA.
А в чем смысл dma? Только в подсчете импульсов?Нельзя разве прямо подать сигнал с таймера на выход,а другим таимером подсчитывать число импульсов?У меня все происходит в прерывании 300 кгц.Пять каналов,плюс расчет ускорений и обработка перемещений от кнопок.Работал и на 400 ,но замедляется вывод на экран.Процессор stm32f767 .У него 216 мгц тактовая.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 12:45
MX_Master
sidor094 писал(а):А в чем смысл dma? Только в подсчете импульсов?Нельзя разве прямо подать сигнал с таймера на выход,а другим таимером подсчитывать число импульсов?
В китайском
Ethernet контроллере
NVEM каналы
STEP/DIR разведены от балды. На правильные аппаратные выводы таймеров практически ничего не попадает.
DMA нужен для экономии числа таймеров, времени процессора и для подсчёта шагов.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 12:55
sidor094
MX_Master писал(а):На правильные аппаратные выводы таймеров практически ничего не попадает
Тогда понятно.Непонятно почему именно этот контроллер?Какая в нем фишка?Полно ведь других плат.У меня такая.
https://ru.aliexpress.com/item/33006134 ... 33edTSQA7v
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 13:16
hmnijp
очевидно он уже разведён с о всей переферией, разъемами, корпусом и тд, за цену не сильно бОльшую)
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 13:26
sidor094
Судя по тому,что здесь много обсуждалась периферия,законченной платы с периферией все равно нет.А значит надо разводить и подключать.Так ,что и корпус тоже нужен.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 13:28
hmnijp
Так я и говорю, есть готовая плата в виде этого контроллера китайского... Где есть возможность прикрутить свой софт, и не заниматься железом
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 13:33
sidor094
А что там на плате такого особенного,что особо сложно развести,ведь,судя по обсуждению большую часть периферии все равно надо разводить , и размещать на отдельной плате.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 13:36
hmnijp
Очевидно - сложность в самом этом занятии, надо тратить время, организовывать и тд. А тут всё готовое. И какая это периферия нужна кроме него? там вроде уже всё all-in
Ну я конечно не настаиваю что это идеал) Просто по железу - законченный контроллер, подключай и работай так сказать

Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 13:37
MX_Master
sidor094 писал(а):Непонятно почему именно этот контроллер?Какая в нем фишка?Полно ведь других плат.У меня такая.
на твоей плате некуда воткнуть
Ethernet кабель

Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 13:44
sidor094
MX_Master писал(а):на твоей плате некуда воткнуть Ethernet кабель
Ну да,но процессор его поддерживает и ,если все равно разводить периферию,то можно заодно и Ethernet.Кроме того я не говорю ,что надо ставить именно эту плату и контроллер,я её взял изза того,что процессор имеет видеоконтроллер и озу 8 мб .Мне нужен был выход на VGA.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 14:08
hmnijp
sidor094 писал(а):я её взял изза того,что процессор имеет видеоконтроллер и озу 8 мб .Мне нужен был выход на VGA
вообще не расматриваю вариант её как автономный контроллер. Естественно она к ПК должна подключаться
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 14:25
sidor094
hmnijp писал(а):вообще не расматриваю вариант её как автономный контроллер. Естественно она к ПК должна подключатьс
Это дело хозяйское.Никто не заставляет использовать видеоконтроллер.Просто она в 2 раза минимум быстрее F207 .А это позволяет с меньшими извращениями получить большее быстродействие.Если дешевле,то можно взять F407 .У него все равно тактовая 168мгц,а не 120 как у f207.
Там где не требуется VGA и озу я ставлю такие платы.
https://ru.aliexpress.com/item/33004829 ... 33edTSQA7v
Можно наверно найти их сразу с Ethernet.Все ноги процессора доступны.Куда хочешь туда и выводи шаги и остальную периферию.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 14:42
MX_Master
Мне по душе H743 (:
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 14:45
hmnijp
Ну интерфейсную плату всё равно надо к ним делать... а если делать её, то уже и целиком можно развести. по цене платы и компонентов одинаково, по сложности, если скопировать дев-плату, тоже...
Т.е. так и тк придется делать её)
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 14:45
sidor094
Согласен h743 400мгц это впечатляет,но плат мало.А сам я уже напаялся.Теперь стараюсь только мелочевку паять,а не 100-200 ногие c 0.5 шагом.
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 15:38
Serg
MX_Master писал(а):Мне по душе H743 (:
А MP1 не?

Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 16:22
MX_Master
UAVpilot писал(а):А MP1 не?
Эта штука совсем для других дел.
Вощем, с шагогенераторами под
F207 разобрались. Мегагерцы на месте, всё получилось удачно. Смотрю дальше..
Удивительно, но к китайскому контроллеру можно без проблем подключить энкодеры и линейки с
TTL выходом. На противоположной стороне от
Ethernet порта есть гребёнка пинов, куда, обычно, подключается пульт (MPG). Эти пины, если я правильно понял, идут сразу в
F207. Кол-во таких пинов -
10 штук. Частота входных сигналов на них ничем не ограничена. На всех остальных входах стоят
EL3H7 (до 20 КГц).
Аппаратно, энкодеры считать не выйдет, но организовать быстрый подсчёт в прерывании на частоте порядка
200-300 КГц - вполне возможно. Этого, кстати, хватит чтобы переваривать сигналы с микронных линеек на подачах порядка
10000 мм/мин
Если у кого-то на руках есть этот контроллер, прозвоните, пожалуйста, мультиметром вот эти пины на указанные ножки
F207 
Если какие-то 10 пинов будут звонится напрямую, значит, всё вышеуказанное возможно
Re: Контроллер для LinuxCNC (Ethernet + STM32)
Добавлено: 07 ноя 2019, 18:41
Quark
Только проверил, 10 пинов прозваниваются.