Kflop PWM to Analog через JP6 и китайскую платку.

KFlop, KStep, KAnalog, KMotion...
Аватара пользователя
BlackBeard
Кандидат
Сообщения: 43
Зарегистрирован: 20 ноя 2015, 18:16
Репутация: 15
Настоящее имя: Константин
Контактная информация:

Kflop PWM to Analog через JP6 и китайскую платку.

Сообщение BlackBeard »

Однако здравствуйте!

Имею следующую задачу:

1. Имеется kFlop. Разъёмы JP7 и JP6 разведены самодельной оптоплаткой. JP7 - полностью отдан на инпуты, JP6 - на аутпуты. Всё через оптроны PC817.
2. Имеется частотник Jaskawa J1000, который управляет шпинделем. Настроен на режим работы 0-10V и прекрасно эту функцию выполняет с помощью потенциометра.
3. Имеется китайская платка PWM>Analog: Ali

Требуется: выдавить из kFlop'а PWM сигнал для управления частотником+шпинделем посредством конвертации его в аналоговый сигнал 0+10.

Как это всё физически подключить - вопросов нет. Но вот как софтово заставить kFlop выдавать нужный сигнал (предположим с 6го пина io27 разъёма JP6) - черт его пойми.

Прошерстил мануал по kFlop'у, есть примеры кода, который якобы работает для JP7. Но как адаптировать его под JP6 - указаний нет. Как нет и задокументированных значений переменных и аргументов в этом коде применяемых.
Прошерстил папку с примерами C Programs. Нашел файлы PWM1KHz и иже с ними (В некоторых темах Том советует изучить содержимое). Но в этих файлах как-то тоже пояснения не блещут.
Прошерстил инет по подобным запросом. Находит темы с примерами того же кода, что есть в мануале или примерах "C Programs", но опять же - без пояснений.
FPGA(KAN_TRIG_REG)=4; // Mux PWM0 to JP7 Pin5
Какое-то 4, почему 4? Каким образом это 4 влияет именно на JP7 Pin5? Пойди вкури...

И почему это вдруг JP7 научился выдавать ШИМ, если для этих задач приспособлен именно JP6?

Перебрал кучу различных комбинаций из всех этих инструкций - результата ноль. Наугад менял аргументы и тд и тп.

Как выход - упомянутый выше JP6 работает корректно. Проверял многократно тыкая галочки в панели IO.


Направьте на путь истинный. Чет неожидал я такой подставы от kFlop'а в самый последний момент)))
Последний раз редактировалось BlackBeard 29 сен 2019, 19:18, всего редактировалось 1 раз.
Duhas
Мастер
Сообщения: 1949
Зарегистрирован: 10 окт 2015, 23:25
Репутация: 284
Настоящее имя: Андрей
Откуда: Красноярск
Контактная информация:

Re: Kflop PWM to Analog через JP6 и китайскую платку.

Сообщение Duhas »

ШИМ то как задавать планируется ? как выход одного из каналов? под рукой софта нет чтобы поглядеть на данный момент

ПС ссылка вроде на Али, а ведет на динамоушн
Аватара пользователя
BlackBeard
Кандидат
Сообщения: 43
Зарегистрирован: 20 ноя 2015, 18:16
Репутация: 15
Настоящее имя: Константин
Контактная информация:

Re: Kflop PWM to Analog через JP6 и китайскую платку.

Сообщение BlackBeard »

Осознав горесть ситуации - призвал на помощь матёрого электроника. :bender:

Вооружившись благим матом и моей моральной поддержкой, электроник перелопатил всё, что есть в документации, примерах кода и просторах интернета.

Не остались без внимания все создатели платы, ПО и документации к ней.

Таким образом на свет появился набор файлов выполняющих поставленную задачу.

Инструкция по применению:
1. Содержимое архива вывалить в отдельно взятую папку
2. Во вкладке ToolSetup сменить пути c-file M3, M5 и S на соответствующие файлы из архива.
3. Профит.

Функционал реализован полностью. Работает ON CW, OFF, ползунок регулировки оборотов, равносильно как и команды M3, M5 и S.

Максимальные обороты выставлены на 24000. Менять в последней строке файла MySpindleDefs.h:

Код: Выделить всё

#define	MAX_RPM	24000
ШИМ подаётся на 6 пин JP6 (он же IO27). Чтоб изменить пин, нужно разобраться в значениях:

OnCWJog.c:

Код: Выделить всё

SetBitDirection(27,1);          // define bit as an output
FPGA(IO_PWMS_PRESCALE) = 64;    // divide clock by 65 (~1KHz)
FPGA(IO_PWMS+2) = 0;            // Set Speed PWM 0 (init)
FPGA(IO_PWMS+3) = 1;            // Enable
OffJog.c:

Код: Выделить всё

FPGA(IO_PWMS+2) = 0 ;            // PWM=0
FPGA(IO_PWMS+3) = 0;            // Disable PWM
SpindleJog.c:

Код: Выделить всё

FPGA(IO_PWMS+2) = pwm ;            // square wave
Ну что там и к чему - я пока и сам хз. Возможно позже дополню инструкцию.
Вложения
kFlop_Spindle_PWM_JP6_IO27.rar
(2.42 КБ) 529 скачиваний
Последний раз редактировалось BlackBeard 30 сен 2019, 05:19, всего редактировалось 2 раза.
vershininv
Опытный
Сообщения: 172
Зарегистрирован: 21 ноя 2017, 14:40
Репутация: 39
Настоящее имя: Василий
Контактная информация:

Re: Kflop PWM to Analog через JP6 и китайскую платку.

Сообщение vershininv »

Почти настроил шарманку. Три серводвигателя управляемых через SnapAmp. Дошел до управления шпинделем и встал. Предполагается конверсия ШИМ в 0-10В через платку от пурелоджика. Собственно вопрос - как настроить вывод ШИМ на GPIO SnapAmp'а??? Это вообще возможно или ремап ШИМ только на определенные пины возможен, которые на SnapAmp не выведены?
Аватара пользователя
BlackBeard
Кандидат
Сообщения: 43
Зарегистрирован: 20 ноя 2015, 18:16
Репутация: 15
Настоящее имя: Константин
Контактная информация:

Re: Kflop PWM to Analog через JP6 и китайскую платку.

Сообщение BlackBeard »

vershininv писал(а):Предполагается конверсия ШИМ в 0-10В через платку
А что мешает выдать шим на GP6 как у меня? SnapAmp ведь не задействует этот разъём?!
vershininv
Опытный
Сообщения: 172
Зарегистрирован: 21 ноя 2017, 14:40
Репутация: 39
Настоящее имя: Василий
Контактная информация:

Re: Kflop PWM to Analog через JP6 и китайскую платку.

Сообщение vershininv »

Придётся ещё одну плату делать для коммутации. Хотел одной обойтись...
Ответить

Вернуться в «KFlop»