Шлюз UART-to-I2C/SPI/1W RH-0004

(4 отзыва клиентов)

720,00 

Шлюз, позволяющий через интерфейс UART общаться в режиме мастера с устройствами, имеющими интерфейсы I2C, SPI или 1-Wire (однопроводная шина). Может использоваться как программатор микросхем памяти и контроллеров AVR.

Любые вопросы по поводу покупки или работы шлюза можно задать на форуме (в отдельной теме или в личке пользователю rhf-admin), а так же через telegram-бота @radiohlam_ru_bot.

2 в наличии

Описание

Данный шлюз позволяет через интерфейс UART общаться в режиме мастера с устройствами, имеющими интерфейсы I2C, SPI или 1-Wire (однопроводная шина).
Его можно использовать для подключения устройств с интерфейсами I2C/SPI/1W к микроконтроллерам (через UART) или к персональным компьютерам (через преобразователи интерфейсов USB-to-UART, RS232-to-UART и тому подобные).
Может использоваться для программирования микросхем памяти с интерфейсами I2C, SPI и 1-wire, а также микроконтроллеров AVR в режиме низковольтного последовательного программирования через интерфейс SPI.
Полный список вариантов применения шлюза совместно с ПК можно найти в конце страницы.

Технические характеристики.

  • — шлюз собран на базе RISC-микроконтроллера ATTiny2313
  • — конфигурирование и управление шлюзом осуществляется через UART, при помощи специальных команд
  • — настройки UART шлюза: скорость 115200 бит/сек, 8 бит данных, без проверки чётности, 2 стоп-бита
  • — интерфейс I2C позволяет организовать побайтную передачу данных в режиме single master.
  • — для интерфейса SPI реализованы все 4 режима работы, при этом имеется возможность передавать данные пакетами от 1 до 64 бит.
  • — для интерфейса 1W доступна побитная и побайтная передача данных.
  • — помимо интерфейсов I2C/SPI/1W шлюз имеет 3 линии GPIO, каждую из которых можно настроить на вход или на выход независимо друг от друга.
  • — для питания подключаемых микросхем можно использовать напряжение +5 или +3.3 Вольта (выбирается джампером JP1 на плате). Самому шлюзу для работы нужно два напряжения +5В и +3.3В (подаются через разъём XT1).
  • — имеется возможность сохранения выбранной конфигурации в EPROM и её автоматическая загрузка при последующих включениях.
  • — вход приёмника uart (RxD) имеет преобразователь уровней и на него можно подавать сигналы как с 3.3, так и 5 вольтовым уровнем.

1. Назначение разъёмов, выводов и джамперов

плата шлюза UART-to-I2C/SPI/1W RH-0004

XT1 — Выводы для подключения по UART и питания шлюза (разъём BH-14):

  1. +3.3 — вывод для подачи на шлюз напряжения питания +3.3 Вольта
  2. +5 — вывод для подачи на шлюз напряжения питания +5 Вольт
  3. RxD — вывод приёмника UART шлюза. На этот вывод нужно подавать сигнал передатчика (TxD) подключаемого к шлюзу устройства
  4. TxD — вывод передатчика UART шлюза. На этот вывод нужно подавать сигнал приёмника (RxD) подключаемого к шлюзу устройства
  5. COM — общий провод (сюда подключается минус источника питания и общий провод интерфейса uart подключаемого к шлюзу преобразователя)

XT2 — разъём для внутрисхемного программирования контроллера шлюза.

XT3 — выводы интерфейсов I2C, SPI, 1W, GPIO (разъём WF-09R):

  1. Supply — на эту линию может выводиться выбранное джампером JP1 напряжение питания (для этого нужно замкнуть джампер JP4)
  2. SCLK/Clock — вывод тактирования для интерфейсов I2C и SPI
  3. MISO — вход данных от «слэйва» для интерфейса SPI
  4. MOSI/1W/DATA — в зависимости от установленной конфигурации может работать как выход данных от «мастера» для интерфейса SPI или как двунаправленная линия данных для интерфейсов 1W (однопроводная шина) и I2C
  5. SS/CS — вывод Slave Select / Chip Select для интерфейсов I2C и SPI
  6. COM — общий провод
  7. I/O-0 — вывод первого канала GPIO
  8. I/O-1 — вывод второго канала GPIO
  9. I/O-2 — вывод третьего канала GPIO

Джамперы:

  1. JP1 — для выбора контакта разъёма BH-14 (XT1), с которого будет браться напряжение питания на контроллер и на подключаемую микросхему. В одном положении оно берётся с контакта +3.3, в другом положении — с контакта +5.
  2. JP2 — позволяет организовать подтяжку линии MOSI/1W/DATA к напряжению питания резистором 4,7 кОм (для этого джампер должен быть замкнут).
  3. JP3 — позволяет организовать подтяжку линии SCLK/Clock к напряжению питания резистором 4,7 кОм (для этого джампер должен быть замкнут).
  4. JP4 — если замкнут — вывод Supply разъёма XT3 подключается к выбранному джампером JP1 напряжению питания, если разомкнут — вывод просто висит в воздухе и питание на него не подаётся.

2. Управление шлюзом

Управление шлюзом осуществляется посредством передачи ему по UART специальных команд, в результате выполнения которых шлюз изменяет какие-либо свои служебные регистры и производит определённые действия. В служебных регистрах хранится конфигурация шлюза, его отдельных интерфейсов, коды ошибок и тому подобное.

Всего существует 5 групп служебных регистров:

  • регистры общего назначения: COMMON_CONFIG, ERROR
  • регистры I2C: FLAGS_I2C, BTS_I2C, RDB_I2C
  • регистры SPI: CONFIG_SPI, PAKET_SIZE, FLAGS_SPI, REG0REG7
  • регистры 1W: FLAGS_1W, BTS_1W, RDB_1W
  • регистры GPIO: DDR, PORT, PIN

Первые 4 группы регистров реализованы на регистрах общего назначения контроллера, а регистры GPIO — это соответствующие реальные регистры специального назначения, управляющие портами ввода/вывода.

Аналогично, для управления шлюзом существуют 5 групп команд:

  • команды общего назначения: ResetDevice, InterfaceChoiceI2C, InterfaceChoiceSPI, InterfaceChoice1W, ReadError, SaveToEPROM, ReadFromEPROM, EnableReports, DisableReports, EnableAutoLoad, DisableAutoLoad, ReadCommonConfig, ReadVersion
  • команды GPIO: IO0ConfigOutput, IO0ConfigInput, IO0Output0, IO0Output1, IO1ConfigOutput, IO1ConfigInput, IO1Output0, IO1Output1, IO2ConfigOutput, IO2ConfigInput, IO2Output0, IO2Output1, TestIO0, TestIO1, TestIO2, SetIOG
  • команды I2C: SendStart_I2C, SendStop_I2C, SendByte_I2C, ReadByteA_I2C, ReadByte_I2C, ClearCS_I2C, SetCS_I2C, ReadCS_I2C
  • команды SPI: LoadConfig_SPI, ReadConfig_SPI, LoadPaketSize_SPI, ReadPaketSize_SPI, LoadPaket_SPI, ReadPaket_SPI, StartChange_SPI, ClearSS_SPI, SetSS_SPI, ReadSS_SPI
  • команды 1W: SendReset_1W, SendByte_1W, ReadByte_1W, SendBit_1W, ReadBit_1W

Как видите, регистров и команд достаточно много, поэтому подробно все они описаны в отдельном документе: подробное описание регистров, команд и кодов ошибок шлюза RH-0004, здесь же я добавлю про них лишь ещё пару слов.

Первые две группы команд доступны всегда, команды и регистры управления интерфейсами I2C/SPI/1W доступны только если шлюз сконфигурирован для работы с этими интерфейсами (в противном случае при получении такой команды будет сгенерирован код ошибки «неизвестная команда»). Это связано с тем, что некоторые регистры интерфейсов I2C/SPI/1W физически используют одни и те же регистры контроллера и, естественно, не могут использоваться для трёх целей одновременно.

Большинство команд после выполнения возвращают специальный код (код ошибки или 0 — признак успешного выполнения), который записывается в специальный регистр и может быть отправлен по uart. Если в процессе передачи данных по UART произошла ошибка, то принятый байт игнорируется.

Чтобы облегчить разработку ПО для шлюза, была написана специальная библиотека, реализующая все описанные выше функции. Описание этой библиотеки, её исходники и скомпилированный dll-файл находятся вот здесь.

3. Программы для работы со шлюзом и варианты его применения

Общие возможности Программа, демонстрирующая общие возможности шлюза. Реализованы все существующие команды, но отсутствует ориентация на конкретное устройство или задачу. Этой программой удобно пользоваться для отладки при разработке ПО для работы со шлюзом.
Скачать исходники
USB-программатор I2C EEPROM Использование шлюза в качестве USB-программатора I2C EEPROM (X24C01, AT24C01A, AT24C02, AT24C04, AT24C08A, AT24C16A, SDA2516, SDA2526, SDA2546, SDA2586, SDA3526, 24E16/25E16, AT24C32, AT24C64, AT24C128, AT24C256, AT24C512, PCF8582-C2, PCF8594-C2, PCF8598-C2)
USB-программатор SPI EEPROM Использование шлюза в качестве USB-программатора SPI EEPROM (93C06, 93C46, 93C57, 93C56, 93C66, 93C76, 93C86, NM93C13, NM93C14, AT59C11, AT59C22, AT59C13, AK6420A, AK6440A, AK6480A, 25010, 25020, 25040, 25080, 25160, 25320, 25640)
USB-программатор SPI-flash Использование шлюза в качестве USB-программатора SPI-flash Winbond (25Q08xx, 25Q16xx, 25Q32xx, 25Q64xx)
USB-программатор чипов 1-Wire Использование шлюза в качестве USB-программатора микросхем 1-Wire (DS1425, DS1427, DS18B20, DS18S20, DS1822, DS1920, DS1961S, DS1963L, DS1971, DS19821, DS1991, DS1992, DS1993, DS1994, DS1995, DS1996, DS2404, DS2405, DS2415, DS2417, DS2423, DS2430A, DS2431, DS2432, DS24B33, DS25021, DS25051, DS2890, DS28E07, DS28EC20, MAX318262) и ключей 1-Wire (RW1990, AN19901, TM20041).

  • 1 — для полнофункциональной работы с такими чипами требуется дополнительная схема
  • 2 — для таких чипов запись и преобразование работают только с внешним питанием (с паразитным — нет)
USB-программатор контроллеров AVR, а также их российских аналогов от НИИЭТ
(через SPI)
Использование шлюза в качестве USB-программатора для последовательного программирования микроконтроллеров AVR (AT90S1200, AT90S2313, AT90S2323, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, AT90CAN32, AT90CAN64, AT90CAN128, ATtiny12, ATtiny13, ATtiny15, ATtiny22, ATtiny2313, ATtiny25, ATtiny26, ATtiny261, ATtiny45, ATtiny461, ATtiny85, ATtiny861, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega168, ATmega168PA, ATmega169, ATmega2560, ATmega2561, ATmega32, ATmega323, ATmega324, ATmega48, ATmega48PA, ATmega603, ATmega64, ATmega640, ATmega644, ATmega8, ATmega8515, ATmega8535, ATmega88, ATmega88PA, 1887ВЕ4У, 1887ВЕ7Т).
Ключи-таблетки Программа для чтения ключей-таблеток с интерфейсом 1-Wire. При подключении к порту она автоматически конфигурирует шлюз на работу с однопроводной шиной и далее, после нажатия на кнопку «Read 1W Key», периодически посылает команду сброса и опрашивает ключ.
USB-термометр на DS18B20 Использование шлюза для создания USB-термометра с передачей данных по сети на базе датчика температуры DS18B20
АСУТП аквариума Использование шлюза для построения системы управления аквариумом

Этот товар также можно купить в нашем магазине на Aliexpress:
https://aliexpress.ru/item/1005006378057256.html?sku_id=12000036957700492

4 отзыва на Шлюз UART-to-I2C/SPI/1W RH-0004

  1. master-brains (проверенный владелец)

    Получил сегодня данное устройство, покупал исключительно для микросхем памяти DS2431, протестировал, и нашел один существенный недостаток, сие чудо техники не может перезаписывать ROM-область данной микросхемы, хотя и в datasheet к этой микросхеме и другие программаторы, которые есть у знакомых, прекрасно прошивают и эту область.

    Комментарий rhf-admin:

      Можно поподробнее?

    • Что вы подразумеваете под ROM-областью? 64-битный идентификатор? В этом случае вы видимо что-то путаете. Само название — ROM (read only memory) говорит о том, что эту область можно только читать. Этот ROM уникальный, прошивается на заводе и его можно только читать. В этом можно убедиться из документации на DS2431. Ссылка на архив с документацией на 1-wire чипы.
    • Если речь про отдельные страницы EEPROM, то они могут быть полностью защищены от перезаписи или переведены в режим EPROM (когда биты памяти можно только сбрасывать в ноль, но нельзя вернуть снова в единицу). Для этого записываются специальные значения в страницу регистров.
    • Если не сложно, — пришлите пожалуйста даташит (или ссылку), в котором написано про возможность перепрошивки ROM, на почту (pochta@radiohlam.ru), на форум или в телегу. С удовольствием дополню функционал, если это действительно окажется возможным 🙂

  2. master-brains (проверенный владелец)

    Сори, все разобрался, спасибо что поправили, не туда смотрел.
    ИНФОРМАЦИЯ ДЛЯ ВСЕХ: УСТРОЙСТВО ПОЛНОСТЬЮ РАБОЧЕЕ, ЛАГОВ НЕТ, ВСЕ ГУД.

  3. bobka310186

    получил Шлюз UART-to-I2C/SPI/1W RH-0004 в связке с USB-to-UART RH-0003, брал для чипов памяти DS2431/DS2430А. Работает отлично, читает-пишет мгновенно, на win7 дрова встали автоматом. Очень доволен качеством и благодарен автору за труды. Кстати в Беларусь, г. Минск пришло за неделю, что очень порадовало.

    • rhf-admin

      Большое спасибо за отзыв, рад, что Вам понравилось. Если будут вопросы — пишите.

  4. AlexYar

    Отличный шлюз за нормальную цену. Работает отлично. Рекомендую. Проверял на RW1990 и DS2431. Очень доволен. Спасибо!

Добавить отзыв