Re: HAL2Arduino
Добавлено: 25 дек 2013, 20:29
прерывания - это тот-же программный генератор шагов. На таймерах, например которые есть в STM32 можно сделать полностью аппаратный генератор - проц будет только сообщать таймерам сколько импульсов и с какой частотой сгенерить.solo писал(а):отказаться от таймеров прерывания
А как его заставить остановиться после конкретного количества импульсов?solo писал(а):и поставить на вывод степ внешний таймер , ну хотя бы одновибратор
Аппаратно сделать можно но для таких целей есть только 1 вывод, поэтому эта затея точно не вариант.UAVpilot писал(а): solo писал(а):
и поставить на вывод степ внешний таймер , ну хотя бы одновибратор
А как его заставить остановиться после конкретного количества импульсов?
По первому пункту, почему тебя это удивляет? т.е. Много или мало?solo писал(а): 1 На базе ардуино собирают 3Д принтер , Ардуина там может генерировать , по информации с форумов" степ импульсы с частотой до 30 000 , но даже меня эта цифра немного удивляет.
2 Стандартно в 3 Д принтера частота степ на мах скоростях 3-5 кГц , при работе с 4 ШД и управление по СОМ- USB
Я в своих прошлых экспериментах пока более менее стабильную работу ШД получил с частотой около 500 Гц , если увеличиваю скорость перемещения ШД то ардуина начинает как то хаотично и неравномерно генерировать импульсы степ.
Может ВЫ мне объясните возможно ли в связке LCNC ардуина получить более менее приличный результат управления 3 ШД и генерации шагов с частотой до 5-6 кГц
посмотри - как называется порт ,через который коннектится ардуина...aftaev писал(а):Вот что выдало
Ардуинку прошил и подключил?aftaev писал(а):Вот что выдало
Я прошу прощение но я в программировании не то что чайник а САМОВАР по этому в этих фразах я почти не бум-бумselenur писал(а):о первых большинство работает на 16 Мгц, казалось бы частота не маленькая, но для генерирования степа например с частотой 10кГц у микроконтроллера есть время на выполнение 1600 ассемблерных инструкций, при частоте в 20кГц уже лишь 800. В промежутке между импульсами необходимо выполнить кучу кода, который может требовать для всех вычислений больше времени, и тогда все просто поплывет..... (а при 30кГц всего 533 инструкции)
Во вторых можно конечно сделать небольшой оверклокинг до 20 Мгц (замена кварца), на атмеге 168, и 16А проверенно работает нормально
В третьих, можно попытаться оптимизировать код, путем выброса неиспользуемого функционала.
Я когда пробовал в ардуине на прямую управлять регистрами памяти я здесь писал об этом http://cnc-club.ru/forum/viewtopic.php? ... 242#p71213UAVpilot писал(а):прерывания - это тот-же программный генератор шагов. На таймерах, например которые есть в STM32 можно сделать полностью аппаратный генератор - проц будет только сообщать таймерам сколько импульсов и с какой частотой сгенерить.solo писал(а):отказаться от таймеров прерывания
А как его заставить остановиться после конкретного количества импульсов?solo писал(а):и поставить на вывод степ внешний таймер , ну хотя бы одновибратор
Подскажите а шо с этой штукой можно поступать так как с Arduino Uno http://www.xakep.ru/post/60504/PKM писал(а):Если есть Beaglebone за 50дол, на котором идет нормальный LinuxCNC с обработчиком G-кода и планировщиком траектории на порядок лучше, чем у принтеров на ардуине.
Да прошил, без ошибок каких либо.Nick писал(а):Ардуинку прошил и подключил?
halrun на ответ вбиваю loadusr -Wn Hal2Arduino /home/cnc/HAL2Arduino.pyNick писал(а):А откуда у тебя tk грузится? ты просто сделал
halrun
loadrt HAL2Arduino?
А чего тогда все не используют под LinuxCNC ведь цена неприлично низкая куча выводов для подключения разных устройств, не то что на обычной материнские ЛПТ и.... все , в чем может быть подвох. Мне аж захотелось такую штучку купить, правда пока рассматривая "картинки " не совсем понял как туда чего пихать (программы)Nick писал(а):На нее саму можно поставить LinuxCNC.
http://www.youtube.com/results?search_q ... uxCNC&sm=3
у меня не стоит Arduina IDE на Линухе, скейтч заливал в Windows потом тащил на комп с Линухом. Други варианты есть как глянуть?nkp писал(а):посмотри - как называется порт ,через который коннектится ардуина...
В консоли выполни lsusb -tv и покажи что вывелоaftaev писал(а):у меня не стоит Arduina IDE на Линухе, скейтч заливал в Windows потом тащил на комп с Линухом. Други варианты есть как глянуть?nkp писал(а):посмотри - как называется порт ,через который коннектится ардуина...
Код: Выделить всё
nkp@nkp-desktop:~$ lsusb -tv
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 2: Dev 3, If 0, Class=comm., Driver=cdc_acm, 12M
|__ Port 2: Dev 3, If 1, Class=data, Driver=cdc_acm, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
|__ Port 1: Dev 2, If 0, Class=HID, Driver=usbhid, 1.5M
|__ Port 1: Dev 2, If 1, Class=HID, Driver=usbhid, 1.5M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/8p, 480M