Главная » Микроконтроллеры
Призовой фонд
на май 2017 г.
1. Тестер компонентов MG328
Паяльник
2. Осциллограф DSO138
Паяльник
3. Регулируемый паяльник 60 Вт
Паяльник
4. 100 руб.
От пользователей

Подключение и запуск мотора от FDD (JCM5044)

Дело было вечером, делать было нечего. Разбирал коробки с разной всячиной, и нашёл древний флопик.

Выкинуть вроде жалко, а применить негде. Решил просто немного поиграться, а именно - запустить мотор от него. Чтобы достать мотор, откручиваем 4 винта

Добрался до мотора

Мотор бесколлекторный, с датчиками Холла. В качестве драйвера использована микросхема JCM5044, даташит на которую я так и не нашёл.

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

Подпаиваю провода. Для работы мотора используются следующие выводы шлейфа:

  • GND (общий)
  • V (питание)
  • SP
  • CLK
  • I/D
  • MON

Остальные выводы идут на концевики, они меня не интересуют.

Цепляю логический анализатор (обзор Saleae Logic).

Если вставить дискету (или замкнуть концевик), мотор крутится в течении 1...2 секунд. Этого более чем достаточно, чтобы посмотреть на сигналы управления. Приступим.

Здесь видно, что на выводе "SP" постоянно висит 0. Для чего нужен этот вывод - пока не понятно, разберусь позже. На выводе "I/D" присутствуют импульсы - один импульс на один оборот вала. Если мотор крутится - на выводе "MON" висит 0, если не крутится - висит 1. Также когда мотор крутится, на выводе "CLK" присутствует тактовый сигнал частотой 1 МГц.

Теперь я удерживаю вал движка рукой, чтобы он не смог крутиться, и опять подаю питание. Замыкаю концевик, смотрю что показывает логический анализатор.

На выводе "I/D" теперь нет импульсов, т.к. вал заблокирован. Вывод "MON" периодически "дёргался", пытаясь растолкать мотор. Синхронно с работой вывода "MON" появлялась генерация тактовых импульсов на ножке "CLK".

Для начала экспериментов информации достаточно. Отпаиваю шлейф, подключаю мотор к макетной плате с микроконтроллером ATmega32.

Так как контроль оборотов вала мне не нужен, вывод "I/D" не подключаю. Получается 2 провода питания и 3 провода управления. Подключение ATmega32 <-> Motor JCM5044:

  • GND <-> G
  • VCC <-> V
  • PB1 <-> SP
  • PB2 <-> MON
  • PB3 <-> CLK

Итак, для работы мотора нужно подать тактовый сингал 1 МГц на вывод CLK, а также прижать на землю вывод "MON". Затем если мотор начнёт крутиться, попробовать поменять состояние вывода "SP". По-быстрому пишу код (его можно скачать в конце статьи), прошиваю микроконтроллер, и вуаля - мотор крутится. Теперь пробую поиграться с выводом "SP". Оказалось, что этот вывод отвечает за скорость вращения вала. Если SP=0, тогда вал вращается со скоростью 300 об/мин. Если SP=1, тогда на валу 360 об/мин. Оно и логично - "SP" означает "Speed". Далее я попробовал разгонять/замедлять мотор, подавая на него различные тактовые частоты. С повышением скорости проблем не было, мотор крутился быстро. А вот с пониженными оборотами не всё так гладко - вращение было не совсем плавным, с небольшими рывками.

Подведу итог. Чтобы включить электронику мотора, нужно установить MON=0, при этом ротор начинает притягиваться катушками, но не вращается. Для того, чтобы мотор начал вращение, нужно подать тактовый сигнал на вывод "CLK". Скорость вращения зависит от подаваемой тактовой частоты, а также немного меняется при помощи вывода "SP".

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 1 чел.

Комментарии (9) | Я собрал (0) | Подписаться

0
Юрий #
А как раскрутить движок ЖМД? У меня завалялось пару десятков разных. Хочу пристроить их куда нибудь.
Ответить
0

[Автор]
Zlodey #
Возможно скоро сделаю подобную статью про драйвера двигателей HDD. Суть заключается в том, чтобы подсмотреть сигналы управления на родной плате.
Ответить
0
MaxPower #
А можно для ардуино код переделать?
Ответить
0

[Автор]
Zlodey #
К сожалению, ардуино не занимаюсь
Ответить
0
ender #
Напрямую подключайся к катушкам двигателя и используй библиотеку для шаговых двигателей
Ответить
-1
sergeus #
Этот движок запускается подачей на плату одного логического уровня. Зачем подцепил атмегу туда?
Ответить
0

[Автор]
Zlodey #
Конкретно этому движку ещё нужна тактовая частота 1 МГЦ на выводе CLK. Внимательно читай статью.
Отредактирован 13.08.2015 08:05
Ответить
0
zeconir #
Можно поинтересоваться, до какой макс. скорости (об/м) удалось его "разогнать"?
Ответить
0

[Автор]
Zlodey #
ATMEGA была запущена на тактовой частоте 8 МГц от внутреннего RC-генератора. Для генерации тактов на мотор использовался таймер в режиме CTC, максимальная частота которого равна F_CPU/2. Поэтому максимальная частота, на которой пробовал равна 4 МГц. 360 оборотов * 4 = 1440 оборотов.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Discovery V8 МиниПК MK809V - 4 ядра, Android 4.4.2
вверх