Описание пинов I2C и конфигурации EDDY
В этой статье объясняются определения пинов I2C датчиков серии FLY-EDDY (EDDY-M / EDDY-F), сравнение пинов для двух способов подключения и шаги по подключению, а также параметры конфигурации, связанные с I2C, необходимые для probe_eddy_current.
Определение пинов I2C
FLY-EDDY основан на микросхеме TI LDC1612 и взаимодействует через интерфейс I2C. Жгут проводов 5P содержит 4 сигнальных провода I2C и 1 провод датчика температуры (TEMP, выход встроенного термистора, используется для компенсации температурного дрейфа в [temperature_probe]):
| Пин | Определение | Описание |
|---|---|---|
| VCC | Положительный полюс питания | Питание 5 В, точное значение зависит от маркировки изделия |
| GND | Земля питания | Общая земля с MCU |
| SDA | Линия данных I2C | Выход с открытым стоком, подключается к пину SDA I2C MCU |
| SCL | Линия тактового сигнала I2C | Выход с открытым стоком, подключается к пину SCL I2C MCU |
| TEMP | Датчик температуры | Выход встроенного термистора, подключается к пину ADC MCU, используется для компенсации температурного дрейфа в [temperature_probe] (необязательно) |
Адрес I2C LDC1612 определяется уровнем на пине ADDR микросхемы, FLY-EDDY по умолчанию установлен на 0x42 (42), в конфигурации Klipper указывается десятичное значение i2c_address: 42.
Два способа подключения
Определения сигналов EDDY-M и EDDY-F полностью идентичны, отличаются только физический способ подключения и совместимые платформы (разъем MX1.25 / FPC-шлейф):
- EDDY-F (FPC-шлейф): специально адаптирован для интерфейса EDDY на платах инструмента SHT36 V3, SB2040 V3, SB2040 PRO V3, провод TEMP автоматически подключается к пину датчика температуры платы инструмента (все
gpio28) - EDDY-M (разъем MX1.25): адаптирован для обычных плат инструмента или материнских плат, требуется подключение и настройка I2C в соответствии с фактическим определением платы (см. разделы о подключении и настройке ниже)
| Сигнал | EDDY-M (разъем MX1.25) | EDDY-F (FPC-шлейф) |
|---|---|---|
| Положительный полюс питания | VCC | VCC |
| Земля питания | GND | GND |
| Линия данных | SDA | SDA |
| Линия тактового сигнала | SCL | SCL |
| Датчик температуры | TEMP | TEMP |
Порядок контактов разъема MX1.25 у EDDY-M (слева направо): SDA, TEMP, SCL, 5V, GND. FPC-шлейф EDDY-F совместим только с интерфейсом EDDY на платах инструмента FLY (SHT36 V3 / SB2040 V3 / SB2040 PRO V3), вставляется напрямую, проверка порядка контактов не требуется.
EDDY-M: подключение через разъем MX1.25
Перед началом подключения или извлечения жгутов проводов полностью выключите принтер и отключите источник питания. Не подключайте и не извлекайте жгуты проводов, не поправляйте порядок контактов интерфейса и не прикасайтесь к разъемам при включенном питании.
- Вставьте жгут MX1.25 (односторонний 5P, 30 см) в разъем EDDY-M, соблюдая порядок контактов (слева направо: SDA, TEMP, SCL, 5V, GND) один к одному
- Другой конец жгута подключите к интерфейсу I2C обычной платы инструмента или материнской платы, сверьте порядок пинов с маркировкой на разъеме
- Провод TEMP подключите к свободному пину ADC на материнской плате; если свободного пина ADC нет, можно не подключать, но функция компенсации температурного дрейфа будет недоступна
- После плотного соединения разъема слегка потяните за жгут, чтобы убедиться, что он не отсоединится
При подключении EDDY-M к обычной плате инструмента или материнской плате, i2c_mcu, i2c_bus необходимо заполнить в соответствии с определением MCU фактической материнской платы; при использовании программного I2C необходимо указать i2c_software_scl_pin / i2c_software_sda_pin. Адрес I2C фиксирован и равен 0x42 (42), частота кварцевого генератора 40 МГц, описание параметров конфигурации см. ниже.
EDDY-F: подключение FPC-шлейфа
Перед началом подключения или извлечения шлейфов полностью выключите принтер и отключите источник питания. Не подключайте и не извлекайте шлейфы, не поправляйте порядок контактов интерфейса и не прикасайтесь к разъемам при включенном питании.
- Вставьте FPC-шлейф (5P, шаг 0,5 мм, однонаправленный) в разъем EDDY-F: откройте защелку, вставьте контактные площадки шлейфа в правильном направлении, прижмите и закройте защелку для фиксации
- Другой конец шлейфа подключите к интерфейсу EDDY на плате инструмента SHT36 V3 / SB2040 V3 / SB2040 PRO V3; FPC-шлейф и интерфейс платы инструмента соответствуют один к одному, вставляется напрямую, проверка порядка контактов не требуется
- Провод TEMP автоматически подключается к пину датчика температуры интерфейса EDDY платы инструмента (все
gpio28), дополнительная проводка не требуется - Убедитесь, что шлейф не перегнут и на нем нет оголенных медных дорожек
Меры предосторожности при подключении
- К сигнальным линиям SDA / SCL не подключайте последовательно или параллельно конденсаторы, катушки индуктивности, диоды и другие компоненты, а также не пропускайте их через фильтры RC / LC или внешние модули преобразования уровня; I2C — сигнал с открытым стоком, дополнительные конденсаторы замедляют фронты сигнала, что может привести к сбоям связи или ошибкам
- Линии связи EDDY следует располагать на расстоянии от проводов двигателей, нагревателей и стола, чтобы избежать помех сигналу I2C
- Провода I2C не должны быть слишком длинными; плохое качество проводов или чрезмерная длина могут привести к нестабильной связи
- Отдавайте предпочтение готовым жгутам; для электрической проверки открытых разъемов или шлейфов обращайтесь в службу поддержки или к специалистам
Параметры конфигурации I2C
Параметры конфигурации, связанные с I2C, в разделе [probe_eddy_current] следующие:
| Параметр конфигурации | Описание | Значение для FLY-EDDY |
|---|---|---|
sensor_type | Модель микросхемы датчика, фиксированное значение ldc1612 | ldc1612 |
i2c_address | Адрес устройства I2C (десятичный) | 42 (0x42) |
i2c_mcu | Имя MCU, к которому подключен датчик | Определяется фактическим подключением |
i2c_bus | Аппаратная шина I2C на MCU | Согласно определению MCU |
i2c_speed | Скорость связи I2C (Гц) | По умолчанию 100000, можно сначала протестировать 400000 |
i2c_software_scl_pin / i2c_software_sda_pin | Пины SCL / SDA для программного I2C | Не требуется при использовании аппаратного I2C |
frequency | Частота внешнего кварцевого генератора LDC1612 (Гц) | 40000000 (40 МГц) |
Пример конфигурации
[probe_eddy_current] поддерживает как аппаратный I2C, так и программный I2C, выберите один из двух, не настраивайте одновременно i2c_bus и i2c_software_scl_pin / i2c_software_sda_pin.
- Аппаратный I2C (рекомендуется)
- Программный I2C
При наличии доступной аппаратной шины I2C на MCU, предпочтительно использовать аппаратный I2C, связь более стабильна:
[probe_eddy_current fly_eddy_probe]
sensor_type: ldc1612
i2c_address: 42
# Адрес I2C FLY-EDDY равен 0x42 (42)
i2c_mcu: SHT36
# Имя MCU, к которому подключен EDDY, укажите фактическое значение
i2c_bus: i2c1e
# Идентификатор шины I2C, согласно определению MCU
i2c_speed: 400000
# Скорость связи I2C (Гц), при нестабильной связи можно снизить
frequency: 40000000
# Частота внешнего кварцевого генератора (Гц), для FLY-EDDY 40 МГц
x_offset: 0
y_offset: 21.42
descend_z: 2.5
При отсутствии доступной аппаратной шины I2C на MCU или при нестабильной связи по аппаратному I2C, можно использовать программный I2C, указав два свободных GPIO в качестве SCL / SDA:
[probe_eddy_current fly_eddy_probe]
sensor_type: ldc1612
i2c_address: 42
# Адрес I2C FLY-EDDY равен 0x42 (42)
i2c_mcu: SHT36
# Имя MCU, к которому подключен EDDY, укажите фактическое значение
i2c_software_scl_pin: SHT36:gpioXX
# Пин SCL для программного I2C, gpioXX — пример заполнителя, укажите фактический свободный GPIO, к которому подключен EDDY
i2c_software_sda_pin: SHT36:gpioXX
# Пин SDA для программного I2C, gpioXX — пример заполнителя, укажите фактический свободный GPIO, к которому подключен EDDY
i2c_speed: 400000
# Скорость связи I2C (Гц), для программного I2C скорость не должна быть слишком высокой, при нестабильной связи можно снизить
frequency: 40000000
# Частота внешнего кварцевого генератора (Гц), для FLY-EDDY 40 МГц
x_offset: 0
y_offset: 21.42
descend_z: 2.5
- Аппаратный I2C и программный I2C выбираются один из двух: для аппаратного I2C настраивается
i2c_mcu+i2c_bus; для программного I2C настраиваетсяi2c_software_scl_pin+i2c_software_sda_pin, не пишитеi2c_busи не настраивайте оба способа одновременно - Пины программного I2C не должны конфликтовать с другими функциями (например, датчики температуры, вентиляторы, концевики и т. д.), выбирайте свободные GPIO на MCU
- При появлении ошибок I2C, таких как
BUS_TIMEOUT,Invalid read data,Eddy: CLKIN frequency too low, сначала отключите питание и проверьте подключение, затем снизьтеi2c_speedдля тестирования frequencyдолжен соответствовать встроенному кварцевому генератору EDDY, для FLY-EDDY это 40 МГц; неправильное значение приведет к аномальным показаниям- При наличии нескольких устройств на одной шине I2C убедитесь, что адреса устройств не конфликтуют