АМИС30543 | Понимание таблицы данных Регистр состояния

Я читал лист данных драйвера шагового двигателя AMIS-30543 и не мог понять, как объединить результат регистра состояния положения микрошага MSP[8:0]. Я знаю, что это 9-битное значение. Помогите мне понять, как получить значение.

В техпаспорте это дано как

dataSheet

в SR3 -> MSP[8:2], а в SR4 -> МСП[6:0]. Как я могу получить 9 бит из них.


В библиотеке я видел, что (sr3<<2) | (ср4 и 3) . Я не понимаю, почему они делают и & здесь.

Объясните, пожалуйста. также Если не было библиотеки, как я могу узнать, как объединить эти регистры из таблицы данных.

Ссылка на таблицу данных

, 👍1


1 ответ


Лучший ответ:

3

Большая часть данных дублируется между регистрами. Оба регистра содержат MSP[6:2].

Если MSP содержит 111001001, регистры (игнорируя бит MSB «PAR») будут выглядеть следующим образом:

SR3: 1110010
SR4: 1001001

Если мы выстроим их в ряд, получится следующее:

SR3: 1110010
SR4    1001001

Теперь вы можете увидеть перекрытие.

Итак, взяв SR3 и сдвинув его влево на две позиции (sr3 << 2), вы получите:

SR3:   1110010
<<2: 111001000

Использование двух младших битов SR4 с помощью & 3 дает вам:

SR4:   1001001
& 3:   0000001

Затем объедините два результата с помощью операции ИЛИ:

SR3<<2: 111001000
SR4 &3: 000000001
-----------------
MSP   : 111001001
,

Как я могу это понять из даташита вроде от sr3 и sr4, @Lawliet

8:2 и 6:0 относятся к диапазону битов, хранящихся в этом регистре. Немного необычно иметь такое перекрытие., @Majenko

Так можно ли делать как :: '(sr3 << 2 | sr4)', @Lawliet

Нет, из-за бита PAR в старшем бите, который испортит SR3., @Majenko

Уфф, ладно. Теперь я понимаю ., @Lawliet

Опять же, еще одно сомнение, что это наложение битов вы узнали на практике и опыте или где-то прочитали?, @Lawliet

Практика и опыт. Я впервые вижу такие перекрывающиеся биты, но фрагмент кода, который вы показали, и 8: 2 и 6: 0 в таблице данных позволили мне сделать вывод об этом. Это действительно не совсем ясно в таблице данных, поэтому неудивительно, что вы боролись с этим., @Majenko