Те, кому приходится паять время от времени, хорошо понимают, как влияет удобство и качество инструмента на результат работы. Лично мне нравится оборудование немецкой фирмы Kurtz Ersa, в частности паяльные станции, оснащенные паяльником i-Tool. Однако блок станции (например серии i-CON) представляют собой весьма громоздкое и тяжелое устройство, предназначенное для стационарного использования. А ведь иногда так хочется взять привычный инструмент с собой в отпуск на море в командировку или на выездную работу.
И тогда я озаботился вопросом создания более компактного варианта контроллера для пяльника от Ersa. Что из этого получилось, под катом. Первая (текущая) часть посвящена анализу оригинальной станции. Во второй (будущей) части будет рассмотрена разработка аппаратной части компактного контроллера, а также его программирование.
Коротко о паяльнике i-Tool
i-Tool представляет собой мощный (до 150 Вт) и лёгкий (около 30 грамм) инструмент для монтажа и демонтажа различных элементов. Он представляет собой интелектуальное устройство с микроконтроллером на борту, способное разогреваться до рабочей температуры за кратчайшее время и оптимально отдавать тепло в процессе пайки.
В интернете достаточно примеров контроллеров для обычных аналоговых паяльников. Однако i-Tool, несмотря на свою дороговизну, отличается именно удобством, мощностью и эффективностью. А так как информации по нему в открытом доступе практически нет, ниже приведена информация, полученная в результате вдумчивого и кропотливого анализа.
Аппаратная часть
Объектом анализа выступила оригинальная паяльная станция i-CON2.
Фото основной платы контроллера i-CON2 (кликабельно)
Большую часть контроллера станции занимает понижающий трансформатор, который формирует из входного напряжения 220 VAC два выходных номинала 24 VAC и 10VAC переменного напряжения. Именно транформатор составляет большую часть размера и веса станции. 24 VAC используются для нагревания наконечника паяльника, для регулировки используется симистор (он же триак), управляемый микропроцессором. 10 VAC с помощью выпрямителя и стабилизатора напряжения формируют +5 VDC, которые в свою очередь используется для запитывания логической части схемы (микропроцессора, аналогового тракта, дисплея и пр.).
Основное внимание при анализе уделялось схеме взаимодействия контроллера с инструментом i-Tool. Отмечу, что i-CON2 может работать как с цифровым паяльником i-Tool, так и с аналоговыми паяльниками (Power-Tool, Tech-tool, Micro-Tool, Chip-Tool, X-Tool). Однако в данной публикации рассматривается работа только с i-Tool.
Подсоединение i-Tool к контроллеру осуществляется с помощью стандартного круглого разъёма DIN на восемь контактов, из которых используются только пять.
Распиновка DIN-разъёма i-Tool («папа»)
HE+
иHE−
— это соответственно «плюс» и «минус» нагревательного элемента (heating element) наконечника паяльникаP/IO
— линия, по которой одновременно передаётся напряжение для запитывания цифровой части паяльника (+5 VDC), а также осуществляется полудуплекный обмен данными между контроллером и инструментомGND
— «цифровая» земляPE
— защитное заземление (protective earth)
Самым интересным местом является линия P/IO
, которая, помимо прочего, отвечает за информационный обмен между контроллером и i-Tool.
Схема линии P/IO
Транзистор используется для коммутации питания +5 VDC в период отсутствия информационного обмена. Сам обмен ведется по интерфейсу UART.
Протокол обмена
Всё, что касается информационного наполнения протокола, является плодом reverse engineering'а, следовательно названия полей и содержание сообщений предположительные и могут уточняться в дальнейшем.
Параметры интерфейса UART:
- Скорость: 250000 bps
- Стартовых бит: 1
- Бит данных: 8
- Бит чётности: нет
- Стоповых бит: 1
Контроллер шлёт сообщение запроса, на который паяльник примерно через 120 мкс присылает ответ.
Формат запроса:
Смещение | тип | Пример | Описание |
---|---|---|---|
0 | u16 | 0x2F02 | Преамбула (константа) |
2 | u8 | 0x05 | ID сообщения |
3 | u16 | 0x0010 | Код операции |
5 | u8 | 0x05 | Запрашиваемая длина данных |
6 | u16 | 0x498E | Контрольная сумма |
Формат ответа:
Смещение | Тип | Пример | Описание |
---|---|---|---|
0 | u16 | 0x2F02 | Преамбула (константа) |
2 | u8 | 0x0A | ID сообщения |
3 | u16 | 0x0010 | Код операции запроса (из сообщения запроса) |
5 | u8 | 0x05 | Запрошенная длина данных (из сообщения запроса) |
6 | array | 0x5E 0x0A 0x1C 0x03 0x00 | Данные |
n-2 | u16 | 0x8F42 | Контрольная сумма |
Сообщения
Определение типа инструмента
Этот обмен осуществляется раз в секунду (1 Гц) после старта паяльной станции до получения успешного ответа от инструмента.
Запрос:
- ID сообщения: 0x05
- Код операции: 0x0001
- Запрашиваемая длина данных: 2
Ответ:
- ID сообщения: 0x07
- Данные:
- 0x2802: i-Tool
Пример:
- Запрос (hex):
02 2F ' 05 ' 01 00 ' 02 ' 3A 4D
- Ответ (hex):
02 2F ' 07 ' 01 00 ' 02 ' 02 28 ' C1 A4
Определение версии инструмента
Этот обмен осуществляется один раз во время старта паяльной станции сразу после определения типа инструмента.
Запрос:
- ID сообщения: 0x05
- Код операции: 0x0040
- Запрашиваемая длина данных: 2
Ответ:
- ID сообщения: 0x07
- Данные:
- [0]: (u8) Minor
- [1]: (u8) Major
Пример:
- Запрос (hex):
02 2F ' 05 ' 40 00 ' 02 ' A7 67
- Ответ (hex):
02 2F ' 07 ' 40 00 ' 02 ' 00 01 ' D1 CC
- Minor: 0
- Major: 1
Статус инструмента
Этот обмен осуществляется каждые 20 мс (50 Гц).
Запрос:
- ID сообщения: 0x05
- Код операции: 0x0010
- Запрашиваемая длина данных: 5
Ответ:
- ID сообщения: 0x0A
- Данные:
- [0]: (u16) Температура нагревательного элемента (°C * 10)
- [2]: (u8) Температура внутри корпуса паяльника (°C)
- [3]: (u16) Флаги (см. ниже)
Флаги:
15...2 | 1 | 0 |
---|---|---|
RESERVED | IDLE | OK |
RESERVED
: ЗарезервированоIDLE
: 1 — инструмент не двигаетсяOK
: 1 — Ошибок нет
Пример:
- Запрос (hex):
02 2F ' 05 ' 10 00 ' 05 ' 8E 49
- Ответ (hex):
02 2F ' 0A ' 10 00 ' 05 ' 52 0A ' 1C ' 03 00 ' 69 04
- Температура нагревательного элемента: 0x0A52 = 264.2 °C
- Температура внутри корпуса паяльника: 0x1C = 28°C
- Флаги: 0x0003 = IDLE | OK
Контрольная сумма
Используется 16-битный CRC по алгоритму CRC-CCITT, вариация XModem. Сумма берётся от всего сообщения, включая преамбулу, за исключением самого CRC.
Пример:
CRC-CCITT-XModem(0x02 0x2F 0x05 0x10 0x00 0x05) = 0x498E
Логика работы
После включения паяльной станции контроллер шлёт запрос на определение типа и версии подключённого инструмента.
Если паяльник отзывается, что контроллер начинает периодически запрашивать статус инструмента. Сообщение о статусе содержит в себе показания температуры наконечника паяльника, а также флаг неактивности использования (IDLE
). Значение температуры используется для регулирования мощности, подаваемой на нагревательный элемент. Флаг неактивности позволяет переходить в спящий режим в том случае, если инструмент какое-то время не используется.
Очертания будущего устройства
Так как предполагается делать компактное устройство, нагревательный элемент будет запитываться постоянным напряжением +24 VDC, скважность которого будет регулироваться с помощью ШИМ. Это позволит избавиться от трансформатора. Есть мнение, что синусоида является более щадящим вариантом для нагревательного элемента, однако реализовать ШИМ на базе постоянного напряжения проще.
Управлять процессом нагрева через ПИД-регулятор, обмениваться информацией с паяльником, отображать информацию на дисплее будет простейший микроконтроллер, что-то вроде STM32F103 или ATmega32U4.
Продолжение следует
В настоящее время производятся прикидки по использованию элементной базы, проектирование схемы. Обо всём этом пойдёт речь в следующей части, которая, я надеюсь, появится в обозримом будущем.
Надеюсь, что тема эта интересна не только мне. Замечания, предложения и уточнения приветствуются.
Автор: shamilsan