Fujitsu (961725), страница 2
Текст из файла (страница 2)
Селекторный регистр используется для того, чтобы установить нужный квадрант магнитного потока. Например для двухполюсного двухобмоточного ШД существует четыре различные позиции, в которых может находиться ротор. В зависимости от квадранта ротора программируются регистры сравнения и селекторные регистры, что обеспечивает необходимый поворот ротора.
В предлагаемом примере используется только один из четырех каналов управления ШД, именно к нему должен быть подключен двигатель. Четыре возможные квадранта могут быть запрограммированы путем установки соответствующих значений для битов P1 и M1 в селекторных регистрах PWS1 и PWS2. Программирование этих, взаимно исключаемых квадрантов показано в табл.4 и табл.5.
Таблица 4
PWS10_M1 | PWS10_P1 | PWS20_M1 | PWS20_P1 | Обмотка 2 | Обмотка 1 |
0 | 1 | 0 | 1 | + | + |
0 | 1 | 1 | 0 | - | + |
1 | 0 | 1 | 0 | - | - |
1 | 0 | 0 | 1 | + | - |
Четыре квадранта и соответствующие им значения регистров представлены в табл.5.
Таблица 5
Крадрант | Двоичное значение (№,бит 1,4,9,12) | Шестнадцатеричное значение |
PWS_QI | 0001 0000 0001 0000 | 0x1010 |
PWS_QII | 0000 0010 0001 0000 | 0x0210 |
PWS_QIII | 0000 0010 0000 0010 | 0x0202 |
PWS_QIV | 0001 0000 0000 0010 | 0x1002 |
Значение регистров сравнения определяет ширину импульса ШИМ. Для достижения сглаженности движения из 256 возможных значений этих регистров выделены 32 значения (по одному на каждый шаг), представленные следующей таблицей.
unsigned char LookupTable [32] = {
0,13,25,37,50,62,74,86,98,109,120,131,142,152,162,1
71,180,189,197,205,212,219,225,231,236,240,244,247,
250,252,254,255
};
Следовательно, псевдо-код, программирующий сравнение и выбор для первого квадранта может выглядеть так.
TableIndex = PositionDesired & 0x1F; // 2 to the power 5 = 32 steps per quadrant
CompareRegister_1 = LookupTable [ TableIn-dex];
CompareRegister_2 = LookupTable [ 32 - TableIndex];
SelectRegister = PWS_QI; // 1'st Quadrant means coil_1 is Pos and coil_2 is Pos
Максимальная скорость движения определяется исходя из физических возможностей шагового двигателя. При этом скорость регулируется путем изменения размера шага. Более крупные шаги соответствуют большей скорости движения. Необходимо аккуратно устанавливать значение регистров сравнения так, чтобы обеспечить снижение скорости по мере приближения к желаемой позиции.
Следовательно, смещение, на которое перемешается ротор при движении из текущей позиции к желаемой, определяет скорость. Для достижения желаемой скорости можно использовать следующее условие.
If( (RequiredPosition_0-CurrentPosition_0) >
CurrentOffset_0) {
// We can speed up the motor
CurrentOffset ++;
}
.
.
.
CurrentPosition_0 = CurrentPosition_0 + CurrentOff-set;
.
.
ProgramCompareAndSelectRegisters ();
Подобным образом, уменьшая переменную "CurrentOffset" можно последовательно понижать значение скорости при достижении требуемой позиции или достижении максимальной скорости. Движение ротора может осуществляться в двух направлениях: по часовой стрелке и против. При смене направления движения необходимо обеспечить торможение и разгон ротора. Алгоритм работы программы показан на рис.11.
Рис.11. Алгоритм работы программы управления ШД.
Попробовать работу с шаговым двигателем можно используя конструктор FUJITSU, продаваемый в фирме КТЦ-МК (www.cec-mc.ru). Установленный в конструкторе контроллер MB90F598G позволяет подключить к нему до четырех шаговых двигателей. Конструктор содержит минимальные элементы, необходимые для работы контроллера, интерфейсные элементы, позволяющие подключиться к PC, а также макетное поле. Программа может быть подготовлена в интегрированной среде разработки SOFTUNE V3.0 и загружена в контроллер по последовательному порту непосредственно из персонального компьютера при помощи утилиты загрузки Flash Memory Writer. Все программное обеспечение является свободно распространяемым и может быть приобретено в фирме КТЦ-МК.
Для полноценной работы вам необходимы следующие компоненты:
1. Конструктор FUJITSU или фирменный конструктор FLASH-CAN2 Board, Part No. FLASHCAN2-100MP-M06
2. MB90F598 Микроконтроллер (входит в состав коструктора)
3. Шаговый двигатель.
4. Соединительные провода.
5. Кабель RS-232.
6. Компьютер с установленной SOFTUNE V3.0
7. Прикладная программа.
8. Программа загрузки контроллера.
9. Источник питания (5В, 0.5А).
Схема подсоединения одного шагового двигателя к контроллеру (конструктору), приведена на рис.12.
Рис.12. Соединение ШД и контроллера MB90F598.
Литература
1. MB90F598 Data Sheet.
2. MB90F598 Hardware Manual.
Разработчик
фирмы "КТЦ-МК"
Киселёв Д.В.
design@cec-mc.ru