можно же допустим на малых скоростях получать угол или режим bldc использовать, а на больших энкодер.
во первых переключение микры между режимами не мгновенное,
во вторых режим dldc это тупо эмуляция трёх датчиков холла, при этом этот режим работает только для моторов с одной или двумя парами полюсов.
в третьих мы ушли от темы, а именно
1) читаю по SSI режим Daisy Chain Mode , все платы разведены под него
2) этот режим работает нормально, каждые 500мкс я получаю абсолютные положения всех четырёх датчиков, с этим никаких проблем нет
3) суть проблемы в том что после какого то момента один датчик будучи в том же режиме начинает выдавать по SSI в поле data (D9:D0) не то что должен выдавать, и лечится это только сбросом питания у датчика.
вопрос который меня мучает, почему датчик так себя ведёт.
в документации сказано что SSI это отдельный интерфейс и он всегда выдаёт только абсолютные значения
The AS5040 senses the orientation of the magnetic field and calculates a 10-bit binary code. This code can be accessed via a Synchronous Serial Interface (SSI). In addition, an absolute angular representation is given by a Pulse Width Modulated signal at pin 12 (PWM). Besides the absolute angular position information the device simultaneously provides incremental output signals.
The absolute angular position is sampled at a rate of 10kHz (0.1ms). This allows reading of all 1024 positions per 360 degrees within 0.1 seconds = 9.76Hz (~10Hz) without skipping any position. Multiplying 10Hz by 60, results the corresponding maximum rotational speed of 600 rpm. Readout of every second angular position allows for rotational speeds of up to 1200rpm.
А далее такой опус
Consequently, increasing the rotational speed reduces the number of absolute angular positions per revolution (see Figure 46). Regardless of the rotational speed or the number of positions to be read out, the absolute angular value is always given at the highest resolution of 10 bit.
The incremental outputs are not affected by rotational speed restrictions due to the implemented interpolator. The incremental output signals may be used for high-speed applications with rotational speeds of up to 30,000 rpm without missing pulses.
И далее есть такой раздел
High Speed Operation Sampling Rate The AS5040 samples the angular value at a rate of 10.42k samples per second. Consequently, the incremental, as well as the absolute outputs are updated each 96μs. At a stationary position of the magnet, this sampling rate creates no additional error.
Absolute Mode with Serial Communication
With the given sampling rate of 10.4 kHz, the number of samples (n) per turn for a magnet rotating at high speed can be calculated by:
...
In practice, there is no upper speed limit. The only restriction is that there will be fewer samples per revolution as the speed increases.
In absolute mode with serial communication, 610 rpm is the maximum speed, where 1024 readings per revolution can be obtained.
т.е. теоретически можно считывать все 1024 позиции, без пропусков, вплоть до 10 об/сек (полагаю в режиме SSI 1Mhz)
(если включить режим считывания каждого второго положения? или просто допустимы пропуски? вот это непонятно) то скорость вращения может быть и 20об./сек и более???
ну а главное при чтении по SSI нет никакого другого протокола, на выходе всегда должно быть одно и тоже а именно последнее оцифрованное положение, а у меня , после сбоя, там что то другое появляется, если рукой врещать то на выходе значения 0 .. 104 .. 0 за один оборот,
хз что это, при этом в битах 6-1 никаких ошибок и бит чётности совпадает
Добавлено спустя 24 минуты 3 секунды:Что интересно, судя по схеме регистр OTP влияет на SSI, но из описания регистра это не видно.
скорее всего имеются ввиду вот эти параметры
CCW:0 = Clockwise operation
Z9 to Z0: 00 = No programmed zero position
всё что связано с разрешением 8-10бит относится к инкрементальному выходу