Re: Arduino -> ModBus -> LCNC
Добавлено: 25 фев 2014, 12:57
а тут у нас мк вообще, цепляемся к Rx , Tx и никаких юсб...(у меги по моему 4 пары)Сергей Саныч писал(а):Вылечилось исключением кабелей USB
Статьи, обзоры, цены на станки и комплектующие.
https://cnc-club.ru/forum/
а тут у нас мк вообще, цепляемся к Rx , Tx и никаких юсб...(у меги по моему 4 пары)Сергей Саныч писал(а):Вылечилось исключением кабелей USB
я конечно дилетант во всех вопросах которые здесь обсуждали,nkp писал(а):вот solo выше говорил о помехах,вырубающих модбас...
возможно ,при непосредственной коммутации через компорт проблема снимется
https://git.kernel.org/cgit/linux/kerne ... /v3.14-rc4Impartial писал(а):Ком порт в стандартной архитектуре IBM не подключен к ДМА. Так что обмен по ДМА невозможен.
а такие стало быть не надо?Impartial писал(а):Мы находимся на форуме любителей и говорить загадками, по моему , не очень хороший вариант.
Подобные утверждения нужно хоть как то обосновать.
Impartial писал(а):Я чем дальше разбираюсь с линуксом, тем больше уважаю микрософт.
А какой процессор в ней используется?nkp писал(а):а как бы разобраться с непереключением входов ардуины своими же выходами?
Похоже, этот вход на самом деле сконфигурирован на выход.solo писал(а):К выходному пину подключаю светодиод и по модбусу передаю на этот пин "0" светодиод тухнет но если при этом дополнительно проводком подтыкаю входной пин ардуино то светодиод начинает светится в пол накала (что естественно не 0) что и отражается на на панели Гледи
Тут нужно уточнить как включен светодиод. Замыкать пины не зная точно как они сконфигурированы может привести к выходу из строя чипа.solo писал(а):К выходному пину подключаю светодиод и по модбусу передаю на этот пин "0" светодиод тухнет но если при этом дополнительно проводком подтыкаю входной пин ардуино то светодиод начинает светится в пол накала (что естественно не 0) что и отражается на на панели Гледи
вот описание платки...Impartial писал(а):И все таки какой проц там стоит?
приведу код скетчей ...Сергей Саныч писал(а):Похоже, этот вход на самом деле сконфигурирован на выход.
Код: Выделить всё
//################ Initialize IO ################# // 0 => Output, 1 => Input, opposite of normal Arduino, but my habit from other platforms, 0 looks like an O and 1 looks like an I
Register[IO_Config_Register] = 0b0000000000000000; // UNO and MEGA PIN 00-15
Register[IO_Config_Register+1] = 0b1111111111111111; // MEGA PIN 16-31
Register[IO_Config_Register+2] = 0b0000000000000000; // MEGA PIN 32-47
Register[IO_Config_Register+3] = 0b0000000000000000; // MEGA PIN 48-64
Register[IO_Config_Register+4] = 0b1111111111111111; // AN Digital PIN A0-A16
//################ Kill IO Register ################# // 0 => Leave, 1 => Kill
Register[Kill_IO_Register] = 0b1111111111111111; // UNO and MEGA PIN 00-15
Register[Kill_IO_Register+1] = 0b1111111111111111; // MEGA PIN 16-31
Register[Kill_IO_Register+2] = 0b1111111111111111; // MEGA PIN 32-47
Register[Kill_IO_Register+3] = 0b1111111111111111; // MEGA PIN 48-64
Register[Kill_IO_Register+4] = 0b1111111111111111; // AN Digital PIN A0-A16
//################ PWM IO Register ################# // 0 => Normal I/O, 1 => PWM I/O
Register[PWMIOMap_Register] = 0b0000111001101000; // UNO and MEGA PWM 01-16
//################ AN IO Register ################# // 0 => Digital, 1=> Analog
Register[ANIOMap_Register] = 0b1111111111111111; // UNO and MEGAКод: Выделить всё
pinMode(Pin,~bitRead(Register[Index+IO_Config_Register],Bit)); // Set Pin Mode to Input or OutputВ проце ATMEGA1280 конфигурация пинов задается регистром DDRA. DDRB....nkp писал(а): Register[IO_Config_Register] = 0b0000000000000000; // UNO and MEGA PIN 00-15
а что же тогда мешает выходу переключить вход?UAVpilot писал(а):Не может оно влиять
Код: Выделить всё
cnc@cnc-desktop:~/linuxcnc-dev$ linuxcnc
LINUXCNC - 2.6.0~pre
Machine configuration directory is '/home/cnc/linuxcnc/configs/ArduinoSlave'
Machine configuration file is 'ArduinoSlave.ini'
Starting LinuxCNC...
io started
halcmd loadusr io started
gs2_vfd: device='/dev/ttyS0', baud=38400, parity='O', bits=8, stopbits=1, address=1
gs2_vfd: ERROR: couldn't open serial device: Input/output error
task pid=24747
emcTaskInit: using builtin interpreter
Unexpected realtime delay: check dmesg for details.
RTAPI: ERROR: Unexpected realtime delay on task 1
This Message will only display once per session.
Run the Latency Test and resolve before continuing.
Xlib.protocol.request.QueryExtension
Xlib.protocol.request.QueryExtension
Shutting down and cleaning up LinuxCNC...
/home/cnc/linuxcnc-dev/bin/gladevcp:292: GtkWarning: GdkWindow 0x4a00003 unexpectedly destroyed
gtk.main()
**** GLADE VCP ERROR: X Protocol Error: 3
Cleanup done
cnc@cnc-desktop:~/linuxcnc-dev$
Нельзя путать понятие регистра и пина. Это не одно и то-же. Регистры принадлежат устройствам внутри проца. Например регистр данных юарт, регистр выходной порта А, входной порта А. А вот пины могут использоваться всеми устройствами проца. Например прием- передача юарта альтернативно используют пины порта и, если включен юарт, эти пины захвачены юартом и вывод в порт уже не изменит состояние пинов.nkp писал(а):а что же тогда мешает выходу переключить вход?
Ошибка здесь. Нет такого устройства.gs2_vfd: device='/dev/ttyS0', baud=38400, parity='O', bits=8, stopbits=1, address=1
Вот его и нужно подставить.У меня ардуина определяется как ttyACM0![]()
наверно да - только под wine у меня не работает(пока))Impartial писал(а):AVR Studio с WinAVR
Скорее всего отсутствие собственно входа - поведение очень похоже на случай, когда входной пин настроен как выход.nkp писал(а):а что же тогда мешает выходу переключить вход?