Top.Mail.Ru
Использование FT24C32A-ESR-T в Raspberry Pi HAT


Mar 15, 2025

Использование FT24C32A-ESR-T в Raspberry Pi HAT: Полное руководство

Raspberry Pi HAT (Hardware Attached on Top) — это стандарт для модульных плат, которые подключаются к Raspberry Pi и автоматически распознаются системой благодаря встроенной EEPROM (Electrically Erasable Programmable Read-Only Memory). В этой статье мы подробно рассмотрим микросхему FT24C32A-ESR-T, её подключение, настройку и использование в HAT, а также разберём, как она помогает Raspberry Pi определять и конфигурировать подключённые модули.

1. Что такое FT24C32A-ESR-T?

FT24C32A-ESR-T — это 32-килобитная (4 Кбайт) серийная EEPROM с интерфейсом I²C, выпускаемая компанией Fremont Micro Devices. Она идеально подходит для применения в Raspberry Pi HAT благодаря своей компактности, низкому энергопотреблению и совместимости с I²C-шиной Raspberry Pi.

Основные характеристики:

2. Роль EEPROM в Raspberry Pi HAT

EEPROM в HAT выполняет функцию “цифрового паспорта”, позволяя Raspberry Pi автоматически распознавать подключённый модуль и настраивать его без вмешательства пользователя. Основные задачи:

Что хранится в EEPROM?

Данные в EEPROM для HAT строго структурированы согласно спецификации Raspberry Pi Foundation. Обычно используется только первые 128–256 байт из доступных 4096 байт. Структура данных включает:

  1. Заголовок:
    • Сигнатура: 0xE0 0xAA (для распознавания HAT).
    • Версия формата: Например, 0x01.
    • Длина данных: Обычно 128 байт.
  2. Идентификатор:
    • Vendor ID (16 бит): Уникальный код производителя.
    • Product ID (16 бит): Код модели HAT.
    • Product Version (16 бит): Версия платы.
  3. Настройка GPIO:
    • Информация о пинах GPIO, их режиме (вход/выход) и состоянии по умолчанию.
  4. Драйверы:
    • Указания на модули ядра или DTO (например, dtparam=i2c_arm=on).
  5. Чековая сумма:
    • Для проверки целостности данных.

Raspberry Pi считывает эти данные по I²C-шине (адрес 0x50) при загрузке, после чего автоматически настраивает оборудование.


3. Подключение FT24C32A-ESR-T к Raspberry Pi

Для работы FT24C32A в составе HAT необходимо правильно подключить микросхему к Raspberry Pi. Вот типичная схема:

Схема подключения:

Дополнительно:


4. Чтение и запись данных в FT24C32A

FT24C32A взаимодействует с Raspberry Pi через I²C-шину. Для работы с ней можно использовать как командную строку, так и программное обеспечение (например, Python).

Подготовка:

  1. Включите I²C на Raspberry Pi:
    • Выполните sudo raspi-config, выберите “Interface Options” → “I2C” → включите.
    • Установите i2c-tools: sudo apt install i2c-tools.
  2. Проверьте наличие микросхемы:
    i2cdetect -y 1
    

    Вы должны увидеть адрес 0x50.

Чтение данных:

i2cget -y 1 0x50 0x00

Здесь 0x00 — адрес памяти для чтения.

i2cdump -y 1 0x50

Пример на Python:

import smbus

bus = smbus.SMBus(1) # Номер шины I²C
address = 0x50 # Адрес микросхемы

def read_eeprom(address_byte):
    return bus.read_byte_data(address, address_byte)

# Чтение байта по адресу 0x00

data = read_eeprom(0x00)
print(f"Прочитано: {data}")

Запись данных:

Для записи необходимо, чтобы WP был подключён к GND.

Запись одного байта:

i2cset -y 1 0x50 0x00 0xAA

Здесь 0xAA — значение, которое записывается по адресу 0x00.

FT24C32A записывает данные постранично (по 8 байт). После каждой записи требуется задержка ~5 мс.

Пример на Python:

import smbus
import time

bus = smbus.SMBus(1) # Номер шины I²C
address = 0x50 # Адрес микросхемы

def write_eeprom(address_byte, data):
    bus.write_byte_data(address, address_byte, data)
    time.sleep(0.005) # Задержка 5 мс

# Запись байта 0xAA по адресу 0x00
write_eeprom(0x00, 0xAA)
print("Данные записаны")

5. Изменение I²C-адреса

FT24C32A позволяет менять I²C-адрес с помощью пинов A2, A1, A0. Базовый адрес — 0x50 (1010xxx), где последние три бита задаются пинами:

Для HAT стандартный адрес — 0x50 (все пины на GND). Если вам нужно использовать другой адрес (например, для нескольких устройств на одной шине), измените состояние A2, A1, A0, подключив их к VCC (1) или GND (0). После изменения проверьте новый адрес с помощью i2cdetect -y 1.


6. Создание HAT ID с использованием FT24C32A

Чтобы ваш HAT был распознан Raspberry Pi, нужно записать в EEPROM структурированные данные:

Получите Vendor ID: Зарегистрируйтесь у Raspberry Pi Foundation.

Создайте eeprom.bin:

Запишите данные:

i2cset -y 1 0x50 0x00 < eeprom.bin

Заблокируйте запись: Переведите WP в VCC.

Проверьте: Перезагрузите Raspberry Pi и выполните:

vcdbg log msg

7. Заключение

Микросхема FT24C32A-ESR-T — это надёжное и простое решение для реализации HAT ID в проектах с Raspberry Pi. Благодаря её поддержке I²C, совместимости с 3.3V и большому объёму памяти (для задач HAT), она идеально подходит для хранения идентификационных данных. Правильное подключение, настройка адреса и запись данных в EEPROM позволяют создать полностью совместимый HAT, который Raspberry Pi распознает автоматически, обеспечивая удобство и функциональность для пользователей.

Если вы разрабатываете свой HAT, FT24C32A станет отличным выбором для хранения конфигурации. Следуйте спецификации Raspberry Pi, и ваш модуль будет работать как официальный HAT!