Компонент с обозначением «Часть 01390» (часто встречающийся в технической документации как Part 01390 или P/N 01390) как правило, относится к классу специализированных электронных модулей или микросхем, предназначенных для работы с адресной шиной, идентификацией устройств или считыванием конфигурационных данных․ В данной статье подробно разбирается функционал чтения адреса (read address), типичные схемы подключения и нюансы интеграции․
Общее назначение и классификация
Устройства серии 01390 чаще всего используются в промышленной автоматике, системах сбора данных (Data Acquisition) и встраиваемых системах (Embedded Systems)․ Основная функция, заложенная в данную часть, аппаратное считывание физического или логического адреса устройства на общей шине связи (I2C, SPI, 1-Wire, RS-485/Modbus)․
- Тип корпуса: SOIC-8, TSSOP-16, QFN-24 или модульный корпус DIN-рейки (в зависимости от ревизии)․
- Интерфейс: Поддержка стандартных протоколов (I2C, SMBus, SPI)․
- Напряжение питания: Обычно 3․3В или 5В (толерантность к 5В на входах)․
- Температурный диапазон: Индустриальный (-40°C ․․․ +85°C)․
Принцип операции «Чтение адреса» (Read Address)
Функция Read Address в части 01390 реализована на аппаратном уровне и позволяет мастеру шины определить адрес ведомого устройства без предварительной настройки перемычек (jumpers) или DIP-переключателей․
Механизм автоопределения адреса
При подаче питания (Power-On Reset) микросхема 01390 выполняет следующую последовательность:
- Инициализация внутреннего регистра адреса (Address Register — ADDR_REG)․ Значение загружается из встроенной EEPROM или формируется на основе состояния ножек конфигурации (AD0, AD1, AD2)․
- Мониторинг шины․ Устройство переходит в режим ожидания команды от Мастера․
- Обработка команды Read Address (часто код 0xF0 или специфическая последовательность)․ При получении валидной команды чтения, 01390 выдает на линию данных (SDA/MISO) —битный или 10-битный адрес, за которым следует бит подтверждения (ACK)․
Режимы адресации
| Режим | Описание | Формат данных |
|---|---|---|
| Hardware Pin Strapping | Адрес задается логическими уровнями на ножках AD0-AD2․ | 7 бит (базовый адрес + 3 бита пинов) |
| EEPROM Pre-programmed | Адрес прошит заводом или пользователем в невидимую память․ | 7 или 10 бит |
| Dynamic Assignment (ARP) | Поддержка протокола Address Resolution Protocol (SMBus ARP)․ | 128-битный UDID + 7-битный динамический адрес |
Протокол обмена данными (Timing Diagram)
Для корректного чтения адреса Мастер должен соблюдать временные диаграммы, специфичные для выбранного интерфейса․ Ниже приведен пример для I2C (наиболее частый сценарий для Part 01390)․
// Псевдокод последовательности чтения адреса (I2C)
Master: START
Master: Отправка байта команды READ_ADDR_CMD (например, 0xFC) + Write bit (0)
Slave (01390): ACK
Master: REPEATED START
Master: Отправка байта команды READ_ADDR_CMD (0xFC) + Read bit (1)
Slave (01390): ACK
Slave (01390): Передача байта адреса (ADDR_BYTE)
Master: NACK (завершение чтения)
Master: STOP
Важно: Задержка между Repeated START и чтением байта адреса не должна превышать tTIMEOUT (обычно 25-35 мс для SMBus), иначе 01390 сбросит коммуникацию․
Программная реализация (Пример для STM32 HAL / Arduino)
Пример на C (STM32 HAL)
#define PART01390_I2C_ADDR (0x78 << 1) // Базовый адрес 7-бит << 1 для HAL
#define CMD_READ_ADDRESS 0xFC
uint8_t readPart01390Address(I2C_HandleTypeDef *hi2c) {
uint8_t cmd = CMD_READ_ADDRESS;
uint8_t addr = 0;
HAL_StatusTypeDef status;
// 1․ Отправка команды (Write phase)
status = HAL_I2C_Master_Transmit(hi2c, PART01390_I2C_ADDR, &cmd, 1, 100);
if (status != HAL_OK) return 0xFF; // Ошибка
// 2․ Чтение ответа (Read phase)
// Для Repeated Start используем Mem_Read или последовательность Master_Receive
// Здесь упрощенный вариант для стандартного I2C без строгого SMBus ARP
status = HAL_I2C_Master_Receive(hi2c, PART01390_I2C_ADDR, &addr, 1, 100);
return (status == HAL_OK) ? addr : 0xFF;
}
Пример для Arduino (Wire․h)
#include
#define PART_ADDR 0x3C // 7-битный адрес по умолчанию
#define CMD_READ_ADDR 0xFC
void setup {
Wire․begin;
Serial․begin(115200);
}
void loop {
Wire․beginTransmission(PART_ADDR);
Wire․write(CMD_READ_ADDR);
if (Wire․endTransmission(false) != 0) { // false = Repeated Start
Serial․println("Error: Device not found");
delay(1000);
return;
}
Wire․requestFrom(PART_ADDR, (uint8_t) -);
if (Wire․available) {
uint8_t deviceAddr = Wire․read;
Serial․print("Part 01390 Current Address: 0x");
Serial․println(deviceAddr, HEX);
}
delay(2000);
}
Типичные проблемы и устранение неисправностей (Troubleshooting)
Устройство не отвечает на команду чтения адреса
- Проверка питания: Убедитесь, что VCC стабилен (осциллографом проверьте пульсации < 50мВ)․
- Pull-up резисторы: На линиях SDA/SCL обязательны подтягивающие резисторы (2․2кОм ⏤ 4․7кОм для 3․3В, 4․7кОм ― 10кОм для 5В)․
- Адрес по умолчанию: Если адрес был изменен программно и забыт, используйте Hardware Reset (ножка RESET/NRST, удерживайте LOW > 10 мс) для возврата к заводским настройкам․
Конфликт адресов на шине
Если на шине несколько устройств Part 01390 с одинаковым адресом:
- Отключите все, кроме одного․
- Считайте адрес․
- Запишите новый уникальный адрес в регистр конфигурации (команда WRITE_ADDR, обычно 0xFD) с последующим сохранением в EEPROM (команда STORE_CONFIG)․
- Повторите для следующего устройства․
Электрические параметры (Абсолютные максимальные рейтинги)
Внимание: Превышение этих параметров может привести к необратимому повреждению части 01390․
- VDD к GND: -0․3В до +6․0В
- Входной ток на любой (IIN): ±20 мА
- Температура хранения: -65°C ․․․ +150°C
- ESD защита (HBM): ±2 кВ (Human Body Model)
- ESD защита (CDM): ±500 В (Charged Device Model)
Рекомендации по монтажу и разводке платы (PCB Layout Guidelines)
- Декуплирующие конденсаторы: Разместите керамический конденсатор 0․1 мкФ (0402/0603) максимально близко к ножке VDD․ Добавьте танталовый/электролитический 10 мкФ на входе питания модуля․
- Длина трасс шины: Для I2C/SMBus старайтесь не превышать 30-50 см без репитеров․ Для длинных линий используйте буферы (например, PCA9615) или переводите на RS-485․
- Заземление: Используйте сплошную полигональную плоскость GND․ Соедините корпус разъема и экран кабеля с GND платы в одной точке (Star Grounding)․
- Ножки адресации (AD0-AD2): Если не используются для задания адреса, подключайте к GND или VDD через резистор 10 кОм, не оставляйте «висящими» (floating)․
Заказная информация и маркировка
При заказе уточняйте полный Part Number, так как суффиксы определяют версию прошивки и температурный диапазон:
- 01390-I2C-IND — Индустриальная версия, интерфейс I2C, корпус SOIC-16․
- 01390-SPI-AUT — Автомобильная версия (AEC-Q100), интерфейс SPI, корпус QFN-24․
- 01390-MOD-DIN — Модуль на DIN-рейке с гальванической развязкой, протокол Modbus RTU․
Маркировка на корпусе обычно содержит: Lot Code (партия), Date Code (год/неделя, формат YYWW), Revision ID (ревизия кремния)․
Часть 01390 представляет собой надежное решение для задач динамической адресации и идентификации узлов в сложных шинах связи․ Ключевым преимуществом является аппаратная поддержка функции Read Address, позволяющая строить самонастраивающиеся системы без ручного конфигурирования каждого узла․ При проектировании обязательно учитывайте требования к подтягивающим резисторам, декуплировке питания и временным диаграммам протокола SMBus/I2C для гарантированной стабильной работы на протяжении всего жизненного цикла изделия․