Dmitry__ писал(а):Потом, а кто сказал что это пищит шим? Надо мерить частоту. Это может пищать PID регулятор с максимальной частотой снятия данных с энкодера.
блин, куда не глянь всюду непойми чё, я незнаю, пойду посмотрю как там угол снимается.
Dmitry__ писал(а):Посчитали что угодно в грязных цифрах, любой разрядности, а потом хренакс и обрезали до красивого числа двоичной маской.
там таблица посчитанных синусов уже забита, в таблице цифры от -511 до 511
- Код: Выделить всё • Развернуть
static const int16_t sineTable[1280] = {
0,3,6,9,13,16,19,22,25,28,31,34,38,41,44,47,
50,53,56,59,63,66,69,72,75,78,81,84,87,90,94,97,
// и так далее до
501,502,502,503,503,504,505,505,505,506,506,507,507,508,508,508,
509,509,509,509,510,510,510,510,510,511,511,511,511,511,511,511,
//и дальше в обратную сторону через ноль до -511
Dmitry__ писал(а):Не очень понял, 90 град. от полного поворота сервы? Таблица в 512 дискрет в таком случае очень мало. Если 90град. от полного одного шага шаговика, то не понимаю где говняшка, т.к. полный шаг = 360/200 град.
Для полного физического шага.
Для 90 градусов синус по табличке в памяти равен 511.
это красивое число 511 зачем-то засунули в странную формулу масштабирования до 3300 мА
(Это максимальный ток для шаговика размера 57, такое ощущение что формулу забыли исправить под 42 шаговик, у меня стоит драйвер A4954 и он в пике 2 ампера может дать)
текущий ток мотора умножают на синус угла, прибавляют 1500 мА и делят на 3300 мА
- Снимок.PNG (9.4 КиБ) Просмотров: 5193
получили цифру 77,87878787 запихали её в uint16_t и отправили в регистр ШИМа
Твоя теория про красивость цифр в битовом плане рушится.
нафига диапазон 0-511 масштабировать в 0-77?
Dmitry__ писал(а):ХЗ! Ты хочешь меня заставить лопатить исходники?
Да, там всего пара строчек, даже я почти разобрался.
Dmitry__ писал(а):Эх возбуждаете меня этой сервой, где ее можно быстро купить? Ненавижу ждать по 30 дней с али...
У нас не видел
Dmitry__ писал(а): Кста, а сколько драйвер шаговика может сьесть кГц ШИМ-а?
в даташите не нашёл
http://elecanisms.olin.edu/handouts/2.3 ... asheet.pdfтам есть некая Toff Constant Off-time = 25 мкс
The current in each of the two output full bridges is regulated
with fixed off-time pulse width modulated (PWM) control circuitry
возможно надо от неё плясать
Добавлено спустя 1 час 52 минуты 24 секунды:Re: MKS SERVO42B шаговик с обратной связью не пропускающий шагифеерически
у китайцев в прошивке вырезан пункт меню установки рабочего тока, оставлен только пункт тока удержания
при этом пункт удержания переименован как будто это рабочий ток
но по факту если на экране выбрать 100 мА то ток 100мА запишется в motorHoldCurrent, а в motorCurrent запишется 200
при этом само собой в PID алгоритме выбирается ток для корректировки согласно этим двум величинам.
ma = (int32_t)((fastAbs(u) * fastAbs((int32_t)(motorParams.currentMa - motorParams.currentHoldMa))) / fullStep) + motorParams.currentHoldMa;
а потмо хренакс и та странная формула с масштабированием...
я понимаю если бы масштабировалась в заданные пределы 100-200 мА, но масштабируется в 1500-3300