Страница 42 из 71

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Добавлено: 05 ноя 2019, 08:38
Сергей Саныч
MX_Master писал(а):Для проца всегда есть работа.
(для просмотра содержимого нажмите на ссылку)
Майну, что ли, криптить? Или блох в свитере разводить? :hehehe:
Для МК в узкоспециализированном контроллере важно только, чтобы он успевал производить вовремя нужные вычисления для "наихудшей" ситуации. Эти ситуации можно и нужно просчитывать "на берегу". Благо, алгоритмы в данном случае не столь сложные.
А полагаться просто на "запас карман не тяготит", я бы не стал.

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Добавлено: 05 ноя 2019, 09:27
MX_Master
У меня, к примеру, перерасчёт и правка частоты идёт в прерывании каждые 50мкс :) В миллисекундном прерывании ведутся хоз. работы. А в основном цикле крутится работа со всеми цифровыми (Ethernet, SPI, UART, ...). В других проектах нагрузка на проц может быть ещё больше. Поэтому ни о каком майно-запасе, оттягивающем блох в кармане свитера, речи нет :hehehe:

Нашёл самый эффективный способ вывода шагов на китайском контроллере (клон 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
Ну я конечно не настаиваю что это идеал) Просто по железу - законченный контроллер, подключай и работай так сказать :hehehe:

Re: Контроллер для LinuxCNC (Ethernet + STM32)

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

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 мм/мин :headphones:

Если у кого-то на руках есть этот контроллер, прозвоните, пожалуйста, мультиметром вот эти пины на указанные ножки F207 :beer_blow: Если какие-то 10 пинов будут звонится напрямую, значит, всё вышеуказанное возможно :)
IMG_1051.jpg (1728 просмотров) <a class='original' href='./download/file.php?id=171613&mode=view' target=_blank>Загрузить оригинал (766.8 КБ)</a>

Re: Контроллер для LinuxCNC (Ethernet + STM32)

Добавлено: 07 ноя 2019, 18:41
Quark
Только проверил, 10 пинов прозваниваются.